Skip to main content

Webhooks

Truedy can send HTTP callbacks to your server when certain events occur (e.g. call completed, batch call status).

Overview

  • You provide a webhook URL in the dashboard or via API.
  • Truedy sends POST requests to that URL with a JSON body and signature headers.
  • You should respond with 2xx quickly; process asynchronously if needed.

Payload format

Each request includes:
  • Body: JSON with event, timestamp, and event-specific data.
  • Headers: e.g. X-Truedy-Signature (or similar) for verification.
Verify the signature using your webhook secret before trusting the payload.

Event types

Truedy can send these event types to your webhook URL (depending on how your endpoint is configured):
EventDescription
call.startedCall has started
call.joinedParticipant joined the call
call.endedCall ended (also sent as call.completed and normalized to call.ended)
call.billedCall billing event
call.failedCall failed
batch.status.changedBatch call status changed
batch.completedBatch completed
voice.training.completedVoice training finished successfully
voice.training.failedVoice training failed
Subscribe only to the events you need when configuring your webhook endpoint (dashboard or API).

Security

  1. Verify the signature using the shared secret.
  2. Use HTTPS only for webhook endpoints.
  3. Idempotency: The same event may be retried; use event_id or similar to deduplicate.

Retries

If your endpoint returns a non-2xx status or times out, Truedy may retry with exponential backoff. Implement idempotent handling so duplicate deliveries are safe.

Public API and callbacks

Truedy’s backend receives callbacks from the voice provider (e.g. call.ended, call status) and can forward events to your webhook URL. The webhook URL and secret used for these outbound callbacks are configured in the Dashboard (e.g. Settings or Integrations) or via environment/config for your Truedy instance. Use the same signature verification and retry handling described above.

Need help?

  • Configure webhook URL and secret in the dashboard or via the API.
  • Check Error Handling for how to log and report issues using request_id.