Wait For Message

Use this step to wait for an incoming message and start the process later.

Last published at: March 31st, 2026

waitForMessage Step

Description:

The WaitForMessage workflow step pauses the workflow instance and waits for an incoming message that matches the configured message value.

Unlike time-based wait steps, WaitForMessage does not use a duration, date, or time period to determine when the workflow continues. The step is designed for message-driven workflow scenarios where the next stage of processing depends on an incoming message.

The step supports:

  • Message-based workflow waiting
  • Configuration of a message to wait for
  • Event-driven workflow progression
  • True and False return paths
  • Integration with message-driven workflow processes

This step can be used for:

  • Waiting for an external system response
  • Waiting for another workflow or process to send a message
  • Synchronizing workflow activities
  • Waiting for an asynchronous business event
  • Coordinating integrations between systems
  • Resuming processing after an expected notification
  • Event-driven business process automation

 

Inputs

  • waitMessage – Required message value that specifies the message the workflow should wait for. 
 

 

Returns

  • True –True return path from the WaitForMessage step.
  • False – False return path from the WaitForMessage step.
 

 

Usage:

The WaitForMessage step is typically placed at a point in a workflow where processing must pause until an expected message is received.

The workflow can perform preparatory activities before reaching the WaitForMessage step. Once the step is reached, the workflow waits for the configured message before continuing.

For example, a workflow can:

  • Submit a request to an external system and wait for a response message.
  • Start an asynchronous operation and wait for its completion notification.
  • Pause an order-processing workflow until a fulfillment message is received.
  • Wait for a notification from another workflow.
  • Synchronize two stages of a distributed business process.

The configured message is supplied through the “Wait for messages” property.

 

When the workflow reaches the WaitForMessage step, the workflow pauses until the configured message is received. The workflow can then continue through the appropriate outgoing path.

 

Typical Workflow Suggestions

External System Integration

Use WaitForMessage when an external system performs an operation asynchronously and sends a message when processing is complete.

Example:

Submit Request → WaitForMessage → Process Response

This allows the workflow to pause rather than repeatedly executing processing logic while waiting for the external operation.

 

Asynchronous Processing

Use the step when a workflow starts a long-running operation and needs to wait for a completion notification.

Example:

Start Processing → WaitForMessage → Continue Workflow

This is useful when the operation's completion time is not known in advance.

 

Workflow-to-Workflow Coordination

Use WaitForMessage to coordinate processing between workflows when one workflow needs to wait for a message from another workflow or process.

Example:

Start Parent Process → WaitForMessage → Continue Parent Process

The message acts as the signal that allows the waiting workflow to proceed.

 

Order and Fulfillment Processing

Use the step when an order workflow must wait for an event from a fulfillment or shipping system.

Example:

Submit Order → WaitForMessage → Update Order Status

This can be useful when fulfillment occurs outside the immediate execution of the workflow.

 

Payment Processing

Use WaitForMessage when payment processing is asynchronous, and the workflow needs to wait for a payment-related message.

Example:

Initiate Payment → WaitForMessage → Complete Order

The workflow can remain paused until the expected payment event is received.

 

Approval or Decision Notification

Use the step when another process or system sends a message representing the completion of an approval or decision.

Example:

Submit Approval Request → WaitForMessage → Process Decision

This can help coordinate approval processing across independent systems.

 

Event-Driven Business Processes

Use WaitForMessage when the next workflow action should be triggered by an incoming business event rather than by elapsed time.

Example:

Create Service Request → WaitForMessage → Assign Service Request

 

Example:

Let’s build and execute the “waitForMessageDef” example.          

  • Create a new process definition called “waitForMessageDef” and open the definition in designer mode. 
  • Drag the “waitForMessage” and “placeholder” steps to the canvas.
  • Connect the dots between the “Start” and other steps, as shown above.
  • Select the line between the steps to configure the “Connection Properties”. The default property values are “None, Error, Evaluate, and Timeout”. Depending on the step’s purpose, additional values are available for configuration. 
  • Click the first “waitForMessage” step to configure its “Required” properties. Enter a name for the step and the message text to wait for. Then click the Save button. Note: Click the "AI Predict" button to have Copilot add new process steps that match your process description. 

 

  • Click the other “waitForMessage” step to configure its “Required” properties. Provide a name for the step and the message text to wait for. Then click the Save button. Note: Click the "AI Predict" button to have Copilot add new process steps that match your process description. 

 

  • The “Logging” configuration is necessary for documentation and also measures workflow progress and percent complete. This is achieved by configuring the step state and percent fields individually, as shown in the images below. Configure the “Logging” using the following properties.

 

  • Save the process definition, create a new instance, and execute it. Render the process instance. The process instance is sleeping at the “waitForMessage” step.

 

  • Render the process instance. The process instance is sleeping at the “waitForMessage” step. 

 

  • On the process instance page, select the Utils - Send Message menu option. 

 

  • Select a message from the dropdown list. Then click the “Send” button.

 

  • The message is sent to the sleeping process instance through the FlowWright .NET/REST API. A notification appears in the top-right corner.  

 

  • After the “waitForMessage” step, the process execution continues. In this example, one wait message is selected, so the other step continues waiting for that message. 

 

  • Repeat the “send message” activity to complete the process instance.

 

  • The message is sent to the sleeping process instance via the FlowWright .NET/REST API. A notification message is displayed in the top-right corner.  

 

  • The process execution completes after the final “waitForMessage” step. 

 

Tips:

  • Use WaitForMessage when the workflow should resume based on an incoming message rather than elapsed time.
  • Configure the Wait for messages value carefully so that it corresponds to the message the workflow expects.
  • Use meaningful step names such as “Wait for Payment Confirmation”, “Wait for Fulfillment Message”, or “Wait for External Response” to make the workflow easier to understand.
  • Use this step for asynchronous integrations where the response may arrive at an unpredictable time.
  • Avoid using a time-based Wait step when the actual business requirement is to wait for an event or message.
  • When designing integrations, ensure that the sending system and the waiting workflow use a consistent message value.
  • Test the message-driven workflow with representative messages before deploying it to production.

 

Notes:

The WaitForMessage step is defined in the Engine category with the internal name waitformessage and display name Wait For Msg.

The workflow step is implemented by the FlowWright.Workflow.WaitForMessage namespace in FlowWright.Workflow.dll and is defined as a Process step. It supports 2 incoming connections and 2 outgoing connections.

The “Wait for messages” property is a required string input and uses FlowWright's standard string/text-box data type.

The XML definition does not expose any additional date, time, duration, time zone, or weekend properties for this step. The only configured input is the message value.

 

Feature comparison:

Feature Wait WaitForDateTime WaitForComputedDateTime WaitForMessage
Primary purpose Pause for a specified duration Pause until a specific date/time Pause until a computed date/time Pause until a message is received
Display name Wait Wait to Date Wait Computed Wait For Msg
How wait period is determined Duration + unit Explicit date/time Computed date/time value Incoming message
Start date supported Yes, optional Not separately; the target is Wait till Encapsulated in computed date/time No
Time zone supported Yes Yes Not exposed as a separate property No
Duration units Yes No No No
Minutes / hours / days / months / years Yes No No No
Weekend handling Yes, for day-based waits No Not exposed No
Dynamic/computed target time Indirectly through inputs, but duration-based Date/time property Yes — specifically designed for this Not applicable
Message/event driven No No No Yes
Required input Wait duration and wait type Wait-till date/time Computed date/time Message to wait for
Outputs True / False True / False True / False True / False
Typical use "Wait 3 days" "Wait until Jan 15 at 10 AM" "Wait until the date/time calculated by the workflow" "Wait until a specified message arrives"

 

Definition Sample:

You may download a sample definition when provided and import it into your FlowWright Process Definition.

Note: Verify and complete any missing configuration after importing a sample, including:

  • Wait for messages value
  • Outgoing workflow connections
  • Message source or integration configuration
  • Environment-specific settings

After verifying the configuration, save the Process Definition before execution.

Click here to download the sample file.