Skip to main content

Glossary

The vocabulary the rest of these docs use. Each term links to where it's covered in depth.

AgentView

The server-owned, per-agent state — calls, presence, SMS, conferences, wrap-up, and feature config. Your UI is a pure function of it (UI = f(AgentView)). You render it; you never assemble it. See State & events.

Snapshot

The full AgentView the server sends once, when the control stream opens. Everything after it is a patch. See the stream.

Patch

One entity-level delta folded into AgentView (a oneof of ten — callUpsert, wrapUp, smsUpsert, …). Upserts replace by id; removes carry just the key. See the patch types.

Intent

A typed command you send (placeCall, mute, transfer, sendSms, …). The server reduces it and the result comes back as a patch — you never mutate state directly. See the Intents reference.

StateCache

The SDK's in-memory mirror that applies the snapshot and folds each patch, then notifies your subscriber with the current AgentView. One lives in each SDK.

seq

A monotonic sequence number on every state update. A gap means a patch was missed and the view is stale — resubscribe for a fresh snapshot.

Control plane / media plane

Control is gRPC(-web) — the state stream and your intents. Media is WebRTC — the call audio, negotiated separately. They travel independently; see the intro.

Control-only

Running the client without a media leg (mediaFactory: null in TS, the synthetic leg in Go) — for dashboards, SMS, presence, and back-end automation. See Control only.

Register

The client action (register() in TS, Register(...) in Go) that announces the agent as reachable and loads its deployment data — presence options, caller-ID numbers, phonebook, feature config. It also marks the agent WebRTC-reachable on the backend, so a control-only client that takes calls pairs it with setWebrtc(false) + an agent number. See Session & identity.

display-as

The outbound caller ID the consumer sees on a call the agent places. Chosen from agent.availableNumbers via setDisplayAs. See Session & identity.

Agent number

The agent's external phone. When the in-browser WebRTC phone is off, the backend bridges the call to this number instead. Set with setAgentNumber; see where calls ring.

Presence

The agent's availability, surfaced as three facets: presence is the coarse, server-computed AgentState enum (available / in_call / …) for a status icon; presenceName is the agent's chosen presence (set via setPresence, e.g. break); and line_blocked is an involuntary block the platform sets — separate from the chosen one. See State & events and Set presence.

line_blocked

An involuntary block set by the ACD / platform (busy / unreachable / declined / dnd), distinct from a chosen busy presence the agent selected; cleared via Reset (resetLineStatus). See State & events.

ACD state

The platform's routing state for the agent — what the ACD (automatic call distributor) thinks of the agent's availability for distributing calls. It can differ from the agent's chosen presence: e.g. the agent picks available but the ACD has marked the line blocked (see line_blocked).

Wrap-up (ACW)

After-call work — the timed window after a call ends. Surfaced as a wrapUp patch with a countdown you can extend or cancel. See the wrap-up walkthrough.

Moderator

The agent who starts a conference. Moderator-only controls (kick / hold / mute a member, end) are gated on Conference.iAmModerator. See Conferencing.

Warm / blind transfer

Warm (attended) is a two-step consult — pull the target into a conference, talk privately, then complete. Blind (cold) is a single hand-off, no consult. See Transfer.

Callback

A scheduled outbound call the agent accepts — it surfaces like an inbound call (RINGING, with CallState.source = callback) and waits for answerCall / hangup instead of auto-answering, even when autoAnswer is on. Not to be confused with a programming callback (onError, subscribe). See A call, end to end.

Notification

A transient CTI screen-pop — the one patch arm that isn't stored. The TypeScript client hands it to your onNotification callback and forgets it. See the patch types.

Embed

The prebuilt babelconnect agent app dropped into a host page via an <iframe> and a postMessage bridge, driven from your CRM — instead of building your own UI. See Embedding.