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

# Message Received

> Start a workflow when an incoming message matches a keyword.

## What is this?

**Message Received** starts a workflow when an incoming message matches the keywords you set on the trigger — for example `price`, `pricing`, or `cost` all starting the same flow. It's the trigger behind most keyword-based automations: menus, FAQs, and first responses.

## How to use it

<Steps>
  <Step title="Create the workflow">
    Go to **Automation → Create Automation**, choose the channel, and pick **Message Received** as the **Trigger Type**. See [Create a Workflow](/workspace/automation/create-a-workflow).
  </Step>

  <Step title="Add your keywords">
    List the words or phrases that should start this flow. Add every likely spelling or phrasing — customers rarely type the exact word you expect.
  </Step>

  <Step title="Add the reply steps">
    Add what should happen next — a reply, a menu of buttons, an AI response, or a handoff to a teammate.
  </Step>

  <Step title="Test, then activate">
    Send the keywords yourself from a test contact, check the result in [Inbox](/workspace/inbox/overview), then activate the flow — see [Manage Live Flows](/workspace/automation/manage-live-flows).
  </Step>
</Steps>

<Note>
  A message that matches no keyword automation doesn't start any **Message Received** flow. Use **No Match Reply** to catch it instead.
</Note>

### Tips

* **Keep keyword sets narrow.** If two automations share a keyword, only one predictable flow should own it.
* **Cover variations.** Add common misspellings and short forms alongside the main keyword.

## Troubleshooting / Technical Notes

* **The flow never runs.** Check that it's **Active**, the channel matches the conversation, and the message actually matches one of your keywords.
* **The flow runs twice.** Two automations may share the same keyword. Review the list in [Manage Live Flows](/workspace/automation/manage-live-flows).
* **A reasonable message gets no reply.** It didn't match any keyword — see [No Match Reply](/workspace/automation/triggers/no-match-reply).

## Related docs

* [Triggers](/workspace/automation/triggers/overview)
* [No Match Reply](/workspace/automation/triggers/no-match-reply)
* [Create a Workflow](/workspace/automation/create-a-workflow)
* [Manage Live Flows](/workspace/automation/manage-live-flows)
