vCon export: take your call data out in an IETF standard
Export any completed call as an IETF vCon container — parties, dialog (transcript + recording reference) and analysis (summary, sentiment, extraction) in one portable JSON file. Opt-in per agent.
Updated July 29, 2026
Call2Me can emit any completed call as an IETF vCon container (draft-ietf-vcon-vcon-container) — a portable, self-contained record of a conversation.
Nothing new is captured. A call already produces the substance of a vCon: participants, a turn-by-turn transcript, a recording, post-call analysis. The export repackages that record into the standard container, so the conversation can leave Call2Me without a custom integration on the other side.
See a real export → (synthetic appointment-booking call, no real customer data)
Endpoint
GET /v1/calls/{call_id}/vcon
Returns application/json. Two conditions must hold: the call belongs to the
authenticated workspace, and vCon export is enabled on the call's agent.
curl https://api.call2me.app/v1/calls/call_abc123/vcon \
-H "Authorization: Bearer $CALL2ME_API_KEY" \
-o call_abc123.vcon.json
In the dashboard the same file is one click: open Calls, and completed calls from a vCon-enabled agent carry a download icon.
Opt-in, off by default
Export is disabled until you turn it on for a specific agent — existing behaviour is unchanged for every other agent. Enable it on the agent's detail page in the dashboard.
While export is disabled the endpoint answers 404 rather than 403. That is deliberate: a "forbidden" response would confirm that the call exists, and a call id should not be a probe for whether a conversation happened.
What maps to what
| vCon | Source |
|---|---|
parties[0] (role: agent) | agent name + the Call2Me-side number |
parties[1] (role: customer) | the remote party's number |
dialog[] type: text | the transcript, speaker-attributed |
dialog[] type: recording | the recording URL, when a recording exists |
dialog[] type: incomplete | unanswered or failed calls, with a disposition |
analysis transcript | structured turns, JSON encoded |
analysis summary / sentiment | post-call analysis |
analysis extraction | your custom extraction fields, with the agent's schema referenced |
The uuid is derived deterministically from the call id, so re-exporting a call
yields the same vCon identity instead of a new one.
Why a standard, not a bespoke payload
Call data has a long life after the call: quality review, compliance archives, CRM enrichment, model evaluation. Every one of those normally costs a custom exporter written against a vendor's private JSON shape — and that work is thrown away when the vendor changes.
A vCon shifts that cost. The receiving system parses a documented container it may already understand, and the same file carries the recording reference, the transcript and the analysis together rather than as three loosely related artefacts.
Not implemented yet
Being explicit about the edges of the implementation:
- JWS signing / JWE encryption wrappers — the container is emitted unsigned and unencrypted.
- The
consentattachment — tracked separately; consent deserves to be modelled properly rather than approximated. - vCon ingest — reading vCons produced by other systems.
- Bulk export and webhook delivery — export is per call, on request.
Related
- Calls API — retrieving calls and their transcripts
- Post-call actions — extraction fields and webhooks
- Security — data handling, retention and access control
Frequently asked
Q.What is a vCon?
A vCon (virtualized conversation) is an IETF container format for conversation data. It packages who took part, what was said, any recording, and any analysis derived from it into a single self-contained JSON document, so a conversation can move between systems without a bespoke integration. Call2Me implements draft-ietf-vcon-vcon-container.
Q.Does Call2Me export every call as a vCon automatically?
No. vCon export is off by default and enabled per agent. While it is disabled the endpoint answers 404, so it never reveals whether a call exists. Turn it on for the agents whose calls you want to export.
Q.Does enabling vCon export change what Call2Me records?
No. Nothing new is captured. A call already produces participants, a turn-by-turn transcript, an optional recording and post-call analysis; the export repackages that existing record into the standard container.
Q.Is the recording embedded in the vCon file?
No — the dialog entry references the recording by URL rather than inlining the audio. That keeps the JSON small and lets your storage and retention rules stay in charge of the media.
Q.Can I re-export the same call?
Yes. The vCon uuid is derived deterministically from the call id, so re-exporting a call produces the same vCon identity rather than a new one.