Flow nodes
Every step you can drop into a flow — messages, images, links, questions, branches, timers, and handoff — and when to use each.
A flow is built from nodes. Each node is one step the bot takes. This page is the reference for every node and when to use it.
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 and add a node from the palette:
| Node | What it does |
|---|---|
| Reply | Posts a public comment reply on the triggering comment. |
| Send Message | Sends a text DM to the contact. |
| Send Image | Sends an image in the DM. |
| Send Link | Sends a tappable link — your shop, a product page, a form. |
| Share Post | Shares one of your TikTok posts straight into the DM. |
| Q&A Card | Sends a card of common questions the buyer can tap to get instant answers. |
| Quick Reply | Sends a message with tappable buttons. |
| Wait for Reply | Pauses the flow until the contact replies in DM. |
| Wait for Follow | Pauses until the contact follows you, then auto-sends the next step. |
| Capture Field | Saves the contact's answer into a named field for use later. |
| Timer | Pauses the flow for a fixed amount of time. |
| Condition | Branches the flow based on a captured field, a tag, an earlier answer, or follower status. |
| 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 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.
- Add a few rotating variants so your replies don't all look identical.
Common use: acknowledge the comment publicly so other viewers know to check their DMs (ส่งราคาให้ทาง DM แล้วค่ะ ✨).
Order it after your DM. If a flow both DMs and replies, put the Send Message node before the Reply node. TikTok won't always let the DM through (not every commenter is eligible), and a DM that can't be delivered stops the flow — so a Reply placed after it only posts once the DM has actually gone out. That way you never publicly tell someone to "check their DMs" when no DM was sent.
Send Message
A Send Message node sends a text DM to the contact. This is the most common node in any flow.
- Supports emoji and line breaks.
- Add a few variants so identical buyers don't see identical DMs.
Common use: greetings, prices, product specs, follow-up nudges.
Avoid: multi-paragraph product descriptions. One short message lands better than one long one.
Send Image
A Send Image node sends an image in the DM — a product photo, a shade chart, a price list graphic.
Common use: show, don't tell. A clean price-list image often answers more questions than a paragraph.
Send Link
A Send Link node sends a tappable link to wherever the buyer should go next — your shop, a product page, an order form.
Common use: the "buy now" or "order here" step at the end of a flow.
Share Post
A Share Post node shares one of your TikTok posts straight into the conversation.
Common use: point a buyer to the exact video that shows the product, or to a related launch.
Q&A Card
A Q&A Card node sends a card of common questions. The buyer taps a question and gets the answer instantly, without typing.
Common use: the top three or four FAQs for a product — shipping, sizing, ingredients — so the bot answers them before a human is needed.
Quick Reply
A Quick Reply node sends a message with tappable buttons. The buyer's tap decides what happens next.
Common use: ask a constrained question (Fair / Light / Medium) and branch on the answer instead of parsing free text.
Avoid: more than four buttons. Keep choices simple.
Wait for Reply
A Wait for Reply node pauses the flow until the contact sends a DM reply.
Common use: ask an open question and wait for the buyer to type their answer before continuing. Pair it with Capture Field if you want to store what they say.
Avoid: asking more than two questions in a row. Each question is a place buyers drop off.
Branching on the reply
A Wait for Reply node can route to different next steps based on what the contact types. Add response routes, each with a keyword and a match type:
- Contains — the reply contains the keyword anywhere.
- Equals — the reply is exactly the keyword.
Both are case-insensitive, like trigger keywords. A Default (any other reply) route catches everything that matches none of your keywords — use it so a reply you didn't anticipate still goes somewhere. The node card shows how many response routes are configured.
Response routes offer Contains and Equals only — there's no Starts with here (that's a trigger-only option).
Wait for Follow
A Wait for Follow node (the "follow gate") pauses the flow until the contact follows your TikTok account, then automatically sends whatever comes next — the classic "follow to unlock the link/discount" reward.
TikTok has no "they followed you" webhook, so Tuku quietly checks follower status every few minutes. The moment someone follows, the reward sends — usually within minutes, with no reply needed from them.
The node has two branches:
- Followed — fires the instant they follow. Put the reward here (the link, code, or freebie).
- Didn't follow — fires if they never follow before the node gives up. Leave it empty, or send a polite sign-off.
You configure:
- Give up after — how long to keep waiting before taking the Didn't follow branch.
- Reminder DMs — optional nudges sent while they haven't followed yet, a set number of hours apart, up to a maximum you set. Set the maximum to 0 for no reminders (the node then just waits and gives up).
The editor shows a live timeline preview of exactly when each reminder and the give-up moment will fire.
Common use: "Follow us and the discount unlocks automatically 👀" — then the code lands the second they tap Follow.
Avoid: aggressive reminder cadences. One or two nudges is plenty; more reads as spam.
Capture Field
A Capture Field node stores the contact's answer into a named field (e.g. shade, size, address, email). You can reuse it later in the flow as {shade} and read it on the contact's profile.
Common use: capture a shade, size, or email so your team has it ready when they pick up the conversation.
Timer
A Timer node pauses the flow for a fixed duration before continuing.
- Survives server restarts — set a 24-hour follow-up and you can trust it'll fire.
- The contact doesn't see anything while the timer runs.
Common use: a "still thinking?" nudge an hour after the first DM, or a next-day reminder if they haven't ordered.
Avoid: more than one timer in a single flow. The bot starts to feel ghostly.
Condition
A Condition node branches the flow based on something Tuku already knows about the contact:
- a field you captured earlier (
shade,size), - whether they have a tag (
vip) or don't have a tag, - whether they're a follower or not a follower of your account.
A Condition always has a Default branch that fires when nothing else 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, and so on — or send existing followers the reward directly while non-followers go through a Wait for Follow gate first.
Human Handoff
A Human Handoff node stops the bot and routes the conversation to the inbox for a teammate to take over.
After a handoff node:
- The bot won't send any more DMs on this conversation.
- The flow is considered ended for this contact.
See Human handoff for the inbox-side experience.
Editing a live flow
Each flow has a draft you edit and a published version that runs. Make your changes in the draft, then publish when you're ready — that's what swaps the live behaviour over. Until you publish, your edits don't affect any real conversations.