For spas, salons and nail studios

A spa chatbot that quotes and books at 10:47 PM.

One open-source agent quotes your prices, books through your calendar, sends reminders and hands skin reactions to your staff.

Moc SpaOnline
  1. Zalo OA · replies by the Ecbot agent
  2. Tonight 10:47 PM
  3. hi how much for underarm laser? any slot tmr 7pm?22:47
  4. Google Calendarfind_free_slots result: Tomorrow 19:00 · bed 2 free
  5. Hi! Underarm laser is 350,000 VND a session, or 2,900,000 VND for 10. One bed left tomorrow at 7 PM. Name and phone to book?22:47
  6. ok book pls. Lan, 09xx xxx 45622:48
  7. Google Calendarcreate_event result: Tomorrow 19:00 · Lan · underarm laser
  8. Booked: underarm laser tomorrow at 7 PM for Lan. I'll remind you tomorrow afternoon.22:48
  9. Follow-ups set: reminder tomorrow 4 PM, check-in 2 days after
  10. 2 days later
  11. Hi Lan, how is your skin after the laser session?10:02
  12. very red n itchy since this morning10:15
  13. Guardrail: skin reaction · handed to staff
  14. StaffHi Lan, Mai from the spa. Send me a photo of the area and I'll call you in a few minutes.10:17

Example conversationMade-up spa, prices and client; blue chips are logged tool calls the client doesn't see.

Where spas lose bookings in the inbox

Three moments every spa on Zalo or WhatsApp knows.

The 10:47 PM price question

She asks about laser and a 7 PM slot. The front desk left at 9; by morning she booked elsewhere.

Every booking typed by hand

Staff check the beds and type bookings in. A scripted bot sends prices but can't check a calendar.

No reminders, no check-ins

Nobody has time to remind clients or ask about their skin, so no-shows and quiet complaints slip by.

How it works

Every message saved, then answered and booked.

Even an 11 PM booking request is kept. The agent quotes your price list, books through your calendar and hands off when it should.

Clients message on

  • Messenger
  • Zalo
  • WhatsApp
  • Telegram
  • Website

Every message kept

Answered in turn

Your spa's agent

One setup, every channel

KnowledgeToolsPlaybooks

The agent does the work

  • Answers from your price list
  • Books a free slot in your calendar
  • Sets a reminder and a check-in
  • Hands skin reactions to staffSame inbox, full history
An agent that does the work

It books the slot, and logs every call.

Connect your spa software's API, or Google Calendar or Sheets through Composio. No calendar? The agent takes name, phone and time for staff.

  • Each agent uses only the tools you add
  • Failed calls show in the log with the error
  • Keep the spa software you run today
Activity log · Moc Spa agent
TimeToolResult
22:47find_free_slotsGoogle Calendar · Tomorrow 19:00 to 20:00OK
22:48create_eventGoogle Calendar · Lan · underarm laser · bed 2OK
22:48schedule_followupEcbot · tomorrow 16:00 · reminderOK
22:48schedule_followupEcbot · in 2 days · skin check-inOK
09:15find_free_slotsGoogle Calendar · Saturday 10:00 · timed outError
Your staff stay in charge

Skin reactions go to staff, not the bot.

Write a plain-words guardrail like “redness or itching after a treatment”. The agent stops and the chat lands in your staff inbox.

  • Add keywords like “reaction” or “refund” as backup
  • Staff reply in the same Zalo chat
  • Pause the agent on any chat, hand back later

The agent hands over when

  • The customer asks for a person
  • The agent isn't confident
  • A guardrail blocks a message
  • A label you mark as urgent
  • Your handoff keywords
Conversations
Nguyen LanNeeds you

Hi Lan, how is your skin after the laser session?

very red n itchy since this morning

Handed to staff: A guardrail blocks a message

StaffHi Lan, Mai from the spa. Send me a photo of the area and I'll call you in a few minutes.
One client across every app

Zalo or Messenger, she's one client.

One profile per person across Zalo, Messenger, WhatsApp and Telegram. The agent sees past chats, tags and notes, like sensitive skin, before replying.

  • Tags like Sensitive skin follow her across apps
  • Staff notes are there next time she books
  • Nothing is merged until a person confirms

Merge suggested

The WhatsApp profile “Lan N.” uses the same phone number as Nguyen Thi Lan.

Nguyen Thi Lan

09xx xxx 456 · lan.nguyen@example.com

  • Laser package
  • Sensitive skin
  • Regular

Contact points

  • Zalo · Lan NguyenBooked underarm laser · today
  • Messenger · Lan NguyễnAsked about facial prices · last month
  • Website chat · Visitor #3127Asked about opening hours · 2 months ago

Staff notes

Sensitive skin: patch test before a new product. Prefers evening slots.

What keeps bookings from slipping

Reminders, check-ins, reschedule playbooks, and every late message answered.

Reminders and post-treatment check-ins

Remind before the visit and check in after, from 1 minute to 30 days out. Follow-ups live in the chat, not your calendar.

- Booked a treatment: remind 3 hours before, check in 2 days after

  1. Mon 22:48

    Underarm laser booked for Tue 19:00

  2. Tue 16:00

    Agent: “See you at 7 PM tonight, Lan.”

  3. Thu 10:02

    Agent: “How is your skin after Tuesday's session?”

Playbooks for reschedules and deposits

Write how you handle reschedules, deposits and late cancellations. The agent loads it only when a chat needs it.

skills/reschedule.mdLoaded for this chat
# Reschedule a booking
1. Ask for name and phone number
2. Find the booking in the calendar
3. Offer the two nearest free slots
4. Free to move up to 12 hours before

No dropped messages

Every message is kept and answered in turn, even when 30 clients write at 11 PM.

  1. how much for gel nails?Answered
  2. open on Sunday?Answered
  3. +30 messages at 11 PM

    ok book 7pm for 2 pplAnswered
  4. can I pay the deposit by transfer?Replying

Set up your spa's agent in three steps

Test it privately with your own past messages before clients see it.

  1. 01

    Describe your spa in one sentence

    The agent builder suggests a persona, tone, goals and rules. Edit what's off.

    Describe your business

    A skin care and laser spa in District 3, clients book on Zalo and our Facebook page

    Suggested by the agent builder. Edit anything.

    Persona
    Mai, the front desk at Moc Spa
    Tone
    Warm and short, uses the client's name
    Goals
    • Answer prices from the price list
    • Find a free slot and book it
    Rules
    • Quote only prices in the price list
    • Check the calendar before promising a slot
    • Hand reactions, complaints and refunds to staff
  2. 02

    Add prices, connect your calendar

    Upload your price list and policies, then connect your spa software or Google Calendar.

    • price-list-2026.pdf120 KBIndexed
    • service-menu.docx48 KBIndexed
    • cancellation-policy.docx18 KBIndexed

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

      Tools the agent can use

      • Google Calendarvia Composio
      • Composiomarketplace
      • Google Sheetsvia Composio
      • REST APIyour own
      • MCPany MCP tool
    • 03

      Connect channels and go live

      Zalo OA, Facebook, WhatsApp, Telegram or the website widget, from one setup.

      • 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 from spa and salon owners

    Ecbot is an open-source AI agent that answers clients on Zalo, Messenger, WhatsApp, Telegram and your website. It quotes your price list, books through your calendar, sends reminders and hands skin reactions to staff.

    Last updated: 2026-09-22

    Put an agent on your spa's inbox.

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

    Or self-host the open-source version from GitHub