Skip to content

Citas

Gestión de citas de llamadas. Permite programar videollamadas con fecha y hora definidas. Requiere rol de attendant o superior.

Endpoints

MétodoEndpointDescripciónRol Mínimo
GET/api/v1/appointmentsListar citasattendant
POST/api/v1/appointmentsCrear citaattendant
GET/api/v1/appointments/:idBuscar citaattendant
PUT/api/v1/appointments/:idActualizar citaattendant
GET/api/v1/appointments/conflictsVerificar conflictosattendant
POST/api/v1/appointments/:id/confirmConfirmar citaattendant
POST/api/v1/appointments/:id/cancelCancelar citaattendant
POST/api/v1/appointments/:id/completeMarcar como completadaattendant
POST/api/v1/appointments/:id/no-showMarcar como no-showattendant

Listar Citas

GET /api/v1/appointments

Query Parameters

ParámetroTipoPredeterminadoDescripción
pageinteger1Número de página
page_sizeinteger20Elementos por página
sort_bystringscheduled_atCampo para ordenamiento
sort_orderstringascDirección del ordenamiento
statusstring-Filtro: scheduled, confirmed, completed, cancelled, no_show
date_fromstring-Fecha inicio (ISO 8601)
date_tostring-Fecha fin (ISO 8601)
user_iduuid-Filtro por agente
department_iduuid-Filtro por departamento

Ejemplo de Request

bash
curl -X GET "https://voki.avanter.com.br/api/v1/appointments?date_from=2026-02-18&status=scheduled" \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "X-Tenant: avanter"

Respuesta Exitosa (200)

json
{
  "data": [
    {
      "id": "4c5d6e7f-8a9b-0123-defg-456789012345",
      "title": "Consulta de acompanhamento",
      "description": "Retorno sobre tratamento iniciado em janeiro",
      "status": "scheduled",
      "scheduled_at": "2026-02-20T10:00:00Z",
      "duration_minutes": 30,
      "department_id": "e5f6a7b8-c9d0-1234-efgh-567890123456",
      "department_name": "Suporte Técnico",
      "user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "user_name": "João Silva",
      "customer_id": "2a3b4c5d-6e7f-8901-bcde-f23456789012",
      "customer_name": "Carlos Ferreira",
      "customer_email": "carlos@email.com",
      "customer_phone": "+5511999998888",
      "notes": null,
      "inserted_at": "2026-02-15T10:00:00Z",
      "updated_at": "2026-02-15T10:00:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "page_size": 20,
    "total_pages": 1,
    "total_count": 1
  }
}

Crear Cita

POST /api/v1/appointments

Request Body

CampoTipoObligatorioDescripción
titlestringTítulo de la cita
descriptionstringNoDescripción detallada
scheduled_atstringFecha y hora (ISO 8601, futuro)
duration_minutesintegerNoDuración en minutos (predeterminado: 30)
department_iduuidID del departamento
user_iduuidNoID del agente (predeterminado: usuario autenticado)
customer_iduuidNoID del cliente existente
customer_namestringSí*Nombre del cliente (si no se proporciona customer_id)
customer_emailstringNoEmail del cliente
customer_phonestringNoTeléfono del cliente
notesstringNoObservaciones

Ejemplo de Request

bash
curl -X POST https://voki.avanter.com.br/api/v1/appointments \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "X-Tenant: avanter" \
  -H "Content-Type: application/json" \
  -d '{
    "appointment": {
      "title": "Reunião de apresentação",
      "scheduled_at": "2026-02-25T14:00:00Z",
      "duration_minutes": 45,
      "department_id": "e5f6a7b8-c9d0-1234-efgh-567890123456",
      "customer_name": "Roberto Lima",
      "customer_email": "roberto@email.com",
      "customer_phone": "+5511966665544"
    }
  }'

Respuesta Exitosa (201)

json
{
  "data": {
    "id": "5d6e7f8a-9b0c-1234-efgh-567890123456",
    "title": "Reunião de apresentação",
    "status": "scheduled",
    "scheduled_at": "2026-02-25T14:00:00Z",
    "duration_minutes": 45,
    "department_id": "e5f6a7b8-c9d0-1234-efgh-567890123456",
    "department_name": "Suporte Técnico",
    "user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "user_name": "João Silva",
    "customer_id": "6e7f8a9b-0c1d-2345-fghi-678901234567",
    "customer_name": "Roberto Lima",
    "customer_email": "roberto@email.com",
    "customer_phone": "+5511966665544",
    "inserted_at": "2026-02-18T16:00:00Z",
    "updated_at": "2026-02-18T16:00:00Z"
  }
}

Verificar Conflictos

Verifica si hay conflictos de horario para un agente.

GET /api/v1/appointments/conflicts

Query Parameters

ParámetroTipoObligatorioDescripción
user_iduuidID del agente
scheduled_atstringFecha y hora a verificar
duration_minutesintegerNoDuración en minutos (predeterminado: 30)
exclude_iduuidNoID de cita a excluir de la verificación

Ejemplo de Request

bash
curl -X GET "https://voki.avanter.com.br/api/v1/appointments/conflicts?user_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890&scheduled_at=2026-02-25T14:00:00Z&duration_minutes=45" \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "X-Tenant: avanter"

Respuesta Exitosa (200)

json
{
  "data": {
    "has_conflicts": false,
    "conflicts": []
  }
}

Confirmar Cita

POST /api/v1/appointments/:id/confirm

Ejemplo de Request

bash
curl -X POST https://voki.avanter.com.br/api/v1/appointments/4c5d6e7f-8a9b-0123-defg-456789012345/confirm \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "X-Tenant: avanter"

Cancelar Cita

POST /api/v1/appointments/:id/cancel

Request Body (opcional)

CampoTipoObligatorioDescripción
reasonstringNoMotivo de la cancelación

Ejemplo de Request

bash
curl -X POST https://voki.avanter.com.br/api/v1/appointments/4c5d6e7f-8a9b-0123-defg-456789012345/cancel \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "X-Tenant: avanter" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Cliente solicitou reagendamento"
  }'

Marcar como Completada

POST /api/v1/appointments/:id/complete

Marcar como No-Show

POST /api/v1/appointments/:id/no-show

Estado de la Cita

EstadoDescripción
scheduledProgramada, esperando confirmación
confirmedConfirmada por el agente o cliente
completedLlamada realizada
cancelledCancelada
no_showEl cliente no se presentó

Documentação da API Voki v4.0