Workflow automation
Current release · Updated October 2, 2026
Build a draft, publish a version and follow durable execution history.
Create and publish
Open Automation - Workflows and create a named draft. Use one trigger and connected actions on the canvas. Save validates the graph shape; Publish as an administrator validates node settings and creates an immutable version, then activates it. Exactly one trigger is allowed, all nodes must connect to it and cycles are rejected. A condition may branch to unique true/false outputs; other nodes have one outgoing path. Up to 100 nodes and 150 edges are supported.
Triggers and actions
Triggers are manual, business event, schedule interval or webhook. Schedule intervals are 1-525,600 minutes. Wait pauses for 1-2,592,000 seconds and persists state instead of keeping a worker open. Conditions support equality, inequality, numeric comparisons, contains and exists. Set adds values to context; log records output.
CRM create/update validates the same record schemas and relations as the app. Finance create makes only a draft. HTTP uses a public destination and stored credentials; private/local destinations and unsafe redirects are blocked. Use the credential vault for bearer/basic/custom-header values. These are outbound provider credentials, not API keys for DryKraft.
Expressions and event data
Use {{record.data.name}} to insert a field from an event record, {{record.id}} for its ID, and context paths from preceding work where available. Exact path expressions retain the original type; expressions inside text become text. Finance templates also supply today and dueIn30Days. Missing paths resolve to an empty string. Check a run’s node input/output rather than assuming a value exists.
Record changes use crm.<object>.created/updated/deleted; a newly won deal also emits crm.deals.won. Finance emits invoice/expense creation/update and state/payment events. Team invitations and member lifecycle emit workspace events. Audit and event dispatch share committed business changes.
Runs, pauses and recovery
Run uses the published version, not unsaved draft changes. Execution history shows queued, running, waiting, retrying, succeeded, failed or cancelled, with node attempts and errors. Pause stops future triggering; existing execution control is separate. Cancel an unfinished run to stop further work, but an already accepted external side effect cannot be recalled. Review the provider before retrying a failed/ambiguous external action.
Workers use Redis queues and PostgreSQL state for dispatch/recovery; CRM step mutation and completion commit together to avoid duplicate completed work. There is a bounded event chain depth of 16. Published versions stay immutable. Managed Outreach campaigns/AI workflows are controlled from Outreach and cannot be bypassed through this general editor.
Incoming webhook
Create or rotate the workflow hook URL as admin, configure a webhook trigger and publish/activate it. The URL token authorizes execution; keep it private. POST a JSON object. Supply Idempotency-Key for safe retries of identical payloads; the same key with different data is rejected. Rotating the token invalidates the previous URL. Hooks accept at most 512 KB and share the auth/hook limit of 30 requests per 15 minutes.
