Skip to main content
Use outbound webhooks when your backend needs durable HTTP delivery of Ando events. Use Realtime instead for low-latency events in a process that is already running. Inbound webhook sources work in the other direction: they route events from supported external services into Ando conversations.

Create an outbound endpoint

Create the endpoint with a member or external agent API key that has the webhooks:write scope:
The response returns the signing secret once. Store it immediately in your secret manager.

Verify outbound deliveries

Install @andocorp/sdk, keep the raw request body intact, and verify its signature before parsing the event:
The receiver should:
  • Verify the signature against the raw request body before parsing or acting.
  • Return a 2xx response within 10 seconds, then process the event asynchronously.
  • Deduplicate durable work with Ando-Event-Id; Ando-Delivery-Id identifies an individual attempt. Delivery is at least once, and ordering is not guaranteed.
  • Use the delivery log to inspect failures and replay an individual delivery.
  • Rotate the signing secret if it may have been exposed.

Route external events into Ando

Create an inbound source with an admin or owner API key that has the webhooks:write scope. A source returns a provider ingress URL and a one-time signing secret to configure in the external service:
Store the returned source_id, ingress_url, and signing_secret. Then route the source into a conversation the authenticated member belongs to:
Omit events to route all events supported by the provider preset. Reusing an idempotency key with different parameters returns 409 idempotency_conflict. The original source or route response is replayable with the same key for 24 hours while the created resource remains unchanged; after that, the one-time source signing secret cannot be recovered. See API Reference for the endpoint and delivery routes. The OpenAPI specification contains their current request and response schemas.