AI customer support agent

AI customer support agent that knows when to hand off.

An open-source agent that answers from your docs, checks orders in your system and hands angry chats to your staff.

An Home AppliancesOnline
  1. Zalo OA · replies by the Ecbot agent
  2. Today 9:41 AM
  3. I want my money back. The blender I bought doesn't even turn on09:41
  4. Playbook loaded: refund-request
  5. Sorry about that. Could you send me the order code? It starts with DH.09:41
  6. DH-317209:42
  7. REST APIget_order result: #DH-3172 · delivered 12 days ago
  8. Thanks. DH-3172 was delivered 12 days ago, past our 7-day refund window, but it's under warranty. Shall I arrange a repair or replacement?09:42
  9. It never worked from day one!! I want a refund, not a repair09:43
  10. Label “Angry” added · handed to staff
  11. StaffHi, this is Linh from the shop. I've read the chat. Since it never worked, we'll refund you in full and collect the blender tomorrow.09:47

Example conversationMade-up shop and order: blue chips are logged tool calls and grey pills are agent steps the customer never sees.

Where small-shop support breaks

Every owner who answers Zalo and Facebook has lived these.

Same five questions, all day

Where's my order? How do returns work? Staff paste the same answers while hard chats wait.

Messages that sink overnight

Chats pile up after closing. By morning, the one about a broken product gets missed.

A bot that won't let go

An upset customer gets scripted apologies. Staff only see it when the complaint hits your page.

How it works

Every message saved, then the case worked.

Nothing gets lost, even when 50 messages arrive at once. The agent answers, checks the order, follows your playbook and hands off when it should.

Customers message on

  • Messenger
  • Zalo
  • WhatsApp
  • Telegram
  • Website

Every message kept

Answered in turn

Your support agent

One setup, every channel

KnowledgeToolsPlaybooks

The agent works the case

  • Answers from your help docs
  • Looks up the order
  • Follows your refund playbook
  • Hands hard chats to staffSame inbox, full history
Your staff stay in charge

Angry or unsure chats go to your staff.

The agent hands over when a customer asks for a person, uses your keywords or gets an urgent tag. Your team replies in the same inbox.

  • Complaint and Angry tags hand off by default
  • Each chat shows Bot active, Needs you or Resolved
  • Pause the agent on any chat, restore it later

The agent hands over when

  • The customer asks for a person
  • The agent isn't confident
  • A guardrail blocks a message
  • Urgent label: Angry
  • Your handoff keywords
Conversations
Pham DucNeeds you

It never worked from day one!! I want a refund, not a repair

I understand. I'm passing you to our staff now to sort out the refund.

Handed to staff: Urgent label: Angry

StaffHi, this is Linh from the shop. We'll refund DH-3172 in full and collect the blender tomorrow.
An agent that does the work

It checks the order, not “please wait for staff”.

Connect your order system through a REST API, MCP, Composio or KiotViet. Ecbot logs every call with its input and result.

  • Each agent uses only the tools you add
  • Failed calls show their error in the log
  • Staff read the same log before taking over
Activity log · An Home Appliances agent
TimeToolResult
09:42get_orderREST API · DH-3172OK
09:42get_warrantyREST API · SKU BL-600 · DH-3172OK
10:15get_shipmentREST API · DH-3190OK
10:16schedule_followupEcbot · in 3 hours · did the reset work?OK
11:02get_orderREST API · DH-3201 · timed outError
One customer across every app

Complained on Messenger, now on Zalo: same customer.

Ecbot keeps one profile per person across Messenger, Zalo, WhatsApp and Telegram. A shared phone or email suggests a merge, and staff confirm it.

  • Last week's complaint isn't greeted like a stranger
  • Tags like Angry or VIP follow them across apps
  • Nothing merges until a person confirms

Merge suggested

The WhatsApp profile “Duc P.” uses the same phone number as Pham Duc.

Pham Duc

09xx xxx 456 · duc.pham@example.com

  • Angry
  • Complaint
  • Returning customer

Contact points

  • Zalo · Duc PhamAsked for a refund on #DH-3172 · today
  • Messenger · Phạm ĐứcAsked about the blender warranty · last week
  • Website chat · Visitor #5120Read the return policy · last month

Staff notes

Refunded #DH-3172 in full. Prefers a call after 5 PM.

What keeps support chats from slipping

Playbooks for tricky requests, no dropped messages, and a check-in after the fix.

Playbooks loaded on demand

Write how you handle refunds or complaints in markdown. The agent loads a playbook only when a chat needs it.

skills/refund-request.mdLoaded for this chat
# Refund request
1. Apologise, then ask for the order code
2. Check the order with get_order
3. Within 7 days of delivery: offer a refund
4. After 7 days: offer a warranty repair
5. Customer still upset: tag Angry

No dropped messages

Every message is kept and answered in turn, even when 50 arrive at once.

  1. where is my order DH-3190?Answered
  2. how do I return a gift?Answered
  3. +50 messages at 8 PM

    the blender won't turn onAnswered
  4. can I change my address?Replying

A check-in after the fix

Set a check-in from 1 minute to 30 days later. The agent rereads the chat and writes a fresh message.

- Sent troubleshooting steps: check in after 3 hours

  1. 10:16

    Agent sends reset steps for the blender

  2. 13:16

    Agent: “Did the reset get your blender working?”

  3. Customer: “yes, works now”

    No more check-ins for this chat

Set up your support agent in three steps

Test it privately first, and decide which chats go to staff.

  1. 01

    Describe your business in one sentence

    The builder suggests a persona, tone, goals and rules. Edit anything that's off.

    Describe your business

    A home appliance shop in Da Nang that sells on Zalo and Facebook, with a 7-day refund and 12-month warranty

    Suggested by the agent builder. Edit anything.

    Persona
    Mai, the support assistant at An Home Appliances
    Tone
    Calm and short, apologises once, then fixes
    Goals
    • Answer order, return and warranty questions
    • Look up the order before promising anything
    Rules
    • Follow the refund playbook for any refund request
    • Never promise a refund outside the policy
    • Tag angry customers and hand them to staff
  2. 02

    Add docs, playbooks and tools

    Upload your FAQ and policies, write refund playbooks, connect your order system.

    • faq-2026.pdf142 KBIndexed
    • return-policy.docx26 KBIndexed
    • warranty-terms.pdf208 KBIndexed

    In Postgres with pgvector, on your server if you self-host

      Tools the agent can use

      • REST APIyour own
      • MCPany MCP tool
      • Composiomarketplace
      • KiotVietbuilt in
      • Shopifyvia Composio
      • Google Sheetsvia Composio
    • 03

      Set handoff rules and go live

      Pick handoff tags, then connect Zalo, Facebook, WhatsApp, Telegram or your website.

      • MessengerAvailable
      • ZaloAvailable
      • WhatsAppAvailable
      • TelegramAvailable
      • Website chatAvailable

      On the roadmap: Instagram, TikTok Shop, Shopee, LINE

    Security

    Your business data stays yours.

    How Ecbot guards credentials, screens messages and keeps businesses apart.

    Encrypted credentials

    Platform tokens use AES-256-GCM with versioned keys, so keys rotate without taking channels offline.

    Secrets never reach the AI

    Credentials never enter the model's context, so no prompt can pull them out.

    Guardrails in both directions

    Incoming messages are screened for scams and prompt attacks, replies for leaked data. You set the strictness.

    Workspaces and roles

    Each business gets its own workspace. Staff join by invitation with a role, checked on every request.

    Open source. Self-host it if you want.

    On GitHub under AGPL-3.0, with every Cloud feature. Your knowledge stays in your own Postgres.

    View on GitHub

    Questions about AI customer support

    It answers support chats on Zalo, Messenger, WhatsApp, Telegram and your website. It uses your help docs, checks orders through your tools, follows your playbooks and hands chats to staff when needed.

    Last updated: 2026-09-22

    Put an agent on your support inbox.

    Join the Ecbot Cloud waitlist, or self-host the open-source version today.

    Or self-host the open-source version from GitHub