What is settled, and what is not.

Anyone integrating against a platform at our stage is really asking two questions: which parts will still be true in a year, and where am I going to get surprised. This page answers both without a release calendar you would only have to discount.

Settled

These are the commitments the contract is built on. If any of them changed it would be a new major version published beside the current one, not an adjustment to what you already consume.

WhatThe commitment
The containerAn IETF vcon-core conformant object. Our intelligence is a declared, non-critical extension, so a consumer that does not understand it still parses the conversation safely.
The carriageOne typed analysis[] object per output, each vendor-attributed and independently versioned by its schema tag. Read by type. There is no bundle and no flat mirror of these fields at the top level.
The join keyssource_call_id preserved verbatim from the input, and a stable uuid per object. Both are safe to key on and to deduplicate against.
Versioning disciplineAdditive changes are minor. Field and enum names are never renamed in place or repurposed. Breaking changes ship as a new version beside the old one.
The signal shape{fired, details} per signal, with the evidence sentence when it fires. New signals arrive as entries in the object you already consume.
Identity as IDsAssociations are stamped as stable, source-aware identifiers, never as names. Names resolve at read time, so a rename never rewrites a record.
Graceful absenceAn unresolvable association is absent, never fabricated. Missing reference data yields a valid object in unmapped mode rather than an error.
TenancyDerived from the credential, never from a client-supplied identifier.
Card dataRedacted deterministically in the ingestion path, before any durable write and before analysis.
Not in the call pathThe layer reads what your platform produced. It cannot affect call setup, quality, or delivery. This is architectural, not a configuration choice.

Moving

Stated because you would rather find it here than in month three. None of these change the commitments above; they are places where the surface is still widening.

WhatWhere it stands
The declared signal set per industry The vocabulary is settled and the shape is settled. Which signals a given industry declares is still changing as industries mature, and a signal can be withdrawn as well as added. Code for presence, not for a fixed list.
Industry coverage Some industries are production-tuned and more are researched to the same depth but not yet turned on. A new industry brings its own taxonomy and declared signals; your integration inherits them without a change.
Reference-data delivery The seam is stable and specified. How a tenant maintains that data is widening from operator-populated files toward management in the Admin Interface and continuous sync from a system of record. The interface you read does not change as that moves.
Platforms and channels Voice is the channel built out today. Messaging, chat, and email are designed into the same contract and return the same object. Support for another source platform is a resolver we register, not a contract change.
Captured data The type exists and is emitted when a conversation captures structured data. The range of capture kinds is early and will grow.
The attribution object Carried on every object so you can read it, but its schema is tied to our resolver and identifier scheme and is not published. Treat the identifiers as opaque join keys and it will not move under you.

How new capability reaches you

Inside what you already read

A new signal is a new entry in conversation-signals. A new classification field is a new property on an object you already parse. Neither is a new endpoint to adopt or an object to discover.

Behind a version you can see

Every analysis type carries its own schema tag. You can tell exactly which version of which type produced a given object, years later, from the object itself.

Ignorable until you want it

The one obligation on your side is to ignore what you do not recognise. Do that and additions are free; skip it and they are not. It is the whole basis of the compatibility promise.

Why we would rather tell you this

A platform at our stage has a choice between implying everything is finished and being specific about what is not. The second is the only one that survives contact with an integration.

What is settled above is settled because it is the object, and the object is a standard container carrying versioned types. What is moving is moving because the platform is still widening - more industries, more channels, more ways reference data arrives. Neither list will surprise you later, which is the only useful property a page like this can have.

Bring the integration you are worried about.

A technical briefing is a working session on your architecture and your constraints, including whatever on this page you want pushed harder.

Request a technical briefing