Workflow Automation — your platform's programmability layer

A visual no-code canvas where every event your platform already publishes is a trigger and every Command your engineers already wrote is an action. SaaS-native, not Zapier-lite.

No-code, SaaS-native, audit-grade

Stop paying Zapier for events you already own.

Workflow Automation is the ninth CleverInit module and the platform's programmability layer. Install it on your tenant and your operations team can chain triggers to actions on a visual canvas — no developer required. Welcome a new customer after a CustomerCreatedV1 event. Dun a failed payment. Nudge a trial three days before it ends. Pause a renewal until a tenant admin approves. Every recipe runs inside your tenant, against the data you already own, with durable execution and full audit.

What makes it different: it is not yet another Zapier. Zapier connects to anything, but it has no knowledge of your data shape. Workflow Automation is opinionated to CleverInit's vocabulary — every installed module contributes its events as triggers and its Commands as actions, automatically. Most workflows never make an outbound network call. The cost per run is near-zero and the integration-quality lottery disappears.

  • Durable execution: process restarts, deploys, and host crashes never lose an in-flight run
  • Per-tenant secrets vault encrypted at rest with the same Data Protection key chain as payment gateways
  • Signed inbound webhooks (HMAC-SHA256) and default-deny SSRF protection on outbound HTTP
  • Workflow versions are immutable — in-flight runs continue against the version that started them
The wow moment

A tenant operator opens the canvas. Drags a PaymentFailedV1 trigger. Wires it to Send Email. Adds a 2-day delay. Adds a Request Approval node. Wires approval to Retry Charge (a Command exposed by the payment-gateways module). Hits Publish. Twenty minutes later a real payment fails — the workflow fires, the email goes out, the approval lands in the tenant admin's inbox, and the retry runs in the same audited MediatR pipeline as every other Command. No engineer touched a keyboard. No external SaaS subscription was added.

Who actually uses this

Four teams stop waiting on engineering.

Workflow Automation pays off for any team whose job is to react to platform state — not just for power users. These are the personas that adopt it on day one.

Operations leads

Automate onboarding sequences, document expiry reminders, weekly digests, and any when-X-happens-do-Y rule that today lives in a manual checklist or a stale spreadsheet.

Customer success

Trial-ending nudges, churn-risk save flows, VIP thank-yous, abuse-report escalation — all with human-in-the-loop approval where judgment matters.

Finance and billing

Failed-payment dunning, invoice-due reminders, renewal post-flight emails. Pause and approve before invoicing edge cases. Full audit trail on every run.

Marketplace and resellers

Bundle vertical-specific templates — fintech onboarding, e-commerce abandoned-cart, healthcare consent — and turn generic CleverInit into a vertical SaaS without changing a single line of code.

Visual canvas. Durable runner. Real audit.

How a workflow goes from idea to live

Authoring is a drag-and-drop graph. Publishing is a typed validation pass. Execution is durable. No engineer is in the loop unless an action's permission requires it.

01

Pick a trigger

Any *V1 event from any installed module. Or a cron schedule. Or a signed webhook. Or a manual Run-now button. Or a sub-workflow invocation.

02

Wire actions on the canvas

Drag actions, conditions, parallel branches, loops, waits, and approval nodes. Connect output ports to input ports. The editor validates as you build.

03

Validate at publish time

No orphan nodes. No accidental cycles. No sub-workflow recursion. No expression that exceeds execution caps. Publish is blocked until the graph is provably safe.

04

Publish and run with durability

A new version goes live. New triggers run against it; in-flight runs continue against their original version. The runner heartbeats every step — process restarts resume from the last checkpoint.

05

Audit every transition

Every step writes input, output, error, duration, and cost. PII is redacted before persistence. Replay any historical run. Dry-run any draft against mock side effects.

This is not Zapier-lite. Zapier connects to anything but knows nothing about your data shape. Workflow Automation knows every event your platform publishes and every Command your engineers wrote. Most workflows never make an outbound network call — they orchestrate platform operations inside your tenant database, at near-zero cost per run.
The step palette

Triggers, actions, control flow, waits, approvals — out of the box.

Six categories ship at v1. Every installed module can contribute more without editing this module — register an action or a trigger from your module's contracts package and the editor surfaces it automatically.

Triggers

  • Event — any *V1 integration event from any installed module
  • Schedule — cron expression in the tenant's timezone
  • Webhook — signed HTTPS POST from a third party
  • Manual — a user clicks Run-now or a sub-workflow invokes this one

Actions

  • HTTP request — SSRF-protected, per-tenant outbound allow-list
  • Send email / SMS / notification — through the host's existing pipelines
  • Invoke any module Command — subject to the runner-user's permissions
  • Invoke an AI Copilot tool — when ai-copilot is installed; degrades gracefully otherwise

Control flow

  • Condition — boolean expression with True / False ports
  • Switch — multi-branch on a discriminator value
  • Parallel + Join — fan out N branches, wait per configured policy
  • ForEach + While — bounded loops with iteration caps

Wait

  • Wait for duration — sleep N seconds / minutes / hours / days
  • Wait until timestamp — sleep until an absolute templated time
  • Wait for event — sleep until a correlated event arrives on the bus
  • All waits are durable — they survive process restarts and deploys

Human-in-the-loop

  • Request approval — notify a designated role or user
  • Configurable approval timeout (default 7 days)
  • Approve / deny / timeout each take a different output port
  • Approval and denial both record full audit entries

Composition

  • Invoke sub-workflow — synchronous (wait for output) or asynchronous (fire-and-forget)
  • Emit custom event — typed against a declared schema, consumed by other workflows or insights
  • Set variable — assign from a templated expression
  • End success / end failure — typed termination with a final payload
EXTEND

Every module makes the palette richer

When customers, invoicing, payment-gateways, chat, or any future module ships, its events become triggers and its Commands become actions. No edits to Workflow Automation. No coordination. The palette grows with your marketplace.

Built-in templates

Ship a working automation in minutes, not weeks.

Each template is a complete, working workflow you can clone into your tenant in two clicks. The template is hidden in the editor if a required source module isn't installed.

CUSTOMERS

Onboarding welcome sequence

CustomerCreatedV1 → wait 1 hour → email → wait 3 days → email

A two-touch welcome sequence that warms up a new customer without spamming their inbox. Drop in your brand template and publish.

PAYMENTS

Failed-payment dunning

PaymentFailedV1 → email → wait 2 days → if unpaid → request approval → retry charge

Recover failed payments without writing a single line of code. The retry runs through your payment-gateways module's existing Command, with full audit.

SUBSCRIPTIONS

Trial-ending nudge

Daily 09:00 → query trials ending in 3 days → for each → email

A scheduled trigger queries subscription-manager for trials about to end, then sends a personalised nudge to each customer in their locale.

RETENTION

Churn-save flow

AnomalyDetectedV1 (ChurnRiskScore > 80) → email → wait 1 day → request approval → discount offer

When insights flags a churn risk, this workflow warms the customer up first, then asks a CSM whether to approve a retention discount before sending it.

INVOICING

Subscription renewal post-flight

SubscriptionRenewedV1 → email invoice → if customer tagged vip → send thank-you SMS

Close the loop after every successful renewal. VIP customers get an extra personal touch automatically — no human picks up the phone.

INSIGHTS

Insights weekly digest

Monday 08:00 → query insights → if ai-copilot installed → summarise → email recipients

A weekly summary email of platform health, automatically summarised by AI Copilot when installed. When it isn't, the digest still ships with raw numbers.

Trust by design

Guardrails an enterprise tenant can defend on a compliance call.

Durability, encryption, signed webhooks, default-deny outbound, per-tenant quotas, and snapshotted permissions — every guardrail is on by default and surfaces in the audit log.

Durable execution

Every step transition is persisted before the step starts and after it completes. A process restart, deploy, or host crash never loses an in-flight run — the runner replays from the last checkpoint with idempotency keys protecting side effects.

Secrets encrypted at rest

Workflow secrets (API keys, HTTP basic auth, OAuth tokens) are AES-256 encrypted with ASP.NET Core Data Protection — the same key chain as the payment-gateways module. Plaintext is resolved only inside the runner's request scope, never logged, never returned by the API.

Signed webhooks (HMAC-SHA256)

Inbound webhook triggers verify HMAC-SHA256 signatures over the request body before any step executes. The signing secret rotates on a tenant operator's command. Unsigned or wrong-signed requests get 401 — never a partial run.

Default-deny SSRF protection

Outbound HTTP denies private IP space and DNS-rebinding attacks by default. The runner resolves hostnames once, binds the socket to the resolved IPs, and rejects anything on the deny-list. Per-tenant allow-lists open specific internal hosts only when explicitly configured.

Per-tenant quotas

Concurrent runs, daily run cap, per-workflow concurrency, outbound HTTP rate limits, max steps per workflow, max nesting depth, max run duration, max payload size. Every cap is configurable. Breaches publish WorkflowQuotaBreachedV1 for monitoring.

Snapshotted permissions + audit

A workflow runs with its owner's effective permissions captured at trigger time. Every publish, run, approval, secret rotation, and quota change writes an immutable audit entry. Replay any historical run for forensics or debugging.

Install Workflow Automation. Replace three SaaS subscriptions.

Install from your marketplace, pick a built-in template, and a failed-payment dunning, a trial-ending nudge, or a weekly digest can be live on your tenant before lunch — running on the durable engine, against the data you already own.

Install Workflow AutomationTalk to engineering

Build smarter. Launch faster. Scale effortlessly.

Tell us where you want to take your business. We'll show you the fastest path to get there — whether you want a fully managed platform, a custom module built exclusively for your tenant, or a fully branded product to sell to your own clients.