> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowx.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Message Start Event

> Start a process instance when a specific message, incoming email, or incoming webhook is received by the Message Start Event node.

**Why this matters:** The Message Start Event allows a process to be triggered and initiated based on the reception of a specific message, an incoming email, or an external webhook request.

## Configuring a message start event

A Message Start Event is a special event in a process that initiates the start of a process instance upon receiving a specific trigger. It acts as the entry point for the process, waiting for the designated trigger to occur. Once triggered, the process instance is created and begins its execution, following the defined process flow from that point onwards.

> [!WARNING]
>
> To use this type of node with the task management plugin, you must have a service account defined in your identity solution. For more information, see how to [create service accounts using Keycloak](https://docs.flowx.ai/6.x/setup-guides/access-management/configuring-an-iam-solution.md#process-engine-service-account).

![Message Start Event BPMN symbol: a thin-bordered circle with an envelope inside](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/release34/start_catch_message_event.png#center)

### General config

**Node name** `string`

The name of the node.

**Process Stage** `dropdown`

Assign a stage to the node, if needed.

***

### Process trigger

The **Trigger Type** determines how the process instance is started. Three options are available: **Internal Throw Message**, **Email Trigger**, and **Incoming Webhook**. Microsoft Outlook mailboxes are selected under **Email Trigger**.

> [tab] Internal Throw Message
>
> Use this trigger type when you want to start a process instance from another process using a [Message Throw Event](https://docs.flowx.ai/6.x/docs/building-blocks/node/message-events/message-intermediate/message-throw-intermediate-event.md). This is the classic approach for inter-process communication.
>
> ![Internal Throw Message configuration](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/scm3.png)
>
> **Trigger Type** `enum` *required*
>
> Select **Internal Throw Message** to enable message-based triggering from other processes.
>
> **Correlate with throwing message events** `dropdown`
>
> The message event name that this start event listens for. This must match the event name configured in the corresponding Message Throw Event from the sending process.
>
> **Process Key** `string`
>
> The process key / variable name where incoming message data will be mapped in the started process. The data sent from the throwing process will be available under this key.
>
> > [!NOTE]
> >
> > **Note:** The correlation key field is not available for Message Start Events. Correlation keys are only used for intermediate catch events where a running process instance needs to be identified.
> >
> > The correlation value set on the [Message Throw Event](https://docs.flowx.ai/6.x/docs/building-blocks/node/message-events/message-intermediate/message-throw-intermediate-event.md) still matters for start events:
> >
> > * A message with an empty correlation value is discarded and starts nothing.
> > * If an instance that was started by the same message name and correlation value is still active, no new instance starts for that process and the platform records an error instead.

> [tab] Email Trigger
>
> Use this trigger type when you want to automatically start a process instance when an email is received. This requires an Email Trigger data source to be configured in Integration Designer.
>
> ![Email Trigger configuration](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/scm1.png)
>
> **Trigger Type** `enum` *required*
>
> Select **Email Trigger** to enable email-based process triggering.
>
> **Select Email Trigger** `dropdown` *required*
>
> Choose the data source that will initiate this process. The dropdown lists the Email Trigger (IMAP) data sources and the Microsoft Outlook data sources with **Read** or **Read & Send** scope configured in your project.
>
> > [!NOTE]
> >
> > Before using Email Trigger, you must configure an Email Trigger data source in Integration Designer. See [Email Trigger](https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger.md) for complete setup instructions.
>
> > [!TIP]
> >
> > When an email arrives and triggers the process, the email data (sender, subject, body, attachments, etc.) is automatically mapped to the process instance data. See the [Email Trigger documentation](https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger.md#email-data-schema) for the complete data structure.

> [tab] Microsoft Outlook
>
> Use a Microsoft Outlook data source when you want to automatically start a process instance when an email is received in a Microsoft Outlook mailbox via the MS Graph API. This requires a Microsoft Outlook data source with **Read** or **Read & Send** scope configured in Integration Designer.
>
> Microsoft Outlook is not a separate trigger type.
>
> **Trigger Type** `enum` *required*
>
> Select **Email Trigger**.
>
> **Select Email Trigger** `dropdown` *required*
>
> Choose the Microsoft Outlook data source that will initiate this process. The dropdown lists Microsoft Outlook data sources with **Read** or **Read & Send** scope next to the IMAP Email Trigger data sources.
>
> > [!NOTE]
> >
> > Before using Microsoft Outlook, you must configure a Microsoft Outlook data source in Integration Designer. See [Microsoft Outlook](https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/microsoft-outlook-data-source.md) for complete setup instructions.
>
> > [!TIP]
> >
> > When an email arrives and triggers the process, the email data (sender, subject, body, attachments, headers) is automatically mapped to the process instance data. The `x-ms-graph-message-id` header is included for reply threading. See the [Microsoft Outlook documentation](https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/microsoft-outlook-data-source.md#email-data-schema) for the complete data structure.

> [tab] Incoming Webhook
>
> Use this trigger type when you want to start a process instance from an external HTTP POST request. This requires an Incoming Webhook data source to be configured in Integration Designer.
>
> ![Incoming Webhook trigger configuration](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.6/webhook_trigger_configured.png)
>
> **Trigger Type** `enum` *required*
>
> Select **Incoming Webhook** to enable webhook-based process triggering.
>
> **Select Webhook** `dropdown` *required*
>
> Choose the Incoming Webhook data source that will initiate this process. The dropdown displays all Incoming Webhook resources configured in your project.
>
> > [!NOTE]
> >
> > Before using Incoming Webhook, you must create an Incoming Webhook data source in Integration Designer. See [Incoming Webhooks](https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/incoming-webhooks.md) for complete setup instructions.
>
> > [!TIP]
> >
> > When a webhook request triggers the process, the payload data (body, headers, timestamp) is automatically mapped to the process instance data. See the [Incoming Webhooks documentation](https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/incoming-webhooks.md#webhook-payload) for the complete data structure.
>
> > [!NOTE]
> >
> > A Message Start Event always creates a **new** process instance for each request. To push data into a process instance that is **already running** — for example, sending updated credit data into a loan application that is waiting on an external system — use a [Message Catch Intermediate Event](https://docs.flowx.ai/6.x/docs/building-blocks/node/message-events/message-intermediate/message-catch-intermediate-event.md) with a webhook whose **Webhook Behavior** is set to **Resume a Waiting Process**. See [Incoming Webhooks → On a Message Catch Intermediate Event](https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/incoming-webhooks.md#on-a-message-catch-intermediate-event).

> [!WARNING]
>
> When switching between trigger types in the Designer UI, the configuration fields are automatically cleared to prevent invalid configurations. Ensure you reconfigure all required fields after changing the trigger type.

***

## Example: Interprocess communication with internal throw message

This section demonstrates how to use the **Internal Throw Message** trigger type to start a process from another process.

### Throwing process (sender)

The throwing process contains a [Message Throw Event](https://docs.flowx.ai/6.x/docs/building-blocks/node/message-events/message-intermediate/message-throw-intermediate-event.md) that sends a message to start the target process.

![Throwing process](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/scm4.png)

#### Configuring the throw intermediate event

**Correlate with catch events** `dropdown` *required*

The message event name. This must match the **Correlate with throwing message events** value configured in the target Message Start Event.

**Send data** `string`

Define a JSON structure with the data to be sent along with the message. For example:

```json theme={"dark"}
{"test": "docs"}
```

\*\* Process Stage\*\* `dropdown`

Assign a stage to the node if needed.

![Throw event configuration](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/scm7.png)

### Catching process (receiver)

The catching process uses a Message Start Event configured with the **Internal Throw Message** trigger type.

![Catching process](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/scm6.png)

#### Configuring the Message Start Event (Start Catch Message) node

> [!NOTE]
>
> Remember, it's mandatory to have a service account defined in your identity solution to have the necessary rights to start a process using the message catch start event. For more information, see how to [create service accounts using Keycloak](https://docs.flowx.ai/6.x/setup-guides/access-management/configuring-an-iam-solution.md#process-engine-service-account).

![Message Start Event (Start Catch Message) node configuration](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/scm5.png)

### Result

After running the throw process, the process containing the Message Start Event (Start Catch Message) node is triggered automatically. The data sent from the throwing process is available in the new process instance:

![Message Start Event (Start Catch Message) node result](https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/scm8.png)

***

## Related resources

> [card] [Message Throw Event](https://docs.flowx.ai/6.x/docs/building-blocks/node/message-events/message-intermediate/message-throw-intermediate-event.md)
>
> Send the message that starts the receiver process

> [card] [Message Catch Intermediate Event](https://docs.flowx.ai/6.x/docs/building-blocks/node/message-events/message-intermediate/message-catch-intermediate-event.md)
>
> Wait for a message in a process that is already running

> [card] [Starting a process](https://docs.flowx.ai/6.x/docs/flowx-designer/managing-a-project-flow/starting-a-process.md)
>
> All the ways a process instance can start

> [card] [Manage Triggers](https://docs.flowx.ai/6.x/docs/projects/runtime/manage-triggers.md)
>
> Activate Email Trigger and Incoming Webhook triggers at runtime


## Related topics

- [Message Events](https://docs.flowx.ai/6.x/docs/building-blocks/node/message-events/message-events.md)
- [Message throw intermediate event](https://docs.flowx.ai/6.x/docs/building-blocks/node/message-events/message-intermediate/message-throw-intermediate-event.md)
- [Timer start event](https://docs.flowx.ai/6.x/docs/building-blocks/node/timer-events/timer-start-event.md)
- [Timer events](https://docs.flowx.ai/6.x/docs/building-blocks/node/timer-events/timer-events.md)
- [Initiating/starting processes](https://docs.flowx.ai/6.x/docs/flowx-designer/managing-a-project-flow/starting-a-process.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.