---
title: Smart Routings — Enquêtes
excerpt: Gérez les enquêtes de satisfaction, enregistrez les réponses des appelants depuis vos flux d'appel, et consultez ou exportez les résultats.
order: 13
---

Les enquêtes recueillent les notes de satisfaction des appelants après un appel. Consultez [Smart Routings](/fr/docs/cx-api/smart-routings) pour les notions communes à tous les endpoints Smart Routings.

Tous les endpoints de cette section sont **propres à l'espace de travail** et nécessitent le scope OAuth `client`. L'enregistrement d'une réponse (`POST /api/smart-routings/survey-records`) accepte également le scope `cfd`.

**Headers :** `Authorization: Bearer {workspace-token}`

**Paramètre de requête obligatoire :** `customer_account` — le compte client concerné. Voir [Choix du compte client](/fr/docs/cx-api/smart-routings#choix-du-compte-client).

| Permission | Nécessaire pour |
|---|---|
| `survey.view` | Lister et consulter les enquêtes, lister et exporter les réponses |
| `survey.create` | Créer des enquêtes |
| `survey.edit` | Modifier les enquêtes, modifier et supprimer des réponses |
| `survey.delete` | Supprimer des enquêtes |
| `survey.lookup` ou `survey.edit` | Enregistrer une réponse |

---

## Enquêtes

### GET /api/smart-routings/surveys

Renvoie la liste paginée des enquêtes du client.

**Paramètres de requête**

| Paramètre | Description |
|---|---|
| `filter[name]` | Filtrer par nom |
| `sort` | Champ de tri : `id`, `name`, `created_at`, `updated_at`. Préfixez par `-` pour un tri décroissant. Par défaut : `-updated_at` |
| `per_page` | Nombre de résultats par page (par défaut : 20) |
| `page` | Numéro de page |

**Réponse `200`** — réponse paginée

```json
{
  "data": [
    {
      "id": 3,
      "customer_id": 12,
      "name": "After-sales satisfaction",
      "created_at": "2024-05-10T08:00:00.000000Z",
      "updated_at": "2024-05-10T08:00:00.000000Z"
    }
  ],
  "current_page": 1,
  "last_page": 1,
  "per_page": 20,
  "total": 1
}
```

---

### GET /api/smart-routings/surveys/{id}

Renvoie une enquête, avec son objet `customer`.

**Réponse `200`**

```json
{
  "id": 3,
  "customer_id": 12,
  "name": "After-sales satisfaction",
  "created_at": "2024-05-10T08:00:00.000000Z",
  "updated_at": "2024-05-10T08:00:00.000000Z",
  "customer": { "id": 12, ... }
}
```

**Réponse `403`** — l'enquête appartient à un autre client, ou la permission est manquante

---

### POST /api/smart-routings/surveys

Crée une enquête pour le client.

**Corps de la requête**

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `name` | string | oui | Nom de l'enquête |

**Réponse `201`** — l'enquête créée

---

### PUT /api/smart-routings/surveys/{id}

Renomme une enquête. `PATCH` est également accepté.

**Corps de la requête**

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `name` | string | non | Nom de l'enquête |

**Réponse `201`** — l'enquête mise à jour

---

### DELETE /api/smart-routings/surveys/{id}

Supprime une enquête.

**Réponse `200`**

```json
{ "response": "element deleted" }
```

---

## Réponses aux enquêtes

Une réponse (record) correspond aux réponses d'un appelant à une enquête : le numéro de l'appelant, une à trois notes, l'agent qui a traité l'appel, ainsi que la date et l'heure.

### POST /api/smart-routings/survey-records

Enregistre les réponses d'un appelant. C'est l'endpoint qu'appelle un flux d'appel 3CX à la fin d'une enquête. Accepte le scope `client` ou `cfd`.

**Corps de la requête**

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `survey_id` | integer | oui | Identifiant de l'enquête |
| `caller` | string | oui | Numéro de l'appelant |
| `score_1` | string | oui | Réponse à la première question (valeur numérique) |
| `score_2` | string | non | Réponse à la deuxième question (valeur numérique) |
| `score_3` | string | non | Réponse à la troisième question (valeur numérique) |
| `datetime` | string | oui | Date et heure de la réponse, au format 3CX : `MM/DD/YYYY hh:mm:ss AM` ou `PM` (ex. `10/08/2026 2:35:12 PM`) |
| `agent_extension` | string | non | Extension de l'agent qui a traité l'appel |
| `agent_name` | string | non | Nom de l'agent qui a traité l'appel |

```json
{
  "survey_id": 3,
  "caller": "+33612345678",
  "score_1": "4",
  "score_2": "5",
  "datetime": "10/08/2026 2:35:12 PM",
  "agent_extension": "201",
  "agent_name": "Alice Martin"
}
```

**Réponse `201`**

```json
{
  "survey_id": 3,
  "caller": "+33612345678",
  "score_1": "4",
  "score_2": "5",
  "datetime": "2026-10-08T14:35:12.000000Z",
  "agent_extension": "201",
  "agent_name": "Alice Martin",
  "updated_at": "2026-10-08T14:35:13.000000Z",
  "created_at": "2026-10-08T14:35:13.000000Z",
  "id": 981
}
```

**Réponse `400`** — erreur de validation

---

### GET /api/smart-routings/survey-records

Renvoie la liste paginée des réponses d'une enquête.

**Paramètres de requête**

| Paramètre | Description |
|---|---|
| `survey_id` | **Obligatoire.** Identifiant de l'enquête |
| `filter[caller]` | Filtrer par numéro d'appelant |
| `filter[agent_name]` | Filtrer par nom d'agent |
| `filter[search]` | Rechercher dans le numéro de l'appelant, le nom et l'extension de l'agent |
| `sort` | Champ de tri : `id`, `caller`, `datetime`. Préfixez par `-` pour un tri décroissant. Par défaut : `-datetime` |
| `per_page` | Nombre de résultats par page (par défaut : 20) |
| `page` | Numéro de page |

**Réponse `200`** — réponse paginée

```json
{
  "data": [
    {
      "id": 981,
      "survey_id": 3,
      "caller": "+33612345678",
      "score_1": 4,
      "score_2": 5,
      "score_3": null,
      "agent_extension": "201",
      "agent_name": "Alice Martin",
      "datetime": "2026-10-08T14:35:12.000000Z",
      "created_at": "2026-10-08T14:35:13.000000Z",
      "updated_at": "2026-10-08T14:35:13.000000Z"
    }
  ],
  "current_page": 1,
  "last_page": 1,
  "per_page": 20,
  "total": 1
}
```

---

### GET /api/smart-routings/survey-records/export

Télécharge toutes les réponses d'une enquête sous forme de fichier.

**Paramètres de requête**

| Paramètre | Description |
|---|---|
| `survey_id` | **Obligatoire.** Identifiant de l'enquête |
| `format` | `csv` (par défaut), `xlsx` ou `xls` |

**Réponse `200`** — téléchargement d'un fichier nommé `survey_records.{format}`, avec les colonnes `id`, `survey_id`, `caller`, `score_1`, `score_2`, `score_3`, `datetime`, `agent_extension`, `agent_name`.

---

### PUT /api/smart-routings/survey-records/{id}

Met à jour une réponse. Tous les champs de l'endpoint de création sont acceptés et facultatifs. Lorsqu'il est envoyé, `datetime` utilise le même format 3CX. Nécessite la permission `survey.edit`.

**Réponse `200`** — la réponse mise à jour

**Réponse `403`** — l'enquête appartient à un autre client, ou la permission est manquante

---

### DELETE /api/smart-routings/survey-records/{id}

Supprime une réponse. Nécessite la permission `survey.edit` (`survey.delete` ne concerne que les enquêtes elles-mêmes).

**Réponse `200`**

```json
{ "response": "element deleted" }
```

**Réponse `403`** — l'enquête appartient à un autre client, ou la permission est manquante
