Zapier action timeout at 30 seconds: use Sume webhook mode
Zapier actions time out at 30 seconds, so submit Sume jobs with mode webhook: the call returns a job id at once and Sume posts the result to your URL later.

Do not wait for the video inside the Zapier action. Zapier's page says actions time out after 30 seconds and to use webhook callbacks for long-running async operations. Submit the Sume job with mode: "webhook" and a webhook_url: the submit returns 202 with a job id, and Sume posts the terminal event to your URL when the job ends.
Zapier facts are from its action-timeout page, read 2026-10-01. Sume facts are from Webhooks and Jobs and results.
Why not just use sync mode?
Sume's sync mode waits at most 30 seconds (wait_timeout_seconds, max 30), which is the same ceiling Zapier gives the action. A video render usually runs past that. When the wait runs out, the docs say to poll and not resubmit.
How do the modes compare for a Zapier action?
| Mode | What the submit returns | Fit for a 30 s action |
|---|---|---|
async (default) | 202 and a job id; poll status_url | Yes, needs a second Zap to poll |
sync | Waits up to 30 s, then the same envelope | Only for short jobs |
webhook | 202 and a job id; callback stored | Yes, Sume calls you |
What does the submit look like?
Send mode: "webhook" with webhook_url. The URL must be public HTTPS; localhost, private-network and non-HTTPS URLs are rejected. Point it at a Zapier catch-hook URL or at your own receiver.
const res = await fetch("https://api.sume.com/v1/avatar-1.0/generate", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.SUME_API_KEY,
"Content-Type": "application/json",
"Idempotency-Key": "zap-run-001",
},
body: JSON.stringify({
mode: "webhook",
webhook_url: "https://hooks.example.com/sume",
avatar_handle: "studio_presenter",
input: { type: "prompt", prompt: "Friendly studio presenter" },
}),
});
console.log(res.status, (await res.json()).request_id); // request_id is the job idWhat should the receiving Zap do?
Return any 2xx after storing the event, and use job_id as the idempotency key, since delivery retries up to 10 times. Keep status_url polling available as a backup for events that never arrive. More on the receiving side in debug Sume webhook delivery.
Sources
Related posts
More in Integrations
- Zapier Catch Hook 404 when the Zap is off: Sume webhook retries
A turned-off Zap now returns 404 to Catch Hook. For a Sume job that is a failed delivery attempt: it retries up to 10 times, then redeliver or poll recovers.
- Zapier Functions shut down Sept 1: move media calls to Sume async
Zapier Functions stopped running on 2026-09-01. Move a media-API step to Code by Zapier and submit a Sume job async or by webhook instead of waiting on it.
- Zed 1.22 subagent compaction: keep Sume job ids out of the summary
Zed 1.22.0 compacts subagent threads automatically and lets spawn_agent pick a model. Hand Sume job ids over explicitly so a summary cannot lose them.
- How to add an MCP server to ChatGPT with developer mode
Turn on ChatGPT developer mode, create an app for the server's URL, and sign in with OAuth. The steps, with Sume's hosted MCP server as the example.
Written by Sume