Access & visibility
Allow voice.GetVoiceCatalog on your API key. Resource read permissions: core:Inbox.
Workspace access by default. Private member data requires approved member delegation through Brigg-Act-As; the key supplies permissions while private ownership and project boundaries remain enforced.
Request
No parameters. Send an empty JSON object ({}).
Bind a capability to an inbox
Get voice catalogue returns team/inbox offerings and existing bindings. An offering supplies a capability such as booking; it is not a speech voice. Copy its key to the request's offering_key, and copy revision exactly. Only enable an available offering. For built-in meeting booking, supply settings.booking_link_id from the catalogue's meetings: the link must be active and must not require extra questions unsupported by phone booking.
Select the request's inbox_id from List inboxes. The inbox must have an assigned agent and the acting member must have inbox-management authority. A personal assistant instead requires its owner's identity; workspace delegation does not bypass that ownership check. The public catalogue describes the team/inbox workflow.
Add creates a binding. Update requires the binding's existing id and its original inbox; it cannot move a binding between inboxes. Binding responses call these fields inbox_id and offering_key; requests use inbox_id and offering_key. Submit the complete desired offering_key, revision, enabled and settings: update is not a partial settings patch. Read the catalogue first to preserve settings you want to retain.
A 409 means an offering is no longer available or its revision changed. Re-read the catalogue, review the new capability and submit a new logical request with the reviewed revision. A 400 can mean invalid booking settings; 403 means the acting member cannot manage the target. Inspect the error message for the cause. Test the inbox with Start voice test after changing its capabilities.
Response
Returns 200 OK with a JSON body.
offeringsarray of VoiceOfferingRequiredAvailable voice capabilities that can be bound to an inbox assistant.
Item fields
keystringRequiredStable key identifying this option within its collection; distinct from its display label.
sourceobjectRequiredApp or integration supplying the voice capability.
Nested fields
kindstringRequiredCategory identifying which variant of this model applies.
Allowed: "app", "builtin", "integration".
idstringRequiredUnique identifier. Use the value returned by a create or list operation.
labelstringRequiredHuman-readable label shown for this item; use its ID or key in API calls.
revisionstringRequiredRevision identifying the version of this capability or configuration.
source_versionstringRequiredPublished source version used by this capability.
capabilityobjectRequiredVoice capability exposed by an app or integration.
Nested fields
kindstringRequiredCategory identifying which variant of this model applies.
Allowed: "read", "write".
labelstringRequiredHuman-readable label shown for this item; use its ID or key in API calls.
descriptionstringRequiredDescriptive text.
idstringRequiredUnique identifier. Use the value returned by a create or list operation.
changesmap of object (3 variants)RequiredSetting changes to apply to the existing binding.
Nested fields
Variant 1
valuenull or string or number or false or trueRequiredLiteral value to write when this capability applies the change.
Variant 2
fromFieldstringRequiredRead the change value from this field on the selected record.
Variant 3
fromInputstringRequiredRead the change value from this named capability input.
inputmap of JSON valuesOptionalA JSON Schema document describing the accepted value. See https://json-schema.org/understanding-json-schema/.
sourcestringOptionalApp or integration supplying the voice capability.
settingsobjectOptionalConfiguration fields defined by this voice capability.
Nested fields
booking_link_idstringOptionalBooking link identifier.
targetobjectOptionalRecord or operation targeted by this capability.
Nested fields
wheremap of null or string or number or false or true or objectRequiredRecord-selection conditions used by the capability.
Nested fields
Variant 6
fromInputstringRequiredRead the change value from this named capability input.
typestringRequiredType identifying which variant of this model applies.
fieldsarray of stringRequiredNamed fields applicable to this item.
bundle_idstringRequiredBundle identifier.
owner_fieldstringRequiredField identifying the capability's owning record.
owner_typestringRequiredResource type of the capability's owning record.
Allowed: "company", "person".
builtinstringOptionalWhether the capability is supplied by Brigg.
Allowed: "take_message", "book_meeting", "manage_calendar", "search_knowledge", "transfer_call", "end_call".
availablebooleanRequiredWhether this voice capability is available for the selected inbox.
Allowed: false, true.
reasonstringOptionalExplanation of why this outcome occurred.
follows_deploybooleanOptionalWhether this binding follows new deployments of its source capability.
Allowed: true.
bindingsarray of objectRequiredConfigured connections between an inbox assistant and voice capabilities.
Item fields
idstringRequiredUnique identifier. Use the value returned by a create or list operation.
inbox_idstringRequiredInbox identifier.
offering_keystringRequiredStable key identifying a published voice capability.
revisionstringRequiredRevision identifying the version of this capability or configuration.
enabledbooleanRequiredWhether this feature is enabled.
settingsVoiceBindingSettingsOptionalConfiguration fields defined by this voice capability.
VoiceBindingSettings
booking_link_idstringOptionalBooking link identifier.
meetingsarray of objectRequiredBooking links available to the voice assistant.
Item fields
idstringRequiredUnique identifier. Use the value returned by a create or list operation.
labelstringRequiredHuman-readable label shown for this item; use its ID or key in API calls.
ownerstringRequiredRecord to which the voice capability belongs.
Errors & retries
This operation reads data. It needs no idempotency key and can be retried after a transient failure.
For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.
| HTTP status | Code | What to do |
|---|---|---|
| 400 | invalid_json |
Send a JSON object with Content-Type: application/json. |
| 400 | invalid_input |
Check the request fields and types. |
| 401 | invalid_key |
The workspace API key is missing, invalid or revoked. |
| 403 | forbidden |
Check the key’s operation and resource grants. If Brigg-Act-As is supplied, the key must be authorized to delegate to that member. |
| 404 | not_found |
The requested operation or resource is not available to this credential. |
| 429 | rate_limited |
Wait for Retry-After before retrying. |
Next steps
JSON schemas
Use the complete schemas for validation or client generation.
Full request JSON schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"examples": [
{}
]
}Full response JSON schema
{
"type": "object",
"properties": {
"offerings": {
"type": "array",
"items": {
"title": "VoiceOffering",
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Stable key identifying this option within its collection; distinct from its display label."
},
"source": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"app",
"builtin",
"integration"
],
"description": "Category identifying which variant of this model applies."
},
"id": {
"type": "string",
"description": "Unique identifier. Use the value returned by a create or list operation."
},
"label": {
"type": "string",
"description": "Human-readable label shown for this item; use its ID or key in API calls."
}
},
"required": [
"kind",
"id",
"label"
],
"additionalProperties": false,
"description": "App or integration supplying the voice capability."
},
"revision": {
"type": "string",
"description": "Revision identifying the version of this capability or configuration."
},
"source_version": {
"type": "string",
"description": "Published source version used by this capability."
},
"capability": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"read",
"write"
],
"description": "Category identifying which variant of this model applies."
},
"label": {
"type": "string",
"description": "Human-readable label shown for this item; use its ID or key in API calls."
},
"description": {
"type": "string",
"description": "Descriptive text."
},
"id": {
"type": "string",
"description": "Unique identifier. Use the value returned by a create or list operation."
},
"changes": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"value": {
"anyOf": [
{
"type": "null"
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean",
"const": false
},
{
"type": "boolean",
"const": true
}
],
"description": "Literal value to write when this capability applies the change."
}
},
"required": [
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"fromField": {
"type": "string",
"description": "Read the change value from this field on the selected record."
}
},
"required": [
"fromField"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"fromInput": {
"type": "string",
"description": "Read the change value from this named capability input."
}
},
"required": [
"fromInput"
],
"additionalProperties": false
}
]
},
"description": "Setting changes to apply to the existing binding."
},
"input": {
"type": "object",
"additionalProperties": true,
"description": "A JSON Schema document describing the accepted value. See https://json-schema.org/understanding-json-schema/."
},
"source": {
"type": "string",
"description": "App or integration supplying the voice capability."
},
"settings": {
"type": "object",
"properties": {
"booking_link_id": {
"type": "string",
"description": "Booking link identifier."
}
},
"required": [],
"additionalProperties": false,
"description": "Configuration fields defined by this voice capability."
},
"target": {
"type": "object",
"properties": {
"where": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "null"
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean",
"const": false
},
{
"type": "boolean",
"const": true
},
{
"type": "object",
"properties": {
"fromInput": {
"type": "string",
"description": "Read the change value from this named capability input."
}
},
"required": [
"fromInput"
],
"additionalProperties": false
}
]
},
"description": "Record-selection conditions used by the capability."
},
"type": {
"type": "string",
"description": "Type identifying which variant of this model applies."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Named fields applicable to this item."
},
"bundle_id": {
"type": "string",
"description": "Bundle identifier."
},
"owner_field": {
"type": "string",
"description": "Field identifying the capability's owning record."
},
"owner_type": {
"type": "string",
"enum": [
"company",
"person"
],
"description": "Resource type of the capability's owning record."
}
},
"required": [
"where",
"type",
"fields",
"bundle_id",
"owner_field",
"owner_type"
],
"additionalProperties": false,
"description": "Record or operation targeted by this capability."
},
"builtin": {
"type": "string",
"enum": [
"take_message",
"book_meeting",
"manage_calendar",
"search_knowledge",
"transfer_call",
"end_call"
],
"description": "Whether the capability is supplied by Brigg."
}
},
"required": [
"kind",
"label",
"description",
"id",
"changes"
],
"additionalProperties": false,
"description": "Voice capability exposed by an app or integration."
},
"available": {
"type": "boolean",
"enum": [
false,
true
],
"description": "Whether this voice capability is available for the selected inbox."
},
"reason": {
"type": "string",
"description": "Explanation of why this outcome occurred."
},
"follows_deploy": {
"type": "boolean",
"enum": [
true
],
"description": "Whether this binding follows new deployments of its source capability."
}
},
"required": [
"key",
"source",
"revision",
"source_version",
"capability",
"available"
],
"additionalProperties": false
},
"description": "Available voice capabilities that can be bound to an inbox assistant."
},
"bindings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier. Use the value returned by a create or list operation."
},
"inbox_id": {
"type": "string",
"description": "Inbox identifier."
},
"offering_key": {
"type": "string",
"description": "Stable key identifying a published voice capability."
},
"revision": {
"type": "string",
"description": "Revision identifying the version of this capability or configuration."
},
"enabled": {
"type": "boolean",
"description": "Whether this feature is enabled."
},
"settings": {
"description": "Configuration fields defined by this voice capability.",
"title": "VoiceBindingSettings",
"type": "object",
"properties": {
"booking_link_id": {
"type": "string",
"description": "Booking link identifier."
}
},
"required": [],
"additionalProperties": false
}
},
"required": [
"id",
"inbox_id",
"offering_key",
"revision",
"enabled"
],
"additionalProperties": false
},
"description": "Configured connections between an inbox assistant and voice capabilities."
},
"meetings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier. Use the value returned by a create or list operation."
},
"label": {
"type": "string",
"description": "Human-readable label shown for this item; use its ID or key in API calls."
},
"owner": {
"type": "string",
"description": "Record to which the voice capability belongs."
}
},
"required": [
"id",
"label",
"owner"
],
"additionalProperties": false
},
"description": "Booking links available to the voice assistant."
}
},
"required": [
"offerings",
"bindings",
"meetings"
],
"additionalProperties": false,
"examples": [
{
"offerings": [
{
"key": "[\"builtin\",\"brigg\",\"book_meeting\"]",
"source": {
"kind": "builtin",
"id": "brigg",
"label": "Brigg"
},
"revision": "revision_booking_1",
"source_version": "1",
"capability": {
"kind": "write",
"label": "Book a meeting",
"description": "Book a time using an active meeting link.",
"id": "book_meeting",
"changes": {},
"builtin": "book_meeting"
},
"available": true
}
],
"bindings": [
{
"id": "voice_binding_booking",
"inbox_id": "e_inbox_support",
"offering_key": "[\"builtin\",\"brigg\",\"book_meeting\"]",
"revision": "revision_booking_1",
"enabled": true,
"settings": {
"booking_link_id": "booking_support"
}
}
],
"meetings": [
{
"id": "booking_support",
"label": "Support consultation",
"owner": "Alex Morgan"
}
]
}
]
}