ChatSparksManual

DM flows

Build the conversation the bot sends after a trigger fires — single messages, branching questions, and product cards.

A flow is the sequence of messages the bot sends after a trigger fires. Flows live in Flows and are reused across triggers.

Block types

BlockWhat it does
MessageSends a text DM. Supports emoji, line breaks, and one shop link rendered as a card.
QuestionSends a message and waits for the user's reply. The reply is captured to a field (e.g. shade, size, address).
Quick repliesSends a message with up to four tappable buttons. User's tap is captured like a question answer.
BranchSplits the flow based on a captured field or a previous quick-reply choice.
Shop linkSends a tappable TikTok Shop product card. Picks from your catalog.
HandoffStops the bot and notifies the inbox that a human should take over. See Human handoff.
WaitPauses the flow for N seconds or minutes. Use sparingly — TikTok DMs feel fast.
TagAdds a tag to the contact (e.g. vip, shade-too-light). Used in analytics and future targeting.

Anatomy of a good flow

A flow that actually closes orders usually looks like this:

  1. Acknowledge. One short line in the user's language confirming you heard them.
  2. Answer the obvious question first. If they commented PRICE, give the price before anything else. Don't make them ask twice.
  3. Qualify, only if needed. Ask one question to narrow the SKU (What shade are you? / 30ml or 50ml?). Skip if irrelevant.
  4. Send the shop card. With a one-line nudge. Don't restate the price — the card shows it.
  5. Offer a human. A quick-reply button like คุยกับแอดมิน that triggers a handoff.

Avoid: long opening greetings, multi-paragraph product descriptions, more than two qualifying questions, "Did that help?" follow-ups. Every extra message is an exit point.

Tone

ChatSparks is your brand's voice in the DM. The bot should:

  • Sound like a human typing on their phone. Short sentences. Real emoji, not stickers. One emoji per message at most.
  • Use the same language as the comment. Don't reply in English to a Thai comment.
  • Be specific. ฿890 for 30ml, ฿1,490 for 50ml lands better than Pricing varies — check our shop.
  • Never sound automated. Avoid Thank you for your message!, Our team will get back to you shortly, Please find the link below.

When in doubt: read it out loud. If it sounds like a corporate auto-reply, rewrite it.

Branching example

A shade-match flow for a foundation product:

Trigger: keyword SHADE
└─ Message "Hi! ขอบคุณที่สนใจ Foundation ของเรานะคะ 🌿"
└─ Question "ปกติใช้สีอะไรของแบรนด์อื่นคะ?" → save to shade_reference
└─ Quick replies "หรือเลือกจากนี้เลย:"
   ├─ "Fair"     → tag shade-fair    → shop link (Fair SKU)
   ├─ "Light"    → tag shade-light   → shop link (Light SKU)
   ├─ "Medium"   → tag shade-medium  → shop link (Medium SKU)
   └─ "ไม่แน่ใจ" → handoff to admin

Testing a flow before you publish it

Every flow has a Preview button. It opens a chat window that runs the flow against you, with placeholder TikTok user metadata. You can step through every branch without spamming a real account.

If you want a real end-to-end test, comment on one of your own videos from a second account — the trigger will fire and you'll see the real DM.

Editing a live flow

You can edit a flow that's wired to an active trigger. ChatSparks:

  • Applies your edits to new conversations immediately.
  • Lets in-progress conversations finish on the version they started on.

You'll see a small v3 next to the flow name to track versions.

On this page