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.
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.
| What | The commitment |
|---|---|
| The container | An 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 carriage | One 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 keys | source_call_id preserved verbatim from the input, and a stable uuid per object. Both are safe to key on and to deduplicate against. |
| Versioning discipline | Additive 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 IDs | Associations are stamped as stable, source-aware identifiers, never as names. Names resolve at read time, so a rename never rewrites a record. |
| Graceful absence | An unresolvable association is absent, never fabricated. Missing reference data yields a valid object in unmapped mode rather than an error. |
| Tenancy | Derived from the credential, never from a client-supplied identifier. |
| Card data | Redacted deterministically in the ingestion path, before any durable write and before analysis. |
| Not in the call path | The layer reads what your platform produced. It cannot affect call setup, quality, or delivery. This is architectural, not a configuration choice. |
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.
| What | Where 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. |
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.
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.
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.
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.
A technical briefing is a working session on your architecture and your constraints, including whatever on this page you want pushed harder.