The autoreply bot runs in the background. It uses the model configured under AI Models to compose replies.

When the bot replies

Bot WILL reply

  • There’s a new inbound on a channel
  • The bot hasn’t been disabled for this customer (no bot:disabled tag)
  • The Chat slot AI is active

Bot WON'T reply

  • Customer has the bot:disabled tag
  • Workspace has no chat slot set
  • Confidence is too low → escalates instead

Two-level configuration

  • Toggle autoreply on/off for a single customer
Backend field isn’t wired yet — the toggle defaults to off, saved into the note.

Context the bot receives

The system assembles context from:
BlockSource
Customer profilename, language, country, company, tags
Recent activitylast 10 messages on that channel
Workspace KBRAG search on Product Documents — top chunks related to the inbound text
Customer noteinternal note

Escalation

The bot escalates when confidence is low OR when the inbound contains a “human-needed” keyword (e.g. “pricing”, “cancel”, “lawyer”). Consequences:
  1. The bot does NOT send a reply.
  2. A pool task "Reply inbound from {customer.name}" is created.
Always test the bot on 1–2 real customers before letting it run at scale. Emergency stop: revoke the AI Chat credential → the bot halts immediately.
Per-credential autoreply (working hours / sender blacklist / prompt override), per-customer prompt prefix / topic constraint, “needs human” badge in the thread list, escalation activity bubble, Test bot tab in AI Models, configurable cooldown after a sales reply, configurable confidence threshold — coming soon.