Logo
Search
Docs

Overview

What squads are, the draft-and-publish lifecycle, identifiers, and the response envelope.

What this reference explains

A squad is a team of assistants that share one phone number and hand calls off to each other — a receptionist member greets the caller and transfers to a booking or support member based on what the caller needs. Each member can carry overrides (greeting, messages, model settings) that apply only while that member is live, and destinations that define who it can hand off to and how the conversation history carries over.

This reference shows how the squad system works under the hood: every dashboard action goes through these endpoints, with exact fields, validation limits, storage columns and error responses.

The draft-and-publish lifecycle

Squads follow a safe two-stage lifecycle:

  • Drafts are local-only. Creating or editing a draft never touches the live voice routing. Draft ids are recognisable local slugs (prefix draft_).
  • Publishing goes live. The full store/update endpoints write to the live voice platform first, then mirror locally and flip the squad to published. If the live write fails, nothing is saved.
  • Editing a published squad as a draft keeps the live squad running untouched while you compose changes; publishing applies them.
  • Duplicating always creates a local draft copy named "<name> (Copy)" — the live platform is never contacted.

Identifiers

The public identifier of a squad is external_squad_id: a UUID once published, or a local draft_… slug while it is a draft. Every path parameter written as {id} takes this value. The numeric row id is never exposed.

Response envelope

The panel envelope, with squad-specific decorations:

{"success": true, "data": { …squad… , "memberCount": 3, "entryAssistantName": "Reception",
  "createdAt": "…", "updatedAt": "…"}, "pagination": { … }}

memberCount and entryAssistantName (the first member) are computed on every response. A platform mirror object may also appear on store/update responses; it is internal and not part of the documented contract.

Feature availability

This module is gated by the squads feature. When disabled, every endpoint returns 403 with {"message":"This feature is not enabled for your account. Please contact your administrator.","feature":"squads"}.