Outbound Webhooks API
Subscribe to real-time events emitted by Aila whenever calls process, custom data extracts, tasks generate, or mortgage files build.
Supported Webhook Events
| Category | Event Name | Description |
|---|---|---|
| Calls | call.completed | Emitted when transcription, AI summary, and scorecard evaluation finish. |
| Calls | call.data.extracted | Emitted with full structured JSON extracted by custom datasets. |
| Tasks | task.created | Emitted when an automated action item is generated from a call. |
| Tasks | task.synced | Emitted when an auto-task syncs successfully to a connected CRM. |
| Appointments | appointment.created | Emitted when an appointment is extracted from conversation intent. |
| Appointments | appointment.synced | Emitted when an appointment syncs to GHL or Bonzo calendar. |
| Mortgage | mismo.ready | Emitted when MISMO 3.4 XML is generated for a lending call. |
| Testing | test.ping | Emitted when verifying endpoint reachability in settings. |
Registering an Endpoint
Option 1: Web Interface
- Navigate to Settings > Connections > Outbound Webhooks (or
/settings?tab=webhooks). - Click Add Endpoint.
- Enter your Payload URL (must use HTTPS).
- Select subscribed event types.
- Copy your Signing Secret (shown once at creation).
- Click Save Endpoint.
Option 2: REST API
curl -X POST https://app.aila.fyi/api/v1/organizations/{organizationId}/webhooks \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"url": "https://api.yourdomain.com/webhooks/aila", "events": ["call.completed", "call.data.extracted"]}'Signature Verification (HMAC-SHA256)
Aila signs all webhook payloads. Verify the X-Aila-Signature HTTP header using your signing secret:
import crypto from "crypto";
function verifyAilaWebhook(payload, signatureHeader, signingSecret) {
const hmac = crypto.createHmac("sha256", signingSecret);
const digest = "sha256=" + hmac.update(payload).digest("hex");
return crypto.timingSafeEqual(Buffer.from(digest), Buffer.from(signatureHeader));
}Delivery Retries
- Timeout: 10 seconds per delivery attempt.
- Retry Schedule: Exponential backoff across 5 retry attempts if the endpoint returns a non-2xx status code.
- Delivery Logs: Inspect delivery statuses and trigger manual retries in Settings > Connections.