Write-back
Write-back keeps your source-of-truth system (LMS or CRM) updated automatically. After every call's intent is tagged, OliAI can push the outcome to your system — by webhook for API-connected orgs, by enriched CSV export for import-based orgs, or both.
Write-back is configured per organization — all campaigns use the same target. Find it under Data Sources (admin), in the Write-back panel.
Write-back only fires for calls in a terminal state (completed, failed, no-answer) — never for in-progress calls.
Webhook
Enable the webhook
Tick Enable webhook and enter your endpoint URL and HTTP method (POST or PATCH).
Choose authentication
| Auth | How it's sent |
|---|---|
| None | No auth header |
| API Key | Your key in a custom header you name (e.g. X-API-Key) |
| Bearer Token | Authorization: Bearer <token> |
The credential is encrypted at rest (AES-256-GCM) and never shown again after saving. Leave the field blank when editing to keep the stored credential.
Save
Click Save write-back settings. New calls will start dispatching within ~60 seconds of being tagged.
Payload
Each webhook delivers a JSON body:
{
"contact_identifier": "loan_12345",
"identifier_type": "loan_id",
"intent_label": "Interested in Paying",
"intent_source": "auto",
"intent_undetermined": false,
"call_timestamp": "2026-05-31T09:08:27.000Z",
"campaign_id": "camp_def456",
"campaign_name": "Mumbai Outreach - March",
"call_duration_seconds": 87,
"transcript_url": "https://.../api/campaigns/camp_def456/calls/CA..."
}contact_identifieruses your DataSource lookup key (e.g.loan_id,member_id) when the contact has it. If not, it falls back to the phone number withidentifier_type: "phone"so your system can handle it accordingly.transcript_urlis only included when Include a transcript link in the payload is enabled.
Retries and the Failure Log
Failed deliveries are retried automatically 5 times with exponential backoff (30s → 2m → 10m → 30m → 2h).
A 4xx response (e.g. 401 Unauthorized, 404 Not Found) is not retried — it's marked a Permanent Failure immediately, since retrying won't help until the configuration is fixed.
Exhausted or permanently failed events appear in the Write-back Failure Log under the panel, showing the contact identifier, campaign, failure reason and last-attempt time. Fix the cause, then click Retry on any row to re-queue it.
Enriched CSV Export
A results CSV is always available from any campaign — open the campaign and click CSV in the Call Log toolbar. It contains every contact with their intent tag, intent source, call status, call timestamp, attempt count and (soon) captured commitment data.
Auto-export
Tick Auto-export results CSV when a campaign completes to have the export made available automatically the moment a campaign reaches COMPLETED. A green dot on the campaign's CSV button indicates an auto-export is ready.
Editing or removing write-back
Write-back settings can be changed any time. If you disable or remove the configuration mid-campaign, future write-backs are skipped — but events already in the retry queue continue until they succeed or exhaust their retries.