Workflow nodes explained

Updated May 22, 2026

Two kinds of step

Every card on the workflow canvas holds two kinds of step. Steps run one after another inside the card and then carry on automatically — you can stack as many as you like. The step under Ends with closes the card and decides where the conversation goes next, so there is only ever one per card.

The steps below are grouped that way: the ones that run one after another first, then the ones that end a card.

Which steps rule out which channels

A workflow belongs to one brand and runs for it in the chat widget, in Facebook and Instagram messages, in email conversations and on phone calls — but some steps are impossible on some channels, and a single one of them takes the whole workflow off that channel. This is the most useful thing to know before you start drawing.

Step Facebook and Instagram Email Phone calls
Write a messageYesYesYes
Collect dataYesOnly for the email addressNo
Ask a questionYesNoNo
Start a formNoNoNo
Request agentYesYesNo
Show expected reply timeYesYesNo
Call an APIYesYesYes
ButtonsYesNoNo
ConditionsYesYesYes
Send to VEX AIYesNoYes
Start a workflowWhatever the workflow it calls allowsWhatever the workflow it calls allowsWhatever the workflow it calls allows
Open linkYesYesNo
Stop — don't replyYesYesNo

The builder marks each offending step with a small warning icon while you draw, and the Channels column on Brand → Workflows shows the finished verdict for the whole script. A workflow a channel cannot run is never offered to the AI on that channel.

Write a message

Sends a line of text to the visitor and moves straight on to the next step. Use it to greet, explain, bridge between sections, or close with "thanks, we will be in touch". You type the message; with Let the AI say it switched off, it is sent exactly as written.

Switch Let the AI say it on and the AI says your message in the visitor's own language, fitted to the conversation — same meaning, nothing added, numbers and links kept. The visitor sees the typing dots first. Your text goes out exactly as written instead when the visitor has not written anything yet, when their daily AI answers are used up, or when the AI cannot do it. Each AI-said message uses credits like an AI answer. On a phone call, the voice AI says it in its own words.

Collect data

Shows the visitor a small form with one field and waits until they send it. First choose What to collect:

  • The visitor's own email address — saved on the visitor's profile. If Yaplet already knows it, the website chat shows it filled in so the visitor confirms or corrects it rather than typing it again.
  • Something else — you then pick the Answer type: Text, Number, Email address (for an address that is not the visitor's own) or Choice from a list (where you type the choices), and fill in Save the answer as if a later step needs the answer. The answer is kept for this run of the workflow only — it is not saved on the visitor's profile. In the chat it appears as the visitor's own message.

Then write the Question the visitor is asked. On Facebook and Instagram the answer is checked before it is accepted — a malformed email, a non-number, or a choice that is not on your dropdown list all get a short "please try again" reply, and dropdown choices arrive as tappable quick replies.

Ask a question

Sends a question and waits for the visitor to write back in their own words. Unlike Collect data it validates nothing and saves nothing on the visitor — it simply waits for an answer and then carries on. Fill in Save the answer as if a later step needs the answer. Good for "tell us a bit more about the problem" before a handoff.

Start a form

Opens one of the intake forms that live on your boards, inside the chat. You pick it from a list grouped by board, so the form and everything it collects stay with the board it feeds. Boards are under Communications → Tickets in the sidebar, one row per board, and a board's own Forms tab is where its forms are built.

Under Fill in from this workflow, text fields can already contain what the workflow has collected. The visitor can still change what appears.

Forms cannot be shown inside Facebook or Instagram messages. If a script reaches this step on one of those channels, the visitor is told the form is unavailable, a human agent is requested, and the workflow stops there.

Request agent

Hands the conversation to your team, and the workflow goes on without waiting. Message to the visitor (optional) is what the visitor reads at the handover; leave it empty and Yaplet sends its default in the visitor's language. Note for the colleague (optional) is added to the conversation as a private note that only your team sees. If a colleague is already in the conversation, the visitor gets no handover message. What the visitor sees next depends on whether anyone with access to this brand is online — see the handoff article at the end.

Show expected reply time

Posts the waiting-time line you chose at Brand → Chat widget → Messages → Reply Time — one of eleven set promises, read by each visitor in their own language. Best placed immediately before Request agent, so the visitor knows what to expect before they start waiting.

Buttons

Shows up to ten buttons under the last message and waits until the visitor taps one. Each button has its own exit on the card — draw the next card from each one. This is the most common way to branch, and the easiest for a visitor to use. Ask the question the buttons answer in a Write a message step above it, and fill in Save the answer as if a later step needs to know which button was tapped. If the visitor types instead of tapping, the buttons disappear and the workflow does not go on.

On Facebook and Instagram the buttons arrive as quick replies under the Text above the buttons on Facebook and Instagram (optional); left empty, they get "Please choose an option:".

Conditions

Branches on its own, with no button click. It checks the branches from top to bottom — If, then each Else if — and takes the first one that matches. If none matches, it takes Otherwise. A branch can check:

  • Facts about the Visitor — country, email, name, language, the Current page, device, browser, number of Sessions, First session, custom attributes and more.
  • Whether your team is Online or Offline right now.
  • The conversation's Channel — chat widget, Facebook / Instagram, email or phone.
  • A Workflow value that an earlier step saved — see Values below.

Conditions combine with AND and OR. There is no condition on the current time or day.

Call an API

Calls your own system in the middle of the conversation, so the workflow can use live data — an order's status, a booking, a stock level. It ends the card, and everything is set in the step:

  • The Method (GET, POST, PUT, PATCH or DELETE) and the Address, which must start with https. While a Call an API step has no address, the workflow cannot be published.
  • Yaplet signature — a shared secret your server also keeps; every call sends its SHA-256 hash in a Signature header, the same way the AI's API tools do.
  • Headers. Switch on Password for a secret such as an API key: it is stored on our servers, sent only to this address, and never shown again.
  • Values to read from the reply — where each value is in the reply, for example order.status, and the name to save it under.

The step goes on through one of two exits: Worked when the call answered with every value it reads, Failed on an error, a time-out or a missing value. If nothing is connected to Failed, the visitor gets an apology and a colleague is asked to take over. The Test button tries the call before you publish. Full walkthrough: Use data from your own system in a workflow.

Keep this clearly separate from API tools. An API tool lives on Brand → Knowledge and the AI decides for itself when to call it. Call an API is a step you place in a script yourself, and it runs whenever the script reaches it. Older workflows may still contain a Custom API action (old) step: it keeps working, but it can no longer be added — rebuild it with Call an API.

Send to VEX AI

Hands the question over to the brand's Vex AI agent, which answers from everything the brand knows. You write the exact question or instruction that is sent — the field is labelled "Instruction for the AI". The brand has to have a Vex agent for this step to do anything; without one there is nobody to hand to.

The AI answers straight away, as one message. On that turn it can look things up, but it will not start another workflow or offer to put the visitor through to a person — so a visitor who just said "No, thanks" to a colleague is not asked again. Their next message is an ordinary AI conversation. If you only need one fixed sentence in the visitor's language, a Write a message step with Let the AI say it on is simpler and cheaper.

Start a workflow

Hands the conversation to another workflow of this brand. This workflow ends there; the other one starts at once with a copy of every value collected so far, and nothing comes back. Its own trigger and filter are ignored. The picker lists this brand's published workflows, so a shared sequence — a standard "collect an email" run, say — can be built once and reused. If the chosen workflow is unpublished or deleted, the visitor gets an apology and your team is asked to take over. Two safeguards: Yaplet stops a chain that goes more than five workflows deep, and it refuses to enter the same workflow twice in one chain, so an accidental loop cannot run away.

Compatibility is inherited. If the workflow you call cannot run on the phone or by email, the one calling it cannot either.

Open link

Opens a page for the visitor right away; nothing is posted in the chat. Two settings: the Address and Open in a new tab. With the new tab switched off, the page replaces the one the visitor is on. On Facebook, Instagram and email the address is sent as text instead.

Stop — don't reply

Ends the workflow without sending anything to the visitor. It is the step for conversations you do not want answered at all — unsolicited sales pitches, spam, topics your AI must stay away from. When the AI starts this workflow, it writes no answer of its own either.

Your team is not left guessing: a private event, "Conversation stopped by workflow", appears in the inbox, with the optional note for your team you set on the step after it. The visitor never sees that event.

It stops this reply only. If the person writes again, the AI decides afresh — and usually stops again. Want to say one thing before going quiet? Put a Write a message step above it. The step is not available on phone calls, because a caller cannot be answered with silence.

Values: reuse an answer in later steps

A workflow can remember things for its later steps. Ask a question, Buttons and Collect data (with Something else) have a Save the answer as field, Call an API saves what it reads from the reply, and some triggers bring values of their own — for example, a User says trigger can have the AI pick values out of the visitor's message.

To use a value, write its name in double braces: {{ order_id }}. Add a fallback after a bar — {{ order_id | unknown }} — and that text is printed when the value is missing. Values are filled into:

  • Write a message
  • Request agent — the message to the visitor and the note for the colleague
  • Open link — the address
  • Start a form — the pre-filled fields
  • Call an API — the address, headers and body

They are not filled into question texts or button labels. Send to VEX AI gets the values you mention as information to use, not pasted into your instruction, and Conditions can check them. The panels of the steps that accept values show a Values you can use here list. A value lasts for one run of the workflow: Start a workflow hands a copy to the next workflow, but a workflow that starts later begins without them.

Next step

Now that you know the steps, see exactly where your script is allowed to run: Where a workflow can run. To hand a conversation to a person properly, read Hand off from a workflow to a human agent.

Did this article answer your question?