# Activités

> Gérez les conversations et les interactions avec les contacts

- Page: https://tbit.app/fr/docs/api/activities
- URL de base: `https://rest-api.tbit.app/v1`
- Authentification: en-tête `X-API-Key` avec votre clé dans chaque requête (les exemples la lisent depuis la variable d'environnement `TBIT_API_KEY`)

## Vue d'ensemble

Les activités représentent les conversations entre votre agent et les contacts. Chaque activité suit une conversation sur un ou plusieurs canaux, avec son statut, ses étiquettes et son attribution.

## Endpoints

| Méthode | Chemin | Description |
| --- | --- | --- |
| `GET` | `/v1/activities` | Lister les activités |
| `GET` | `/v1/activities/:id` | Obtenir le détail d'une activité |
| `PATCH` | `/v1/activities/:id` | Mettre à jour une activité |
| `POST` | `/v1/activities/:id/tags` | Ajouter des étiquettes à une activité |
| `DELETE` | `/v1/activities/:id/tags?tag_id=X` | Retirer une étiquette d'une activité |

## Paramètres de requête

L'endpoint de liste accepte les paramètres de requête suivants :

| Paramètre | Type | Description |
| --- | --- | --- |
| `limit` | `number` | Résultats par page (par défaut : 20, max : 100) |
| `offset` | `number` | Nombre de résultats à sauter (par défaut : 0) |
| `status` | `string` | Filtrer par statut : open, closed, pending |
| `tag` | `string` | Filtrer par ID d'étiquette |
| `search` | `string` | Rechercher par nom du contact ou numéro de téléphone |

## Lister les activités

`GET /v1/activities`

```bash
curl "https://rest-api.tbit.app/v1/activities?limit=20&offset=0&status=open" \
  -H "X-API-Key: $TBIT_API_KEY"
```

## Obtenir le détail d'une activité

`GET /v1/activities/64f1a2b3c4d5e6f7a8b9c0d1`

```bash
curl "https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1" \
  -H "X-API-Key: $TBIT_API_KEY"
```

## Mettre à jour une activité

`PATCH /v1/activities/64f1a2b3c4d5e6f7a8b9c0d1`

```bash
curl -X PATCH "https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1" \
  -H "X-API-Key: $TBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "closed",
    "assigned_to": "agent_user_id",
    "profile_name": "John Doe"
  }'
```

## Ajouter des étiquettes

`POST /v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags`

```bash
curl -X POST "https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags" \
  -H "X-API-Key: $TBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tag_ids": [
      "tag_id_1",
      "tag_id_2"
    ]
  }'
```

## Supprimer une étiquette

`DELETE /v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags`

```bash
curl -X DELETE "https://rest-api.tbit.app/v1/activities/64f1a2b3c4d5e6f7a8b9c0d1/tags?tag_id=tag_id_1" \
  -H "X-API-Key: $TBIT_API_KEY"
```

## Format de réponse

Les endpoints de liste renvoient des résultats paginés :

```json
{
  "data": [
    {
      "id": "64f1a2b3c4d5e6f7a8b9c0d1",
      "status": "open",
      "profile_name": "John Doe",
      "channel_identifiers": ["573001234567"],
      "tags": [
        { "id": "tag_1", "name": "VIP", "color": "#ef4444" }
      ],
      "assigned_to": null,
      "created_at": "2024-09-01T12:00:00Z",
      "updated_at": "2024-09-01T14:30:00Z"
    }
  ],
  "pagination": {
    "total": 100,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}
```
