Skip to main content

Documentation Index

Fetch the complete documentation index at: https://help.withallo.com/llms.txt

Use this file to discover all available pages before exploring further.

Allo disables endpoints that fail continuously for 5 days. To fix:
  1. Check the delivery history in Settings > Webhooks to understand why deliveries failed.
  2. Fix the underlying issue (URL changed, server down, authentication error, etc.).
  3. Re-enable the webhook from Settings > Webhooks.
  4. Use the Recover option to replay missed events.
Check these common causes:
  • 401/403: Your endpoint requires authentication. Webhook requests do not include your API key — they use signature verification instead.
  • 404: The webhook URL is incorrect or your server’s routing does not match.
  • 500: Your handler is throwing an error. Check your server logs.
  • Firewall/WAF: Your firewall or web application firewall may be blocking the requests. Allow incoming POST requests to your webhook path.
Common causes:
  • Parsed body: You must use the raw request body for verification. If your framework automatically parses JSON and you re-serialize it, whitespace differences will break the signature. Use express.raw() in Node.js or request.get_data() in Flask.
  • Wrong secret: Ensure you are using the correct whsec_... signing secret for this specific endpoint.
  • Clock skew: Your server’s clock must be within 5 minutes of the actual time. Verify NTP is running on your server.
  • Middleware modification: Proxies or middleware that modify request headers or body will invalidate the signature.
Check the following:
  1. Webhook is enabled: Go to Settings > Webhooks and verify the webhook is enabled.
  2. Topics match: Verify the event types you expect are selected in the webhook configuration.
  3. Delivery history: Check the delivery history in your webhook settings — events may be failing silently.
  4. URL is reachable: Ensure your endpoint is publicly accessible over HTTPS. Use the test feature to verify.
This is expected behavior. Allo uses at-least-once delivery, so events may be delivered more than once.Implement idempotency using the webhook-id header as a deduplication key. See Best practices.
Your endpoint must respond within 20 seconds. If your processing takes longer:
  1. Return 200 immediately upon receiving the request.
  2. Queue the event for background processing.
  3. Process the event asynchronously (e.g., using a message queue or background job).
See Best practices — Respond quickly.

Need help?

Contact support

Reach out to our support team

API reference

Browse the full webhook documentation