Browse documentation

Webhooks

Test webhook events

Generate synthetic events to validate endpoint routing and signature handling without production traffic.

DevelopersAdvancedAvailable

What this guide covers

  • Send Test Mode events only to Test Mode endpoint configurations.
  • Exercise both successful and failing endpoint responses.
  • Confirm signatures, event IDs, and retry behavior before going live.

Use a Test Mode endpoint

Dashboard webhook tests target Test Mode endpoints only. Create or select an enabled Test Mode endpoint and subscribe it to yanola.webhook.test before sending a generic verification event.

Test Mode endpoints, like Live Mode endpoints, require a public HTTPS URL. For local development, point the endpoint at an HTTPS tunnel (cloudflared or ngrok) that forwards to your local receiver.

Send a generic verification event

  1. Open the Agent Project's API → Webhooks page.
  2. Switch to Test Mode.
  3. Create or enable an endpoint that subscribes to Webhook test.
  4. Choose Send test event for that endpoint.
  5. Keep the generated idempotency key stable if the dashboard request itself must be retried.
  6. Watch the returned delivery move from pending or delivering to succeeded, failed, or canceled.
Normalized generic test payload
json
{
  "id": "evt_...",
  "type": "yanola.webhook.test",
  "environment": "test",
  "createdAt": "2026-07-29T10:00:00.000Z",
  "data": {
    "synthetic": true,
    "purpose": "webhook_endpoint_verification",
    "endpointId": "...",
    "occurredAt": "2026-07-29T10:00:00.000Z"
  }
}

Test a retained Test Mode event

The dashboard test operation can also target a retained evt_ event from the same Agent Project and Test Mode environment. This exercises the selected endpoint using realistic normalized data without sending a WhatsApp message.

A missing, malformed, Live Mode, cross-project, or inaccessible event is not accepted as a Test Mode test source.

The production pipeline is preserved

A test delivery uses the endpoint's configured payload mode, the same exact signature contract, correlation headers, 10-second timeout, retry schedule, delivery records, response previews, and endpoint failure controls as production delivery.

The difference is isolation: the event and delivery stay in Test Mode and do not call Meta or consume message-send Yanola Balance.

Understand the dashboard result

Webhook test result fields
FieldMeaning
event.id / event.typeThe evt_ identity and generic or selected Test Mode event type.
event.genericTrue when Yanola created yanola.webhook.test for this verification.
delivery.id / statusThe durable del_ record and its current lifecycle state.
delivery.attemptCountHow many endpoint attempts have started.
delivery.nextAttemptAtNext scheduled retry, or null.
idempotentThe same dashboard test operation already created this durable delivery.
dispatchenqueued, pending_dispatch, or already_terminal.

Failure diagnostics

Webhook test failures
ConditionWhat to check
Invalid signature responseThe exact raw body reaches verification before JSON parsing and the Test secret matches this endpoint.
404 endpoint or eventThe endpoint and optional event both belong to this Agent Project and Test Mode.
422 endpoint disabledEnable the Test endpoint before sending.
TimeoutPersist and acknowledge within 10 seconds; move slow work to a queue.
Repeated non-2xxInspect the bounded response preview and fix the handler before the endpoint auto-disables.

Promote to Live Mode

  1. Confirm the Test delivery succeeds and your durable store contains one event.
  2. Confirm sending the same event again does not duplicate business side effects.
  3. Exercise an intentional non-2xx response and observe a retry.
  4. Create a separate Live Mode endpoint with a public HTTPS URL.
  5. Store its separate copy-once Live signing secret.
  6. Choose the same payload mode and only the production event and Sender filters you need.