Skip to content

Rendez-vous

Gestion des rendez-vous d'appels. Permet de planifier des visioconférences à une date et heure définies. Nécessite le rôle attendant ou supérieur.

Endpoints

MéthodeEndpointDescriptionRôle Minimum
GET/api/v1/appointmentsLister les rendez-vousattendant
POST/api/v1/appointmentsCréer un rendez-vousattendant
GET/api/v1/appointments/:idRechercher un rendez-vousattendant
PUT/api/v1/appointments/:idMettre à jour un rendez-vousattendant
GET/api/v1/appointments/conflictsVérifier les conflitsattendant
POST/api/v1/appointments/:id/confirmConfirmer un rendez-vousattendant
POST/api/v1/appointments/:id/cancelAnnuler un rendez-vousattendant
POST/api/v1/appointments/:id/completeMarquer comme terminéattendant
POST/api/v1/appointments/:id/no-showMarquer comme no-showattendant

Lister les Rendez-vous

GET /api/v1/appointments

Query Parameters

ParamètreTypeDéfautDescription
pageinteger1Numéro de page
page_sizeinteger20Éléments par page
sort_bystringscheduled_atChamp de tri
sort_orderstringascDirection du tri
statusstring-Filtre : scheduled, confirmed, completed, cancelled, no_show
date_fromstring-Date de début (ISO 8601)
date_tostring-Date de fin (ISO 8601)
user_iduuid-Filtre par agent
department_iduuid-Filtre par département

Exemple de Requête

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"

Réponse de Succès (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
  }
}

Créer un Rendez-vous

POST /api/v1/appointments

Request Body

ChampTypeObligatoireDescription
titlestringOuiTitre du rendez-vous
descriptionstringNonDescription détaillée
scheduled_atstringOuiDate et heure (ISO 8601, futur)
duration_minutesintegerNonDurée en minutes (défaut : 30)
department_iduuidOuiID du département
user_iduuidNonID de l'agent (défaut : utilisateur authentifié)
customer_iduuidNonID d'un client existant
customer_namestringOui*Nom du client (si customer_id non fourni)
customer_emailstringNonEmail du client
customer_phonestringNonTéléphone du client
notesstringNonObservations

Exemple de Requête

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": "Réunion de présentation",
      "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"
    }
  }'

Réponse de Succès (201)

json
{
  "data": {
    "id": "5d6e7f8a-9b0c-1234-efgh-567890123456",
    "title": "Réunion de présentation",
    "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"
  }
}

Vérifier les Conflits

Vérifie s'il existe des conflits d'horaire pour un agent.

GET /api/v1/appointments/conflicts

Query Parameters

ParamètreTypeObligatoireDescription
user_iduuidOuiID de l'agent
scheduled_atstringOuiDate et heure à vérifier
duration_minutesintegerNonDurée en minutes (défaut : 30)
exclude_iduuidNonID du rendez-vous à exclure de la vérification

Exemple de Requête

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"

Réponse de Succès (200)

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

Confirmer un Rendez-vous

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

Exemple de Requête

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"

Annuler un Rendez-vous

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

Request Body (optionnel)

ChampTypeObligatoireDescription
reasonstringNonMotif de l'annulation

Exemple de Requête

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": "Le client a demandé un report"
  }'

Marquer comme Terminé

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

Marquer comme No-Show

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

Statuts du Rendez-vous

StatutDescription
scheduledPlanifié, en attente de confirmation
confirmedConfirmé par l'agent ou le client
completedAppel réalisé
cancelledAnnulé
no_showLe client ne s'est pas présenté

Documentação da API Voki v4.0