Sales Agent

Comprehensive guide to how the Sales Agent drives revenue, captures leads, and schedules appointments.

1. Main Goal of the Sales Agent

The primary objective of the Sales Agent is to drive revenue and convert visitors into qualified leads. Unlike a standard support bot that simply answers questions, the Sales Agent actively identifies buying intent, proactively offers assistance without being pushy, and guides interested prospects into your Lead Capture or Calendar Scheduling flows.

It gathers essential contact information for your human sales team to follow up on, acting as a highly trained sales representative available 24/7 across all your channels.

2. Answering Queries Perfectly

A sales agent that lies about pricing or features can cost you deals. Domainchat prevents this by using an advanced strict knowledge retrieval system.

Zero Hallucinations

When a user asks a question, the agent searches the documents and websites you have provided. It only answers using the facts it retrieves. If the agent cannot find the answer in its knowledge base, it will not guess. Instead, it gracefully deflects the question and pivots to capturing a lead.

Example: "That's a great question about our custom pricing, but I want to make sure I give you the exact details. Let me take your contact info so a specialist can reach out to you directly."

Topic Exploration & Follow-up Questions

The agent doesn't just provide a dry answer and wait in silence. Instead, the sales agent will proactively offer a relevant follow-up question related to the topic. This ensures the user gains a deeper understanding of the product or service they are interested in.

The agent will continue this natural conversational exploration until the topic is completely exhausted, keeping the user engaged and guiding them toward a purchasing decision.

3. Lead Capturing Scenarios

The Sales Agent listens for buying intent or explicit requests for contact. If a user says, "I want a quote," "Can someone call me?", or "I'm interested in buying," the agent immediately initiates the lead capture process.

Proactive 4th Message Lead Capture

The agent doesn't just wait for the user to ask. By the fourth message of the conversation, if the user has not yet converted or booked an appointment, the agent will proactively ask to collect their lead information to ensure no opportunity slips through the cracks.

Conversational Pivoting: Even if a user just asks a series of detailed product questions, the agent will naturally pivot and ask if they would like to leave their details for a personalized follow-up.

4. Appointment Scheduling & Multiple Events

When users want a demo, consultation, or site visit, the Sales Agent seamlessly handles appointment scheduling.

Handling Multiple Events

If your business offers multiple types of appointments (e.g., a "15-Min Discovery Call", a "60-Min Technical Demo", and an "In-Person Site Visit"), the agent understands the difference. When a user asks for a specific type of meeting, the agent analyzes their request and automatically selects the correct calendar event type based upon the event title and description you configured.

Booking with Multiple Team Members (e.g. Several Doctors)

The multi-event engine is built for team scheduling. If your calendar has one event type per team member — for example "Consultation with Dr. Smith", "Consultation with Dr. Patel", and "Lab Follow-up" — the agent routes each booking to the right person automatically:

  • Named requests book directly: "I want to book with Dr. Patel" matches the request against every event title and description (including fuzzy matching for typos) and opens Dr. Patel's calendar in the same reply — no clarification round-trip.
  • Described requests work too: "I need a lab follow-up" matches the event by its description, even though no title word was used.
  • Vague requests are disambiguated: a bare "book an appointment" with several event types triggers a selection step (see below) — the agent never guesses.

Interactive Event Selection

What if the user is vague and simply says, "I want to book an appointment", but you have 5 different appointment types? The agent is smart enough to handle this, and the experience adapts to the channel:

  • Web chat: the agent presents an interactive event picker — a list of cards showing each appointment type with its duration, description, and a "Booked" badge for any the visitor already has scheduled. Tapping a card opens that event's calendar immediately.
  • Social channels (WhatsApp, Instagram, Facebook, Telegram): the agent sends a numbered list of the appointment types and asks the user to reply with a number ("1. Consultation with Dr. Smith — 2. Consultation with Dr. Patel…"). When the user replies "2", the booking button delivered next is for exactly the person they chose — never a default.

Multiple Appointments for the Same Visitor

Visitors are allowed to hold more than one upcoming appointment when the types are different — a patient can see Dr. Smith on Monday and the lab on Wednesday, on every channel. The duplicate guard steps in only for the same appointment type: if the visitor already has an upcoming booking of that type, a second one is gently blocked and the agent offers to reschedule or cancel the existing booking instead (with inline buttons on web chat, or conversationally on social channels).

In the web event picker, each event the visitor has already booked shows a "Booked" badge with a one-tap Reschedule action — this works for both DC Calendar and Cal.com bookings.

Conflict Resolution

The agent ensures double-bookings don't happen by reading your live calendar availability and only presenting open slots to the prospect.

DC Calendar vs. Cal.com

Domainchat supports two primary calendar systems, each with unique benefits:

  • DC Calendar (Built-in): The native scheduling solution built directly into Domainchat. It requires zero external setup and deeply integrates with your CRM and lead routing out-of-the-box.
  • Cal.com Integration: Perfect for teams who already have complex Round-Robin routing, Zoom links, or Google Calendar syncing set up in Cal.com. The agent seamlessly connects to your existing infrastructure — and when you have multiple Cal.com event types, the picker books the exact event the visitor selected.

5. Channel-Specific UI and Responses

The Sales Agent is truly Omnichannel, but it adapts its User Interface (UI) depending on where the user is chatting from to provide the best possible experience.

Web Chat (Rich UI)

When a user is on your website widget, the agent utilizes rich interactive components.

  • Lead Capture: The agent renders a beautiful, interactive HTML form directly inside the chat bubble where the user can type their Name, Email, and Phone.
  • Calendar Booking: The agent renders an interactive Calendar Grid, allowing the user to click and select time slots natively without ever leaving your webpage.

Social Channels (Instagram, Facebook, WhatsApp, Telegram)

Social media platforms do not support HTML forms or interactive widgets. Therefore, the agent switches to Conversational Mode.

  • Lead Capture: The agent asks for information conversationally, one step at a time (e.g., "What is your name?", then "What is your email?").
  • Calendar Booking: The agent sends a secure, tappable "Book Appointment" link button and the user completes the booking in the browser — see Section 6 for the complete flow.

6. Omni-Channel Appointment Booking (Link-Based Flow)

On Instagram, Facebook, WhatsApp, and Telegram, the messaging platform owns the chat UI — embedded HTML widgets and calendar grids are not possible inside the message stream. Instead of an inline widget, the Sales Agent books appointments through a secure link flow that feels native on every channel: the user gets a booking button in the chat, completes the booking in the browser, and is brought straight back into the conversation with a confirmation waiting.

Step 1 — The Booking Link Button in Chat

When a user wants to book, the agent never interrogates them for preferred dates or times in the conversation. It confirms intent once (e.g., "Would you like me to send you my booking link?") and, the moment they agree, delivers a tappable "Book Appointment" button directly in the chat — a link button on WhatsApp, a button template on Instagram and Facebook Messenger, and an inline keyboard button on Telegram.

The link behind the button is generated by DC Calendar (Domainchat's built-in scheduling engine, part of DCCRM) and is unique to that conversation — it is cryptographically signed and carries an expiry (more on that below).

Step 1b — Choosing Between Appointment Types in the DM

When your calendar has several appointment types (for example one per doctor), the link-based flow stays accurate: the agent first sends a numbered list of the available types and asks the user to reply with a number. The moment they choose, the "Book Appointment" button is delivered — and it opens the booking page for exactly the appointment type they picked. If they name the person up front ("book with Dr. Patel"), the list is skipped and the correct booking button is sent in the same reply.

Step 2 — Completing the Appointment in the Browser

Tapping the button opens the DC Calendar public booking page in the phone's browser (the in-app browser — no app install or login required). The page shows your branding and the selected appointment type, and the user picks their own date and time from your live availability, so double-bookings are impossible.

If the lead was already captured in the chat, their name and email are prefilled automatically. The user confirms the slot, the booking is saved, and a confirmation email is sent immediately.

Step 3 — Automatic Return to the Chat

Once the booking is confirmed, a success screen with the booking summary (appointment title, date, and time) is shown for a couple of seconds — and then the user is automatically navigated back into the same chat thread via a channel deep link (WhatsApp wa.me, Instagram ig.me, Messenger m.me, Telegram t.me).

A manual "Return to chat" button is also displayed as a backup, since a few in-app browsers occasionally block automatic navigation — the user stays in control either way.

Step 4 — Confirmation Message in the Chat

The instant the booking completes, a confirmation message — appointment title, date and time with timezone, location or meeting link, and a short reference code — is automatically delivered into the same chat thread. The user returns to the conversation and finds the confirmation already waiting.

The confirmation is also saved to the conversation transcript, so your team sees the full booking story in Chat Logs, and the booking is recorded against the contact in DCCRM.

Declining the Lead Form Still Leaves the Door Open

On social channels the lead capture prompt is a pair of buttons ("Yes, connect me" / "No, thanks"). If a booking link was offered in the same conversation but the lead form took the button slot, tapping "No, thanks" doesn't end the story — the agent replies "No problem! You can still schedule a time whenever you're ready" with the "📅 Book Appointment" button attached. Visitors who aren't ready to share contact details can still book, and their details are collected on the booking page itself.

The Public Booking Directory

Every workspace with DC Calendar also gets a shareable booking directory — a branded page listing all of your active appointment types (title, duration, and description), each with a Book button that opens its booking page. Use it anywhere a link works: your Instagram bio, a website "Book an appointment" button, email signatures, or QR codes on flyers. Visitors never need an account — the page is public, and each booking link it issues is freshly signed.

The one-per-conversation chat links and the public directory use the same trusted booking pages; the difference is simply that directory bookings aren't tied to a chat thread, so the in-chat confirmation step is skipped (the confirmation email still goes out, and the booking lands in your calendar and DCCRM as usual).

The 24-Hour Messaging Window

Meta's platforms (WhatsApp, Instagram, and Facebook) allow businesses to send free-form messages only within 24 hours of the user's last message — this is the "messaging window." Telegram has no such restriction.

The window works in your favour here: the booking link is sent as a direct reply to the user's booking request, so the window is freshly open, and users almost always complete the booking within minutes or hours. The confirmation message therefore always lands inside the open window.

Link Expiry — How Booking Sessions Stay Valid

To make the above airtight, every chat booking link is valid for 23 hours — just inside Meta's 24-hour window — and is cryptographically signed, so its expiry or the session it belongs to cannot be tampered with.

If a user taps a link after it has expired (for example, they asked for it days ago), they see a friendly "Booking Link Expired" screen with a "Return to chat" button. They simply ask the agent for a new link — and because their new message re-opens the 24-hour messaging window, the fresh link is guaranteed to work end-to-end, confirmation included.

Expiry also means session-bound links can't be reused or shared indefinitely, keeping each booking tied to the exact conversation that requested it.

Cal.com agents: If your agent is connected via Cal.com instead of the built-in DC Calendar, the booking-link button is still delivered in the chat and opens your Cal.com booking page. The automatic return-to-chat, the in-chat confirmation message, and the signed link expiry are exclusive to the built-in DC Calendar.

7. Conversational Flow & Validation

When capturing leads on social channels like Instagram or WhatsApp, the agent must validate the user's responses in real-time.

Strict Validation

Domainchat ensures you only get high-quality leads by validating every step:

  • Name Validation: Rejects numbers and symbols. If a user types "123", the agent replies: "I need a valid name to proceed!"
  • Email Validation: Ensures the input is a valid email format. If a user types "no", the agent reminds them to provide an email.
  • Phone Validation: Ensures the input contains between 6 and 20 numerical digits.

Cancel Flow Switch (Soft Interrupt)

If a user is halfway through giving their details but changes their mind and says, "Actually, I don't need an appointment anymore," the agent is smart enough to handle the objection.

The agent will trigger a "Cancel Flow Switch" to wipe the strict validation requirement, gracefully releasing the user from the loop and replying: "No problem at all! I've cancelled the request. How else can I help you today?"

Handling General Questions: If the user asks a completely unrelated question in the middle of the flow (e.g., "Wait, what is the pricing again?"), the agent will automatically cancel the strict validation lock, search its knowledge base, and answer the question perfectly.

Resuming the Flow: Because the agent has a memory of the entire conversation, if the user gets their answer and says, "Okay, I'm ready to book now," the agent seamlessly re-enters the flow. It is smart enough to remember what details were already provided and will only ask for the missing information!

8. Supported CRMs and Data Storage

Once the Sales Agent successfully captures a lead, it immediately stores the data and syncs it with your external systems.

Chat Logs & Transcripts

The user's contact information (Name, Email, Phone) and the entire conversation transcript are stored natively in Domainchat's Chat Logs.

Whether the contact is captured and managed in the built-in DC CRM or pushed to an external CRM, the total conversation history is always stored alongside the lead information. This ensures that the agent owner can read exactly what was discussed and fully understand the user's intent before reaching out to them.

External CRM Integrations

Domainchat automatically pushes these new leads directly into your configured CRM, attaching the full conversation history to the contact record so your sales team has complete context. We currently support:

  • Zoho CRM
  • HubSpot CRM
  • Freshworks CRM