Start & Complete Interaction

Before You Start

You will need:

  • Your Creovai instance name — the subdomain of your Conversation Intelligence (CI) environment (i.e. [INSTANCE NAME].audio.tethr.com)
  • API credentials — a bearer token issued by Creovai Support
  • A tool or platform capable of making server-side HTTP requests

Prerequisites

  1. API User — Request an API user in Conversation Intelligence via Creovai Support. You will need to request LiveCall and Processing roles.
  2. CI ↔ Agent Assist Link — Creovai will configure the connection between your Conversation Intelligence and Agent Assist environments as part of onboarding.

Authentication

To request a bearer token, reference the Authorization Token article


How It Works

A Realtime Agent Assist session is bookended by two API calls:

CallPurpose
Start InteractionSent when the interaction begins. Establishes the session and passes participant/metadata info.
Complete InteractionSent when the interaction ends. Marks the session as complete.

Start Interaction

Creates the interaction and sets its start time. Adds the initial set of participants and metadata.

Endpoint

POST https://[INSTANCE NAME].audio.tethr.com/callCapture/v1/live/interactionStarted

Required Fields

FieldDescription
sessionIdPredefined by your platform, unique per interaction. See Session ID Behavior below.
utcTimestampStart time of the interaction, in UTC, ISO 8601 format.
participantsSee Participants below.
metadata.campaignAgent Assist campaign name/alias — must match exactly.
metadata.usernameAgent Assist username — must match exactly, case-sensitive.

Participants

Every participant who may generate an utterance (audio or chat) needs an entry here — this is how incoming utterances get attributed to the right person.

FieldRequiredNotes
refTypeYes, for every participantAgent or Customer
refIdYes, for Agent. Optional for Customer, but recommended for better identificationIdentifier for the participant — typically an email or employee ID
channelYes, for every participantMust match the channel used on that participant's utterances
email / phone / firstName / lastNameNoProvide if available
sourceId / timestampNoEach can be used on its own, or together. timestamp alone can mark the point at which a participant takes over a channel — any utterances after that time on that channel are assigned to them. sourceId distinguishes participants sharing a channel at the same time from different sources. Most integrations sending one agent + one customer on separate channels can omit both.

Requirements

  • Username must match the Agent Assist username exactly, case-sensitive.
  • Campaign must match a campaign name or configured alias in Agent Assist — see Awaken — Campaigns Module.

Session ID Behavior

sessionId must be predefined by your platform and is passed to Agent Assist as the reference number.

Example 1

This covers the most common scenario: one agent and one customer, each on their own channel, with nothing else needed to tell participants apart.

{
    "sessionId": "UNIQUE-SESSION-ID",
    "utcTimestamp": "2026-07-27T13:19:00Z",
    "participants": [
        {
            "refType": "Agent",
            "refId": "agent@yourcompany.com",
            "channel": "0",
            "firstName": "Jane",
            "lastName": "Smith"
        },
        {
            "refType": "Customer",
            "channel": "1",
            "phone": "5555559876",
            "firstName": "John",
            "lastName": "Doe"
        }
    ],
    "metadata": {
        "campaign": "AGENT-ASSIST-CAMPAIGN-NAME",
        "username": "AGENT-ASSIST-USERNAME"
    }
}

Example 2

Use this API call if your platform can put more than one participant on the same channel over time — for example, a warm transfer where a second agent joins on the same channel later in the call.

{
    "sessionId": "UNIQUE-SESSION-ID",
    "utcTimestamp": "2026-07-27T13:19:00Z",
    "participants": [
        {
            "refType": "Agent",
            "refId": "jane.smith@yourcompany.com",
            "channel": "0",
            "sourceId": "agent-leg-1",
            "timestamp": "2026-07-27T13:19:00Z"
        },
        {
            "refType": "Customer",
            "channel": "1",
            "sourceId": "customer-leg-1",
            "timestamp": "2026-07-27T13:19:00Z"
        }
    ],
    "metadata": {
        "campaign": "AGENT-ASSIST-CAMPAIGN-NAME",
        "username": "AGENT-ASSIST-USERNAME"
    }
}

Complete Interaction

Marks the interaction as completed at a given time. Additional data can still be sent after completion if needed.

Endpoint

POST https://[INSTANCE NAME].audio.tethr.com/callCapture/v1/live/interactionComplete

Request Body

{
    "sessionId": "UNIQUE-SESSION-ID",
    "utcTimestamp": "2026-07-27T13:24:00Z",
    "metadata": {}
}
FieldRequiredDescription
sessionIdYesMust match the sessionId used in the corresponding Start Interaction call.
utcTimestampYesEnd time of the interaction, in UTC, ISO 8601 format.
metadataNoAny additional key-value data to pass through.

Was this article helpful?