Chat Flows

Heedify supports inbound Microsoft Teams chat routing via a visual designer with Greeting, Queue, Customer Choice and Form nodes, multilingual messages, holidays and open hours, integrated with Microsoft Teams bots and a parent call flow so customer-facing chat conversations can escalate to voice without re-configuring routing. A chat flow is the conversational equivalent of a call flow — it routes Microsoft Teams chat conversations to agents through queues, with optional customer-choice branching, forms and holiday / open-hours handling. Every chat flow is linked to a parent call flow that it inherits agents and context from.

Creating a chat flow

  1. Open Chat Flows from the sidebar
  2. Click +Add Chat Flow
  3. Fill in the Resources Account tab — every field marked required must be filled before Save is enabled
  4. Click Save

After the first save, two extra tabs unlock: Greeting Messages and Routing. Open them to finish configuring the flow.

Required at creation: Name, Bot Identifier, Bot Key, Entity and Call Flow Link. The Save button stays disabled until all five are set.

Resources Account tab

The fields shown depend on whether you are creating a new flow or editing an existing one.

Fields at creation

Field Required Description
Name Yes Display name of the chat flow. Shown in the Chat Flows list.
Bot Identifier Yes App ID of the Teams bot that backs this chat flow. This value also becomes the chat flow’s internal ID at creation.
Bot Key Yes Bot secret / password. Stored encrypted and never displayed back.
Entity Yes Entity the chat flow belongs to. Drives the permissions that apply to the flow and all its sub-resources.
Call Flow Link Yes Parent call flow this chat flow attaches to. Picked from the dropdown of existing call flows; the first available call flow is preselected.

Fields visible on edit

Field Editable Description
Name Yes Display name.
Entity No Read-only after creation.
Bot Key Yes Re-enter to rotate the secret; leave blank to keep the current value.
Timezone Yes Timezone used to evaluate Holidays and Open Hours. Defaults to Europe/Paris.
Language Yes Default language used for greeting messages. Defaults to en-US.
Call Flow Link Yes Parent call flow. Required — cannot be cleared.
Chat Flow ID No Read-only system identifier.

No Region or Data Location field is exposed on this tab in the current portal — the chat flow inherits storage location from its tenant.

Greeting Messages tab

Four optional message variants, each toggled individually. When enabled, the message text is shown to the customer at the matching point in the conversation.

Variant When it plays
Welcome Message First message sent when a customer opens the chat. Enabled by default with a placeholder text.
Emergency Message Shown before the welcome message to flag a service disruption. Use sparingly.
Flash Message Short ad-hoc notice prepended to the welcome (e.g. event-day hours).
Custom Message Free-form message reserved for tenant-specific use.

Each variant exposes a single Message Text field shown when the toggle is on.

Holidays & Open Hours

Chat flows honour the same scheduling model as call flows.

Open Hours

Per-day time ranges (Monday to Sunday) during which incoming chats are routed normally. Outside these ranges, the Out-of-hours action is applied — either disconnect the conversation or redirect to a fallback queue.

Holidays

A list of full-day or date-range entries that override Open Hours. When a chat arrives on a holiday date, the Holidays action is applied — either disconnect or redirect to a fallback queue.

Both actions store a targetType, targetId, queueId and queueDisplayName. In the UI you simply pick a queue or choose Disconnect.

Routing tab

The Routing tab is a drag-and-drop designer with two views: a list of routings on the left and an editor on the right (or a single panel from the diagram side panel).

Default entry point

Every chat flow ships with a built-in entry routing identified internally as routing-0. In the designer it is labelled Start (or Conversation start on the diagram canvas) and cannot be deleted. Edit it to choose what happens to the very first message the customer sends.

There is no separate “Start node” in the node palette — the start is auto-generated.

Node palette

Drag a node from the left palette onto the canvas to add a new routing.

Category Node Purpose
General Greeting Sends the greeting messages defined in the Greeting Messages tab. The palette disables Greeting once it is already on the canvas — only one Greeting is allowed per flow.
Routing Queue Routes the conversation to a queue.
Routing Customer Choice Asks the customer a question and branches on their reply.
Routing Form Collects structured fields from the customer.

There is no Message node. To send a one-off text, use a Greeting variant or the Customer Choice prompt text.

Queue node

Pick the destination queue using the queue selector. Once selected, queueId and queueDisplayName are stored on the routing.

Customer Choice node

A Customer Choice routing exposes:

Field Description
Name Internal identifier shown in the designer.
Text Question text sent to the customer.
Return Messages Map of reply buttons. Each entry has a Choose a name (the button label), a Next type (None, Routing or Queue) and a Redirect to target chosen from the available routings or queues.

Each entry is stored under customerChoiceActions keyed by a generated ID; the keys persist across saves so existing branches stay stable.

Form node

A Form routing collects fields from the customer.

Field Description
Label Field identifier. Stored as the field’s id.
Placeholder Hint text shown inside the input.
Type Input type. One of Text, Number, Date, Time, Email, Phone.
Next Routing or queue to jump to after the form is submitted.

Click + to add a new field; the delete icon removes a row.

Editing and deleting

  • Click the edit icon on a chat flow row to open the Resources Account tab.
  • Click the diagram icon to open the visual designer directly.
  • Click the delete icon to remove a chat flow. Deletion is permanent.

Identification rule

A flow is treated as a chat flow when neither whatsAppId nor teamsBotId are set on it. If both are present, the same form serves it as a WhatsApp flow.

FAQ

Do Heedify chat flows support call recording?

No. Recording is a voice-only feature configured on the parent call flow. Chat conversations are stored as messages in the chat flow’s tenant storage but no audio recording or transcription is produced for them.

How do I hand a Heedify chat off to a voice queue?

Every chat flow declares a Call Flow Link to a parent call flow at creation. The parent call flow’s queue and transfer nodes are reachable when the conversation escalates to voice. The link is required and cannot be cleared on edit.

Can I collect customer information before routing a Heedify chat?

Yes. Use the Form node to collect structured fields (Text, Number, Date, Time, Email, Phone). Each field declares a Label, Placeholder and a Next routing or queue applied after the form is submitted.

How many greeting variants can a Heedify chat flow show?

Four variants are configurable: Welcome Message (enabled by default), Emergency Message, Flash Message and Custom Message. Each toggles independently and exposes a single Message Text field.

Can I have more than one Greeting node on a Heedify chat flow canvas?

No. The Greeting node is disabled in the palette once it is already on the canvas — only one Greeting is allowed per flow. There is no separate Message node either; use a Greeting variant or a Customer Choice prompt for one-off text.

Works with: Microsoft Teams chat, Microsoft Teams bots, Call Flows (parent flow for voice handover), Queues.