Skip to content

Latest commit

 

History

History
90 lines (65 loc) · 2.97 KB

File metadata and controls

90 lines (65 loc) · 2.97 KB
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
/docs/foundations/hooks
related
/docs/api-reference/workflow-api/resume-hook

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.

`resumeWebhook` is a runtime function that must be called from outside a workflow function.
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 });
  }
}

API Signature

Parameters

See the full API reference for resumeWebhook.

Returns

Returns a Promise<Response> that resolves to:

  • Response: The HTTP response from the workflow's respondWith() call

Throws an error if the webhook token is not found or invalid.

Usage Note

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.

Example

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 });
  }
}

Related Functions