Support flows
How to design the automatic reception of every conversation in the visual flow editor: when each flow answers, every step type and its fields, menus interpreted by the AI, variables, business hours, validation, ready-made templates and complete examples for internet service providers (ISPs).
Overview
A flow is the automatic script that greets the customer when they message your company on WhatsApp. The flow is where you decide what the customer reads first, which options they have, when the AI joins the conversation, which department or agent the conversation is handed to and what happens outside business hours. The screen is in the Flows menu, with the subtitle Design how the system receives and guides each conversation.
The flow is built as a tree of steps in a visual editor: you start from Start (the moment the customer reaches out) and chain messages, option menus, AI handoff, queries to external systems, hours branches, transfers and closing.
The principle behind everything: the flow is what talks to the customer
In ChatISP, no automatic reception message comes from fixed system text. Every automatic message to someone who has just reached out (welcome, menu, after-hours notice, expected return time) is a flow step and applies only to the channels of that flow. This has two practical consequences:
- A channel without a flow stays silent. If no active flow answers that number at that moment, the conversation goes straight to the human queue (with the round robin and the team alert working normally), but the customer receives no automatic message. This is intentional: a personal number connected to the panel, for example, will never reply on its own to personal contacts.
- Business hours are only a source of information. They tell the flow whether the company is open and when it reopens (the
{retorno}variable), but they send nothing on their own. You write the after-hours text yourself, inside the flow. See Business hours and after hours.
The AI also serves the customer only when a flow puts it in the conversation (AI agent step). Without a flow, the conversation is 100% manual: it waits in the queue and the round robin hands it to an agent, if it is enabled for the department.
Who can use it
The screen requires the Self-service flows permission (description on the profiles screen: Creates and edits the flows that serve customers automatically.). The Business hours button, on the same screen, saves a system setting and therefore also requires the Settings permission. See Users and access profiles.
Plan limit Plan limit
The number of active flows at the same time depends on the subscribed plan. On plans with a cap, the top of the screen shows a meter in the format 2 of 3 active flows in your plan and, when the cap is reached, Plan limit reached. Inactive flows do not count: you can keep drafts switched off and alternate which one is active. When you edit a flow that is already on, it does not count twice. See Account and license.
How the system picks the flow
The flow is evaluated when a new conversation is created, that is, when the first message arrives from a customer who has no open conversation on that number. Conversations that are already open do not re-enter the flow: once the flow hands over the conversation (to the queue, an agent, the AI or closing), the customer's next messages go to whoever received it.
Selection criteria
Among the active flows, the system discards those with validation issues and those that do not apply to the conversation's channel. From the remaining ones, it picks by the priority of the When this flow answers field:
| Priority | Trigger | When it applies |
|---|---|---|
| 1 (highest) | Custom windows | When the current moment falls within one of the Time windows registered in the flow itself. |
| 2 | Within business hours and Outside business hours | According to the business hours registered with the Business hours button. |
| 3 (lowest) | Always | At any time. It works as a safety net when no more specific flow applies. |
If two flows tie at the same level, the one whose name comes first in alphabetical order wins. The result is always predictable, but the recommendation is not to leave two flows competing for the same channel and the same period.
Channels
In the Channels field you check which numbers the flow answers on. No channel checked: the flow applies to all connected channels. Check channels to restrict it. A number connected at the same time by QR Code and by the official Meta API (twin numbers) appears as a single option, with the type WhatsApp (QR) + Official API, and applies to both connections.
A flow with issues does not answer
An active flow that has any validation issue (step without text, menu option without a destination, transfer without a department, etc.) is ignored in the selection: the system moves on to the next eligible flow or, if there is none, to the default behavior (human queue, in silence). This prevents a customer from getting stuck in a broken menu. See Validation and issues.
The conversation during the flow
While it is in the flow, the conversation is in the Automation state (there is a filter with that name on the conversations screen). The round robin and the AI stay out until the flow hands over the conversation. With each customer reply, the flow continues from where it stopped. The conversation history records events such as entering the flow, handing over to the AI, the AI's decision about a menu option and the end of the flow.
The conversation is created in the Department for new conversations (set in Settings, Service tab, Queue and inactivity card) and the flow can move it to another department when transferring or when handing it to the AI.
How a flow ends
| Ending | Result |
|---|---|
| Transfer step | The conversation goes to the queue of the chosen department (where the round robin can distribute it) or straight to the chosen agent. |
| AI agent step | The AI takes over the conversation and starts replying to the customer. |
| Close step | The conversation is closed. |
| Step with no next step (e.g. a Message at the end of a branch) | The editor shows End: conversation goes to the queue. The conversation leaves automation and enters the human queue. |
As a safeguard against loops, each customer message can trigger at most 15 consecutive steps that do not wait for a reply (messages, queries, hours branches). Past that limit, the conversation is moved to the queue. Normal flows never come close to this.
The flows screen
The screen opens with the title Support flows and the hint Organize your automations and see what needs attention. At the top are the plan meter (when there is a cap), the Business hours button and the New flow button.
Indicators
Four cards summarize the situation and work as a quick filter (click to filter the grid):
| Indicator | What it counts |
|---|---|
| All flows | Overview of the automations. |
| Active | Flows enabled in the settings. |
| Inactive | Flows disabled in the settings. |
| Needs attention | Flows that need review before they can answer. |
Search, filters and sorting
- Search by name or channel: searches the flow name and the channel names, ignoring accents and letter case.
- Trigger: filters by Always, Within business hours, Outside business hours or Custom windows (default All triggers).
- Sort by: Name (A-Z), Most issues or Most steps.
- Clear filters appears when any filter is applied.
Card of each flow
Each flow appears on a card with the Active or Inactive tag, the name, the trigger (When this flow answers), the Channels (or All channels), the number of steps and, when there are any, the number of issues with the warning Pending issues prevent this flow from handling conversations. Open the editor to review. Without issues, a check mark appears with the hint No issues in the last validation. The footer shows the date of the last update.
| Button | What it does |
|---|---|
| Open editor | Opens the visual step editor. |
| Edit | Opens the Flow settings window (name, trigger, channels, active). |
| Trash can (Delete) | Asks for the confirmation Delete this flow? Conversations in it return to the queue. and deletes the flow. |
Create a flow
- On the Flows screen, click New flow.
- Fill in the settings window (fields below) and click Save.
- The visual editor opens next. Build the steps starting from Start.
- Click Save flow to save and validate.
- When there are no issues, go back to Edit and turn on the Active switch (a new flow is created switched off).
Flow settings
| Field | What it does |
|---|---|
| Name | Required, up to 120 characters. It is also the tiebreaker between flows at the same level. |
| When this flow answers | Always, Within business hours, Outside business hours or Custom windows. See the priority in How the system picks the flow. |
| Time windows | Appears only with Custom windows. Each window has a weekday, a start and an end; Add window adds another row and the X removes it. At least one window is required, and the end must be after the start. |
| Channels | List of connected numbers, with type (WhatsApp (QR), Official API or WhatsApp (QR) + Official API) and phone number. None checked = all channels. |
| Active | Turns the flow on. Subject to the plan's limit of active flows. |
Custom windows do not cross midnight, because the end must be after the start on the same day. For an on-call shift from 22:00 to 06:00, register two windows: one from 22:00 to 23:59 and another from 00:00 to 06:00 on the following day.
Custom windows belong to the flow only and do not change the company's business hours. They are useful for one-off situations, such as a special holiday flow or a scheduled maintenance flow that must take precedence over the others during that period.
The visual editor
The editor (overline Visual editor) fills the screen with two areas: on the left, the Support journey, which draws the step tree, and on the right, the Flow configuration panel, with the summary (trigger and channels), the validation status and the Build your support journey guide.
Building the tree
- The tree starts at the Start card (Customer reaches out).
- Each point where the flow can continue shows a + button (Add step). Click it, choose the Step type, fill in the fields and click Save.
- Click any step card (or press Enter on the keyboard) to open Edit step. The type of an existing step does not change; to switch it, remove it and add another.
- Remove step, inside the edit window, asks for the confirmation Remove this step? Whatever is linked to it gets disconnected.
- Menus open one branch per option (each branch shows the trigger words and the option label); the Hours branch opens the Within hours and Outside hours branches.
The hint below the tree sums it up: Click a step to edit it or + to continue the flow.
Saving and validating
Changes stay only on the screen until you click Save flow. The indicator at the top switches between Unsaved changes, Saving… and Changes saved. When you save:
- Steps that are no longer linked to Start (leftovers from removals) are discarded automatically.
- The flow is validated. Without problems, Flow saved. appears; with problems, Saved, but the flow has issues and will not answer until they are fixed, with the count.
- Menu options without a short title or description are completed by the AI (see Menus) and the editor already shows the generated texts.
- Conversations that were waiting at a step you removed are returned to the queue, so nobody gets stuck at a position that no longer exists.
The back button (arrow at the top) with pending changes asks Leave without saving the flow changes?. Closing the browser tab in that situation also asks for confirmation. The Flow settings button, at the top of the editor, reopens the name, trigger, channels and active window without leaving the editor.
Changes apply to the next conversations as soon as the flow is saved. If the flow is already active and answering, prefer to test big changes on a switched-off copy (create a new flow) and only then swap which one is active.
Step types
There are eight types. The texts of all steps accept the variables {nome}, {protocolo}, {telefone} and {retorno}.
| Step | What it is for | Continues to |
|---|---|---|
| Message | Sends a text and moves on without waiting for the customer. | A next step (or end: queue). |
| Options menu | Sends a question with options and waits for the customer's choice. | One branch per option. |
| AI agent | Hands the conversation to the AI, with instructions specific to this step. | Final (the AI takes it from there). |
| Transfer | Hands over to a department queue or to an agent. | Final. |
| Close | Closes the conversation. | Final. |
| Query system | Calls an operation of an external system and sends the result. | A next step (or end: queue). |
| Hours branch | Splits the path depending on whether the company is open or closed right now. | Within hours and Outside hours branches. |
| Back to menu | Takes the customer back to the previous menu. | The previous menu (or the start). |
Message
| Field | What it does |
|---|---|
| Message text | Required. Text sent to the customer, with variables. |
After sending, the flow immediately moves on to the step linked below. With no step below, the editor shows End: conversation goes to the queue and the conversation enters the human queue. Use messages in sequence to split long texts, or to give a notice before a menu or a transfer.
Options menu
| Field | What it does |
|---|---|
| Message text | Required. The question shown above the options (e.g. Hello {nome}! How can we help?). |
| Invalid option message | Optional. Text that goes before the menu when it is sent again because the system did not recognize the reply. The field suggests I did not understand. Please pick one of the options below.; left blank, the menu is simply sent again, with no sentence before it. |
| Menu options | One row per option, with the fields below. Add option adds another; the X removes it. |
| Label | The option text the customer reads (up to 60 characters). The label itself is also accepted as a reply. |
| Trigger words | Separated by commas (e.g. 1, billing, invoice). At least one is required. The first word becomes the shortcut shown before the label in the menu text, so it is usually the number. |
| Global | Marks the option as valid anywhere in the flow (hint: Works from anywhere in the flow). Without the mark, it only works inside this menu. |
| Short title (API, up to 24) | Optional. Title of the option in the tappable list of the official API. |
| Description (API, up to 72) | Optional. Explanatory line for the option. In the official API it appears under the title; on the QR channel it goes in italics below the option. |
Each option opens a branch in the tree, and every branch needs a next step (otherwise the flow has an issue). The menu is the only step that stops and waits for the customer. The details of how the reply is recognized are in Menus: how the customer replies.
AI agent Plan feature
| Field | What it does |
|---|---|
| Message before (optional) | Text sent when entering the step. With text, it is this step's reply and the AI speaks from the customer's next message onward. Without text, the AI replies right away, with a natural greeting. |
| AI instructions for this step | Guidance that is added to the configured persona (e.g. focus on technical support; if they ask for a bill, use the billing system). It applies while the conversation is with the AI from this step on, and accepts variables. |
| Queue if the AI hands over to a human | Department that receives the conversation when the AI decides to call an agent. None keeps the conversation's current department. |
From this step on, the conversation is With AI: it checks the customer's status, uses the knowledge base, runs the allowed actions and transfers to a human when needed. When there are two or more active departments, the AI picks the transfer department by subject (billing, sales, support), comparing it with the registered names; if none fits, this step's queue applies. Everything about the AI's behavior is in Artificial intelligence.
The AI that replies to the customer on its own (autonomous AI) depends on the plan. Without it in the plan, a conversation that reaches this step is moved to the human queue, with the reason recorded in the history: Autonomous AI service not included in the plan: conversation moved to the queue.
Transfer
| Field | What it does |
|---|---|
| Message before (optional) | Sent at the moment of the handover (e.g. Alright, an agent will continue with you in a moment. Your ticket number is {protocolo}.). |
| Department | Queue that receives the conversation. The department's round robin then applies. |
| Agent | Hands over directly to a person, without going through the queue. With both department and agent filled in, the conversation goes to the agent, already tagged with that department. |
| Ask whether the customer needs anything else before transferring | Switch (on by default in new steps). Before the handover, the customer receives a question with two options: Yes, one more request (goes back to the menu they came from) and No, go ahead (transfers). |
| Question asked to the customer | Appears with the switch on. Empty uses the default text Before forwarding you to an agent: do you need anything else? The two reply options are added automatically right below. |
You must choose a department or an agent (or both). In the tree, the card summarizes the destination and, with the question on, adds asks first whether they need anything else.
The question solves a common complaint: the customer chose an option, landed in the queue and could not ask for anything else, because the automation had already handed over the conversation. With it, whoever answers Yes goes back to the menu, chooses something else and is only forwarded when they are done. The options recognize 1, yes, y (and the Portuguese sim, s) and 2, no, n (and nao), as well as free text interpreted by the AI, as in any menu. The Message before is only sent at the actual handover.
Close
| Field | What it does |
|---|---|
| Message before (optional) | Farewell sent before closing. |
Closes the conversation as a normal closing: the Closed ticket message configured in Settings is also sent (if it is not empty). The satisfaction survey is only sent when there was real service, that is, when the AI or an agent replied to the customer; a flow that closes with automatic messages only does not trigger the survey.
Query system
Calls an operation of an external system registered in Integrations and sends the customer a message built from the response. With no external system registered, the step shows Register an external system in Integrations to use this step.
| Field | What it does |
|---|---|
| System | The external system to query. |
| Operation | The operations that system offers, with the description of each one. |
| Operation parameters | One field for each parameter the operation requires, with its description. They accept variables: for example, {telefone} to look up the customer by the number that is chatting. A blank parameter is not sent. |
| Message with the result | Sent when the query succeeds. Use {resposta.field} to insert response data. Nested fields use a dot ({resposta.cliente.nome}); {resposta} alone inserts the whole response. |
| Message on failure | Sent when the query fails (system down, credential error, operation refused). |
On success or failure, the flow continues to the same next step linked below. A response field that does not exist becomes empty text, so write the message in a way that still makes sense in that case. An empty message sends nothing.
Hours branch
It has no fields: when it reaches this step, the flow checks whether the current moment is within Business hours and follows the Within hours or Outside hours branch. An empty branch sends the conversation to the queue. It is the way to have a single flow (Always trigger) that behaves differently depending on the time.
With no business hours registered, the system considers the company always outside hours: the Hours branch always takes the outside branch, flows with the Within business hours trigger never answer and those with Outside business hours answer all the time. Register the business hours before using these features.
Back to menu
No fields. Takes the customer back to the menu before the one where they chose the option (the path taken is kept in a stack). If there is no previous menu, it goes back to the first step of the flow. Useful as a 0 - Back option inside submenus.
Variables
Variables are replaced by the real value at the moment of sending. They work in the texts of all steps, in the AI step instructions, in the menu option descriptions and in the parameters of the Query system step.
| Variable | Value | Example |
|---|---|---|
{nome} | Customer name in the conversation (the WhatsApp profile name, or the name an agent saved in the contact). Without a name, it becomes the phone number. | Maria |
{protocolo} | Ticket number of the conversation. | 20261001-0012 |
{telefone} | Customer phone number, with + and country code. | +5545999990000 |
{retorno} | Next opening of business hours, written out. It is empty if no business hours are registered. | tomorrow at 08:00 |
{resposta.campo} | Only in the Message with the result of the Query system step: a field from the external system's response (replace campo with the field name). | {resposta.plano} |
The {retorno} variable
It is the way to bring business hours to the customer without fixed system text. The value is always the next opening after now, calculated from the schedule and the system time zone, in three formats: today at 13:30 (back from lunch, for example), tomorrow at 08:00 or the weekday, such as Monday at 08:00. Example of use in an after-hours message:
Hello {nome}! Our human support is back {retorno}.
Your ticket number is {protocolo}. If you like, describe what you need right here.Without business hours registered, {retorno} is empty and the sentence above would come out as "is back ." Use the variable only after registering the business hours.
Business hours and after hours
The company's business hours are registered with the Business hours button, at the top of the flows screen. The window explains: Weekly windows of human service. They feed the flows' "inside hours" and "outside hours" triggers, the hours step and the {retorno} variable. No message is sent from here: the flow of each channel is what talks to the customer.
Registering business hours
- In Flows, click Business hours. The table lists the windows with Day, Start and End.
- Click New time slot, choose the day, the start and the end (the suggested default is 08:00 to 18:00) and save.
- Repeat for each day. To close for lunch, register two windows on the same day (e.g. 08:00 to 12:00 and 13:30 to 18:00).
- Use Edit and Delete on each row to adjust. The end must be after the start (End must be after start.).
Business hours follow the Time zone set in Settings, System tab. The initial setup assistant also registers these hours in the When and how do you attend? step.
Where business hours are used
- The flows' Within business hours and Outside business hours triggers.
- The Hours branch step.
- The
{retorno}variable. - On every turn, the AI receives the date, the time, the schedule and whether the company is open or closed, and it uses the real next opening when it promises a return, without depending on your instructions.
- Outside the flows: the waiting time notice, the after-hours reply for tickets waiting on the customer and the calculation of average times during business hours only. See Departments and queue.
Holidays
Next to Business hours sits the Holidays button. A holiday is a whole day without human service, on top of the weekly schedule: whatever the schedule says for that weekday, on a holiday the system stays outside business hours all day, the {retorno} variable points to the first working day after it (on the eve of a Tuesday holiday, the announced return is Wednesday) and the AI gets the fact.
- Automatic national holidays (Brazil): the switch at the top of the window brings in the national calendar for the current and the next year by itself, with the fixed and the moveable dates (Good Friday, Carnival, Corpus Christi). Each holiday has an Active switch: optional days off (Carnival and Corpus Christi) start disabled, enable the ones your company closes on. An automatic holiday can be renamed, but its date is fixed.
- Your city and state holidays: click New holiday, enter the date, the name and the type (Municipal, State, National or Optional day off). Tick Repeats every year for the city anniversary, patron saint and other dates that always fall on the same day and month.
- Message on the holiday: each holiday has the Message on the holiday field, pre-filled with a default text you adjust per holiday. On the day, every new conversation on a channel with an active flow gets this message on arrival, once, and then the flow goes on as usual. Empty field: no message on that holiday. Variables:
{feriado}holiday name,{nome},{protocolo}and{retorno}. The{feriado}variable also works in the outside hours reply messages in Settings. - A whole different service on the holiday (optional): create a flow with the Holiday trigger (on a holiday it beats the outside hours one) or use the Holiday branch of the Hours branch step, which is optional: empty, the holiday follows the Outside hours branch.
- Report averages also leave out the whole holiday.
Two ways to set up after hours
| Approach | How to set it up | When to prefer it |
|---|---|---|
| Two flows | One flow with the Within business hours trigger and another with Outside business hours, on the same channels. | When the two periods are very different (for example, a full menu during the day and on-call AI at night). Each one counts toward the active flows limit. |
| One flow with a branch | An Always flow that starts with an Hours branch and builds both paths. | When the plan has few active flows or when the periods share a good part of the path. |
After hours you can: say when the team will be back ({retorno}) and leave the conversation in the queue for the team to handle at opening time; put the AI on call, which solves what it can and transfers the rest to the queue to wait for the team; or close with guidance. The examples are in Complete flow examples.
Ticket replies outside business hours
The flow handles new conversations. A customer who was in a human ticket marked as Wait for customer reply and replies outside business hours is handled by a separate setting in Settings, Service tab, Waiting for reply: customer answers outside business hours card, with three options: Silence, Reply notice (recommended) and Notice + on-call AI (Plan feature, requires autonomous AI). With the on-call AI option, the AI can also reply to those waiting in the queue without an agent outside business hours. Details in Conversations.
Validation and issues
Every flow is validated when saved. Issues do not prevent saving, but they prevent the flow from answering: it appears in the Needs attention indicator, the card shows the count and the editor panel displays Pending issues prevent this flow from handling conversations. Open the editor to review.
| Issue | How to fix it |
|---|---|
| Flow without a first step | Add a step at the + right below Start. |
| Message or Options menu without text | Fill in the Message text. |
| Menu without options | Add at least one option. |
| Option without a label or without trigger words | Every option needs both fields. |
| Menu option without a next step | Click the + on the option's branch and add the destination. |
| Transfer without a department or agent | Choose at least one of the two. |
| Query system with a system that does not exist | The external system was deleted in Integrations: choose another one or remove the step. |
| Destination that no longer exists | Open and save the step again, or reconnect the branch. |
When you save a step, the editor also blocks a menu without options and a transfer without a destination, with the warning Fill in the required fields.
A deactivated department no longer appears in the editor lists. If a transfer step points to a department that was deleted, review the flow and choose another destination.
Ready-made templates from the setup assistant
You do not need to start from scratch. The initial setup assistant (opened by the compass icon at the top of the panel, for administrators only) builds the flows from your answers about business hours, departments and service. The generated flows appear on the Flows screen like any other and can be edited freely.
House template (with AI and departments)
When the plan includes autonomous AI and there is at least one department registered, the assistant builds:
- <Company>: business hours, with the Within business hours trigger: the AI greets the customer directly, without a menu, with connection, Wi-Fi and billing scripts that check the customer's real status before replying, and transfers to the support department when it cannot solve the issue.
- <Company>: after hours, with the Outside business hours trigger: the same AI, in on-call mode. It says the team is outside business hours, tells when it will be back, solves what it can and leaves the rest recorded in the queue for the team to continue at opening time.
With no business hours registered, the assistant builds a single flow <Company>: service, with the Always trigger. The template does not use a menu because many ISP customers prefer to write what they need; if you want a menu, edit the flow and insert an Options menu before the AI.
Without AI or without departments
The assistant asks what to do within business hours (AI, menu or queue) and outside business hours (AI, notice or silence) and generates a Main service flow with those choices. The generated menu already includes options such as Duplicate bill, No internet or slow internet, Wi-Fi: password, network name or signal, Plans and sign-up and Talk to a human agent, with title and description ready.
Running the assistant again updates the same flows it created, instead of duplicating them. If you renamed a generated flow, the name you gave it is kept. If the plan has no room for one more active flow, the flow is created switched off and the assistant tells you.
Complete flow examples
The examples below use departments named Billing, Technical support and Sales. Adapt them to the names registered in Departments.
Example 1: reception with a menu during business hours
Flow Reception, Within business hours trigger, all channels.
Start
└ Options menu: "Hello {nome}! You are talking to Example Fiber. How can we help?"
├ 1, bill, invoice, copy, pix · Duplicate bill and billing
│ └ AI agent (queue: Billing)
│ instructions: "Focus on invoices, duplicate bills and service unblocking."
├ 2, no internet, slow, down · No internet or slow internet
│ └ AI agent (queue: Technical support)
│ instructions: "Focus on connection and Wi-Fi diagnostics."
├ 3, plans, sign up, sales · Plans and sign-up
│ └ Transfer: Sales (ask first: on)
│ message: "Perfect! I will pass you to the sales team. Ticket {protocolo}."
└ 0, agent, human, person [Global] · Talk to an agent
└ Transfer: Technical support (ask first: on)Points to note: option 0 is global, so it works from any submenu you add later; the transfers ask whether the customer needs anything else and send whoever answers Yes back to the menu; the AI in each branch already knows which queue to transfer to.
Example 2: after hours with on-call AI
Flow Night shift, Outside business hours trigger, same channels. Plan feature
Start
└ AI agent (queue: Technical support, message before empty)
instructions: "We are outside human support hours. Mention this in one
light sentence, say when the team will be back and help with whatever is
possible now. Anything that depends on an agent (technician visit, negotiation),
record it and transfer: the ticket stays in the queue for the team to continue at opening time."With the message before left empty, the AI replies right away, already greeting the customer. It knows the real business hours and the next opening without you having to write the hours in the instructions. Whatever it transfers stays in the Technical support queue, where the team finds everything at opening time.
Example 3: after hours without AI (notice and queue)
Start
└ Message: "Hello {nome}! Our human support is back {retorno}.
Your ticket number is {protocolo}. You can describe what you need here
and the team will reply as soon as we open."
(no next step: End, conversation goes to the queue)The conversation stays in the queue and the team finds it at opening time, already with the customer's description. If you prefer it to land in a specific department, replace the end with a Transfer step without a message.
Example 4: single flow with an hours branch
For plans with few active flows. Always trigger.
Start
└ Hours branch
├ Within hours
│ └ Options menu (the same as in Example 1)
└ Outside hours
└ Message: "We are outside business hours. We are back {retorno}."
└ Options menu: "In the meantime, I can help with:"
├ 1, bill, invoice · Duplicate bill └ AI agent (queue: Billing)
└ 2, other subject · Other subject └ Transfer: Technical support (ask first: off)Example 5: support submenu with back option
Options menu: "What is the problem?" ├ 1, no internet, down · I have no internet └ AI agent (queue: Technical support) ├ 2, wifi, password · Change Wi-Fi password └ AI agent (queue: Technical support) ├ 3, visit, technician · Schedule a technician └ Transfer: Technical support └ 9, back, menu · Back to previous menu └ Back to menu
Example 6: querying an external system
Query system: System "My ERP", lookup by phone operation
parameter telefone = {telefone}
message with the result: "We found the account of {resposta.nome}, plan {resposta.plano}."
message on failure: "I could not look up your account right now."
└ Transfer: BillingThe operation names, parameters and response fields depend on the external system registered in Integrations.
Testing a flow
A flow is tested the way the customer uses it: by sending a message from a phone to the connected number.
- Check on the screen that the flow is Active, has no issues and has the right channel (or no channel checked).
- Check the trigger: a Within business hours flow does not answer in the middle of the night, and a Custom windows flow only answers within its windows. Remember that another flow with higher priority may be winning the selection.
- Make sure the test phone has no open conversation on that number: the flow only receives new conversations. If there is one, close it in the panel first.
- Send a message and go through the paths: reply with the number, with a word, with a free sentence and with something meaningless, to see the interpretation and the invalid option message.
- In the panel, open the conversation (Automation filter while it is in the flow) and read the timeline: entry into the flow, AI decisions about the menu, handover and destination.
- Also test after hours. A practical way is to create a copy of the flow with the Custom windows trigger and a window covering the current time, which takes priority over the others, and switch it off when you are done.
If the satisfaction survey is enabled and the test ends in a closing with an AI reply, the test phone receives the rating question. Answer it or ignore it: after 24 hours it stops waiting for the reply.
Best practices
- Cover all hours of each channel. A within/outside hours pair, or an Always flow with an hours branch, ensures no customer is left without a reception. Remember that a channel without a flow stays silent.
- Register business hours first before using hours-based triggers, the Hours branch or
{retorno}. - Short menus. Up to five or six options per menu; use submenus for details. On WhatsApp, long text with many options gets ignored.
- First word = number. It becomes the displayed shortcut (1 - Duplicate bill). Add natural words for the subject (bill, invoice, pix).
- One global agent option. Give the customer a way out to talk to a person from any menu.
- Keep the question before transferring on in transfers that come from menus, so the customer can solve everything in a single conversation.
- Include the ticket number in the transfer or after-hours message with
{protocolo}. - Objective AI instructions per step. The general persona lives in Artificial intelligence; in the step, state only the focus of that branch and the transfer queue.
- Name departments by subject (Billing, Technical support, Sales): the AI uses these names to pick the right queue.
- Do not let two flows compete for the same channel and the same period; if needed, use different channels or Custom windows.
- Big changes on a switched-off copy. Test it and only then swap which flow is active.
- Review the Needs attention indicator after deleting departments, agents or external systems.