This recipe links SymphonyAI ITSM incidents to ServiceNow by triggering when a new Incident is logged. It automatically creates a corresponding Incident in ServiceNow, updates SymphonyAI with the ServiceNow Incident number, and ensures both systems remain synchronized.
With configured field and status mappings, any state changes in ServiceNow (e.g., In Progress or Resolved) can also trigger updates back to SymphonyAI, maintaining near real-time alignment between both platforms.
Prerequisites
Connections: SymphonyAI Connector, ServiceNow Connector
Configuration: Field mapping between SymphonyAI and ServiceNow Incident table, Status mapping, Mandatory Workgroup configuration.
Trigger
When a new Incident is created in SymphonyAI with the required configuration (Workgroup = Application Support), the integration workflow is triggered.

The workflow starts when a webhook is triggered.
A new Incident is created in SymphonyAI.
The integration checks whether a ServiceNow ticket already exists.
If not present, it creates a new Incident record in ServiceNow.
The ServiceNow Incident number is captured and updated back in SymphonyAI.
If attachments are present, it uploads them to ServiceNow.
If there is user communication, it adds it as a comment in ServiceNow.
Finally, it stops the job.
Main Flow
Creates a ServiceNow Incident (if not already created), updates SymphonyAI with the ServiceNow Incident number, and transfers all incident attachments from SymphonyAI to ServiceNow automatically. This ensures both systems stay synchronized and aligned in real time.
The workflow initiates when a new Incident is logged in SymphonyAI via HTTP Webhook (Real-time Trigger).

Field Description
The following table describes the Main flow of the Recipe.
Step No. | Step Name | Type | Description |
|---|---|---|---|
1 | CreateIncident via HTTP webhook (Real-time) | Trigger | Triggers the workflow when an incident is received via HTTP webhook. |
2 | IF ServiceNow ticket no is not present | Condition | Checks whether the ServiceNow ticket number is missing. |
3 | Create record in Incident table in ServiceNow | Action | Creates a new Incident record in ServiceNow if the ticket number is not present. |
4 | IF Number is present | Condition | Validates whether the ServiceNow Incident number was successfully created. |
5 | Update Incident for user in SymphonyAI v5 | Action | Updates the corresponding incident record in SymphonyAI with ServiceNow details. |
6 | IF Has attachment equals Yes | Condition | Checks whether the incident contains attachments. |
7 | Get Incident Details in SymphonyAI v5 (Custom) | Action | Retrieves incident details including change history from SymphonyAI. |
8 | For Each item in Change History | Loop | Iterates through each item in the incident change history. |
9 | IF Column name equals Attachment | Condition | Checks if the change history entry corresponds to an attachment. |
10 | Get Attachment base64 in SymphonyAI v5 (Custom) | Action | Retrieves the attachment in base64 format from SymphonyAI. |
11 | IF Output is present | Condition | Validates whether the attachment data was successfully retrieved. |
12 | Upload attachment in ServiceNow | Action | Uploads the retrieved attachment to the corresponding ServiceNow incident. |
Else Flow
Detects updates made in SymphonyAI after the ServiceNow Incident has already been created.
The following recipe displays the Workflow.

Field Description
The following table describes the Else Flow of the Recipe.
Step No. | Step Name | Type | Description |
|---|---|---|---|
13 | ELSE (if ServiceNow ticket no is present) | Condition | Executes alternate steps if ServiceNow ticket already exists. |
14 | Get Incident Details in SymphonyAI v5 (Custom) | Action | Retrieves updated incident details from SymphonyAI. |
15 | Create variable LastModifiedDate | Action | Stores the last modified date of the incident for comparison. |
16 | For Each item in Change History | Loop | Iterates through change history records for communication updates. |
17 | IF Column name equals User Communication | Condition | Checks whether the change corresponds to user communication. |
18 | Create variable LoopChangeDate | Action | Captures the change date for comparison. |
19 | IF LastModifiedDate equals LoopChangeDate | Condition | Compares dates to prevent duplicate updates. |
20 | Update record in Incident@script table in ServiceNow | Action | Updates the corresponding ServiceNow incident record with communication details. |
21 | STOP Job | Action | Stops the job execution after completing updates. |
22 | End | End | Marks the completion of the workflow. |
Integrate SymphonyAI to ServiceNow
Log in as an Admin.
Navigate to Projects in Integration Hub.
Check if active Connections exist and verify that the SymphonyAI–ServiceNow Recipe is active.
If the connections are not active, inform the POC to activate them.
Create an Incident in Apex 2.0 with Workgroup set to Application Support. This value must be mandatorily set.
Navigate to Integration Hub > Projects > Recipes > SymphonyAI–ServiceNow Recipe.
A new Job must be created in the Jobs section.
Click the latest Job and navigate to Create Record in Incident table in ServiceNow. Validate that a ServiceNow Incident number has been generated.