Connecteur Twilio Flex
Statut du connecteur: Prévu Pas encore construit. Tajo n'exécute pas ce connecteur aujourd'hui.
Illustration · données d’exemple
Exemple de synchronisation
Source
Twilio Flex
Statut du connecteur: Prévu
Destination
Votre autre outil
Statut du connecteur: Outil personnalisé
Correspondance des champs
| 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 |
- Préparer
- Vérifier un enregistrement
- Approuver cette version
Les statuts concernent chaque connecteur et ne garantissent pas que cette synchronisation soit prête. Champs illustratifs. Vérifiez le schéma réel et les autorisations avant toute synchronisation.
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 :
- Un compte Twilio avec Flex activé
- Votre Account SID et Auth Token Twilio
- Une instance Flex avec des canaux actifs (voix, SMS, chat ou WhatsApp)
- Un workspace TaskRouter configuré
- Un compte Brevo avec accès API
- Un compte Tajo avec un abonnement actif
Authentification
Twilio Flex utilise les méthodes d’authentification standard de Twilio.
Identifiants de compte
# Basic Auth : Account SID comme nom d'utilisateur, Auth Token comme mot de passecurl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"API Key (recommandée en production)
- Allez dans Twilio Console > Account > API keys & tokens
- Cliquez sur Create API Key
- Sélectionnez le type de clé Standard
- Stockez le SID et le Secret de manière sécurisée
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
tajo connectors install twilio-flex \ --account-sid $TWILIO_ACCOUNT_SID \ --auth-token $TWILIO_AUTH_TOKEN \ --flex-flow-sid $TWILIO_FLEX_FLOW_SIDConfiguration
Configuration de base
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 - webchatMappage des champs
Mappez les données clients et d’interaction Flex vers les attributs Brevo :
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_IDMappage des événements
event_mapping: task.created: SUPPORT_REQUESTED task.completed: SUPPORT_RESOLVED task.canceled: SUPPORT_ABANDONED conversation.ended: CONVERSATION_ENDED survey.completed: CSAT_SUBMITTEDEndpoints 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
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
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
// Déclencher une relance Brevo après la fin d'une conversation de supportapp.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
// À l'intérieur d'un plugin Flex UI, envoyer les données vers Tajoimport { 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
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueTester la connexion
tajo connectors test twilio-flex# ✓ Flex API connection successful# ✓ Conversations API accessible# ✓ TaskRouter workspace found# ✓ Agent list readable# ✓ Queue configuration loadedBonnes pratiques
- Préférez les API Keys aux Auth Tokens, Les API Keys peuvent être limitées en portée et révoquées individuellement
- Exploitez Event Streams, Les événements push sont plus efficaces que le polling de TaskRouter
- Construisez un plugin Flex, Utilisez un plugin UI pour capter les événements de clôture de tâche en temps réel
- Mappez les canaux de manière cohérente, Normalisez les données voix, SMS et chat en événements Brevo unifiés
- Suivez les scores CSAT, Synchronisez les données de satisfaction vers Brevo pour une segmentation pilotée par l’expérience
- 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