Set up flows (flow builder, triggers & chatbot)
Flows (formerly “Automation”) take routine off your hands. You find them under Settings → Flows (under “Advanced” → customer service). In the flow builder you build flows step by step from top to bottom: trigger → if/then/else → actions → wait → stop. Before switching a flow on, you try it in a test run without anything being sent. On top of that there are ready-made templates, phone triggers and a rule-based chatbot for the WebChat. Since version 1.1.43 the AI can build a flow from one sentence, and an AI step classifies messages or extracts data.
How a flow is built
A flow runs from top to bottom. Every step is a card:
| Building block | What it does |
|---|---|
| Trigger | When the flow starts, e.g. “Customer writes”, “Conversation closed” or “Call ended”. All triggers |
| If | Checks conditions. If they match, it continues under “Then”, otherwise under “Else”. After that it continues below the If. Conditions |
| Action | Does something: assign, reply, send a WhatsApp template, create a task … Optionally with its own path per result. Actions |
| Wait | Pauses the flow — a fixed time, until a time of day, until a date of the contact or until business hours. Wait |
| Stop | The flow ends here. |
“New flow”: how to start
Since 1.1.53 every new flow starts in one place: Settings → Flows → the “New flow” button. It asks “How would you like to start?”:
- From a template — ready-made flow templates for common cases: pick, adapt, test, switch on.
- Start from scratch — put it together yourself in the builder, step by step (see below).
- From one sentence (AI) — describe what should happen and the AI builds a flow for you to check (see below). If AI isn't set up yet, you still see this option, greyed out, with a “Set up AI” link.

New flows are always switched off — you switch them on once everything fits. With no flows yet, the page shows the same three options up front.
Overview: “What runs automatically?”
Since 1.1.53 the top of the flows page shows what happens without anyone lifting a finger — not just flows, but every automatic part of the CRM, each On, Partly or Off with “Open” to the setting:
- Flows: how many are switched on.
- Inbox & conversations: opening-hours reply, closing conversations automatically, conversation assignment, team-lead warning, response times, chatbot, AI replies in web chat, AI sorting.
- Messages to customers: customer survey, appointment emails to customers, payment reminders, automatic campaigns.
- Phone: the call route (e.g. “Partly: call route set up, but no line connected”).
If two parts would reply to the same message — e.g. the opening-hours reply and a flow on WhatsApp — a “Double reply possible” warning appears at the top. You only see “Open” for settings you may change. The card can be collapsed.

Create a flow in the builder
- Open the builder. Settings → Flows → “New flow” → “Start from scratch”. Give it a name (e.g. “Reminder after 2 hours”). A flow template is even quicker.
- Choose the trigger. In the top card “The flow starts when …”. Depending on the trigger you set more, e.g. a specific label, a pipeline or, for calls, the result. Ticking “Do not start if another automation caused it” protects you against loops.
- Add steps. “+ Add step” inserts If, Action, Wait or Stop. You can move steps up and down, duplicate and delete them.
- Set repeating and stopping. Under “How often may the same record go through?” choose “Only once”, “Every time the trigger happens” or “Again, but at the earliest after this many days”. Under “Stop running flows when …” tick when a waiting flow should stop. More
- Do a test run. “Test run” tab → pick a real record → “Start test run”. Nothing is sent or changed. Test run
- Save and switch on. If something is missing, you see “Still missing” and the spot is marked red. Saving as “Off” always works.
- Versions: every saved change is a version. The “Versions” tab lists them with their date (“current”); view one and bring it back into the builder with “Restore” — only “Save” makes it the new version. Runs that are waiting stay on their version.
- Long flows with 4 or more steps open collapsed; expand them all with one click.
✨ Flow from one sentence
Since version 1.1.43 you describe what should happen automatically and the AI builds a flow from it — with your own AI key.
- Settings → Flows → “New flow” → “From one sentence (AI)”.
- Describe in one sentence (up to 500 characters) what should happen, e.g. “When a customer writes on WhatsApp and we don't reply within 2 hours, the assignee gets a task.” → “Build flow”.
- You see how the AI understood you, the flow in words, assumptions, open questions (fields marked “please choose”), what isn't possible (yet) and whether the flow would send messages.
- Then “Open in builder”, “Save as draft (off)” or start a test run right away.
Triggers
| Area | Triggers (as named in the builder) |
|---|---|
| Conversation | Customer writes (every message — tick for only the first one of a conversation) · Conversation closed · Conversation reopened · Conversation assigned · Label added · Label removed · No reply for … (optionally business hours only) · Response time (SLA) about to expire · Response time (SLA) breached · Rating received |
| Contact | Contact created · Contact changed · Tag added · Tag removed · Contact date reached (e.g. birthday, optionally every year) |
| Deal & task | Deal created · Deal stage changed (from/to) · Deal won · Deal lost · Deal sits X days in a stage (since 1.1.53) · Deal date reached (e.g. option valid until − 1 day) · Task due · Task overdue |
| Appointment | Appointment coming up (since 1.1.58): a set time before a scheduled appointment, default 24 hours – once per appointment and contact, online bookings included. Cancelled appointments get no reminder, rescheduled ones get a new one. Placeholders e.g. {{meeting.date}} and {{meeting.time}} (in your account’s time zone) |
| Record | Record date reached (e.g. departure − 14 days) — see below |
| Call | Call ended · Key pressed in the phone menu — see below |
| Schedule | Schedule (daily / weekly / monthly, optionally skipping holidays) — without a record (e.g. a reminder to the team) or, since 1.1.53, “for” every matching deal, contact or task — see below |
- Time-based triggers (No reply for …, task, SLA, schedule, contact date, appointment coming up) are checked about every minute. After switching a flow on, only what becomes due afterwards counts.
- Record date and deal date run once a day at the chosen time — details.
- “No reply for …”: only a message from a team member counts as a reply — bots, auto-replies, automations and internal notes don't.
- Response time (SLA): needs an active SLA rule.
- For conditions, the builder only shows the fields the trigger brings along.
Schedules for every deal, contact or task (since 1.1.53)
Under the “Schedule” trigger you choose under “For” what the flow runs for:
- No record (reminder for the team): then only steps that don't need a contact work — a task or notification to a fixed person, team or role.
- Each open deal in a selection (pipeline, stage, “sits at least X days in the stage”) · each contact with a tag · each open task in a selection (all open, overdue or due today).
- At each time the flow runs once per record — at most as many as set (default 100, up to 500), those untouched the longest first. “Recent runs” shows when the limit was reached.
- Example: the flow template “Every Monday: follow up on open offers”.
“Deal sits X days in a stage”: checks all open deals daily at the chosen time (optionally only one pipeline or stage). If one has been in its stage for at least X days (default 7), the flow starts — once per deal and stay in the stage; a stage change resets the clock. With “Also deals that have already been there that long” (on by default) existing deals count too.
Phone triggers: “Call ended” and “Key pressed in the phone menu”
Both need the built-in phone system of the CRM.
- Call ended: starts after every call — optionally only for one result (answered · missed · voicemail message · hung up in the menu or announcement · not reached (outgoing)) and only for one direction (incoming or outgoing).
- Key pressed in the phone menu: starts as soon as a caller presses a key in the phone menu — in any or one specific menu, for any or one specific key. The key has to be set up with a destination in the menu. The same key in the same menu counts once per call.
- When the key is pressed, the call is still running. There is usually no conversation yet, so only contact actions work there, e.g. WhatsApp template, task or notification. Conversation actions are locked.
- Contact: the CRM finds the caller by number or creates a new contact. With a withheld number there is no contact — contact actions are then skipped.
- Placeholders for texts:
{{call.number}},{{call.time}},{{call.outcome}},{{call.duration}},{{ivr.menu}},{{ivr.key}}.
Date on a record or on a deal (e.g. trip)
Since version 1.1.42 a flow can start on a date — e.g. “3 days before departure” or “1 day before the option expires”.
- Record date reached: you choose the record type (e.g. trip), the date (e.g. departure), the offset in days before or after and the time. The flow starts daily at the chosen time for every record whose date (± days) is today — once per record and date; two trips are two runs.
- Deal date reached: the same for a date on the deal — good for deadlines on the enquiry before a trip exists (e.g. “option valid until” − 1 day).
- Placeholders with a format:
{{reise.abreise|datum}}(date as DD.MM.YYYY),{{deal.custom.reise_budget|eur}}(amount in euros),{{reise.abreise|tage_bis}}(days until then). - Only on the day itself: the trigger runs once a day. If the server was down for more than a day, missed days are not caught up — so no late payment reminders go out. If you move the date after sending, the reminder comes once more for the new date.
- Test run: pick a record — you see when the trigger fires for it, or that the date is empty.
“Contact created” fires for every new contact
Since version 1.1.40, “Contact created” runs whenever a contact is new in the CRM:
- customers who write to you for the first time via WhatsApp, email, SMS, Messenger or Instagram, or who call you,
- customers who book online, and contacts you create for a meeting or in the inbox,
- contacts you create by hand or that come in through the API.
CSV import: only if you tick “Run automations and ‘New contact’ campaigns for newly created contacts” when importing. The default is off.
Conditions (If)
- Then and Else: if the If matches, the steps under “Then (true)” run, otherwise those under “Else (false)”. An empty branch simply means: carry on. On a phone, “Then” and “Else” are shown one below the other.
- AND/OR: “All conditions are true (AND)” or “At least one is true (OR)”. With “+ Group” you nest up to 3 levels, e.g. “channel is WhatsApp AND (label is VIP OR priority is urgent)”.
- Fields depending on the trigger, including:
- Conversation: channel, subject, status, priority, labels, assigned to, who is waiting, minutes since customer or team message, started by
- Message: message text, first message in the conversation
- Contact: name, email, phone, company, language, tags, owner, birthday, custom fields, consent per channel, “May WhatsApp (marketing)” and similar, WhatsApp window open (24 h)
- Deal: title, value, stage, pipeline, days in stage
- Time (for every trigger): weekday, time, business hours right now, holiday today
- Call: result, direction, number, duration, time, menu, key pressed
- Checks: is · is not · contains · starts with · ends with · is one of · is empty · is set · greater/less than · at least · at most · between · before / after · more than X days ago · in the last / next X days · was changed (to / from). “Between” also works across midnight for times (22:00 to 06:00).
- Every condition needs a value. If it's missing, the spot is red and the flow can't be switched on.
Actions
| Group | Actions (as named in the builder) |
|---|---|
| In the conversation | Assign conversation · Assign automatically (round robin / least busy, optionally only people who are present) · Set priority · Set status · Add label · Remove label · Write internal note · Close conversation (with or without satisfaction survey) · Snooze conversation |
| Send a message | Send reply in conversation (same channel) · WhatsApp message (free text, only in the 24-h window) · Send WhatsApp template · Send email template · Send SMS |
| Contact & CRM | Create task · Add tag · Remove tag · Set contact field · Clear contact field · Increase / decrease number in contact field · Create deal · Set deal stage · Set deal field · Set record field · Notify team member · Run AI agent · Send data (webhook) · Stop other flows for this record |
| AI | AI: classify message · AI: extract data (AI step) |
- Branch by result (optional): an action can get its own paths, e.g. for “sent”, “no consent”, “WhatsApp window closed” or “not done (error or skipped)”. Without a branch the flow always continues after the action — even after an error. Example: free WhatsApp message → path “WhatsApp window closed” → send WhatsApp template.
- WhatsApp template: values for the variables (fixed text or placeholder), template language (empty = the contact's language), sender number and a fallback template if a value is empty (e.g. the name is missing). Every template costs money — Meta bills you directly.
- Reply in conversation uses the same channel and account as the conversation. WhatsApp, Messenger and Instagram only if the customer wrote within the last 24 hours — otherwise the result is “WhatsApp window closed”.
- Create task: due “in X minutes/hours/days”, “at a time (today or tomorrow)”, “tomorrow”, “at the time on the next working day” or “on the next working day”. Type: task, callback, call, email or follow-up. The task goes to the contact's owner; if there is none, to the person under “If the contact has no owner: to”.
- Create deal (with fields since 1.1.53): pipeline and stage (empty = default pipeline, first stage), value in € (a number or placeholder) and who owns the deal (the contact's owner, the conversation's assignee or a fixed person).
- Send data (webhook): sends data to an address of your choice. Since 1.1.53 optionally with your own content (JSON with placeholders) — then it also works without a contact, e.g. in a schedule. The builder warns about invalid JSON, the test run shows the filled-in content.
- Placeholders: “Insert placeholder” puts values into texts, e.g.
{{contact.first_name}},{{conversation.subject}},{{deal.title}}or the result of an earlier step ({{steps.<id>.status}}). - Can't be selected? If the channel (e.g. WhatsApp or SMS) or the AI key is missing, the action shows “not set up”. If the trigger brings no conversation, conversation actions are locked (“needs conversation”).
- Check legal notes first (trip): for actions that send a message you can choose “check deposit”, “check final payment” or “check all notes”. If something doesn't fit (e.g. deposit above 20 % or final payment due too early), the message does not go to the customer and the flow takes the path “legal check failed (not sent)” — there you add e.g. a task (the reminder flows from the industry pack already do this). Applies only to package holidays in Austria and Germany — notes, not legal advice.
- AI agent: runs with your own AI key; the content goes to your AI provider. You choose the model under Settings → AI.
AI step: classify a message or extract data
Since version 1.1.43 the builder has two AI actions. They run on your own AI key and send nothing themselves.
| Action | What it does | Paths afterwards |
|---|---|---|
| AI: classify message | Sorts the latest customer message or the history into 2–8 categories of your own, e.g. “Complaint: customer is unhappy or something is broken”. Minimum confidence adjustable (default 70 %). | one branch per category, plus “AI unsure” |
| AI: extract data | Reads up to 8 values from the message and writes them into fields on the contact, deal or record (e.g. destination, preferred date) — fill empty fields only (default), overwrite or don't write. | “all found”, “partial”, “AI unsure” |
- “AI unsure” branch: if the AI is unsure, the key is missing, the Free limit is reached or the provider doesn't respond, the flow continues here. A human takes over there, e.g. with “Notify team member” or “Assign conversation”. If the branch is empty, the builder warns you.
- Cost per 1,000 runs: below the step you see roughly what it costs on your AI key (for your model).
- Test run: on the AI step you choose “assume a result” (costs nothing) or “really ask the AI” (a real call with your key; nothing is sent or saved).
- Data protection: only values that literally appear in the message are taken — never passport, ID or card numbers, dates of birth or health information; such fields can't be chosen as a target. The run log shows the category or fields, not the message text.
- AI values in messages: if you put an AI result into a message to the customer, the builder points out that the value comes from the AI unchecked.
- Runs in the background: the flow waits a few seconds at the AI step; at most 2 AI steps at a time per account. Without a customer message (e.g. a trigger without a conversation) the step is skipped.
- Limits: Free 1,000 AI steps per month, Cloud Pro and Paid unlimited (counters).
Wait
- A fixed time: minutes, hours or days.
- Until a time of day: e.g. until 9:00, optionally only on certain weekdays.
- Until a date of the contact: e.g. birthday, also days before or after, optionally every year.
- Until the next business hours: based on the channel's opening hours, otherwise the support hours. Holidays count as closed. If it's open right now, the flow continues immediately.
With the box “After waiting, check the if-conditions before it again” the flow ends if they no longer match — e.g. because the conversation has been closed in the meantime. If you change a flow, runs that are already waiting continue in their previous version.
Repeat & stop
- How often? “Only once per record”, “Every time the trigger happens” or “Again, but at the earliest after this many days”.
- Never twice at the same time: if a flow is already running or waiting for a conversation, contact or deal, the same flow doesn't start a second time there.
- Stop running flows when … the customer writes · the conversation is closed · the deal stage changes · the contact unsubscribes. This mainly matters for flows with a wait step: they stop right away.
- Stop other flows: the action “Stop other flows for this record” ends waiting runs of other flows.
- Several flows for the same event run one after the other.
Test run: try it without sending
- Open the “Test run” tab. Under “Test with what?” choose conversation, contact or deal and search by name, email, number or subject.
- “Start test run”. You see step by step what the flow would do now: “Would now: …”, “Would NOT run: …” with the reason, the checked value for every If (“value here: …”) and the time for every wait (“Would wait until …”).
Flow templates
“New flow” → “From a template” opens the “Flow templates” gallery with 25 ready-made flows to adapt, sorted by inbox, phone, deals & customers and marketing. “Use” creates the flow switched off — you check it, test it and then switch it on. If something is still missing (e.g. the name of your WhatsApp template), the field is marked red.
- First message contains a word → label
- No reply after 2 hours → reminder
- Outside business hours → auto reply + task
- Missed call → WhatsApp, SMS or call back
- Key 1 in the voice menu → WhatsApp
- Voicemail → call-back task
- Deal won → thank you via WhatsApp
- Deal 3 days in “Offer” → reminder
- Bad rating → task for the team lead
- WhatsApp window closing soon → note
- Birthday → greeting (only with consent)
New since 1.1.53:
- Welcome on the first message
- Customer silent for 3 days → follow up, then close
- VIP customer writes → high priority + team lead
- Ask for a Google review after the conversation (since 1.1.58, formerly “Good rating → …”)
- New lead in web chat → deal + assignment + task
- Deal lost → get back in touch after 30 days
- Response time missed → urgent + team lead
- English enquiries → to a fixed person
- New deal → tasks to get started
- Deal sits 7 days in a stage → task
- Every Monday: follow up on open offers
- Friday 3 pm: weekly wrap-up for the team
“Appointment tomorrow → reminder” exists since 1.1.58: 24 hours before the appointment a WhatsApp template, and if that doesn’t work, an SMS – through your own WhatsApp or SMS account. “Invoice 7 days overdue → payment reminder” points to dunning (Finance → Settings, section “Payment reminders”), which already sends payment reminders.
Consent: service or marketing
For every action that sends a message, you set under “What is the message for?” what it is:
- Service (reply, reminder, confirmation) — goes to everyone who hasn't opted out of the channel.
- Marketing (only with consent) — via SMS and WhatsApp only to contacts who explicitly agreed (“yes”). Contacts who simply wrote to you don't have marketing consent because of that. Via email with an unsubscribe link, not to unsubscribed contacts.
- WhatsApp templates: the default is “By template type”. If Meta classifies the template as marketing, it always counts as marketing.
- Key press on the phone: if a caller presses “1 for WhatsApp”, that only covers the requested callback — not marketing.
- Older actions without a purpose: email and SMS count as marketing, WhatsApp templates by their type. So set pure service messages to “Service”.
- You can check this beforehand with the conditions “May email/SMS/WhatsApp (service or marketing)” — they follow the same rules as the actions.
- Emails from automations go out through your own mailbox (connect a mailbox). Marketing emails get an unsubscribe link at the bottom automatically, in the contact's language.
- A free-text WhatsApp message only works within the 24-hour window; after that only an approved template.
Limits per plan
| Free | Cloud Pro & Paid | |
|---|---|---|
| Active flows | 5 (+5 per automation pack) | unlimited |
| Steps per flow | up to 20 | up to 200 |
| Longest wait | 30 days | 365 days |
| Runs per hour | 500 | 5,000 (more with automation packs) |
| Log | 30 days | 90 days |
| Reminder flows from the industry pack | 15 additional | unlimited |
| AI steps (your own AI key) | 1,000 per month | unlimited |
- Under “Limits of your plan” the builder shows how many flows are active (e.g. “3 of 5 active flows”).
- Above the limit you just can't switch on more flows. Existing rules stay active, and saving as “Off” always works.
- If the hourly quota is reached, more runs wait a moment and then start on their own — nothing gets lost.
- Protection on all plans: if a flow keeps triggering itself, it is paused (“Loop stopped”).
Log & errors
The “Log” tab of a flow shows every run with all steps, the checked values and the reason. Waiting runs are listed with their time (“Waiting until …”). The “Recent runs” card on Settings → Flows shows all flows and rules together; “Problems only” shows just what didn't work.
| Result | Meaning |
|---|---|
| Done | Everything worked. |
| Waiting | The run is at a wait step and continues at the time shown. |
| Ended | The run was ended with a reason, e.g. “The customer replied” or “The conditions no longer match after the wait”. |
| Skipped | Deliberately not sent, with the reason, e.g. no consent, unsubscribed or no email address. |
| Failed | Something went wrong, with the reason, e.g. “No own mailbox set up” or Meta's message. |
| Slowed down | The hourly quota is reached. The run starts later on its own. |
| Loop stopped | The flow kept triggering itself and was paused. |
- Temporary errors (e.g. provider briefly unreachable) are retried after 1 minute, 10 minutes and 1 hour. If it still fails, the run is “Failed” and the admins get a notification.
- Paused automatically: if a flow fails 10 times in a row, the CRM pauses it (badge “Paused”) and lets you know. Check the flow in the log and then switch it back on.
Simple rules (form)
Older simple rules open with “Edit” in the form (since 1.1.53 new rules are created in the builder): trigger (e.g. “New conversation”, “Every customer message”, “Contact created”, “Deal won”), conditions with AND/OR groups, one or more actions and, under “Run:”, immediately or with a delay (after 1 hour up to after 7 days). The delay applies to all actions of the rule; you see scheduled runs as “Scheduled: N” and stop them with “Cancel all”.
- Existing rules keep running unchanged. “Builder” opens a rule as a flow — if it still fits the form afterwards, it stays a simple rule.
- Flows from the builder open straight in the builder with “Edit”.
- With a delayed rule, the CRM doesn't check the conditions again when the actions run. If you need that, use a wait step with “check again” in the builder.
Example recipes
Rule-based chatbot (WebChat)
Independent of the flows, a simple chatbot answers keyword queries in the WebChat. Under Settings → Chatbot you create “keyword → answer” pairs (e.g. “opening hours” → text). For AI-powered answers from the knowledge base, see the AI assistant (knowledge base).
Troubleshooting
My flow doesn't start
Look at the log first — it shows the reason. Then check (1) whether the flow is switched on, (2) whether the trigger matches the event and its settings are right (e.g. the right result for “Call ended”), (3) under “How often?”, whether the record already ran through once (“Only once”). A test run shows this too.
I can't switch a flow on
Either something is still missing (marked red) or your plan's limit is reached (Free: 5 active flows). Switch another flow off, book an automation pack or move to Cloud Pro or a paid licence. Saving as “Off” always works.
An SMS or WhatsApp didn't go out (“no consent”)
The action is set to marketing — or counts as marketing (SMS without a purpose, WhatsApp template in the Marketing category) — and the contact hasn't explicitly agreed. If it is a service message, set the purpose to “Service”. For WhatsApp templates, the category at Meta decides.
An email from the flow didn't arrive
The log names the reason: no own mailbox, no email address, address blocked or the contact unsubscribed. Unsubscribed contacts only get service emails in a conversation they started themselves.
With “Key pressed in the phone menu” I can't pick a conversation action
That's on purpose: when the key is pressed the call is still running, and there is usually no conversation yet. Use contact actions (e.g. WhatsApp template, task, notification) — or the trigger “Call ended” if you want to do something in the conversation.
My flow shows “Paused”
The last 10 runs failed in a row. Check the reason in the log (e.g. template not approved, channel disconnected), fix it and switch the flow back on.
My welcome message now goes to many more contacts
Since version 1.1.40, “Contact created” fires for every new contact, including those from WhatsApp, email, SMS, calls and bookings. Add an If (e.g. language or company) or switch the flow off.
