Skip to main content

Webhooks Integration

Woes logo Webhooks let Woes push support events to your backend whenever important workspace activity happens. Use them when a custom system, data warehouse, escalation service, or internal workflow needs to react to Woes events without polling the REST API.
Webhooks are outbound events from Woes to your HTTPS endpoint. They are not an intake channel, and they do not replace Slack, Discord, email, live chat, or Zapier.

At A Glance

What the Webhooks integration does

Supported events

Event data

All payloads use the same top-level envelope. The data object changes by event type.

Set up Webhooks

1

Open Webhooks

Go to Workspace Settings -> Integrations -> Webhooks.
2

Create an endpoint

Add a name and an HTTPS endpoint URL. Woes only sends webhooks to HTTPS URLs, and the URL cannot contain embedded credentials.
3

Choose events

Select the event types this endpoint should receive. You can create separate endpoints for different systems.
4

Copy the signing secret

Woes shows the signing secret once when you create or rotate it. Store it in your receiver’s secret manager.
5

Send a test

Click Send test and confirm your receiver verifies the signature and responds with a 2xx status.

Payload shape

Every webhook request is JSON.
Payloads include the Woes record ids and customer/support fields needed to route work in your system. Treat webhook payloads as workspace data and store them with the same access controls you use for support records.

Issue payload example

Survey payload example

Verify signatures

Woes signs every delivery with Woes-Signature.
The signature is an HMAC-SHA256 of:
Verify the timestamp is recent, rebuild the HMAC with your endpoint signing secret, and compare using a timing-safe comparison.
Verify against the raw body bytes exactly as received. Parsing and re-stringifying JSON before verification will change the signed content.

Retries and delivery history

Your endpoint should return any 2xx status when the event is accepted. If delivery fails, Woes records the failure and retries with backoff. Woes attempts a failed delivery up to five times before leaving it in a failed state. Workspace admins can review recent deliveries from Integrations -> Webhooks, including:
  • Event type.
  • Delivery status.
  • Attempt count.
  • HTTP status code.
  • Short response body or error.
  • Next retry time when one is scheduled.
Webhook receivers should be idempotent. Use Woes-Event-Id or the top-level payload id as your idempotency key.

Security model

  • Endpoint URLs must use HTTPS.
  • Signing secrets are shown once when an endpoint is created or rotated.
  • Rotate a secret when a receiver is compromised or a teammate no longer needs access.
  • Woes does not show the full signing secret again after create or rotation.
  • Webhook delivery failures do not block inbox, issue, client, or survey workflows.
  • Store webhook payloads with the same access controls you use for customer support records.

Webhooks vs Zapier vs REST API

Troubleshooting

Last modified on July 4, 2026