Customers & Automation

Inbound Message Handling

Inbound Message Handling

Understand how customer replies reach your inbox — when a customer responds to an SMS or email from your venue, OpenChair routes the message to the right conversation, classifies the intent, and either auto-responds with AI or escalates for human review.

Where to find it: Inbound messages appear automatically in the Inbox (web: Engage → Inbox, mobile: Messages tab). There are no settings to configure for inbound routing — it works automatically when you have a dedicated SMS number or send emails from your venue.


Overview

Inbound message handling:

  • Routes incoming SMS to your venue by matching the dedicated phone number
  • Routes incoming email by matching the venue slug in the reply-to address
  • Matches inbound messages to existing conversation threads using phone numbers and email headers
  • Classifies SMS intent (confirm, decline, reschedule, question) using AI or fast-path pattern matching
  • Auto-responds to SMS conversations via AI until the conversation resolves or escalates
  • Logs all inbound emails for manual review — email conversations do not receive AI auto-responses
  • Detects auto-replies (out-of-office, bounces) and marks them accordingly

How SMS inbound works

Venue matching

When a customer sends an SMS, the message arrives via Twilio and is matched to your venue by the dedicated phone number in the "To" field. Each venue has one unique dedicated number — there is no shared number.

If the message cannot be matched to any venue (e.g. the number has been released), the message is logged but not processed.

Customer matching

The system matches the sender's phone number against known customers:

  1. Active gap-fill offers: Checks if the sender has an active waitlist offer pending
  2. Recent conversations: Searches the last 20 outbound messages for a matching phone number
  3. Reconnect campaigns: Checks reconnect campaigns sent in the last 30 days

Phone numbers are normalised to E.164 format (e.g. +61412345678) for matching, so customers can reply from their phone in any local format.

If the sender cannot be matched to any customer or active conversation, the message is logged but no conversation is created.

Message threading

SMS messages are threaded automatically by the relationship between the customer and the original outbound message. A reply to a gap-fill offer becomes part of that gap-fill conversation. A reply to a reconnect campaign becomes part of that reconnect conversation.

Each message in a thread has a turn number that increments with each exchange.


How email inbound works

Venue matching

When a customer replies to an email from your venue, the reply is sent to an address like [venue-slug]@reply.openchairpro.com. The system extracts the venue slug from the address and matches it to your venue.

Conversation threading

Email threading uses the In-Reply-To email header. When your venue sends an email (booking confirmation, campaign, etc.), the message ID is recorded. When a customer replies, the In-Reply-To header references that original message ID, linking the reply to the correct conversation.

Conversation key formats:

  • Matched reply: email:{notificationLogId} — linked to the original outbound message
  • Unmatched email: email_unmatched:{venueId}_{timestamp} — a new conversation from an unknown thread

Auto-reply detection

The system detects automatic email replies (out-of-office messages, bounce notifications) and marks them as auto-replies. Detection checks three layers:

  1. Email headers: RFC 3834 auto-submission headers, X-Auto-Response-Suppress, Precedence: bulk/junk
  2. Subject line: Patterns like "Out of office", "Automatic reply", "Delivery status notification"
  3. Body text: Phrases like "This is an automated response", "This mailbox is not monitored"

Auto-replies are logged with status Completed and do not require human attention. They appear with an orange "Auto-reply" badge in the conversation list.


AI auto-response (SMS only)

When a customer replies to an SMS, the AI automatically classifies the intent and responds. Email conversations do not receive AI auto-responses — they are always handled manually.

Intent classification

The AI determines what the customer wants:

Intent Example AI action
Confirm "Yes", "Sounds good", "Book it" Confirms the booking and ends the conversation
Decline "No", "Not interested", "Pass" Acknowledges the decline and ends the conversation
Reschedule "Can I come Thursday instead?" Offers alternative times
Question "How long does it take?" Escalates to a human for review
Unknown Unclear or ambiguous message Asks for clarification

Fast-path matching

Common responses are matched instantly without calling the AI:

  • Confirm patterns: "yes", "yeah", "yep", "sure", "ok", "okay", "perfect", "sounds good", "book it", "confirm", "absolutely", "done", "deal", "lock it in", "great"
  • Decline patterns: "no", "nope", "nah", "not interested", "cancel", "never mind", "pass", "skip", "no thanks", "not now"

Fast-path matching provides near-instant responses for clear yes/no answers.

Turn limit and escalation

The AI handles up to 3 turns (message exchanges) per conversation. After 3 turns, the conversation is automatically escalated to a human regardless of intent. The escalation banner in the inbox shows the reason:

  • "AI reached the 3-message limit. Customer may need a human response."
  • "Customer asked a question the AI couldn't answer."
  • "Customer's intent was unclear after multiple attempts."

Manual takeover

When a staff member sends a manual reply to a conversation, AI handling pauses for that thread. The system switches to manual mode — subsequent inbound messages are logged but the AI does not auto-respond. Intent is still parsed using simple pattern matching (confirm/decline) for tracking purposes.

AI voice persona

The AI uses your venue's configured voice persona when generating responses. The persona determines the tone (e.g. warm and creative for "The Stylist", polished and efficient for "The Host"). If no persona is configured, the system defaults to "The Assistant" (minimal, factual).


STOP keyword handling

If a customer replies with exactly "STOP" (case-insensitive), the system treats the message as a decline with maximum confidence. The conversation is ended.

Note

The STOP keyword ends the current conversation but does not automatically opt the customer out of all future messages. To fully opt out a customer, use the customer profile to mark them as opted out, or the customer can use the unsubscribe link in marketing emails.


Do Not Disturb and inbound messages

Do Not Disturb (DND) settings only affect outbound messages — they do not block or delay inbound message processing. If a customer sends a message during your venue's DND hours (default 9 PM to 8 AM):

  • The inbound message is received and logged immediately
  • The AI auto-response is still sent (SMS only) — DND does not suppress AI replies to active conversations
  • Reconnect automations and campaign sends respect DND, but conversational AI replies do not

Dedicated SMS number

A dedicated phone number is required for all SMS functionality, including receiving inbound SMS. Without a dedicated number, only email inbound is available.

Market Number format Provider
Australia +61 mobile number Twilio
United Kingdom +44 mobile number Twilio
New Zealand Not available

Each venue has exactly one dedicated number. The number is provisioned through the Engage settings page. See SMS & Email Allocation and Limits for provisioning details.


Email bounce and complaint handling

When an email sent by your venue bounces permanently or receives a spam complaint:

  • The customer's record is flagged with emailBounced = true
  • Future email sends to that address are automatically suppressed
  • The bounce or complaint is logged via the delivery status webhook

This prevents your venue from repeatedly sending to invalid or hostile email addresses, protecting your sender reputation.


Frequently asked questions

Question Answer
What happens if a customer texts a number that is no longer active? The message is received by Twilio but cannot be matched to a venue. The message is logged but not processed or shown in any inbox.
Can customers start new SMS conversations or only reply? Customers can only reply to messages your venue has sent. The system matches inbound SMS by looking for active outbound conversations with that phone number. Unsolicited texts from unknown numbers are not processed.
Why did an email create an "unmatched" conversation? The email's In-Reply-To header could not be matched to any outbound message from your venue. This can happen if the customer forwarded the email, replied from a different account, or if the original email was sent before the tracking system was in place.
Does the AI respond to emails? No. Email conversations are always logged as manual handling — no AI auto-response is generated. A team member must reply manually from the inbox.
What happens if the AI wallet is empty during an SMS conversation? If Spark metering is active and the wallet is insufficient, the AI sends a fallback message: "Thanks for your message. Our AI assistant is temporarily unavailable, so the venue will follow up shortly." The conversation continues in manual mode.
How fast are AI auto-responses? Fast-path matches (clear yes/no) respond in under 1 second. AI-classified responses typically take 2–5 seconds depending on complexity.

Troubleshooting

Issue Solution
Customer SMS not appearing in the inbox The sender's phone number must match a customer with an active outbound conversation (gap fill, reconnect, or booking message) from the last 30 days. If no match is found, the message is logged but no inbox conversation is created.
Customer email not appearing in the inbox Check that the email was sent to the correct reply-to address ([slug]@reply.openchairpro.com). If the customer replied from a different email client or forwarded the message, the In-Reply-To header may be missing, creating an unmatched conversation.
AI gave wrong response to customer The AI classifies intent based on the message text. Ambiguous messages like "maybe" may be misclassified. After 3 turns, the conversation escalates automatically. You can take over at any time by sending a manual reply, which pauses AI handling.
Out-of-office replies filling up the inbox Auto-replies are detected and marked as Completed automatically. They appear with an "Auto-reply" badge and do not count as conversations needing attention. If auto-replies are not being detected, the sender's email client may not be setting standard auto-reply headers.
Inbound messages arriving during DND hours DND does not affect inbound message processing. Messages are received and AI auto-responds 24/7. DND only suppresses outbound campaign and automation messages.

Related Articles


Last updated: March 2026