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.
Send events to an automation
Section titled “Send events to an automation”-
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/…).Create a scenario that starts with Webhooks → Custom webhook, click Add, and copy the address (
https://hook.eu1.make.com/…).Add a Webhook node, set HTTP Method to
POST, and copy the Production URL. Activate the workflow so the production URL is live. -
In Jimothy, open Settings → Notifications → Add channel → Custom webhook and paste the URL.
-
Pick the Events to send, and optionally limit the channel to some Pipelines.
-
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 withAuthorization/Bearer <token>). -
Click Send test. It sends a
run.succeededevent without arunobject, which is enough for Zapier and Make to learn the payload’s shape. Trigger a real run to see every field.
The payload
Section titled “The payload”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.
Start runs from an automation
Section titled “Start runs from an automation”-
Turn on the webhook server and expose it with a tunnel (ngrok, Cloudflare Tunnel or Tailscale Funnel).
-
Create a Webhook trigger, pick the pipeline, and keep the generated Webhook secret.
-
In your automation, add an HTTP request step:
- Zapier: Webhooks by Zapier → POST.
- Make: HTTP → Make a request.
- n8n: HTTP Request node.
-
Send a
POSTwith a JSON body tohttps://<your tunnel>/hooks/<trigger id>, with the headerX-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.