Skip to Content
📚 Documentation is in active development — pages marked TODO will fill out over the next few weeks.
InboxWhat happens on an inbound

What happens on an inbound

Every inbound message runs through a small decision tree before it appears in the inbox + triggers automation. Knowing this order helps you debug why a flow / AI / OOH reply did (or didn’t) fire.

Layer 1 — Always

For every message, regardless of type:

  1. The message arrives from the channel provider (Meta, Telegram, your webchat widget).
  2. It’s saved into the conversation thread.
  3. If it’s from a new contact, a contact profile is created.
  4. The dashboard is updated in real time — no refresh needed.

Layer 2 — Active flow

If the conversation has an active flow waiting for input, the runtime tries to advance it. Which reply advances depends on what the previous block asked for:

Block that asked the questionWhat advances it
Reply Buttons blockA button tap → wired socket target
WhatsApp List blockA row tap → the row’s wired target
Template message (QUICK_REPLY buttons)A button tap → wired target
Address message / Native flowThe submitted form
Location requestThe customer’s pinned location
User Input block (text)Any text reply → saved to contact, advances on “On answer” socket
Booking — offer slotsThe picked slot
Booking — cancel pickerThe picked booking
Image / video / audio / documentCurrently not handled — flow doesn’t advance

Media replies (image, video, doc, audio) currently don’t advance a flow. If the customer sends a screenshot while a User Input block is waiting, the flow stays parked.

Layer 3 — Keyword rules

For TEXT inbounds, every active keyword rule on the agency / client is checked:

  • Match modescontains, exact, starts_with
  • Actions — start a flow, send a template, send text, add a tag, mark opted-out, transfer to an agent, change status, and more
  • Trigger frequency — every inbound (default) / first match per contact / once per conversation
  • Active window — always / business hours only / outside business hours only

A built-in compliance pack (STOP, UNSUBSCRIBE, OPT-OUT) is offered as a one-click install so opt-out keywords are wired up by default — contacts who reply with these are excluded from future broadcasts and drips.

Layer 4 — Chat AI

If Chat AI is enabled for this conversation and its mode is set to AI, the AI generates a reply using your configured persona, business description, FAQ knowledge, and guardrails.

  • Replies below the confidence threshold get suppressed; the conversation flips to Human mode so an agent can pick it up.
  • Configured auto-handover phrases (e.g. “talk to human”, “agent please”) flip to Human mode regardless of confidence.
  • Reply delay is randomised within a configured range so the AI doesn’t feel instant-bot-fast.

Chat modes per conversation:

  • Human — agent replies manually; AI silent
  • AI — every inbound triggers an AI reply
  • Flow — an active flow handles the conversation
  • Hybrid — AI drafts, agent reviews + sends

Layer 5 — Fallbacks

If none of the above produced a reply:

  1. Outside business hours — if the message arrived outside the configured business hours, your outside-hours setting fires: silent, send a configured text, or have the AI respond.
  2. Channel default reply — each channel can have a default reply (text, AI, or none). This is the last automatic response.
  3. Silent — the message sits in the inbox waiting for a manual reply.

Putting it together

The shortest path: customer types “Hi” → message saved (Layer 1) → no active flow (Layer 2) → keyword “Hi” matches → starts the Welcome flow (Layer 3) → flow sends the welcome template → customer sees it.

Last updated on