Connecteur Twilio Flex

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
PlateformeTwilio Flex
CatégorieCustom
Complexité d’installationAvancée
Intégration officielleNon
Données synchroniséesClients, conversations, événements
APIs utiliséesFlex API, Conversations API, TaskRouter API
AuthentificationAccount SID + Auth Token / API Key
URL de basehttps://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

Terminal window
# 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
Terminal window
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

Terminal window
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

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 :

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

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 :

EndpointMéthodeAPIObjet
/v1/ConfigurationGETFlexObtenir la configuration Flex
/v1/InteractionsGETFlexLister les interactions
/v1/ChannelsGETFlexLister les canaux Flex
/v1/WebChannelsPOSTFlexCréer un canal de web chat
/v1/ConversationsGETConversationsLister les conversations
/v1/Conversations/{sid}/MessagesGETConversationsLister les messages d’une conversation
/v1/Conversations/{sid}/ParticipantsGETConversationsLister les participants
/v1/Workspaces/{sid}/TasksGETTaskRouterLister les tâches
/v1/Workspaces/{sid}/WorkersGETTaskRouterLister les workers (agents)
/v1/Workspaces/{sid}/TaskQueuesGETTaskRouterLister les files de tâches
/v1/Workspaces/{sid}/EventsGETTaskRouterLister 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 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

// À 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.tajo.io/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
})
});
});
}
}

Limites de débit

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

APILimite de débitNotes
Flex API100 requêtes/secondePar compte
Conversations API100 requêtes/secondePar compte
TaskRouter API30 requêtes en lecture/secondePar workspace
TaskRouter Events20 requêtes/secondePar 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èmeCauseSolution
401 UnauthorizedSID ou token invalideVérifiez l’Account SID et l’Auth Token dans la Console Twilio
403 ForbiddenFlex non activéAssurez-vous que Flex est activé sur votre compte Twilio
Conversations manquantesMauvaise plage de datesÉlargissez la plage de dates de synchronisation ou vérifiez l’état des conversations
Tâches non suiviesWorkspace TaskRouter non correspondantVérifiez que le SID du workspace est correct
Plugin qui ne se déclenche pasListener 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: true

Tester la connexion

Terminal window
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

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.