Flow nodes
Every block you can drop into a flow — Send Message, Wait for Reply, Timer, Condition, Human Handoff — and when to use each one.
A flow is built from nodes. Each node is one step the bot takes. This page is the reference for every node, when to use it, and the common mistakes.
For higher-level flow design — tone, branching strategy, how a good flow is shaped — see DM flows.
The node palette
Open any flow in the editor. Click Add a node to see the palette:
| Node | What it does |
|---|---|
| Reply | Posts a public comment reply on the triggering comment. |
| Send Message | Sends a DM text to the contact. |
| Wait for Reply | Pauses the flow until the contact replies in DM. |
| Timer | Pauses the flow for a fixed amount of time. |
| Condition | Branches the flow based on a tag or field. |
| Human Handoff | Stops the bot and routes the conversation to a teammate. |
You can chain these in any order, with as many branches as you need.
Reply
A Reply node posts a short public reply under the original comment that triggered the flow.
- Only useful when the trigger is a comment trigger (not a DM trigger).
- Keep it short and in the same language as the comment.
- Up to five rotating variants per node so your replies don't all look identical.
Common use: acknowledge the comment publicly so other viewers know to check their DMs (ส่งราคาให้ทาง DM แล้วค่ะ ✨).
Send Message
A Send Message node sends a DM text to the contact. This is the most common node in any flow.
- Supports emoji and line breaks.
- Up to five variants per node — Tuku rotates between them so identical buyers don't see identical DMs.
Common use: anything you'd say in a DM. Greetings, prices, product specs, follow-up nudges.
Avoid: multi-paragraph product descriptions. One short message lands better than one long one.
Wait for Reply
A Wait for Reply node pauses the flow until the contact replies in DM.
| Option | What it does |
|---|---|
| Save reply to field | Stores whatever the contact types in a named field (e.g. shade, size, address). Use it in later nodes via {shade}. |
| Quick replies | Up to four tappable buttons. The contact's tap is captured like a text answer. |
| Free-text fallback | If the contact types something that doesn't match a quick reply, you decide what happens next. |
| Timeout | If they don't reply within the timeout (default 24 hours), the flow either ends or branches. |
Common use: ask for shade/size, capture an email, confirm an address.
Avoid: asking more than two questions in a row. Each question is a place buyers drop off.
Timer
A Timer node pauses the flow for a fixed duration before continuing.
- Range: 1 minute to 7 days.
- Survives server restarts — set a 24-hour follow-up and you can trust it'll fire.
- The contact does not see anything while the timer runs.
Common use: a "still thinking?" follow-up an hour after the first DM. Or a 24-hour nudge if they haven't ordered yet.
Avoid: more than one timer in a single flow. The bot starts to feel ghostly.
Timers continue to consume a flow slot. If a contact is sitting in a 24-hour timer and a new trigger fires for them, the new trigger is queued until the current flow ends.
Condition
A Condition node branches the flow based on a tag or field captured earlier.
| Operator | Reads like |
|---|---|
| Has tag | Has tag: vip |
| Does not have tag | Does not have tag: refund-pending |
| Equals | shade equals: Fair |
| Contains | address contains: Bangkok |
| Is not empty | email is not empty |
A Condition node always has a Default branch that fires when no other branch matches. Don't leave it empty unless you really mean "do nothing."
Common use: route a buyer who answered Fair to the Fair-shade message, Light to the Light message, etc.
Human Handoff
A Human Handoff node stops the bot, marks the conversation as Human, and routes it to the inbox.
| Option | What it does |
|---|---|
| Hand off to team | Conversation lands in Unassigned humans. Anyone on the team can claim it. |
| Assign to teammate | Conversation is assigned directly to a specific teammate by name. |
| Pre-fill an internal note | A short note (visible only to your team) is attached to the conversation when handoff fires. |
After a handoff node:
- The bot will not send any more DMs on this conversation, even if a new trigger fires.
- The flow is considered ended for this contact.
- If you click Hand back to bot in the inbox, the bot resumes from the node after the handoff (rarely useful — most handoffs are terminal).
See Human handoff for the inbox-side experience.
Versioning
Every time you publish a flow, Tuku saves a version. You'll see v3 next to the flow name.
- New conversations always use the latest published version.
- In-progress conversations finish on the version they started on.
- You can roll back to any older version from Flow → Version history.
This is what lets you safely edit a live flow without breaking conversations mid-DM.