Boltly Boltly / Docs
Docs / API Reference / Teams & Routing

Teams & Routing

Organize agents into teams and define routing policies that automatically assign incoming conversations.

POST /v1/teams

Create team

Create a team to group agents for inbox assignment and routing.

Parameters

name string required

Team name. 1–255 characters.

description string

Optional description of the team's purpose.

settings object

Arbitrary JSON settings for the team.

is_active boolean

Whether the team is active. Defaults to false.

tier integer

Escalation tier of the team. Lower tiers receive conversations first.

Request

cURL
curl -X POST https://api.boltly.online/v1/teams \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Support",
    "description": "Front-line customer support",
    "is_active": true,
    "tier": 1
  }'

Response

JSON
{
  "data": {
    "id": "9f2c1b4e-...",
    "organization_id": "b7a1d2c3-...",
    "name": "Support",
    "description": "Front-line customer support",
    "settings": {},
    "is_active": true,
    "tier": 1,
    "created_at": "2026-04-03T12:00:00Z",
    "updated_at": "2026-04-03T12:00:00Z"
  }
}

POST /v1/teams/{id}/members

Add member

Add a user to a team with a role and chat capacity.

Parameters

id string required

Team ID.

user_id string required

ID of the user to add to the team.

role string required

Member role. One of: lead, member, supervisor.

is_available boolean

Whether the member is currently available to receive conversations.

max_concurrent_chats integer

Maximum simultaneous conversations for this member. 1–100.

skills array

Skill tags used by skills-based routing.

Request

cURL
curl -X POST https://api.boltly.online/v1/teams/9f2c1b4e-.../members \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "4d5e6f7a-...",
    "role": "member",
    "is_available": true,
    "max_concurrent_chats": 10,
    "skills": ["billing", "english"]
  }'

Response

JSON
{
  "data": {
    "id": "1a2b3c4d-...",
    "team_id": "9f2c1b4e-...",
    "user_id": "4d5e6f7a-...",
    "role": "member",
    "is_available": true,
    "max_concurrent_chats": 10,
    "current_chat_count": 0,
    "skills": ["billing", "english"],
    "created_at": "2026-04-03T12:00:00Z",
    "updated_at": "2026-04-03T12:00:00Z"
  }
}

POST /v1/routing/policies

Create policy

Create a routing policy that assigns incoming conversations to a team or user using a strategy.

Parameters

name string required

Policy name.

description string

Optional description of the policy.

strategy string required

Assignment strategy. One of: round_robin, weighted, load_balanced, skills_based, sticky.

priority integer

Evaluation priority. Higher-priority policies are matched first.

conditions object

JSON conditions a conversation must match for this policy to apply.

target_type string required

Routing target type. One of: team, user.

target_id string

ID of the target team or user.

settings object

Strategy-specific settings as JSON.

is_active boolean

Whether the policy is active.

Request

cURL
curl -X POST https://api.boltly.online/v1/routing/policies \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Support round robin",
    "strategy": "round_robin",
    "priority": 10,
    "target_type": "team",
    "target_id": "9f2c1b4e-...",
    "is_active": true
  }'

Response

JSON
{
  "data": {
    "id": "7e8f9a0b-...",
    "organization_id": "b7a1d2c3-...",
    "name": "Support round robin",
    "description": "",
    "strategy": "round_robin",
    "priority": 10,
    "conditions": {},
    "target_type": "team",
    "target_id": "9f2c1b4e-...",
    "settings": {},
    "is_active": true,
    "created_at": "2026-04-03T12:00:00Z",
    "updated_at": "2026-04-03T12:00:00Z"
  }
}