Logo
Search
Docs

Fields & validation

Every field with its exact validation rule, nullability, and the database column that stores it.

Squad

FieldTypeRequiredNullableRules (verbatim)DB column
namestringyesnorequired|string|max:100squads.name
user_idintegernoyesnullable|integer|exists:users,id (admins only)squads.user_id
membersarrayyesnorequired|array|min:1squads.members
membersOverridesobjectnoyesnullable|arraysquads.members_overrides
variableValuesobjectnoyesnullable|arraysquads.variable_values
metadataobjectnoyesnullable|array — local-onlysquads.metadata

Member

FieldRules (verbatim)Notes
members.*.assistantIdrequired|stringThe member assistant's public id (UUID)
members.*.assistantOverridesnullable|arraySee override keys below
members.*.assistantDestinationsnullable|arrayHandoff targets
members.*.position.x / .ynullable|numericVisual-builder canvas position (UI-only)

Destination keys (each entry of assistantDestinations):

FieldRules (verbatim)
typenullable|string|in:assistant
assistantNamerequired|string|max:255
messagenullable|string|max:1000
descriptionnullable|string|max:2000
transferModenullable|string|in:rolling-history,swap-system-message-in-history,swap-system-message-in-history-and-remove-transfer-tool-messages,delete-history
assistantIdnullable|string

Override keys

The same override keys validate at three levels — per member (members.*.assistantOverrides), squad-wide (membersOverrides), and per destination:

KeyRules (verbatim)
namenullable|string|max:255
descriptionnullable|string
firstMessagenullable|string|max:1000
firstMessageModenullable|string|in:assistant-speaks-first,assistant-speaks-first-with-model-generated-message,assistant-waits-for-user
voicemailMessage / endCallMessagenullable|string|max:1000
modelnullable|array — temperature is nullable|numeric|min:0|max:2; engine selection is platform-managed
voice / transcribernullable|array — engine selection is platform-managed; transcriber.language is nullable|string|max:10
variableValues / metadatanullable|array

Constraints the rules cannot express

  • The first member is the entry assistant — it answers the call.
  • Handoffs are assembled from assistantDestinations at publish time; a destination’s assistantName must match another member.
  • metadata never leaves the platform database — it is not forwarded on publish.
  • Draft saves are lenient by design; the strict ruleset applies on publish (store/update).
  • On a draft update, an absent members key resets members to [].
  • The live platform is written first on publish; on failure nothing is saved locally.