Two kinds of action
Every card on the workflow canvas holds two kinds of step. Regular Actions run one after another inside the card and then carry on automatically — you can stack as many as you like. Final Actions close the card and decide where the conversation goes next, so there is only ever one per card.
The steps below are grouped that way: regular actions first, then final actions.
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, 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 | Phone calls |
|---|---|---|
| Write a message | Yes | Yes |
| Collect data | Yes | No |
| Ask a Question | Yes | No |
| Start Form | No | No |
| Request agent | Yes | No |
| Show expected reply time | Yes | No |
| Custom API action | Yes | Yes |
| Buttons | Yes | No |
| Conditions | Yes | Yes |
| Send to VEX AI | Yes | Yes |
| Start Workflow | Whatever the workflow it calls allows | Whatever the workflow it calls allows |
| Open link | Yes | No |
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.
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 and nothing else — it is sent exactly as written.
Collect data
Asks for one piece of information and stores it. First choose what you are collecting:
- Customer email — stored on the visitor's profile. If Yaplet already knows this person's email address, the step is skipped automatically rather than asking again.
- Custom data — you then pick the Input type: Text, Number or Dropdown (where you type the list of choices), and give it an Attribute name. That name is what the answer is stored and shown under, and the visitor sees it too.
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 stores nothing against the visitor — it simply waits for an answer and then carries on. Good for "tell us a bit more about the problem" before a handoff.
Start Form
Opens one of the intake forms that live on your boards, inside the chat. You pick it from a list that reads "Board name — Form name", 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.
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. You can write your own message for the moment of handover, or leave it empty and Yaplet uses its default. 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 configured at Brand → Chat widget → Messages → Reply Time Text. Best placed immediately before Request agent, so the visitor knows what to expect before they start waiting.
Custom API action
Calls a web address of yours in the middle of the conversation, so the bot can answer with live data from your own systems. Two settings: the POST API url and an optional Authorization header. Yaplet sends a JSON request containing the session id and every value the script has collected so far, each under the attribute name you gave it — the settings panel lists those names for you.
If your endpoint answers with JSON containing a message string, that text is posted to the visitor as the bot's next line. If it does not — no reply, a network error, or JSON without a message — Yaplet requests a human agent instead, so the conversation never dead-ends on a broken integration.
Keep this clearly separate from API tools. An API tool lives on Brand → Knowledge and the AI decides for itself when to call it. A Custom API action is a step you place in a script yourself, and it runs whenever the script reaches it.
Buttons
Presents up to ten clickable buttons, each its own branch — draw the next card from each button. This is the most common way to branch, and the easiest for a visitor to use. On Facebook and Instagram the buttons arrive as quick replies.
Conditions
Branches on its own, with no button click, using If / Else if / Else. You can test:
- The visitor's Country.
- The visitor's Email.
- First session — before or after a date, so you can treat new and long-standing visitors differently.
- Sessions — more or fewer than a number of visits.
- Whether your team is Online or Offline right now.
Conditions combine with AND and OR. There is no condition on the current time or day, and none on the page the visitor is looking at.
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 "Question to ask the AI Model". The brand has to have a Vex agent for this step to do anything; without one there is nobody to hand to.
Start Workflow
Sends the conversation into another workflow. The picker lists the switched-on workflows in your organisation, so a shared sequence — a standard "collect an email" run, say — can be built once and reused. 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, the one calling it cannot either.
Open link
Sends the visitor a clickable link. Two settings: the address and whether it opens in a new tab. On Facebook and Instagram it is sent as plain text, because the link card is a chat-widget thing.
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.