Service Agent

Add a participant to a call

Changed on

Brings a colleague's extension into a call the calling agent owns, turning a two-party call into a three-party call. The colleague's phone rings. When the colleague answers, the colleague joins the call. The other two parties are not put on hold or muted and are not interrupted. The call must be one the calling agent owns, be in progress and be a two-party call. The participant must be an extension of the calling agent's customer. Any other address type, or an extension that does not exist, is deleted or belongs to another customer, is rejected with 400. A call that already has three parties, a call that is not in a conference, an extension that has no registered phone, and a request made while another participant is being added to the same call are rejected with 409. After a participant was added or declined, a new request can be refused for up to 90 seconds. The response is the group call of the new leg. It carries the IDs of the call legs in call_ids. The calls themselves can appear a moment after the response, and an extension with several registered phones has one leg per phone, of which only the one that answers joins. The legs belong to the colleague, so they are not returned from GET /service_agents/calls of the calling agent. Follow the progress from the call events. When the three-party call ends depends on how the original call started. If the call came in through a queue, it ends when the customer leaves, and it continues when the calling agent leaves. If the calling agent placed the call, it ends for everyone when the calling agent leaves. In both cases the call ends when only one party is left. Calls that reached the agent in another way, for example a direct call to the agent's extension, were not measured. The recording of a leg that was started before continues. Insight listening cannot be started while there are three parties.

post/service_agents/calls/{id}/participants

Request

Path parameters

idstring uuid required
Example:550e8400-e29b-41d4-a716-446655440000

The call ID returned from the GET /service_agents/calls response.

Request body

Example request

{
  "address": {
    "type": "extension",
    "target": "c5e7f18c-fc5a-4520-8326-e534e2ca0b8f"
  }
}

Response

The group call of the new leg.

idstring uuid

The unique identifier of the group call.

customer_idstring uuid

The customer ID that owns this group call. Returned from the GET /customers response.

owner_typestring

Type of the resource owner (e.g., agent, queue).

owner_idstring uuid

The unique identifier of the resource owner. Returned from the corresponding owner resource endpoint (e.g., GET /agents, GET /queues).

status'progressing' | 'hangingup' | 'hangup'

Current status of the call or group call

flow_idstring uuid

The flow ID associated with this group call. Returned from the POST /flows or GET /flows response.

master_call_idstring uuid nullable

The unique identifier of the master call that initiated this group call. Returned from the POST /calls or GET /calls response.

master_groupcall_idstring uuid nullable

The unique identifier of the master group call, if applicable. Returned from the POST /groupcalls or GET /groupcalls response.

ring_method'' | 'ring_all' | 'linear'

Method used for dialing

answer_method'' | 'hangup_others'

Method to handle answered calls

answer_call_idstring uuid

The unique identifier of the answered call. Returned from the POST /calls or GET /calls response.

call_idsstring[]

List of associated call IDs. Each ID is returned from the POST /calls or GET /calls response.

answer_groupcall_idstring uuid

The unique identifier of the answered group call. Returned from the POST /groupcalls or GET /groupcalls response.

groupcall_idsstring[]

List of associated group call IDs. Each ID is returned from the POST /groupcalls or GET /groupcalls response.

call_countinteger

Number of remaining calls in the current dial.

groupcall_countinteger

Number of remaining group calls in the current dial.

dial_indexinteger nullable

Current dial index, valid only when the ring method is "ring_all".

tm_createstring date-time

The creation timestamp.

tm_updatestring date-time

The last update timestamp.

tm_deletestring date-time nullable

The deletion timestamp, if applicable.

Example response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "customer_id": "7c4d2f3a-1b8e-4f5c-9a6d-3e2f1a0b4c5d",
  "owner_type": "agent",
  "owner_id": "c2d3e4f5-a6b7-8901-2cde-f01234567890",
  "status": "progressing",
  "flow_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "source": {
    "type": "tel",
    "target": "+14155551234",
    "target_name": "John Smith",
    "name": "Main Office",
    "detail": "Primary contact number"
  },
  "destinations": [
    {
      "type": "tel",
      "target": "+14155551234",
      "target_name": "John Smith",
      "name": "Main Office",
      "detail": "Primary contact number"
    }
  ],
  "master_call_id": "4d5e6f7a-8b9c-0123-def0-123456789012",
  "master_groupcall_id": "5e6f7a8b-9c0d-1234-ef01-234567890123",
  "ring_method": "ring_all",
  "answer_method": "hangup_others",
  "answer_call_id": "550e8400-e29b-41d4-a716-446655440000",
  "call_ids": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "answer_groupcall_id": "5e6f7a8b-9c0d-1234-ef01-234567890123",
  "groupcall_ids": [
    "5e6f7a8b-9c0d-1234-ef01-234567890123"
  ],
  "call_count": 2,
  "groupcall_count": 1,
  "tm_create": "2026-01-15T09:30:00.000000Z",
  "tm_update": "2026-01-15T09:30:00.000000Z",
  "tm_delete": "2026-01-15T09:30:00.000000Z"
}

Changes