Skip to content

Zapier, Make and n8n

Zapier, Make and n8n connect to thousands of apps. Jimothy talks to them through webhooks:

  • Out of Jimothy (works out of the box): a Custom webhook notification channel posts run and step events to your Zap, scenario or workflow. Use it to post to a chat app, update a spreadsheet, create a ticket, or anything else those tools support.
  • Into Jimothy (needs a tunnel): a webhook trigger starts a run when the automation calls it. Jimothy runs on your computer, so these services can only reach it through a tunnel.
  1. Create the receiving end and copy its URL:

    Create a Zap with the trigger Webhooks by Zapier → Catch Hook. Copy the webhook URL (https://hooks.zapier.com/hooks/catch/…).

  2. In Jimothy, open Settings → Notifications → Add channel → Custom webhook and paste the URL.

  3. Pick the Events to send, and optionally limit the channel to some Pipelines.

  4. Optionally set a Bearer token. Jimothy sends it as Authorization: Bearer <token>. Check for it in your automation to ignore requests that don’t come from Jimothy (in n8n, set the Webhook node’s Authentication to Header Auth with Authorization / Bearer <token>).

  5. Click Send test. It sends a run.succeeded event without a run object, which is enough for Zapier and Make to learn the payload’s shape. Trigger a real run to see every field.

Every event is a JSON POST:

{
"event": "step.succeeded",
"title": "Plan finished · run #42",
"body": "ENG-123 · Add rate limiting",
"severity": "success",
"at": "2026-10-07T14:03:11.412Z",
"run": {
"id": "run_0mfz2k1a9c3e5d7",
"number": 42,
"status": "running",
"pipeline": "Feature: Plan → Build → Review → PR",
"issue": { "key": "ENG-123", "title": "Add rate limiting", "url": "https://linear.app/acme/issue/ENG-123" },
"branch": "jimothy/eng-123",
"costUsd": 0.42,
"links": []
},
"stepId": "plan",
"step": {
"id": "plan",
"name": "Plan",
"type": "agent",
"status": "succeeded",
"output": "1. Add a token bucket per API key…"
}
}
Field Notes
event One of the notification events: run.started, run.succeeded, run.failed, run.cancelled, step.succeeded, step.failed, approval.required, trigger.error. Filter on it in your automation.
title, body Ready-made text, as other channels show it.
severity info, success, warning or error.
run Omitted for trigger.error.
step Step and approval events only. output is the step’s first 4,000 characters. error is set when the step failed. Integration steps also include data, e.g. the id and link of a task they created.

Delivery has a 15-second timeout and isn’t retried. Any non-2xx response counts as a failure.

  1. Turn on the webhook server and expose it with a tunnel (ngrok, Cloudflare Tunnel or Tailscale Funnel).

  2. Create a Webhook trigger, pick the pipeline, and keep the generated Webhook secret.

  3. In your automation, add an HTTP request step:

    • Zapier: Webhooks by Zapier → POST.
    • Make: HTTP → Make a request.
    • n8n: HTTP Request node.
  4. Send a POST with a JSON body to https://<your tunnel>/hooks/<trigger id>, with the header X-Factory-Token: <secret>:

    { "title": "{{the new row's summary}}", "description": "…", "key": "ROW-17", "url": "…" }

title is required. key dedups requests: a second request with the same key doesn’t start another run. See the payload for every field.