Skip to main content

Contact center

Sellable product

This capability is granted by an API key scoped to the `` product (product face). See the product reference below.

Contact-center capability — the generic, carrier-agnostic transport engine (SIP · WebRTC · IVR · predictive-dialer · call-recording · AI-summary) fronting a durable, org-scoped registry (IVR flows, dialer campaigns, call sessions, recording metadata). Extracted from vagary-voice's dormant Python telephony suite so any product can build contact-center flows over one shared capability instead of re-implementing SIP/WebRTC/dialer plumbing. The transport engine is dormant until a provider is wired (extract-on-reactivation); the durable registry is always live. I4: own Postgres store, never a product store.

  • Group: Comms & workflow
  • Contract: contracts/contact-center/v1/openapi.yaml
  • Public base: https://api.vagarylabs.com (the consolidated API gateway — one host, per-brand sibling api.<zone>)
  • Auth: a product API key (vgk_…) issued from the console — Authorization: Bearer vgk_…
  • Product face (customer-keyed):
    • https://api.vagarylabs.com/product/v1/contact-center/ivr/flows

Endpoints

MethodPathSummary
POST/v1/contact-center/ivr/flowsCreate or update an IVR flow definition (durable registry)
GET/v1/contact-center/ivr/flows/&#123;flow_id&#125;Get an IVR flow definition (or 404)
POST/v1/contact-center/dialer/campaignsCreate or update an outbound dialer campaign definition (durable registry)
GET/v1/contact-center/dialer/campaigns/&#123;campaign_id&#125;Get a dialer campaign (or 404)
POST/v1/contact-center/dialer/campaigns/&#123;campaign_id&#125;/startStart an outbound dialer campaign (transport engine — 501 while dormant)
POST/v1/contact-center/callsRegister a call session lifecycle record (durable registry)
GET/v1/contact-center/calls/&#123;call_id&#125;Get a call session record (or 404)
POST/v1/contact-center/calls/&#123;call_id&#125;/summaryGenerate an AI summary of a recorded call (transport engine — 501 while dormant)
POST/v1/contact-center/sip/originateOriginate an outbound SIP call via a carrier trunk (transport engine — 501 while dormant)
POST/v1/contact-center/webrtc/sessionsCreate a browser WebRTC session with ICE/TURN + PSTN fallback (transport engine — 501 while dormant)
PUT/v1/contact-center/recordings/&#123;call_id&#125;Register recording metadata for a call (durable registry; bytes live in cloud storage)
GET/v1/contact-center/recordings/&#123;call_id&#125;Get recording metadata for a call (or 404)
POST/v1/contact-center/calls/&#123;call_id&#125;/transferTransfer a live call (warm or blind) to another destination
POST/v1/contact-center/ivr/navigatePlan/verify how an outbound call would traverse a callee's phone-tree. Body carries the rule plan; the live media emit (attaching to a real call's STT + RTP) is sequenced to the outbound-executor.
GET/v1/contact-center/whatsapp/webhookMeta webhook verification handshake (GET hub.challenge). Gated — without the per-tenant Meta credentials the transport is dormant and this answers an honest 501 rather than pretending.
POST/v1/contact-center/whatsapp/webhookInbound WhatsApp Cloud API events (call connect/terminate, inbound audio, keypad replies). Dormant until the per-tenant Meta credentials are provisioned.
PUT/v1/contact-center/recordings/&#123;call_id&#125;/contentUpload the recording bytes to the shared object-storage rail and register the pointer
GET/v1/contact-center/recordings/&#123;call_id&#125;/content-urlShort-lived presigned URL for the recording bytes (client fetches the rail directly)
GET/healthliveness
GET/metricsPrometheus

Schemas

IvrFlowRequest

FieldTypeDescription
organization_idstringproduct-tier tenant (I6)
flow_idstring
namestring
definitionobjectvisual-flow node graph (IVRFlow)

IvrFlowRef

FieldTypeDescription
flow_idstring
name['string', 'null']

IvrFlow

FieldTypeDescription
flow_idstring
name['string', 'null']
definitionobject
created_at['number', 'null']
updated_at['number', 'null']

CampaignRequest

FieldTypeDescription
organization_idstringproduct-tier tenant (I6)
campaign_idstring
namestring
statusstring
configobjectCampaignConfig (pacing/AMD/DNC/dialing-window)

CampaignRef

FieldTypeDescription
campaign_idstring
name['string', 'null']
statusstring

Campaign

FieldTypeDescription
campaign_idstring
name['string', 'null']
statusstring
configobject
created_at['number', 'null']
updated_at['number', 'null']

CallRequest

FieldTypeDescription
organization_idstringproduct-tier tenant (I6)
call_idstring
directionstring
statusstring
from_numberstring
to_numberstring
metadataobject

CallRef

FieldTypeDescription
call_idstring

Generated by scripts/gen-capability-docs.py from contracts/contact-center/v1/openapi.yaml — the contract IS the source of truth; edit the contract, not this page.