Workflow Studio flow trigger types
Summarize
Summary of Workflow Studio flow trigger types
Workflow Studio flow triggers define when a flow starts and determine the initial data available to it. Different trigger types support various start conditions such as record operations, scheduled times, application events, inbound emails, REST API calls, and external system events. Understanding these triggers helps ServiceNow customers design flows that initiate automatically based on relevant events, ensuring efficient automation and resource usage.
Show less
Record Triggers
Record triggers start flows based on record creation or updates in non-system tables. Key trigger options include:
- Created: Triggers a flow when a new record is created.
- Updated: Triggers when records update, with options controlling frequency such as "For each unique change," "Once," or "For every update."
- Created or Updated: Combines both creation and update triggers with similar frequency options.
Note that unique change triggers can cause recursion if the flow updates its own triggering record, and approval actions should only run once to avoid redundant processing. Record triggers ignore changes made via update sets or imports.
REST API Triggers
These triggers start flows from inbound REST API calls or webhooks without the need for custom code. They require Integration Hub Enterprise subscription and allow flows to respond to external system events asynchronously.
Scheduled Triggers
Scheduled triggers initiate flows based on specific times or intervals, using the instance timezone. Options include daily, weekly, monthly, run once, or repeated intervals. Flows run asynchronously, so exact start time can vary under system load.
Application Triggers
Application-specific triggers start flows based on events in ServiceNow modules such as:
- Kafka Message: Triggered by messages in Kafka topics.
- MetricBase: Triggered by MetricBase events (requires MetricBase application).
- Proactive Analytics: Triggered by KPI thresholds (requires Performance Analytics subscription).
- Service Catalog: Triggered by catalog item requests (use application triggers instead of record triggers).
- SLA Task: Triggered by SLA Definition records.
Inbound Email Triggers
Flows can be triggered when emails are received by the instance, offering greater control than inbound email actions. Email attachments and record associations can be managed within the flow. Multiple inbound email flows require additional configuration to run on the same email. Flows run with the email sender's user context or as Guest if unrecognized, ensuring appropriate access controls.
Spoke Triggers
Spokes enable flows to start from conditional or event-driven external triggers such as webhooks from third-party applications. This facilitates integration scenarios like syncing external issue tracking with ServiceNow records.
Advanced Options for Trigger Execution
Flows can be configured to run only in interactive or non-interactive sessions, or both. User-based restrictions control which users can trigger flows. Table options define whether flows trigger on specific tables or their extensions. Execution can be set to run in the background asynchronously (default) or foreground synchronously for immediate user updates.
Data Pills Available by Trigger Type
Each trigger provides specific data pills (variables) for use within the flow:
- Record triggers: Include triggering record, changed fields, table ID, and flow start time.
- REST API triggers: Include path parameters, query parameters, headers, and request body.
- Application triggers: Provide objects related to the specific application event.
- Inbound email triggers: Provide email record, body, subject, sender info, and user record.
- Kafka triggers: Provide message arrays including headers, payload, and keys.
These data pills enable flows to access relevant context and take appropriate actions.
General Guidelines for Using Triggers
- Use triggers for flow initiation: Flows always start when trigger conditions are met. Use subflows for variable inputs instead.
- Add specific conditions: Narrow trigger conditions to reduce resource consumption and avoid unnecessary flow runs.
- Create unique trigger conditions: Prevent conflicts and unpredictable order when multiple flows trigger on the same table.
- Avoid triggers on import/update set changes: Triggers ignore records changed by these bulk operations.
- Use Service Catalog application triggers: Replace record triggers for Service Catalog tables for better support.
- Verify user access: Ensure users triggering flows have access to all data in trigger conditions to prevent permission issues.
Each trigger type defines when a flow starts and the starting data available to it. There are triggers for record operations, dates, and application operations.
Record triggers
Use record triggers to start a flow when a record is created or updated.
| Trigger | Description |
|---|---|
| Created | Starts a flow when a record is created in a specific non-system table. Note: Some common record types such as requests have their own dedicated triggers. See the application trigger types for a list of
application records that have dedicated triggers. |
| Updated | Starts a flow when a record is updated in a specific non-system table. Requires selecting when to run the flow.
|
| Created or Updated | Starts a flow when a record is either created or updated in a specific non-system table. Requires selecting when to run the flow.
|
REST triggers
Use REST triggers to start a flow after a specific REST API request.
| Trigger | Description |
|---|---|
| REST API - Asynchronous | Start a flow from an inbound API call or webhook from an external system. Configure the trigger start conditions without having to write or maintain custom code. For more information, see REST API trigger. |
Scheduled triggers
| Trigger | Description |
|---|---|
| Daily | Starts a flow at a specific time every day. |
| Weekly | Starts a flow at a specific time every week. |
| Monthly | Starts a flow at a specific time every month. |
| Run Once | Starts a flow once at a specific time but does not repeat. If you select a past date or time, the system schedules the flow to run as soon as possible. |
| Repeat | Starts a flow at regular intervals you define. |
Application triggers
Use application triggers to start a flow when application-specific conditions are met.
| Trigger | Description |
|---|---|
| Kafka Message | Starts a flow when there's a message in a topic in your Kafka environment. For more information, see Create a flow with a Kafka Message trigger. |
| MetricBase | Starts a flow when a MetricBase trigger is met. Requires the MetricBase application. For more information, see Create a flow with a MetricBase trigger. |
| Proactive Analytics | Starts a flow when Proactive Analytics KPI score or KPI threshold values are met. Requires a Performance Analytics subscription to Proactive Analytics. For more information, see Create a flow with a Proactive Analytics trigger. |
| Service Catalog | Starts a flow from a Service Catalog item request. For more information, see Create a flow with a Service Catalog trigger. Note:
Service Catalog triggers do not
support catalog variables as part of the trigger condition. Instead, get or
create catalog variables in the main body of the flow. |
| SLA Task | Starts a flow from an SLA Definition record. For more information, see Create a flow with an SLA Task trigger. |
Inbound email triggers
Start a flow when your instance receives an email.
Inbound email flows take priority over inbound email actions. If you create flows with inbound email triggers, emails are first processed by the inbound email triggers before they are processed by inbound email actions.
With inbound email actions, you don't have full control over email attachment handling or assigning the target record of an email. When you create a flow with an inbound email trigger, you can perform these actions with the Move Email Attachments to Record action and the Associate Record to Email action. For greater control over email attachments, you can also use the Look up email attachments action to access a specific attachment as a data pill.
Although you can process an inbound email with multiple inbound email actions, you can't process an inbound email with multiple flows by default. Additional configuration is required. For information on how to stop processing in inbound email actions, see Specifying the inbound email processing order.
For more information on running multiple flows on an inbound email, see Allow multiple triggers to process an inbound email.
The following diagram shows how inbound emails are processed by inbound email triggers. After the email has been classified as a reply, forward, or new email, the system tries to match the email to an active inbound email trigger. If the email meets the conditions of an inbound email trigger, the flow runs. If the flow issues stop processing, the email is finished being processed. If the flow does not issue stop processing, the system evaluates the conditions of more inbound email triggers. If there are no more inbound email triggers to evaluate, the system tries to match the email with an active inbound email action instead.
Spoke triggers
Advanced options
- When to run the flow
Determine the type of session that can trigger the flow, whether to run the flow when triggered by certain users, and which tables can trigger the flow.
Table 1. Interactive session options Option Description Only Run for Non-Interactive Session Flow that is only triggered in non-interactive sessions. See Non-interactive sessions. Only Run for User Interactive Session Flow that is only triggered in interactive sessions. Run for Both Interactive and Non-Interactive Sessions Flow that is triggered in all sessions. Table 2. User options Option Description Do not run if triggered by the following users Flow that does not trigger for a selected list of users. Click the Add User icon ( ) to add users to the list.
Only run if triggered by the following users Flow that triggers only for a selected list of users. Click the Add User icon ( ) to add users to the list.
Run for any user Flow that runs for any user. Table 3. Table options Option Description Run only on current table Flow that is only triggered for the selected table. Run on current and extended tables Flow that is triggered for the selected table and any extended tables. - Where to run the flow
Determine whether to run the flow in the background or in the current session.
Option Description Run flow in background (default) Flow that runs asynchronously in the background. Use this option for flows that do not require immediate updates and to allow other system processes to run at the same time. Run flow in foreground Flow that runs synchronously in the current session. Use this option to provide immediate updates to an end user. For example, if a flow opens a task after the previous task closes, use this option to open the next task immediately after a user closes one. Note:Running a flow in foreground may block the current session thread and prevent user input until the flow finishes. Avoid running flows in the foreground when they contain actions that cannot be interrupted, such as actions that run script. Actions or flow logic that pause a flow will not block a session.
Data pills available by trigger type
Flow designers have access to data pills from the trigger.
| Trigger Type | Data pills available |
|---|---|
| Record |
|
| REST API - Asynchronous |
|
| Date |
|
| SLA Task |
|
| Inbound Email |
|
| Metric Base |
|
| Service Catalog |
|
| Kafka Message |
|
General guidelines
Follow these general guidelines when creating record triggers.
- Determine whether your flow needs a trigger or variable input
- Flows always run when their trigger conditions are met. Triggers always provide the same data as input for flows. If you need variable input to initiate a flow instead, create a subflow.
- Add conditions to specify what record values start your flow
- Starting a flow only when needed consumes fewer system resources than starting a flow, pausing it, and waiting to resume the flow until a specific record condition applies. Instead of creating a flow that starts with a Wait for condition action, redesign the flow to include the wait condition as part of the record trigger.
- Create unique conditions for record triggers on the same table
- To prevent flows from overwriting each other, create unique conditions for each flow running on the same table. If multiple flows on the same table have the same filter conditions, there is no way to know the order in which the flows run. Using conditions also helps to optimize flow performance by returning a more precise, smaller set of records.
- Ignore records added or updated by import and update sets
- Record triggers ignore records added or updated by applying an update set or importing an XML file. These operations apply to the entire application or table rather than an individual record.
- Replace record triggers on Service Catalog tables with Service Catalog application triggers
- Flow Designer no longer displays Service Catalog tables as options for record triggers. Instead, create flows that use the Service Catalog application trigger type.
- Verify that the users who trigger a flow have access to trigger condition data
- Since flows typically run as the user who triggers them, verify that users have access to all of the data specified in the trigger conditions. Avoid creating trigger conditions to related tables that typical users don't have access to. If your flow trigger conditions require access to role-restricted data, run your flows with the role needed to access that data.