download dots
Automation

HTTP Webhook Trigger

Updated 2026-06-05·9 min read

Overview

The HTTP Webhook trigger gives any Taskade automation a unique inbound URL. Any system that can POST JSON can start the automation. Pair it with branching, looping, and AI actions to build any pipeline you need.

TL;DR: Add the Webhook Received trigger to any automation, copy the unique URL, and POST JSON from any external system to fire your workflow. Available on Pro, Business, Max, and Enterprise. Pair with Branch, Loop, Utility Actions, and Structured Output to handle real-world payloads end to end.

How the trigger fits the loop

A webhook is the canonical Execution input: an external system tells Taskade something happened, and your automation runs the rest of the loop.

Webhook trigger vs. Webhook action

These two sound the same but flow in opposite directions. Pick the one that matches the data direction you need.

Type Direction What it does
HTTP Webhook trigger (this article) Inbound Receives a POST from an external system and starts an automation
Webhook action Outbound Sends a POST from a running automation to an external system

If your goal is "when something happens in Stripe, run my Taskade automation," you want the trigger. If your goal is "when my Taskade automation finishes, notify Slack via a custom URL," you want the action.

Set up the trigger

Create the trigger first, then wire your external system to the URL it gives you.

  1. Open the automation you want to start from a webhook.
  2. Click Add Trigger.
  3. Pick Webhook Received from the HTTP trigger list.
  4. Copy the unique Webhook URL shown in the trigger panel.
  5. Click Save.

Keep that URL handy. You will paste it into the external service that needs to fire the automation.

Reference fields from the payload

The trigger parses incoming JSON automatically when the request includes Content-Type: application/json. The full payload is exposed to every downstream action through five variables you can reference with the @ picker or {{ }} syntax.

Variable What it holds Example
body Parsed JSON object {{trigger.body.customer_email}}
bodyText Raw payload as a string {{trigger.bodyText}}
headers Request headers {{trigger.headers["x-api-key"]}}
method HTTP verb (always POST here) {{trigger.method}}
queryParams URL query string keys {{trigger.queryParams.source}}

To pull a single nested value out of body, pair the trigger with JSON Extract and a JSONPath query like $.user.email. To work with the raw text (for example, to verify a signature header), reach for bodyText.

Test the trigger

Send a real request from your terminal to confirm the trigger fires and your fields parse correctly.

Bash
curl -X POST "YOUR_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_email": "[email protected]",
    "order_id": "ORD-1042",
    "amount": 49.00
  }'

A successful request returns HTTP 202 Accepted. The automation runs in the background and you can watch progress in the Runs tab.

Response What it means What to do
202 Accepted Payload accepted, automation queued Open Runs to watch the steps complete
400 Bad Request JSON malformed or field types do not match Validate the payload at jsonlint.com
404 Not Found Wrong URL, or automation is paused Re-copy the URL and toggle the automation on

Reliability and retries

Taskade stores every delivery before processing it, so a brief downstream hiccup never loses an event.

  • Every inbound POST is persisted before any action runs.
  • Actions that error are retried automatically with backoff.
  • You can replay any past delivery from the Runs tab in one click.
  • Long-running actions do not block the next webhook from being accepted.

This is the same reliable retry behavior used by every action in the automation.

Plan availability

The HTTP Webhook trigger is available on Pro and above because it accepts unbounded inbound traffic from any external service.

Plan HTTP Webhook trigger
Free, Starter Use built-in triggers like Forms, Schedule, and task events
Pro, Business, Max, Enterprise Full HTTP Webhook trigger access

See the pricing page for the latest plan matrix.

Authenticate inbound requests

The URL itself acts as a shared secret, but two stronger options live on every webhook trigger. Use them when the sending system is one you don't fully control, or when the URL might leak.

Per-flow webhook secret

Each webhook trigger can carry an optional Webhook Secret — alphanumeric, dashes, and underscores only. When set, Taskade requires every inbound request to present the secret. Anything without it gets rejected before any action runs.

Field Description
Webhook Secret Alphanumeric string (A–Z, a–z, 0–9, _, -). Set it on the trigger; paste the same value into the sending system. Each flow has its own secret — rotate one without touching the others.
Bash
curl -X POST "YOUR_WEBHOOK_URL" \
  -H "Authorization: Bearer YOUR_WEBHOOK_SECRET" \
  -H "Content-Type: application/json" \
  -d '{ "order_id": "ORD-1042" }'

Bearer-token authentication

The webhook trigger accepts standard Bearer token auth via the Authorization header. Most external systems (Stripe-style platforms, Postman, custom backends) already speak this — just paste your webhook secret as the token.

Auth method What to send When to use it
Bearer token Authorization: Bearer <secret> Default for most APIs. Strongest option that works everywhere.
Custom header Any header you choose, then check it inside a Branch step When the sender can't change Authorization (legacy webhooks, vendor lock-in)
Signed payload Source-specific signatures (Stripe Stripe-Signature, GitHub HMAC) When the source supports cryptographic signing — strongest for replay protection

💡 Tip: If a request fails auth, Taskade returns 401 Unauthorized and the flow does not run. The Runs tab still logs the attempt so you can audit failed deliveries.

Security tips

Treat the webhook URL like a password. Anyone holding it can fire your automation.

  • Keep the URL out of public repos, screenshots, and shared docs.
  • Use the per-flow webhook secret + Bearer token above whenever the sender supports it.
  • Rotate the secret (and/or the URL) right away if you suspect a leak. Save the new value into the sending tool.
  • Prefer signed payloads from the source when the source supports them, for example Stripe signatures or GitHub HMAC headers.

Frequently Asked Questions

What does the HTTP Webhook trigger do?

It gives any Taskade automation a unique inbound URL that an outside system can POST to. When any service sends JSON to that URL, your automation runs. This is the easiest way to start a workflow from another tool, like a payment platform or a custom backend.

Where do I find my webhook URL?

Open the automation, click Add Trigger, and pick Webhook Received from the HTTP trigger list. Taskade shows your unique Webhook URL right in the trigger panel. Copy it, click Save, and paste it into the external service you want to fire the automation.

What data does the automation receive from a webhook?

When the request includes a JSON content type, Taskade parses it automatically and exposes five pieces of the request to every later step: the parsed body, the raw body text, the headers, the HTTP method, and the URL query parameters. You can reference any of them with the @ picker or {{ }} syntax. This lets you route names, emails, order IDs, and anything else straight into your actions.

How do I keep my webhook URL safe?

Treat the URL like a password, since anyone holding it can fire your automation. Keep it out of public repos, screenshots, and shared docs. For extra protection, add the per-flow Webhook Secret and Bearer token, and rotate the secret right away if you ever suspect a leak.

How do I test the webhook trigger?

Send a real POST request from your terminal with a small JSON body, like the curl example above. A successful request returns HTTP 202 Accepted, which means your payload was accepted and the automation is queued. Open the Runs tab to watch the steps run and confirm your fields parsed correctly.

What happens if a delivery fails or my automation has a hiccup?

Taskade stores every inbound POST before any action runs, so a brief downstream issue never loses an event. Actions that error are retried automatically with backoff, and you can replay any past delivery from the Runs tab in one click. Long-running actions also do not block the next webhook from being accepted.

Which plan includes the HTTP Webhook trigger?

The HTTP Webhook trigger is available on the Pro, Business, Max, and Enterprise plans. On Free and Starter you can still use built-in triggers like Forms, Schedule, and task events. See the pricing page for the latest plan matrix.

Was this helpful?