Conector de Twilio Flex

Conecta tu contact center de Twilio Flex con Brevo para unificar el historial de interacciones con el cliente, activar flujos de marketing posteriores a la conversación y obtener analíticas de engagement basadas en soporte a través de Tajo.

Resumen

PropiedadValor
PlataformaTwilio Flex
CategoríaPersonalizada
Complejidad de configuraciónAvanzada
Integración oficialNo
Datos sincronizadosClientes, Conversaciones, Eventos
APIs utilizadasFlex API, Conversations API, TaskRouter API
AutenticaciónAccount SID + Auth Token / API Key
URL basehttps://flex-api.twilio.com

Funcionalidades

  • Sincronización de conversaciones - Reenvía interacciones de voz, SMS, WhatsApp y chat al timeline de Brevo
  • Enriquecimiento del perfil de cliente - Sincroniza datos de cliente de Flex con atributos de contacto de Brevo
  • Campañas post-interacción - Activa workflows de Brevo al finalizar conversaciones de soporte
  • Seguimiento de eventos CSAT - Sincroniza los resultados de encuestas de satisfacción como eventos de Brevo
  • Datos de actividad del agente - Rastrea las métricas de rendimiento de los agentes para el reporting operativo
  • Analítica de colas - Reenvía datos de tiempo de espera y abandono para optimizar la experiencia

Requisitos previos

Antes de empezar, asegúrate de tener:

  1. Una cuenta de Twilio con Flex habilitado
  2. Tu Twilio Account SID y Auth Token
  3. Una instancia de Flex con canales activos (voz, SMS, chat o WhatsApp)
  4. Un workspace de TaskRouter configurado
  5. Una cuenta de Brevo con acceso a la API
  6. Una cuenta de Tajo con suscripción activa

Autenticación

Twilio Flex usa los métodos de autenticación estándar de Twilio.

Credenciales de cuenta

Terminal window
# Basic Auth: Account SID as username, Auth Token as password
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \
-u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"

API Key (recomendada para producción)

  1. Ve a Twilio Console > Account > API keys & tokens
  2. Haz clic en Create API Key
  3. Selecciona el tipo de clave Standard
  4. Guarda el SID y el Secret de forma segura
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

Tu Auth Token tiene acceso total a la cuenta. Para producción, usa API Keys con alcance limitado. Las API Keys se pueden revocar individualmente sin afectar a otras integraciones.

Conectar con 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

Configuración

Configuración básica

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

Asignación de campos

Asocia los datos de clientes e interacciones de Flex con los atributos de Brevo:

field_mapping:
# Customer fields
identity: FLEX_IDENTITY
friendly_name: FIRSTNAME
attributes.email: email
attributes.phone: SMS
# Interaction metrics
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
# Custom attributes
customer_tier: VIP_TIER
account_id: ACCOUNT_ID

Asignación de eventos

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

Endpoints de la API

Tajo se integra con los siguientes endpoints de Twilio Flex y APIs relacionadas:

EndpointMétodoAPIPropósito
/v1/ConfigurationGETFlexObtener la configuración de Flex
/v1/InteractionsGETFlexListar interacciones
/v1/ChannelsGETFlexListar canales de Flex
/v1/WebChannelsPOSTFlexCrear un canal de chat web
/v1/ConversationsGETConversationsListar conversaciones
/v1/Conversations/{sid}/MessagesGETConversationsListar mensajes de una conversación
/v1/Conversations/{sid}/ParticipantsGETConversationsListar participantes
/v1/Workspaces/{sid}/TasksGETTaskRouterListar tasks
/v1/Workspaces/{sid}/WorkersGETTaskRouterListar workers (agentes)
/v1/Workspaces/{sid}/TaskQueuesGETTaskRouterListar colas de tasks
/v1/Workspaces/{sid}/EventsGETTaskRouterListar eventos del workspace

Ejemplos de código

Inicializar el conector

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
});

Sincronizar el historial de conversaciones

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
// }

Trigger de campaña post-conversación

// Trigger a Brevo follow-up after a support conversation ends
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');
});

Integración con Flex Plugin

// Inside a Flex UI Plugin - send data to 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
})
});
});
}
}

Límites de velocidad

Twilio aplica límites de velocidad en sus APIs:

APILímite de velocidadNotas
Flex API100 peticiones/segundoPor cuenta
Conversations API100 peticiones/segundoPor cuenta
TaskRouter API30 lecturas/segundoPor workspace
TaskRouter Events20 peticiones/segundoPor workspace

Event Streams

Para procesar eventos de alto volumen, considera usar Twilio Event Streams en lugar de hacer polling de los eventos de TaskRouter. Event Streams envía los eventos en tiempo real mediante webhooks o Kinesis.

Resolución de problemas

Problemas habituales

ProblemaCausaSolución
401 UnauthorizedSID o token no válidosVerifica Account SID y Auth Token en la Twilio Console
403 ForbiddenFlex no habilitadoAsegúrate de que Flex esté activado en tu cuenta de Twilio
Conversaciones ausentesRango de fechas incorrectoAmplía el rango de sincronización o comprueba el estado de la conversación
Tasks no rastreadasWorkspace de TaskRouter incorrectoVerifica que el SID del workspace sea correcto
El plugin no se disparaListener no registradoComprueba que el Flex plugin esté desplegado y activo

Modo depuración

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

Probar la conexión

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

Buenas prácticas

  1. Usa API Keys en lugar de Auth Tokens - Las API Keys se pueden limitar y revocar individualmente
  2. Aprovecha Event Streams - Los eventos push son más eficientes que hacer polling de TaskRouter
  3. Crea un Flex Plugin - Usa un UI plugin para capturar eventos de finalización de tasks en tiempo real
  4. Asigna los canales de forma coherente - Normaliza los datos de voz, SMS y chat en eventos unificados de Brevo
  5. Rastrea las puntuaciones CSAT - Sincroniza los datos de satisfacción con Brevo para segmentar por experiencia
  6. Monitoriza las métricas de cola - Usa los datos de tiempo de espera para activar comunicación proactiva con el cliente

Seguridad

  • Account SID + Auth Token - Autenticación estándar de Twilio
  • API Keys - Credenciales no-root revocables para uso en producción
  • Solo HTTPS - Toda la comunicación con la API se cifra vía TLS 1.2+
  • Validación de webhooks - Verifica las firmas de webhook de Twilio con X-Twilio-Signature
  • Cumplimiento PCI - Twilio Flex cumple con PCI DSS Nivel 1
  • Almacenamiento cifrado - Credenciales cifradas en reposo en Tajo

Recursos relacionados

Subscribe to updates

developer-docs

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

auto-detect
Asistente AI

¡Hola! Pregúntame lo que quieras sobre la documentación.