skybow Background Automation Services is used for supporting Background features (Metadata Inheritance, Aggregation, Calculation Expressions, Scheduled Actions and Triggered Actions) in SharePoint server local environment. It is needed for:
This document describes how to deploy skybow Background Automation Services to your SharePoint server environment.
skybow Background Automation contains of:
- IIS Site: skybow Background Automation
- Windows services:
- skybow Scheduled Action Job
- skybow Queue Message Job
- skybow Actions Job
- skybow CleanUp Job
- skybow HTTP Trigger Job
- SharePoint SPFx Addin
Prerequsites:
- IIS (Internet Information Services)
- SQL Server instance
- MSMQ (Message Queuing)
- PowerShell 5.0 or 5.1(Recommended)
- User account for service identity:
- This account will be prompted during the PowerShell deployment script (install_ba.ps1) and will be used as:
- Application Pool identity for the IIS site
- Log On account for all skybow Windows services
- Must have access to target SharePoint sites (be site collection administrator or be in the owners SharePoint group for the target sites)
- Access to SQL Server is required only if DefaultConnection does not specify a custom SQL user in the connection string.
- Must have permissions in Microsoft Message Queuing (MSMQ) for the private queues (Send, Receive and Peek permissions)
Supported SharePoint Versions:
- SharePoint Server 2019
- SharePoint Subscription Edition (SE)
Installation Locations:
- IIS site is installed at C:\inetpub\wwwroot\skybowBackgroundAutomation
- Windows services are installed at: C:\skybowBackgroundAutomation\Services
Installation steps:
Run the PowerShell deployment script (install_ba.ps1):
Launch Windows PowerShell 5.x -> "Run as Administrator" (NOT PowerShell Core).
Navigate to the folder containing install_ba.ps1 and run the script:
> cd "path to folder that contains install_ba.ps1"
> .\install_ba.ps1Follow on-screen prompts to complete the deployment.
Provide user credentials.
During the first installation, you will be prompted to provide credentials. This account will be used as:
- Application Pool identity for the IIS site
- Log On account for Windows servicesConfigure URLs for IIS site.
Open IIS Manager -> Sites -> skybow Background Automation. In the Actions panel, click 'Bindings...' and add/edit site bindings:
- HTTP (optional):
- Type: http
- IP address: All Unassigned (or specific IP)
- Port: 9802
- Host name: (optional)
- HTTPS (strongly recommended):
- Type: https
- IP address: All Unassigned (or specific IP)
- Port: 443
- Host name: (optional, e.g., your public domain)
- SSL certificate: Select a valid certificate trusted by SharePoint servers and clients
- Click OK to save bindings.
NOTE: SharePoint web front-end (WFE) servers must be able to reach the HTTPS URL.-
Update the IIS web.config file:
Open C:\inetpub\wwwroot\skybowBackgroundAutomation\web.config and set the following keys:DefaultConnection - this is connection string to SQL database.
- Example with Windows Authentication:
"Data Source=ServerName\SqlDbInstanceName;InitialCatalog=skybow.Notifications;Integrated Security=True"
- Example with SQL Authentication:
"Data Source=ServerName\InstanceName;Initial Catalog=skybow.BackgroundAutomation;User ID=sqluser;Password=sqlpassword"
NOTE: If no SQL credentials are specified and Integrated Security=True is used, the IIS application pool identity (for web.config) or the Windows service Log On account (for *.exe.config) will be used to connect to SQL.WebHookEndPoint / ReceverEndPoint - Public URLs for SharePoint to communicate with the IIS site.
These URLs must be accessible from SharePoint WFE servers and must start with the public base URL of your IIS site. Example:
<add key="WebHookEndPoint" value="https://baservice:9802/api/webhooks/subscribe" />
<add key="ReceiverEndPoint" value="https://baservice:9802/Services/RemoteEventReciever.svc" />HttpTriggerEndPoint - Public URL format to call Triggered Actions with HTTP request trigger type
These URL must be accessible from SharePoint WFE servers and must start with the public base URL of your IIS site. Example:
<add key="HttpTriggerEndPoint" value="https://your-ba-service-url/api/trigger/{referenceId}/invoke?code={apiKey}" /> your IIS site.
Start the IIS site
On first load, the system will connect to the SQL Server and automatically create the "skybow.BackgroundAutomation" database.- Update skybow.***.exe.config files for all skybow Windows services:
- Navigate to "C:\skybowBackgroundAutomation\Services\".
- Update the *.exe.config files for the following skybow services:
- DefaultConnection
- WebHookEndPoint
- ReceiverEndPoint
- HTTPTriggerEndPoint
- These values should match the ones used in web.config of the IIS site (Step 5). - Optional: Configure Email Notifications (SMTP): skybow Background Automation can send automatic email notifications if background calculations or actions are disabled due to continuous execution errors.
To enable notifications, configure the following settings in:
- IIS web.config file:
C:\inetpub\wwwroot\skybowBackgroundAutomation\web.config
- ALL FIVE Windows service *.exe.config files:
C:\skybowBackgroundAutomation\Services\
Configuration details:
- SmtpServerHost - SMTP server hostname.
- SmtpServerPort - SMTP server port (587 recommended for TLS).
- SmtpServerUserName / SmtpServerPassword - SMTP authentication credentials.
- SmtpFromAddress - Sender email address used for notifications.
- SmtpFromDisplayName - Display name shown in outgoing emails.
- MaintainerEmail - Email address that receives notifications if a background calculation
or triggered/scheduled action is disabled due to repeated errors
NOTE: This configuration is optional. If not configured, background processing will continue normally, but no email notifications will be sent. - Restart all skybow services:
- Press Win + R → type: services.msc
- Locate and restart each of the following:- skybow Scheduled Actions Job
- skybow Queue Message Job
- skybow Actions Job
- skybow CleanUp Job
- skybow HTTP Trigger Job
Verify message queues (MSMQ). During the first start, the skybow services automatically create the required private queues in Microsoft Message Queuing.
Verify private queues in Computer Management -> Services and Applications -> Message Queuing -> Private Queues.
If not created automatically, create manually (If the skybow service account does not have permission to create them, you must manually create the following queues under Private Queues):
- skybowssnotificationsqueue
- skybowssscheduledactionsqueue
Ensure the skybow service account has "Send", "Receive", and "Peek" permissions.-
SharePoint Integration (SPFx Add-in). The final step is to deploy the skybow Background Services SharePoint Framework (SPFx) add-in.
- Locate the Addin folder in the deployment package. It contains:
- skybow-background-services-2019.sppkg
- skybow-background-services-SE.sppkg
Select the package that matches your SharePoint version.
- Upload and deploy the selected .sppkg file to the SharePoint App Catalog.
- Add the app to the target SharePoint site.
- Open any list or document library on that site and click "skybow Background Services" in the command bar.
- Configure the Service URL: If the background service URL has not been set for the site collection, the Configure Background Automation Service URL dialog will open automatically.
- In the dialog:
- Enter the public URL of the skybow Background Automation IIS site
- Click the Check button
- Once the "Success" message appears, click Apply to save the configuration.12. Validate Background Automation Service URL: When you open the Skybow Background Services dialog for the first time at the site collection level, you will be prompted to enter the Background Automation Service URL and click the “Check” button. After clicking "Check", the system validates that:
- The web application has access to the current site collection.
- The service can successfully connect to the SQL database.If the URL is valid, a confirmation message will appear indicating that the connection was successful and the Background Automation Service is ready to use.
NOTE 1: During future deployments, the configs will automatically back up and merge your current web.config and service *.exe.config files to preserve your configuration changes.
NOTE 2: Each time there is a change in Background Automation service you need to re-run the script.