Run the conversation

Replies that read the room. Not just the last message.

Smart replies aren't keyword matching. The AI reads the full conversation history, follows the campaign playbook, and crafts a response that fits the moment — every time, in seconds.

Full historyevery prior turn read before generating a reply
< 5 secondstypical response time from inbound to outbound
320 charshard character limit enforced in code after every AI response
0 templatesevery reply generated fresh from context — no static scripts
How smart replies work

Context first. Response second. Every time.

Before generating any reply, the system assembles the full conversation context: base guardrails (role, compliance scope), the campaign layer (persona, questions, product information, branch logic), and the complete message history. The AI reads everything before deciding what to say.

  • Base guardrails provide role, output rules, and compliance scope on every turn
  • Campaign layer injects persona, product details, and question sequence
  • Full message history passed as the messages array — AI sees its own prior decisions
  • AI returns directive alongside message — CONTINUE, PAUSE, END, BOOKED
  • Tone flags captured per turn — frustrated, warm, confused — for learning engine
  • Reasoning stored per turn — accessible in operator platform for every message sent
Context assembly
  1. 1
    Base guardrails
    Role, output rules, guardrails, compliance scope
  2. 2
    Campaign layer
    Persona, product, questions, branch logic injected
  3. 3
    Message history
    Every prior inbound and AI message in sequence
  4. 4
    AI call
    Claude reads full context, generates reply + directive
  5. 5
    Response validated
    320-char limit enforced — truncated at sentence boundary
  6. 6
    Turn persisted
    Message, directive, reasoning, tone flags all stored
Reply quality controls

Every reply held to the same standard.

Base guardrails sit above every campaign. They enforce tone and format rules that apply regardless of how a campaign is configured — ensuring consistent quality across every conversation.

No filler phrases

Stock openers — 'Great!', 'Got it', 'Thanks for sharing', 'Thanks for clarifying' — are explicitly prohibited. Acknowledgement is reserved for genuinely warranted moments, not used as a default conversation opener.

How it works: Enforced via the base guardrail prompt — applies to every campaign without configuration.

UK English and GSM-7

All messages use UK English spelling and GSM-7 characters only in English responses. No markdown, no emojis, no exclamation marks. The AI writes as a professional would write a business SMS.

How it works: Character encoding constraint is part of the base guardrail layer — never configurable at the campaign level.

Off-topic handling

When a contact sends a message outside the campaign scope — a joke, an unrelated question, or a request the AI can't handle — the AI declines briefly, includes the next campaign question, and returns PAUSE. The conversation continues.

How it works: Off-topic handling tested via golden conversation suite — the directive must be PAUSE, not END, for a first off-topic message.

Fallback on parse failure

If the AI returns a malformed response or a response that fails schema validation, the platform substitutes a safe fallback response and flags the turn. No broken message is ever sent to a contact.

How it works: Fallback turns are visually flagged in the operator platform's turn detail view — Friyay operators are alerted on any non-zero parse failure rate.

Want to see smart replies
handle a difficult conversation?

The Campaign Tester lets you throw edge cases at the AI before any contact receives a message.