A visual builder for the "run this on a schedule / on a webhook / when something happens" workflows you'd otherwise write a cron job, a Zapier zap, or a bash script for. HTTP calls, routers, waits, notifications, sends — on one canvas, with real-time testing and variable passing between every step.
Waits wait. HTTP calls fire. Each step's output feeds the next. The canvas lights up exactly as a real run would experience it.
Start on a schedule (cron + timezone), a webhook from any system, or one of the built-in contact events. Your flow fires when reality matches.
Pause anywhere from seconds to 30 days. BullMQ parks the job and wakes it up on time — no cron you have to maintain.
Route on any variable — HTTP response bodies, workspace stats, webhook payloads, anything earlier steps emit. One predicate, many paths.
Call any external API. Store the response body, pull out specific fields as named variables, and reference them anywhere downstream.
Static body or a template. Fire immediately or schedule for a future time — natural-language ("tomorrow at 2pm") parsed by AI.
Email one or many teammates. Severity bands (info / warning / critical) — perfect for ops alerts, daily digests, or failure escalations.
Load your own platform metrics (send volume, delivery rate, error counts, …) into variables. Build health checks and SLA monitors.
Update contact records when a flow is scoped to a contact. Silently skipped for scheduled / API-driven flows that don't need them.
Ops monitors, webhook handlers, internal tooling, contact journeys — the same primitives cover all of them.
Every 15 min: fetch uptime stats → router branches on status → Slack-email the on-call if deliverability drops.
Weekdays at 8am: pull yesterday's numbers from your DB via HTTP → compose a summary → email the team.
Stripe / GitHub / custom system POSTs → parse payload → route on the event type → fire the right side-effect.
Contact added / tag applied → personalized email, wait a day, check if they converted, branch accordingly.
Schedule → call your source API → transform the response → push each record to a destination API. No Zapier middleman.
Webhook from an internal form → validate → route on approvals needed → notify the right person with the right context.
On a schedule, a webhook call, or a contact event — whatever kicks the work off for your use case.
HTTP calls, routers, waits, notifications, sends. Every step's outputs become merge-tag variables for later steps to use.
Click Test — a real run fires with real timing. 10-minute waits actually wait 10 minutes; the canvas animates as each step executes.
Run history shows every run, which step each one is parked on right now, when it'll resume, and every output along the way.
The Router step can split into as many branches as you need. First match wins; default catches the rest. No confusing "else trees".
Test runs actually fire — BullMQ pauses on wait steps exactly like production. The canvas animates step-by-step so you see the real timing.
HTTP steps hit any endpoint, extract specific fields as named variables, and feed them into downstream routers, sends, or notifications.
Fail-soft on flaky third-party APIs. Each HTTP / email / webhook step can continue, exit, or fail on error — configurable per step.
Any step's output is a variable. Reference `{{http.response.status}}` in a router, or `{{stats.delivery_rate_today}}` in a notification subject.
Notes live on every step. A new teammate opens the flow and sees exactly why each branch exists, right on the canvas.
n8n-nodes-posthawk is a community node package on npm — one action node and one trigger. Install it in any n8n instance, paste your Posthawk API key, and every Posthawk primitive slots into your n8n workflows as a first-class step.
Replace the cron jobs, the shell scripts, the half-broken Zaps — with one canvas you can actually test.
We use analytics cookies to understand how you use our site and improve your experience. Privacy Policy