---
title: "Connecteur Twilio Flex"
description: "Guide complet d'intégration Twilio Flex pour synchroniser interactions de centre de contact, activité des agents et conversations clients avec Brevo via Tajo."
url: https://tajo.io/fr/docs/connectors/custom/twilio-flex/
markdown: https://tajo.io/fr/docs/connectors/custom/twilio-flex.md
lang: fr-FR
robots: noindex
---

Demandez un accès anticipé

Indiquez votre prénom et votre adresse e-mail professionnelle. Nous vous enverrons un lien pour confirmer votre demande d’accès à Tajo.

# Connecteur Twilio Flex

Statut du connecteur: Prévu Pas encore construit. Tajo n'exécute pas ce connecteur aujourd'hui.

| Champ source | Champ de destination | Valeur d’exemple |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Connectez votre centre de contact Twilio Flex à Brevo pour un historique unifié des interactions clients, des flux marketing post-conversation et des analytiques d’engagement pilotées par le support via Tajo.

## Vue d’ensemble

| Propriété | Valeur |
| --- | --- |
| **Plateforme** | Twilio Flex |
| **Catégorie** | Custom |
| **Complexité d’installation** | Avancée |
| **Intégration officielle** | Non |
| **Données synchronisées** | Clients, conversations, événements |
| **APIs utilisées** | Flex API, Conversations API, TaskRouter API |
| **Authentification** | Account SID + Auth Token / API Key |
| **URL de base** | `https://flex-api.twilio.com` |

## Fonctionnalités

- **Synchronisation des conversations**, Transférez les interactions voix, SMS, WhatsApp et chat vers les timelines Brevo
- **Enrichissement des profils clients**, Synchronisez les données client Flex vers les attributs de contact Brevo
- **Campagnes post-interaction**, Déclenchez des workflows Brevo après la fin des conversations de support
- **Suivi des événements CSAT**, Synchronisez les résultats d’enquêtes de satisfaction en tant qu’événements Brevo
- **Données d’activité des agents**, Suivez les métriques de performance des agents pour le reporting opérationnel
- **Analytics de file d’attente**, Transférez les données de temps d’attente et d’abandon pour optimiser l’expérience

## Prérequis

Avant de commencer, assurez-vous de disposer de :

1. Un compte Twilio avec Flex activé
2. Votre Account SID et Auth Token Twilio
3. Une instance Flex avec des canaux actifs (voix, SMS, chat ou WhatsApp)
4. Un workspace TaskRouter configuré
5. Un compte Brevo avec accès API
6. Un compte Tajo avec un abonnement actif

## Authentification

Twilio Flex utilise les méthodes d’authentification standard de Twilio.

### Identifiants de compte

```bash
# Basic Auth : Account SID comme nom d'utilisateur, Auth Token comme mot de passe
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \
  -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"
```

### API Key (recommandée en production)

1. Allez dans **Twilio Console** > **Account** > **API keys & tokens**
2. Cliquez sur **Create API Key**
3. Sélectionnez le type de clé **Standard**
4. Stockez le SID et le Secret de manière sécurisée

```bash
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \
  -u "$TWILIO_API_KEY_SID:$TWILIO_API_KEY_SECRET"
```

Auth Token vs API Key

Votre Auth Token donne un accès complet au compte. En production, utilisez plutôt des API Keys à portée limitée. Les API Keys peuvent être révoquées individuellement sans perturber les autres intégrations.

### Connexion à Tajo

```bash
tajo connectors install twilio-flex \
  --account-sid $TWILIO_ACCOUNT_SID \
  --auth-token $TWILIO_AUTH_TOKEN \
  --flex-flow-sid $TWILIO_FLEX_FLOW_SID
```

## Configuration

### Configuration de base

```yaml
connectors:
  twilio_flex:
    enabled: true
    account_sid: "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    flex_flow_sid: "FOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

    sync:
      conversations: true
      tasks: true
      customers: true
      csat: true
      agent_activity: false

    lists:
      support_contacts: 32
      csat_respondents: 33

    channels:
      - voice
      - sms
      - whatsapp
      - webchat
```

### Mappage des champs

Mappez les données clients et d’interaction Flex vers les attributs Brevo :

```yaml
field_mapping:
  # Champs client
  identity: FLEX_IDENTITY
  friendly_name: FIRSTNAME
  attributes.email: email
  attributes.phone: SMS

  # Métriques d'interaction
  last_conversation_date: LAST_SUPPORT_DATE
  total_conversations: SUPPORT_TICKET_COUNT
  avg_wait_time: AVG_WAIT_TIME
  last_csat_score: CSAT_SCORE
  preferred_channel: PREFERRED_CHANNEL

  # Attributs personnalisés
  customer_tier: VIP_TIER
  account_id: ACCOUNT_ID
```

### Mappage des événements

```yaml
event_mapping:
  task.created: SUPPORT_REQUESTED
  task.completed: SUPPORT_RESOLVED
  task.canceled: SUPPORT_ABANDONED
  conversation.ended: CONVERSATION_ENDED
  survey.completed: CSAT_SUBMITTED
```

## Endpoints API

Tajo s’intègre avec les endpoints Twilio Flex et apparentés suivants :

| Endpoint | Méthode | API | Objet |
| --- | --- | --- | --- |
| `/v1/Configuration` | GET | Flex | Obtenir la configuration Flex |
| `/v1/Interactions` | GET | Flex | Lister les interactions |
| `/v1/Channels` | GET | Flex | Lister les canaux Flex |
| `/v1/WebChannels` | POST | Flex | Créer un canal de web chat |
| `/v1/Conversations` | GET | Conversations | Lister les conversations |
| `/v1/Conversations/{sid}/Messages` | GET | Conversations | Lister les messages d’une conversation |
| `/v1/Conversations/{sid}/Participants` | GET | Conversations | Lister les participants |
| `/v1/Workspaces/{sid}/Tasks` | GET | TaskRouter | Lister les tâches |
| `/v1/Workspaces/{sid}/Workers` | GET | TaskRouter | Lister les workers (agents) |
| `/v1/Workspaces/{sid}/TaskQueues` | GET | TaskRouter | Lister les files de tâches |
| `/v1/Workspaces/{sid}/Events` | GET | TaskRouter | Lister les événements du workspace |

## Exemples de code

### Initialiser le connecteur

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

await tajo.connectors.connect('twilio-flex', {
  accountSid: process.env.TWILIO_ACCOUNT_SID,
  authToken: process.env.TWILIO_AUTH_TOKEN,
  flexFlowSid: process.env.TWILIO_FLEX_FLOW_SID
});
```

### Synchroniser l’historique des conversations

```javascript
await tajo.connectors.sync('twilio-flex', {
  type: 'incremental',
  resources: ['conversations'],
  since: '2024-01-01',
  channels: ['voice', 'sms', 'whatsapp']
});

const status = await tajo.connectors.status('twilio-flex');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-03-15T16:00:00Z',
//   conversationsTracked: 12400,
//   customersLinked: 8900,
//   agentsMonitored: 45
// }
```

### Déclencheur de campagne post-conversation

```javascript
// Déclencher une relance Brevo après la fin d'une conversation de support
app.post('/webhooks/flex/task-complete', async (req, res) => {
  const task = req.body;

  await tajo.connectors.handleEvent('twilio-flex', {
    type: 'task.completed',
    payload: {
      taskSid: task.TaskSid,
      customerEmail: task.TaskAttributes?.email,
      channel: task.TaskChannelUniqueName,
      duration: task.Age,
      queueName: task.TaskQueueFriendlyName
    }
  });

  res.status(200).send('OK');
});
```

### Intégration avec un plugin Flex

```javascript
// À l'intérieur d'un plugin Flex UI, envoyer les données vers Tajo
import { FlexPlugin } from '@twilio/flex-plugin';

class TajoPlugin extends FlexPlugin {
  init(flex, manager) {
    flex.Actions.addListener('afterCompleteTask', async (payload) => {
      await fetch('https://api.example.com/webhooks/flex/task-complete', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          TaskSid: payload.task.sid,
          TaskAttributes: payload.task.attributes,
          TaskChannelUniqueName: payload.task.taskChannelUniqueName,
          Age: payload.task.age
        })
      });
    });
  }
}
```

Caution

L’adresse `example.com` ci-dessus est un exemple provisoire en attendant que l’endpoint Tajo soit disponible.

## Limites de débit

Twilio impose des limites de débit sur ses APIs :

| API | Limite de débit | Notes |
| --- | --- | --- |
| **Flex API** | 100 requêtes/seconde | Par compte |
| **Conversations API** | 100 requêtes/seconde | Par compte |
| **TaskRouter API** | 30 requêtes en lecture/seconde | Par workspace |
| **TaskRouter Events** | 20 requêtes/seconde | Par workspace |

Event Streams

Pour le traitement d’événements à fort volume, envisagez d’utiliser Twilio Event Streams plutôt que le polling des événements TaskRouter. Event Streams pousse les événements en temps réel via webhooks ou Kinesis.

## Dépannage

### Problèmes courants

| Problème | Cause | Solution |
| --- | --- | --- |
| 401 Unauthorized | SID ou token invalide | Vérifiez l’Account SID et l’Auth Token dans la Console Twilio |
| 403 Forbidden | Flex non activé | Assurez-vous que Flex est activé sur votre compte Twilio |
| Conversations manquantes | Mauvaise plage de dates | Élargissez la plage de dates de synchronisation ou vérifiez l’état des conversations |
| Tâches non suivies | Workspace TaskRouter non correspondant | Vérifiez que le SID du workspace est correct |
| Plugin qui ne se déclenche pas | Listener d’événement non enregistré | Vérifiez que le plugin Flex est déployé et actif |

### Mode debug

```yaml
connectors:
  twilio_flex:
    debug: true
    log_level: verbose
    log_api_calls: true
```

### Tester la connexion

```bash
tajo connectors test twilio-flex
# ✓ Flex API connection successful
# ✓ Conversations API accessible
# ✓ TaskRouter workspace found
# ✓ Agent list readable
# ✓ Queue configuration loaded
```

## Bonnes pratiques

1. **Préférez les API Keys aux Auth Tokens**, Les API Keys peuvent être limitées en portée et révoquées individuellement
2. **Exploitez Event Streams**, Les événements push sont plus efficaces que le polling de TaskRouter
3. **Construisez un plugin Flex**, Utilisez un plugin UI pour capter les événements de clôture de tâche en temps réel
4. **Mappez les canaux de manière cohérente**, Normalisez les données voix, SMS et chat en événements Brevo unifiés
5. **Suivez les scores CSAT**, Synchronisez les données de satisfaction vers Brevo pour une segmentation pilotée par l’expérience
6. **Surveillez les métriques de file d’attente**, Utilisez les données de temps d’attente pour déclencher une communication client proactive

## Sécurité

- **Account SID + Auth Token**, Authentification Twilio standard
- **API Keys**, Identifiants révocables et non-root pour l’usage en production
- **HTTPS uniquement**, Toutes les communications API chiffrées via TLS 1.2+
- **Validation des webhooks**, Vérifiez les signatures de webhooks Twilio avec `X-Twilio-Signature`
- **Conformité PCI**, Twilio Flex est conforme PCI DSS niveau 1
- **Stockage chiffré**, Identifiants chiffrés au repos dans Tajo

## Ressources associées

- [Connecteur Gorgias](https://tajo.io/fr/docs/connectors/support/gorgias)
- [Connecteur Jira](https://tajo.io/fr/docs/connectors/custom/jira)
- [Skill de synchronisation client](https://tajo.io/fr/docs/skills/data-sync/customer-sync)
- [API Contacts Brevo](https://tajo.io/fr/docs/contact-management)
