Integrations
Transcript and observability importers
Available Retell, Vapi, Intercom, CSV, and JSONL batch audit paths plus honest status for planned observability adapters.
Current importer replays historical transcripts through live gate/event APIs and downloads report. It requires dedicated tenant key and HTTP(S) gate URL.
#Supported now
| Format | Status | Accepted shape |
|---|---|---|
| Retell | Working, fixture-tested | Call object or {call: ...} webhook wrapper; call_id, transcript_object. |
| Vapi | Working, fixture-tested | Call object or server-event wrapper; id/callId, artifact.messages. |
| Intercom | Working, fixture-tested | Conversation object; initial source, nested conversation parts; HTML stripped. |
| Generic CSV | Working, fixture-tested | One turn/row with configurable session, role, text, timestamp columns. |
| Generic JSONL | Working, fixture-tested | One session/line with session_id, turns, optional local metadata. |
| Langfuse export | Planned | No parser exists in current importer/parsers. |
| LangSmith export | Planned | No parser exists in current source. |
| OTLP export | Planned | No parser exists in current source. |
| Generic observability chat logs | Planned | Convert first to generic CSV/JSONL; no direct adapter exists. |
#Run audit
python -m importer.audit \
--input calls.jsonl \
--gate https://api.intentlayer.dev \
--tenant-key il_xxx \
--out audit/ \
--redactOutput: report.html, summary.md, resumable checkpoint.json, and machine-readable run.json.
#Canonical JSONL
{"session_id":"call-42","turns":[{"role":"user","text":"Cancel it","timestamp":"2026-07-25T10:00:00Z"},{"role":"assistant","text":"I cancelled your account.","timestamp":"2026-07-25T10:00:02Z"},{"role":"user","text":"No, cancel tomorrow's booking.","timestamp":"2026-07-25T10:00:05Z"}],"metadata":{"campaign":"trial"}}Metadata stays local. User turns post POST /v1/gate; assistant turns post POST /v1/events as accept. Default rate 1.5 requests/second; 429 and temporary 5xx retry.
#Preview and resume
python -m importer.replay \
--input calls.jsonl \
--gate https://api.intentlayer.dev \
--tenant-key il_xxx \
--dry-runAdd --checkpoint audit/checkpoint.json for resume. --redact locally masks email/phone before network; server still applies configured redaction.
Source truth
importer/README.mdimporter/audit.pyimporter/replay.pyimporter/parsers