Message Scenarios Integration Event Delivery Channel

With the 26A update, the Message Scenario Integration Events Delivery Channel allows you to use message scenarios with Events API as a delivery method. You can configure the message steps and specify "Integration Event" as the delivery channel in the message flows, so that the resulting integrations may use Events API to receive the information. Message Scenarios can now use the new Integration Event delivery channel to support existing use cases, such as SMS reminders and notifications.

When it is time for the message engine to process the step, an event with messageStepTriggered type is generated. The status of the message gets the value "Sent".

The generated event supports the following fields:

eventType: The type of the event. The value 'messageStepTriggered' is used for the event when a message step with the "Integration Event" delivery channel is executed.
user: User name of the user who triggered the message.
applicationId: The ID of the application that performed the operation which generated the event. It is only present if the operation was performed by an Application.
time: The datetime in UTC when the message was triggered. For example, 2026-04-25 12:36:11.

messageDetails: The record that contains message related information:
    messageId: The unique ID of the generated message.
    scenarioName: The name of the message scenario.
    stepName: The name of the message step in the scenario.
    subject: The value of the Subject field in the scenario.
    body: The values of the Body field in the scenario.

activityDetails: The record that contains the activity key values if the message is triggered in the activity context. This field is optional.
    activityId: The identifier of the activity (integer). This is a mandatory field.
    resourceId: The identifier of the resource to which the activity is assigned (string). This is a mandatory field. The field maps to the external_id field.
    date: The date the activity is scheduled; it is typically in the format YYYY-MM-DD. If the activity isn't scheduled, the value is NULL.
    apptNumber: This field is used by integrations to hold the external ID of the activity. The external ID is the identifier of the activity in the originating application. This is a mandatory field.
    customerNumber: This field is used by integrations to hold the external ID of the account. The external ID is the identifier of the account in the originating application. This is an optional field.

inventoryDetails: The record that contains the inventory key values if the message is triggered in the inventory context. This field is optional.
    inventoryId: The identifier of the inventory (integer). This is a mandatory field.
    inventoryType: One of the inventory types defined on the Configuration > Inventory types page in the Manage interface.
    status: The status, such as customer, resource, installed, and deinstalled.

resourceDetails: The record that contains the resource key values in which context the message step was executed.
    resourceId: The identifier of the resource to which the activity is assigned (string). This is a mandatory field. The field maps to the external_id field.
    name: The name of the resource (string).
    resourceType: The resource's type label (string).

Event

{
    "eventType": "messageStepTriggered",
    "time": "2026-07-04 08:31:26",
    "user": "admin",
    "messageDetails": {
        "messageId": 12,
        "scenarioName": "day_before",
        "stepName": "Customer cancelled",
        "subject": "Customer canceled via WMT",
        "body": "This activity was canceled by the customer: Acme Corp. Address: 123 Industrial Way, Springfield, IL Account: ACME789012 Order: ORD987654321"
    },
    "activityDetails": {
        "activityId": 4232045,
        "resourceId": "33001",
        "date": "2025-07-04",
        "apptNumber": "ORD987654321",
        "customerNumber": "ACME789012"
    },
    "resourceDetails": {
        "resourceId": "33001",
        "name": "ARNDT, William",
        "resourceType": "PR"
    }
}

To read those events an integration creates a subscription, specifying the desired event type.

The following fields can be used in subscriptions to filter only the needed messages:

  • messageDetails.scenarioName
  • messageDetails.stepName
  • messageDetails.subject

Size limitations

  • Maximum allowed size for the 'subject' field is 1k (1024b)
  • Maximum allowed size for the 'body' field is 100k (1024000b)

If a message exceeds the size limit, the event is not generated and the message step is marked as 'failed' with the following information:
Status: failed
Description: WRONG_CONFIGURATION
Data: Message content is too large.
Comments: The size of the 'subject' or 'body' field(s) exceeded the limit.

Key Points to know about the "messageStepTriggered Event"

  • if a subscription configuration contains "messageStepTriggered" with  "fields" attribute, it is rejected with 400 code: "The parameter 'fields'  is not supported for the event type 'messageStepTriggered'".
  • if a subscription configuration contains "messageStepTriggered" with  "monitorChanges" attribute(s), it is rejected with 400 code: "The parameter 'monitorChanges' is not supported for the event type 'messageStepTriggered'".
  • "messageStepTriggered" can be mixed with other event types only if there are no "fields", "monitorChanges" or "filterExpression" in this subscription configuration.
  • if a subscription configuration contains "messageStepTriggered"  with "filterExpression" attribute, the list of event types cannot have any other event type, otherwise it is rejected with 400 code: "Invalid subscription content, incompatible events list".
  • filterExpression for the "messageStepTriggered" supports only:
    • messageDetails.scenarioName
    • messageDetails.stepName
    • messageDetails.subject

Limits and Supported Fields for the "messageStepTriggered Event"

The functionality of monitorChanges is not supported.
 

  • messageDetails.scenarioName
  • messageDetails.stepName
  • messageDetails.subject

The feature lets you combine the power and flexibility of message scenarios with REST API integrations.

Leveraging message scenarios with the Events API as a delivery method enables organizations to modernize their communication strategy and accelerate time to value. This approach simplifies the integration with external applications, allowing automated delivery of customer communications, such as SMS reminders and notifications, without additional custom development. The result is greater agility, lower operational overhead, and a more consistent, real-time customer engagement experience, supporting scalable growth and faster innovation.

Steps to Enable and Configure

You don't need to do anything to enable this feature.