Flow Not Running¶
Outcome: Figure out why your flow's webhook isn't firing it — and fix it. Audience: Everyone · Tags:
troubleshooting,flow,webhook,trigger
Your flow exists, you've called what you believe is its webhook, but no new run appears. Work down this list — it's ordered most-likely first.
Symptoms¶
- You call the webhook and no new run shows up in run history.
- The sender (the other system) reports it sent something, but nothing happened on the SnapLink side.
- A test request from a browser/curl returns a non-
2xxstatus.
Possible causes & fixes¶
1. The flow has no promoted version, or isn't Active¶
A flow only accepts webhook traffic once it has a live version — a draft that's been checked and promoted — and its status is Active. A flow that's still a bare Draft, or that's been Disabled/paused, or Archived, rejects the trigger.
Fix: Open the flow and confirm its status. If it was built through Snap Studio, Save & test it in Stage 3 both saves and promotes a version in one step, so a flow that made it through Studio successfully is already live. If it's a Draft, validate and activate it — see Activating flows.
2. The webhook URL is wrong — missing the flow ID, or the secret¶
The webhook path is:
/api/v1/webhooks/<flowId>/<secret>
Both the flow ID and the secret are required, and they must match
exactly — get the current, correct URL from GET /flows/:id/webhook (or
the flow's page in the app) rather than reconstructing it by hand or reusing
one from memory. An unrecognized flow ID or a wrong/rotated secret is
rejected before SnapLink even checks whether the flow is active — see
Webhook issues for exactly what that rejection looks
like and why.
3. You're testing from a browser and hitting CORS¶
Calling the webhook directly from browser JavaScript (rather than curl, a
backend, or your sending system's own server-side call) is subject to CORS.
If the calling page's origin isn't in the operator's CORS_ORIGINS
setting, the browser blocks the request before SnapLink processes it — this
shows up as a network/CORS error in the browser console, not a SnapLink
error response. Fix: test with curl/Postman/your backend instead of
browser JS, or ask your administrator to add the origin (see
Administration → CORS).
This does not affect server-to-server webhook senders.
4. You're hitting the rate limit¶
Webhook ingress is rate-limited per IP, per flow endpoint, and per
workspace. A burst beyond the limit is rejected with 429. See
Rate limiting.
Advanced diagnostics¶
- Send a manual test request and read the raw HTTP status:
curl -i -X POST https://api.snaplink.cloudsolutionaccelerators.com/api/v1/webhooks/<flowId>/<secret> \ -H "Content-Type: application/json" \ -d '{"test":true}'202means SnapLink accepted it and created a run — then check run history for that run. Anything else means it was rejected before a run was created; see Webhook issues for what each status means. - Confirm the workspace. Make sure you're viewing the same workspace the flow actually lives in — a flow in another workspace is invisible to you, not just hard to find.
- Check recent runs regardless. If a run was created but then failed, that's a different problem — see Execution failures or Connector failed.
When to contact support¶
You're calling the exact URL from the flow, getting a 202 back every
time, but no run appears in history for that flow. Contact support with
the flow name, the time, and the response you saw.
Related: Webhook issues · Activating flows · Rate limiting
Was this helpful? 👍 👎