Product · Flow Builder

Design the play. Publish when it's right.

A drag-and-drop canvas for designing retention campaigns with triggers, time delays, branches, milestones and rewards. Once your data is connected, your marketing team builds and changes flows without developers — versioned, validated and testable before a single customer sees anything.

Trigger Condition Action Delay
published · v3
Trigger
order.completed
│
Condition
purchase_count == 5
├ true└ false → end
Action
Award badge · Gold
Delay
wait 10 min
│
Action
WhatsApp · reward_msg
Configure · WhatsApp message
Template
reward_msg · approved
Variables
{ participant.first_name }
{ badge.name }
Preview
Sindi, your 5th order — Gold unlocked 🏅

What starts a flow

Start from a sale. Or from a silence.

A flow can begin with something a customer did, or with something they stopped doing.

Events from your systems

An order, a visit, a check-in, a review. Filter on anything in the event, such as order value or branch.

Signals from Flyhalf

A customer went quiet for 30 days. A streak is about to end. A lapsed customer came back. See the signals

A time of the week

A schedule in your own time zone, for every customer or for one segment: an offer to regulars who are going quiet, every Tuesday at 14:00.

Something outside your business

Broadcast one event to a whole segment from any system: it is raining over one store, so that store's locals get free delivery.

Test mode

Dry-run against a real event. Watch the path light up.

Pick a sample event, hit run, and the canvas replays exactly which nodes fired and why — with rendered messages, never sent. The same trace you'll use in production support.

RUN TRACE simulated
00.00sTrigger matchedorder.completed · evt_sample_02
00.01sCondition → truepurchase_count = 5
00.02sBadge awardedgold_5th · not persisted (dry run)
00.02sDelay scheduled+10 min · skipped in simulation
00.03sMessage renderedwhatsapp · reward_msg · preview

Built for production

Boring in all the right places.

Draft → published, versioned

Edit safely while v3 keeps running. Publishing shows a diff summary of what changes.

Validation pinned to nodes

Missing template? Unreachable branch? Errors sit on the node that caused them, not in a toast.

Variable tokens

Reach into any payload with { event.payload.total } — autocompleted from your real events.

Never a blank canvas

Start from a template and adapt it, from a welcome reward to a win-back for customers who have gone quiet.

Template gallery

Plays to start from.

Nth-purchase badgeAward a badge on a customer's Nth purchase — the classic "Gold after 5th order". Swap the badge key and message template for your own before publishing.3 nodes
Streak keeperReward a 7-day check-in streak with points and a badge, and stamp the streak on the participant profile. Points double as leaderboard movement.5 nodes
Prize-draw entryEvery qualifying order earns a prize-draw entry (tracked as a quest step) plus a confirmation message. Structure the draw as a promotional competition per CPA s36 — free entry route + published rules.4 nodes
Win-backAfter a purchase, wait 14 days — if no new order lands in that window (cancel_if), send a win-back offer with bonus points. The wait cancels itself when the customer returns on their own.4 nodes
Leaderboard podiumWeekly podium ceremony: badge, bonus points and a shout-out for top finishers. Uses a schedule trigger — the per-tenant scheduler that creates runs from schedule triggers ships in a later phase; publish now, it arms automatically when scheduling lands.6 nodes
Referral chainWhen a referral converts, reward the referrer with points and a badge, tag their profile, and notify them — referrals compound when the reward is instant.5 nodes
Welcome pointsWelcome someone with 25 points, once per customer. Choose your joining activity before publishing.1 node
Repeat-activity bonusGive 50 points after 3 activities within 30 days, once per customer. Choose an activity that represents one completed action.2 nodes
Milestone badgeAward a badge after 5 activities within 365 days. Choose your activity and an existing badge; activity counts are not distinct-order counts.2 nodes
Thank-you messageSend a saved email after an activity, once per customer. Choose your message and check permission and channel setup.1 node
Prize draw entryAdd one entry to a prize draw, once per customer. Choose your activity and replace the unset draw before publishing.1 node
Return-visit reminderWait 14 days after an activity; cancel if the customer returns, otherwise send an email. Choose your activity and message. Delay execution needs the queue worker.2 nodes