Skip to content

🤖 Documentation: Bot

Omnichannel bot / flows. What it is, how it works and how to use it — explained step by step.

🤖 Definition — Bot module

The Bot is an omnichannel flow builder: you design the conversation once (with nodes: IVR menu, AI assistant, voicemail, transfer, agent hand-off, data lookup…) and activate it on any of its 5 channels. Everything handled lands in a unified inbox.

5 channels to activate a bot: Voice (VoIP), WhatsApp Voice, SMS, WhatsApp and Email.

📞
Voice (VoIP)Phone call through the PBX (SIP). The bot answers with IVR menus, AI assistant and voicemail.
🟢
WhatsApp VoiceVoice call over WhatsApp. Technically the same voice bot (same IVR/AI/voicemail flow); only the call enters via WhatsApp instead of the phone.
💬
SMSText auto-reply with menus (optional per number).
🟢
WhatsAppMessage auto-reply with interactive menus and opt-in.
📧
EmailEmail auto-reply by flow, with anti-loop safeguards.

Note — Voice: Voice (VoIP) and WhatsApp Voice are technically the same voice bot (same flow, IVR, AI and voicemail); the only difference is where the call comes in — the phone network or WhatsApp.

🗺️ Per-channel diagrams

The same flow engine handles each channel; only the entry point changes.

📞 Voice (VoIP)

📱Customercallscall🏢PBXSIPARI🤖UCaaS · Botflow enginenodes🧩IVR / AI / Voicemailaction

🟢 WhatsApp Voice

📱CustomerWhatsApp callcall☁️WhatsApp providerWhatsAppSIP🏢PBXSIPARI🤖UCaaS · Botsame voice flow

💬 SMS

📱CustomerSMSSMS📡SMS providerswebhookwebhook🤖UCaaS · BotSMS flowreplies💬Replyto customer

🟢 WhatsApp

📱CustomerWhatsAppWA☁️WhatsApp providerwebhookwebhook🤖UCaaS · BotWhatsApp flowreplies🟢Replyto customer

📧 Email

✉️Inbound mailfrom customerIMAP🤖UCaaS · BotEmail flowSMTP📤Replyto customer

Voice (VoIP) and WhatsApp Voice use the same voice bot (same flow: IVR, AI, voicemail); on SMS, WhatsApp and Email the same engine drives the auto-reply.

📘 Explanation (step by step)

The module has 4 tabs: Assign (pick the number and assign the flow per channel), Flows (your flow library and which numbers use them), Create (example templates → editor) and Inbox (omnichannel log).

  1. Create: in the Create tab pick an example template (or "from scratch"). The flow opens in the editor right there to view, analyze and modify it; the templates stay visible (with their description) so you can switch between them.
  2. Add nodes: menu (IVR), AI assistant, language, business hours, data capture, data lookup (balance/invoice/account), code verification, survey, voicemail, transfer to queue/extension, agent hand-off, guided hand-off to WhatsApp, notification and hang up.
  3. When you tap Save flow a new flow is created in your library (it asks for a name; the original template is untouched) and you move to Flows. From Assign (or Flows → Apply) assign the flow to channels per number: Voice, WhatsApp Voice, SMS, WhatsApp or Email. The same flow can be shared across several numbers — editing it updates them all.
  4. Configure the flow notifications (voicemail → email and/or WhatsApp) with a checkbox to enable/test.
  5. Check the Bot Inbox: omnichannel log (voice, SMS, WhatsApp, Email) with each interaction outcome and the voicemail audio.

Online help: the builder includes online help to build and edit the call and conversation flows.

🔎 Self-service: Data lookup

The Data lookup node lets the caller self-serve: the bot identifies them (by the calling number or by asking for their account number), requests a PIN and returns their data —for example balance, invoice and account— read out by voice or sent by message.

📞Customercalls / writesidentify🔑PINvalidates identityOK🗄️Data sourceinternal / external / APIfetch💳Balance / Invoiceanswer

Data sources (chosen per customer):

🗄️
UCaaS internal databaseManaged from the portal (load/import the data). Ideal for testing or customers without their own system.
🌐
Customer / TelHarbor external databaseA database on another server (read-only, encrypted credentials, safe queries).
🔌
Customer APIA customer web service (REST) that responds with the data.

Data it can return: account, name, balance, invoice (amount, due date, status) and extra fields. Built-in test: each connection has a Test button that validates access and shows sample data, without exposing credentials or the PIN.

Security: read-only connections, PIN never read aloud, encrypted credentials and parameterized queries.

💬 Guided hand-off to WhatsApp

From a voice call, the bot can continue the conversation on WhatsApp: it sends a WhatsApp to the caller and, once they reply, the chat continues on WhatsApp with the call context (name, account, data already looked up). The customer repeats nothing.

📞On the calloffers itsends💬WhatsAppmessage to customerreplies🤖UCaaS · Botresumes with contextcontinues✅Chat handlingno repeats

Requires the customer to have a WhatsApp number with a bot. The first message is sent as an approved template; once they reply, the conversation opens and the bot continues at the chosen point.

🎬 Video: a tour of the Bot (editing)

About three and a half minutes: signing in securely, the four tabs, picking a number's flow, starting from a template or from scratch, the node palette and how to build a flow on the canvas, the node editor, asking the AI Assistant for a proposal, saving with a duplicate-name warning, undoing with previous versions, and what happens with a shared flow. It is narrated: turn the sound on.

Sample data: fictitious company, user and numbers. The Bot screen has no translator: it stays in Spanish in the English video too — only the narration and the text cards are in English. Shown from the view of someone who CAN edit (an admin, or a supervisor with the Bot module enabled); no supervisor has it yet today. Tap the image to see it full size.

🤖 At a glance: 4 tabs

Assign, Flows, Create and Inbox: the whole Bot lives in these four tabs.

At a glance: 4 tabs

Sample data: fictitious company, user and numbers. The Bot screen has no translator: it stays in Spanish in the English version too — only the surrounding menu and header are translated. Tap the image to see it full size.

  1. 1
    Bot — Omnichannel flow engine

    The title sums up the module: the flow is created and edited here; Telephony just routes.

  2. 2
    Assign

    Pick the number and turn on the channels it should answer.

  3. 3
    Flows

    Your library: each saved flow, which numbers use it and how many nodes it has.

  4. 4
    Create

    Example templates that open straight in the editor to view, analyze and modify.

  5. 5
    Inbox

    The unified log of voice, WhatsApp, SMS and email the bot handled.

📌 Picking a number's flow

Step 1: the number. Step 2: the channels it answers and each one's flow.

Picking a number's flow

Sample data: fictitious company, user and numbers. Tap the image to see it full size.

  1. 1
    Number or Email

    Pick the number (DID) or the email account — only one at a time.

  2. 2
    Services

    Check the channels this number answers. You can turn on several at once.

  3. 3
    Channels and flow

    Voice, WA Voice, WhatsApp, SMS and Email — each with its own flow; the same flow can repeat across channels.

🧰 Start from a template, or from scratch

13 ready-made templates to adjust — AI Assistant reception, bilingual IVR, menus to queues or an extension, WhatsApp, booking an appointment, and more — or a blank canvas.

Start from a template, or from scratch

Sample data: fictitious company, user and numbers. Tap the image to see it full size.

  1. 1
    From scratch

    A blank canvas, to build the flow node by node.

  2. 2
    The templates

    12 real examples: AI Assistant reception, bilingual IVR (ES/EN), menus to queues or an extension, voicemail, WhatsApp with the AI Assistant, agent queues and booking an appointment. Each card shows a preview of its nodes.

  3. 3
    Use template

    Opens that template in the same step-4 editor, ready to adjust. The original stays untouched: what you edit becomes your own new flow when you save.

🎨 The node palette

Grouped by type, above the canvas: click to place, drag the body to move, drag its dot to another node to connect them.

The node palette

Sample data: fictitious company, user and numbers. Tap the image to see it full size.

  1. 1
    7 groups

    Message and voice · Menus and capture · Data and logic · Hours and routing · Transfers · Utilities · End.

  2. 2
    Add node, Clear, Refresh

    Next to the node count and the link to previous versions.

  3. 3
    How it is built

    Click a chip to place that node; drag a card's BODY to reposition it; drag from its DOT (○) to another node to connect them — that is how the arrows are drawn.

⚠️ Data lookup, external API and Database query show up in the palette for anyone, but they are for TelHarbor's internal use: today the server rejects the entire flow save (with a technical error) if a customer places one of these three nodes. Do not build a flow with them: request it through the Help Desk.

🗂️ A flow already built

Each card is a node; the arrows show where each output leads.

A flow already built

Sample data: fictitious company, user and numbers. Tap the image to see it full size.

  1. 1
    Labeled outputs

    The main menu shows 1, 2, 3 (its options), «t/o» (timeout) and «inv» (invalid answer); the schedule shows open/closed/holiday. Each dot (○) is a different output of the node.

  2. 2
    Start

    The green pill marks the flow's entry node.

🧩 The node editor

Click any card on the diagram to open its detail and edit it.

The node editor

Sample data: fictitious company, user and numbers. Tap the image to see it full size.

  1. 1
    Edit node

    The title says which flow step is open.

  2. 2
    Key (unique id)

    The step's identifier; other nodes point to it (for example, a menu option).

  3. 3
    Node type

    IVR menu, AI Assistant, transfer, voicemail, data lookup, and more — grouped by category.

✨ The AI Assistant proposes, you decide

Describe it in your own words; the proposal is reviewed before loading it into the diagram, and nothing is saved until "Save flow".

The AI Assistant proposes, you decide

Sample data: fictitious company, user and numbers; this document's proposal is simulated. Tap the image to see it full size.

  1. 1
    What should this flow do?

    Describe it in your own words. The notice says what is sent: you can only use your own company's extensions, queues, numbers and emails.

  2. 2
    The proposal

    A summary of what it built and how many nodes it proposed.

  3. 3
    Warnings

    What it discarded and why — for example, an extension that is not part of your company. Review them before saving.

  4. 4
    Load into the diagram

    Only then is the proposal drawn; until that point nothing has been touched.

Cap of 30 requests per company per day. The pronunciation dictionary remains exclusive to TelHarbor.

💾 Saving, with a warning for other numbers

If other numbers also use the flow, you are warned before saving — and the change applies to all of them at once.

Saving, with a warning for other numbers

Sample data: fictitious company, user and numbers. Tap the image to see it full size.

  1. 1
    The flow being edited

    It saves from the number chosen in step 1 — not from "Your flows" (there it edits by its own id and this notice does not fire).

  2. 2
    The notice

    It appears BEFORE saving, with the exact list of other numbers that share that flow by name.

↺ Previous versions: undo

Every save is recorded; you can restore any earlier version, up to the last 20.

Previous versions: undo

Sample data: fictitious company, user and numbers. The "View previous versions" link sits next to the AI Assistant, above the diagram. Tap the image to see it full size.

  1. 1
    Date, who and how

    When it was saved, who saved it, and how: manual save, AI Assistant, apply/assign flow, clone or restore.

  2. 2
    Nodes

    How many nodes the flow had at that point.

  3. 3
    Restore

    Asks for confirmation. The current state is saved before being replaced, so a restore can also be undone.

🔗 A flow shared by another company

It cannot be edited right there: "Save as" makes your own copy instead.

A flow shared by another company

Sample data: fictitious company, user and numbers. Tap the image to see it full size.

  1. 1
    The notice

    «This is a flow shared by another company. It can't be edited here» — appears when picking that flow in the number's channel comparison.

  2. 2
    Save as (own copy)

    Creates your own flow with the same content, without touching the original — from there it is freely editable.