Skip to main content
Fires when a contact sends a message through any connected messaging channel. Use this to react to inbound SMS, WhatsApp, Email, Instagram DMs, Messenger messages, or voice transcripts.

When it fires

The trigger fires immediately when a contact sends an inbound message through:
  • SMS — An incoming text message to one of your workspace phone numbers
  • WhatsApp — An incoming WhatsApp message to a connected number
  • Voice — A transcribed turn from a contact during a voice call
  • Instagram — A direct message on your connected Instagram account
  • Messenger — A message on your connected Facebook Page
  • Email — An incoming email to one of your agent’s inbound email addresses
The trigger does not fire when a chat conversation is finalized (use Conversation Ended for that) or for outbound messages sent by your team or AI.

Configuration

Filters

Filter fieldOperatorsDescription
Reply channelsms, whatsapp, voice, instagram, messenger, emailOnly fire when the reply comes from a specific channel. Select the channel directly — no value field needed.
Messageequals, not equals, contains, not contains, is empty, is not emptyMatch against the message content. Comparisons are case-insensitive.
All filters use AND logic.

Examples

Only SMS replies:
  • Filter: Reply channel → sms
Instagram messages containing “pricing”:
  • Filter: Reply channel → instagram
  • Filter: Message → contains → pricing
Any reply with content (not empty):
  • Filter: Message → is not empty
Any reply from any channel:
  • No filters. Leave it empty.

Data available

VariableDescriptionExample
{{contactId}}The contact’s IDa1b2c3d4-...
{{firstName}}Contact’s first nameJohn
{{lastName}}Contact’s last nameDoe
{{phone}}Contact’s phone number+14155551234
{{email}}Contact’s emailjohn@example.com
{{trigger.reply.message}}The message text the contact sentYes, I'm interested
{{trigger.reply.channel}}Which channel the reply came fromsms

Deduplication

Uses the contact ID + conversation ID as the dedup key. Default window: 1 minute. If a contact sends multiple messages quickly in the same conversation, only the first one triggers the workflow.

Use case examples

Notify sales on any SMS reply

Every inbound SMS gets posted to Slack so the team can follow up.
  1. Trigger: Contact replied → Reply channel: sms
  2. Action: Slack message — #sales channel
    • Message: “SMS from {{firstName}} {{lastName}} ({{phone}}): {{trigger.reply.message}}

Auto-tag engaged contacts

When a contact replies on any channel, mark them as engaged.
  1. Trigger: Contact replied (no filters)
  2. Action: Update contact — Add “engaged” tag

Route by channel

Different channels get different handling.
  1. Trigger: Contact replied (no filters)
  2. Action: Condition
    • Path: SMS{{trigger.reply.channel}} equals smsSlack message to #sms-replies
    • Path: Instagram{{trigger.reply.channel}} equals instagramSlack message to #social
    • DefaultSlack message to #general

Re-engage after reply

When a contact replies, schedule a follow-up call.
  1. Trigger: Contact replied → any channel
  2. Action: Update contact — Add “engaged” tag
  3. Action: Wait — 10 minutes
  4. Action: Voice call — Follow-up agent