SabFlow is a graph-based execution engine wrapped in a designer that feels closer to Figma than to Zapier. You start with a trigger — a WhatsApp message, a Shopify webhook, a CRM stage change, a cron — and drag nodes onto the canvas. Send Template, Wait, Branch, HTTP Request, AI Generate, Assign Agent, Update Field, Add Tag, Goto: each node has typed inputs, retry policy and timeout. The runtime serialises every execution to durable storage so a flow that started yesterday can resume after a deploy, a crash, or a 24-hour wait window.
Branching is first-class. A Branch node evaluates JSONPath expressions against the flow context — `{{contact.tags}}`, `{{order.total}}`, `{{lastMessage.intent}}` — and routes execution down the matching path. You can split on geography, plan tier, language preference, last-seen timestamp, or any custom field. Branches nest, loops are explicit (with bounded iteration), and dead-letter paths catch anything unhandled.
Because SabFlow runs inside SabNode, every node has zero-config access to the rest of the platform: send a WhatsApp template using your verified BSP, trigger an email through the same audience filter you built for broadcasts, drop a contact into a Kanban stage, or hand the conversation to a live agent with full context. There is no glue code, no auth juggling, no rate-limit accounting — it is one system speaking to itself.
For technical teams there is an escape hatch on every node. HTTP Request talks to any REST endpoint with retries and exponential backoff. AI Generate calls your tenant-scoped model from AI Studio with tool-calling enabled. Script (sandboxed JavaScript) lets you transform payloads in-place. And the whole graph is exportable as JSON, version-controlled and diffable in pull requests if you want a GitOps workflow.