Orchestrate & embed durable DAG workflows in your SaaS.
Ship a complete visual automation platform with @xyflow/react, an isolated BullMQ + PostgreSQL execution worker, AES-256-GCM AAD credential encryption, and a drop-in React embed SDK.
{
"provider": "openai",
"model": "gpt-4o-mini",
"priority": "P0_ENTERPRISE",
"brief": "Account upgraded ($640/mo). Provision dedicated onboarding.",
"tokensUsed": 162
}Triggers, IF/ELSE, Transform, Delay, HTTP, Resend, Slack & AI
Key-versioned envelope vault bound to tenant + resource AAD
Blocks RFC1918, loopback, link-local & DNS rebinding attacks
Owner, Admin, Developer, Editor & Viewer + scoped API keys
Engineered like a real distributed control plane—not a mockup.
Every stage of a workflow lifecycle is backed by strict Zod schemas, PostgreSQL transactional state transitions, and isolated BullMQ worker processes.
Topological DAG Planner & Version Pinning
Validates node graphs with Kahn's cycle-detection algorithm, compiles execution waves, and snapshots an immutable SHA-256 checksummed version so in-flight runs never break when drafts change.
Durable BullMQ Worker & Non-Blocking Delays
Dispatches runs to an independent worker service. Delay nodes persist WAITING state and schedule delayed BullMQ jobs—freeing worker threads immediately and recovering interrupted runs on restart.
Just-in-Time AAD Decryption & Expression Engine
Resolves {{ trigger.payload.* }} and {{ nodes.<id>.output.* }} tokens safely without eval(), decrypts bound vault credentials in worker memory, and redacts secrets from all execution logs.
Test outbound HTTP requests against the built-in SSRF guard
Because tenants configure custom webhook & HTTP URLs, every outbound request resolves DNS and blocks private, loopback, and cloud metadata IPs before opening a socket.
Bind upstream node outputs declaratively
Click any token expression below to inspect how the runtime resolves upstream execution context while blocking __proto__ and constructor traversal:
Drop a white-label workflow studio straight into your SaaS.
Mint short-lived, workspace-scoped emb_v1.* tokens on your backend and render <WorkflowBuilder /> in edit or read-only view mode for your customers.
import { WorkflowBuilder } from "@shiptemplates/workflow-embed";
export function CustomerAutomationTab({ embedToken }: { embedToken: string }) {
return (
<WorkflowBuilder
apiBaseUrl="https://workflows.your-saas.com"
embedToken={embedToken} // emb_v1.<payload>.<hmac_sha256>
workflowId="wf_stripe_vip_routing"
mode="edit"
permissions={["workflow.read", "workflow.write", "workflow.execute"]}
theme="dark"
/>
);
}11 production-hardened nodes included
Every node ships with strict input/output/config Zod schemas, timeout enforcement, and retry policies.
trigger.webhookTriggersHMAC Webhook Trigger
Constant-time HMAC-SHA256 verification with 300s timestamp replay guard.
trigger.scheduleTriggersIANA Cron Schedule
Timezone-aware cron expressions with duplicate-dispatch protection.
trigger.manualTriggersManual / SDK Trigger
One-click studio run or programmatic execution via stk_live_* API keys.
logic.if_elseLogicIF / ELSE Branching
Declarative multi-operator condition evaluation routing true/false handles.
logic.transformLogicDeclarative Transform
Shapes and maps upstream JSON payloads using safe path expressions.
logic.delayLogicNon-Blocking Delay
Persists WAITING state and schedules a BullMQ delayed job without blocking threads.
ai.text_generateAIMulti-Provider AI Node
Unified OpenAI, Anthropic, and Gemini adapter with structured JSON mode & token metering.
action.httpActionsSSRF-Guarded HTTP
Full REST client with DNS-rebinding & private IP blocking plus vault auth injection.
action.email_resendActionsResend Transactional Email
Sends HTML/text emails via Resend with execution-scoped idempotency keys.
action.slackActionsSlack Channel Dispatch
Posts formatted alerts and threaded updates to Slack channels via bot tokens.
utility.logUtilitiesStructured Audit Logger
Writes structured telemetry to execution_logs with automatic secret redaction.
Ready to wire your first multi-tenant workflow?
Open your workspace dashboard, launch a pre-wired blueprint on the visual DAG canvas, and execute it against the live PostgreSQL & BullMQ runtime.