| title | resumeWebhook | |
|---|---|---|
| description | Resume a paused workflow by sending an HTTP request to a webhook token. | |
| type | reference | |
| summary | Use resumeWebhook to forward an HTTP request to a webhook token and resume a paused workflow. | |
| prerequisites |
|
|
| related |
|
Resumes a workflow run by sending an HTTP Request to a webhook identified by its token.
This function creates a hook_received event and re-triggers the workflow to continue execution. It's designed to be called from API routes or server actions that receive external HTTP requests.
import { resumeWebhook } from "workflow/api";
export async function POST(request: Request) {
const url = new URL(request.url);
const token = url.searchParams.get("token");
if (!token) {
return new Response("Missing token", { status: 400 });
}
try {
const response = await resumeWebhook(token, request); // [!code highlight]
return response;
} catch (error) {
return new Response("Webhook not found", { status: 404 });
}
}See the full API reference for
resumeWebhook.
Returns a Promise<Response> that resolves to:
Response: The HTTP response from the workflow'srespondWith()call
Throws an error if the webhook token is not found or invalid.
In most cases, you should not need to call `resumeWebhook()` directly. When you use `createWebhook()`, the framework automatically generates a random webhook token and provides a public URL at `/.well-known/workflow/v1/webhook/:token`. External systems can send HTTP requests directly to that URL.For server-side hook resumption with deterministic tokens, use resumeHook() with createHook() instead.
Forward an incoming HTTP request to a webhook by token:
import { resumeWebhook } from "workflow/api";
export async function POST(request: Request) {
const url = new URL(request.url);
const token = url.searchParams.get("token");
if (!token) {
return new Response("Token required", { status: 400 });
}
try {
const response = await resumeWebhook(token, request); // [!code highlight]
return response; // Returns the workflow's custom response
} catch (error) {
return new Response("Webhook not found", { status: 404 });
}
}createWebhook()- Create a webhook in a workflowresumeHook()- Resume a hook with arbitrary payloaddefineHook()- Type-safe hook helper