Wait For Message action
Summarize
Summary of Wait For Message action
The Wait For Message action in ServiceNow's Workflow Studio enables you to pause a flow until it receives a specific string message via thesendMessage()API. This action is useful for controlling flow execution based on external events or inputs, allowing the flow to resume only when the expected message arrives or after a defined timeout period.
Show less
Key Features
- Message Input: Specify the string message that the flow is waiting to receive from the
sendMessage()API to resume execution. - Timeout Option: You can enable a timeout to prevent the flow from waiting indefinitely. If enabled, the flow continues after the specified duration even if the message is not received.
- Duration Configuration: Define the waiting period in hours, minutes, and seconds when timeout is enabled.
- Outputs: The action outputs a
Payloadstring (data sent along with the message) and aStatestatus code indicating success (0) or error (1). These outputs can be used as inputs for other flow actions or logic. - Role Availability: Accessible to users with the
flowdesigneroradminrole.
Practical Application for ServiceNow Customers
- Convert existing classic workflows that use the "Wait for WF Event" activity into flows using the Wait For Message action by setting the event name as the message text.
- Create messages to resume flows using the
sendMessage()API. This can be done through custom actions with scripts inside the flow or external script logic such as events. - Prevent flows from stalling indefinitely by leveraging the timeout feature to automatically proceed if the expected message is not received within the specified time.
Example Use Case
In an approval flow, if the approval state is rejected or skipped, the flow can pause using the Wait For Message action until a corrective message is received via sendMessage(). For instance, after a rejected approval, a user addresses the feedback and triggers the sendMessage() API with the message "Resume Flow" and a payload such as "Resubmitted for approval." Once the API message matches the configured wait condition, the flow resumes and can rerun the approval step or continue processing.
Benefits
- Improves flow control and responsiveness by waiting for explicit user or system input.
- Enables integration with external processes and scripts to dynamically control flow execution.
- Reduces risk of indefinite pauses with configurable timeout settings.
- Provides outputs that can influence subsequent flow actions and logic decisions.
Pause a flow until it receives a specific message from the flow API. Specify the string message that resumes running the flow, and optionally provide a time out value to resume the flow if no message is received after a specific amount of time.
Roles and availability
Available as a Workflow Studio ServiceNow core action. Users with the flow_designer or admin role can add an action to a flow and define configuration details.
Inputs
Provide a value for each input that your action needs. To add dynamic values, you can also drag pills from the Data panel or select them from the pill picker.
- Message
- Data type: String
The text string that the flow is waiting to receive from the sendMessage() API. The action uses this message to resume running the flow. For more information about the sendMessage() API, see .
- Enable timeout
- Data type: True/False
Option to limit the amount of time that the flow waits for the action to be completed before continuing.Note:Use the Enable timeout option to help prevent the flow from infinitely waiting. If the message isn't received, a timeout value specifies when the system can skip the Wait for Message action and go to the next item in the flow. You must set a Duration value to enable a timeout.
- Duration
- Data type: Duration
Amount of time that the flow waits before continuing when the Enable timeout option is selected. Enter the time to wait in hours, minutes, and seconds. If you leave this field empty, the flow doesn’t wait.
Outputs
These outputs appear in the Data panel. You can use them as inputs elsewhere in your flow.
- Payload
- Data type: String
A text string returned by the sendMessage() API. The parent flow can use payload values as inputs for other actions or flow logic.
- State
- Data type: Choice
The completion status of the action as a numeric value.
- 0 (success)
- 1 (error)
General Guidelines
- Convert workflow event waiting activities using this action
- Convert classic workflows that use the Wait for WF Event activity to flows that use the Wait For Message action. You can use the event name as the message text that resumes the flow.
- Use the sendMessage() method to create messages
- Create messages for waiting flows using the sendMessage() method. If you want the flow to generate the message to resume running, create a custom action with a Script step to generate the message. Alternatively, create some script logic that runs outside the flow such as an event to generate the message. For more information about the sendMessage() API, see .
Wait for message to run Go back to flow logic
In this example flow, the approval state determines whether to run the Wait for Message action. If the approval state is skipped or rejected, the flow waits for a message from the sendMessage() API before continuing. You could use this logic to fix a rejected approval request and resubmit it for approval.
In this example, Fred Luddy rejected the approval and requested more information. To resume the flow, someone has to address Fred's comments, and then run the sendMessage() API to send the proper message Resume
Flow.
After fixing the change request, someone ran the sendMessage() API to send the message Resume Flow and also send the flow a Payload value of Resubmitted for approval. For more information about the
sendMessage() API, see .
Since the API message value matched the conditions of the Wait for Message action, the flow resumed running. In this case, the flow used a Go back to flow logic block to rerun the Ask for Approval action.
Here is the activity log of the change request. The payload value Resubmitted for approval was added to the Additional comments field.