ThorStackThorStack
Workflows

Event triggers

Start workflows from module events, webhooks, schedules, or manual kicks.

Trigger types

TriggerFires on
ScheduleA cron expression. Per-tenant timezone.
Module eventA change inside ThorStack — deal stage moved, invoice paid, order shipped, etc.
WebhookAn HTTPS POST to a tenant-scoped URL. Signed with HMAC-SHA256.
Email-inA unique +inbox address per workflow; the email body becomes the payload.
ManualA "Run now" button on the workflow page.

Module events

Every module emits structured events. The most common:

ModuleEvents
CRMdeal.created, deal.stage_changed, contact.created, activity.logged
Commerceorder.created, order.fulfilled, inventory.low, refund.requested
Financeinvoice.sent, invoice.paid, bill.due_soon, expense.captured
Marketingcampaign.scheduled, post.published, audience.changed
Workspacemail.received, meeting.declined, task.completed

A trigger can filter on event payload — e.g. only fire order.created if order.amount > 500. Filters use the same expression language as Conditional steps.

Webhooks

Inbound webhook URLs look like https://api.<your-tenant>.thorstack.com/wh/<workflow-slug>. Each carries an HMAC-SHA256 signature in the X-ThorStack-Signature header. Verify it server-side before accepting the payload.

Outbound webhooks (workflow nodes that POST to external URLs) sign the same way; the receiver verifies.

Idempotency

Every event carries an event_id. If a trigger fires twice with the same id (e.g. a webhook retry), the second run is deduplicated — only the first becomes a real run. This makes "retry until 2xx" safe on the producer side.

Next

Ready for a stack
built around you?

Every ThorStack deployment starts with a 30-minute call. Tell us how you operate — we'll show you what your stack would look like.