Skip to main content

VIP tag offers

Time: ~15 minutes | Difficulty: Beginner | Type: part of Funnel demos
Finished project: vip-tag-offers. Clone it if you want the working app first — or keep reading and rebuild the same graph.
Everyone buys the same tee. The one-click offer after payment depends on the customer’s CRM tags: a vip tag unlocks a members-only hoodie, everyone else gets a welcome-priced cap. Tags come from your CRM — set them from purchase history, LTV, a loyalty program, or by hand — and the funnel reads them at routing time. VIP tag offers funnel: checkout, then members hoodie for the vip tag or welcome cap for everyone else

What you need

Prices are integer cents (3900 = $39).

The graph

Four steps. The split is two edges out of checkout — the tag edge outranks the always fallback.
The tag family goes further than one tag: customer.hasAnyTag { tags: 'vip,wholesale' }, customer.hasAllTags, and customer.hasTagPrefix { prefix: 'tier-' }. Attribution conditions like customer.fromUtmSource { source: 'facebook' } work the same way if you would rather split by traffic source than by segment.

Same type on the Headless SDK

Self-hosted, the split is one if before you render the offer. The finished project keeps /offer as one route:
Accepting still charges the saved card in one click via processOfferPayment({ offerId, mainOrderId }).
The demo app puts a persona toggle (🆕 new / ⭐ VIP) on the landing so you can walk both branches from one browser — it stands in for the CRM tag lookup. In production, resolve tags from the logged-in customer, or let the hosted funnel edges read them for you.

Paths the customer can take

Every accepted offer appears on thank you as a related order (relatedOrders[]), exactly like the basic post-purchase demo.

Next

Finished project on GitHub

Clone vip-tag-offers and walk both branches in a minute

Basic post-purchase

Start here if this is your first funnel demo

Cart-value upsell

Same split, driven by the real order total

Funnel Orchestrator

Nodes, edges, conditions, priorities