The branch-decision contract: from CDP to flows
Two sibling subgroups sit next to each other in the Concepts tree: CDP & Intelligence and AI & Automation. A reader landing on either subgroup’s read this first page still had the same question unanswered: when the capture side says something happened, what is the next thing the action side runs on that fact? The answer was never two separate pages — it is one contract. A branch decision is the pivot where a flow executes one path rather than the alternative: acondition node picks a handle (yes or no,
an intent name, a sentiment bucket, an A/B variant) and the run enters
the routed arm. CDP captures the raw fact (the event, the segment, the
rendered chart); Flows executes the branch on that fact. This page
aggregates the event-narrative (the CDP side of the story) with the
build-branch contract (the automation side) into one carrier.
What the two subgroups actually cover
The two subgroups divide the question cleanly, and whichever one you landed on tells you which half you owe:- CDP & Intelligence covers the capture side — CDP events, rendered output (accounts, identity, segments, scoring, conversations, analytics), and engagement. Capture output is a fact — an event sentence, segment membership, a score — a flow branch can read.
- AI & Automation covers the action side — flows, runs (executions), and follow-ups. Execution output is a next branch and a recorded step trace — not a new CDP fact.
The two flagship pages, one paragraph each
- CDP & Intelligence’s flagship is the Analytics pipeline: a conversation is captured as raw events, the rollup groupings turn those into statistics, and the inference layer turns statistics into the chart a customer reads. Conversation → statistics → inference, in one pipeline, on the same append-only event stream the CDP event model defines; nothing in the subgroup writes over the raw record.
- AI & Automation’s flagship is the Flow execution model: a flow definition becomes a run through the trigger catalog and node semantics, and the executor advances the run node by node through handles until the webhook hand-off or a terminal state closes it. Flow → execution → webhook hand-off, one run over one published version.
The build-your-first-branch contract
The branch you are tempted to insert — a CDP segment read into a flow’s condition — is covered by one template:- The ~30-minute no-ACK window is on the record. A branch on a
sentleg still inside the carrier no-DLR grace window (for SMPP channels; Grace: 30 minutes, per the DLR model: two planes timer contract) flips on a pending fact, not a final fact. The audit row says the segment criterion evaluated at the time the window opened; the branch never claims the stuck leg “delivered” — the most common reason an aggregated read gets muddled. - The page you chose owns the branch. Once you land on either subgroup’s flagship as your gateway, the aggregated page is the carrier that absorbs the flip — your subgroup is the sender of the fact, not the reader of it. A reader who starts by asking “who owns this branch?” avoids the most damaging inversion: a flow branch and a CDP rule each claiming to decide.
- Suspended at the point the ~2-minute run-timer slips. An
execution parked past the per-resume budget (300 s per the
flow-execution model) finalizes as
timeout— afailed: timeoutverdict, notcompleted, and not an in-flight run that somehow “caught up.” A branch that follows a timed-out run without treating the verdict as a hard failure is the second way an aggregated read lies.
Worked chain: the repeat-buyer segment into a flow branch
- CDP leg. The segment read sits on the CDP event
model ingest envelope as input; the
read resolves
trueagainst the tenant-owned gate, so the criterion is a fact rather than a projected state. - Condition → branch. The flow run walks the published version
(the flow-execution model), the
condition node evaluates the criterion, and the
yeshandle wins; the per-resume 300 s budget applies from this hop onward. - Aggregate. The aggregated visit flips the audit row back to
completedon the comparison visit — a completed verdict is a completed verdict, and the group-by-kind chart reads the same row the branch already wrote.
One timeline: no-DLR promotion through the aggregate visit
The no-ACK-no-fallback section
The upstream fallback branch reads the raw segment input (the criterion minted by the CDP ingest envelope) without a new branch emit:- The unconfigured fallback branch. When the raw input says the segment criterion is absent, the chain rejects the flip and the audit row preserves the slate it was given — the fallback is the exception that says “we are not going to assume no-ACK means a maybe.”
The return path
The return path is the same pair of a read surface that reads the raw mandate and the audit row:- The raw mandate is the raw segment input — the criterion minted by the CDP ingest envelope says “same segment, input digest, no failure” without a new emit contract.
- The aggregate read is the external read of the audit row — the group-by-kind visit resolves the flip with no lingering branch, because there is no cross-subgroup exchange in it.
Related
- CDP event model — the append-only event stream the branch query ran on.
- Analytics pipeline — the conversation → statistics → inference chain the aggregate read rides.
- Flow execution model — the run carving the branch and routing it through handles.
- DLR model: two planes — the timer contract the no-ACK caveat protects.