Logic + Data Step — Transform Tap Data and Branch the Flow
Use the Logic + Data step to do math, combine text, and route the tap flow to different steps based on tag data, form input, or the Tapper’s device.
What does it do?
Logic + Data runs behind the scenes — the Tapper sees nothing. It does two things:
- Operations — Compute new values from existing data: add, subtract, multiply, divide, join text, take a substring, or build a list.
- Routing — Compare two values and send the flow to one step if the comparison is true and another if it’s false.
You build it on a visual canvas, adding one node per operation plus an optional routing node.
When should you use it?
- Counters and totals — Increment a visit count or add up amounts stored on a tag
- Personalized text — Combine a first name and a message into a single greeting
- Conditional flows — Show different steps to different Tappers, for example route iPhone users one way and Android users another, or branch on a value the Tapper entered
Inputs you can use
Each operation and comparison can read from:
- KDS / tag fields — Per-tag values from your data structure
- Form fields — Answers from earlier Form Input steps
- Earlier Logic + Data outputs — Results computed by a prior operation
- Dynamic Tap Data — The Tapper’s browser, OS, device, language, or approximate location
- Literal values — A fixed number or string you type in
Operations
| Operation | What it does |
|---|---|
| Add / Subtract / Multiply / Divide | Arithmetic on two numbers |
| Concat | Joins two text values into one |
| Substr | Takes part of a text value (start position + length) |
| Cons | Builds a list value |
Each operation writes its result to a named output, which you can send to:
- Collected data — Available to later steps in this tap (like a form answer)
- A KDS field — Persisted back onto the tag’s data
Routing (branching)
Add a routing node to choose where the flow goes next. Set a comparison — a left value, an operator, and a right value:
==, !=, <, <=, >, >=, IN, NOT_IN
Then pick a true route and a false route. Each route either continues to the next step or jumps to a specific step within this interaction.
How do you set it up?
- In the Interaction Builder, click Add Step → Logic + Data (Actions category).
- Add one node per operation. Choose the input(s), the operand, and where to write the output.
- (Optional) Add the routing node and set the comparison plus the true/false routes.
- Place the step after the data it depends on (for example, after the Form Input it reads).
- Publish and assign the interaction to a Kitetag Group.
Next steps
- Branch on the Tapper’s device with Dynamic Tap Data.
- Persist values across taps with the Supabase Data step.
- See all step types in the Interaction Builder guide.
Last updated 10 Jun 2026, 20:39 -0700 .