---
title: "Konektor Twilio Flex"
description: "Kompletny przewodnik integracji Twilio Flex do synchronizacji interakcji centrum kontaktowego, aktywności agentów i rozmów z klientami z Brevo przez Tajo."
url: https://tajo.io/pl/docs/connectors/custom/twilio-flex/
markdown: https://tajo.io/pl/docs/connectors/custom/twilio-flex.md
lang: pl-PL
robots: noindex
---

Poproś o wcześniejszy dostęp

Podaj imię i firmowy adres e-mail. Wyślemy Ci link potwierdzający prośbę o dostęp do Tajo.

# Konektor Twilio Flex

Status konektora: Planowany Jeszcze niezbudowany. Tajo nie uruchamia dziś tego konektora.

| Pole źródłowe | Pole docelowe | Przykładowa wartość |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Połącz swoje centrum kontaktowe Twilio Flex z Brevo w celu ujednoliconej historii interakcji z klientami, przepływów marketingowych po rozmowie i analityki zaangażowania opartej na wsparciu przez Tajo.

## Przegląd

| Właściwość | Wartość |
| --- | --- |
| **Platforma** | Twilio Flex |
| **Kategoria** | Niestandardowa |
| **Poziom konfiguracji** | Zaawansowany |
| **Integracja oficjalna** | Nie |
| **Synchronizowane dane** | Klienci, Rozmowy, Zdarzenia |
| **Używane API** | Flex API, Conversations API, TaskRouter API |
| **Uwierzytelnianie** | Account SID + Auth Token / Klucz API |
| **Bazowy URL** | `https://flex-api.twilio.com` |

## Funkcje

- **Synchronizacja rozmów** - Przekazuj interakcje głosowe, SMS, WhatsApp i chat do osi czasu Brevo
- **Wzbogacanie profilu klienta** - Synchronizuj dane klientów Flex z atrybutami kontaktów Brevo
- **Kampanie po interakcji** - Wyzwalaj workflow Brevo po zakończeniu rozmów z pomocą techniczną
- **Śledzenie zdarzeń CSAT** - Synchronizuj wyniki ankiet satysfakcji jako zdarzenia Brevo
- **Dane aktywności agentów** - Śledź metryki wydajności agentów dla raportowania operacyjnego
- **Analityka kolejek** - Przekazuj dane czasu oczekiwania i porzucenia dla optymalizacji doświadczenia

## Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

1. Konto Twilio z włączonym Flex
2. Twilio Account SID i Auth Token
3. Instancję Flex z aktywnymi kanałami (głos, SMS, chat lub WhatsApp)
4. Skonfigurowany workspace TaskRouter
5. Konto Brevo z dostępem do API
6. Konto Tajo z aktywną subskrypcją

## Uwierzytelnianie

Twilio Flex używa standardowych metod uwierzytelniania Twilio.

### Dane konta

```bash
# 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"
```

### Klucz API (zalecane dla produkcji)

1. Przejdź do **Twilio Console** > **Account** > **API keys & tokens**
2. Kliknij **Create API Key**
3. Wybierz typ klucza **Standard**
4. Przechowuj SID i Secret bezpiecznie

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

Auth Token a Klucz API

Twój Auth Token ma pełny dostęp do konta. Dla produkcji używaj kluczy API z zakresem zamiast tego. Klucze API można odwołać indywidualnie bez zakłócania innych integracji.

### Połączenie z Tajo

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

## Konfiguracja

### Podstawowa konfiguracja

```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
```

### Mapowanie pól

Mapuj dane klientów i interakcji Flex na atrybuty Brevo:

```yaml
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
```

### Mapowanie zdarzeń

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

## Endpointy API

Tajo integruje się z następującymi endpointami Twilio Flex i powiązanych API:

| Endpoint | Metoda | API | Cel |
| --- | --- | --- | --- |
| `/v1/Configuration` | GET | Flex | Pobierz konfigurację Flex |
| `/v1/Interactions` | GET | Flex | Lista interakcji |
| `/v1/Channels` | GET | Flex | Lista kanałów Flex |
| `/v1/WebChannels` | POST | Flex | Utwórz kanał web chat |
| `/v1/Conversations` | GET | Conversations | Lista rozmów |
| `/v1/Conversations/{sid}/Messages` | GET | Conversations | Lista wiadomości w rozmowie |
| `/v1/Conversations/{sid}/Participants` | GET | Conversations | Lista uczestników |
| `/v1/Workspaces/{sid}/Tasks` | GET | TaskRouter | Lista zadań |
| `/v1/Workspaces/{sid}/Workers` | GET | TaskRouter | Lista pracowników (agentów) |
| `/v1/Workspaces/{sid}/TaskQueues` | GET | TaskRouter | Lista kolejek zadań |
| `/v1/Workspaces/{sid}/Events` | GET | TaskRouter | Lista zdarzeń workspace |

## Przykłady kodu

### Inicjalizacja konektora

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

### Synchronizuj historię rozmów

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

### Wyzwolenie kampanii po rozmowie

```javascript
// 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');
});
```

### Integracja wtyczki Flex

```javascript
// 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.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

Adres `example.com` powyżej jest symbolem zastępczym, dopóki endpoint Tajo nie będzie dostępny.

## Limity API

Twilio egzekwuje limity szybkości w różnych API:

| API | Limit szybkości | Uwagi |
| --- | --- | --- |
| **Flex API** | 100 żądań/sekundę | Na konto |
| **Conversations API** | 100 żądań/sekundę | Na konto |
| **TaskRouter API** | 30 żądań odczytu/sekundę | Na workspace |
| **TaskRouter Events** | 20 żądań/sekundę | Na workspace |

Event Streams

Dla przetwarzania zdarzeń o dużym wolumenie rozważ użycie Twilio Event Streams zamiast odpytywania zdarzeń TaskRouter. Event Streams wypycha zdarzenia w czasie rzeczywistym przez webhooki lub Kinesis.

## Rozwiązywanie problemów

### Typowe problemy

| Problem | Przyczyna | Rozwiązanie |
| --- | --- | --- |
| 401 Unauthorized | Nieprawidłowy SID lub token | Zweryfikuj Account SID i Auth Token w Twilio Console |
| 403 Forbidden | Flex nie włączony | Upewnij się, że Flex jest aktywowany na koncie Twilio |
| Brakujące rozmowy | Zły zakres dat | Rozszerz zakres dat synchronizacji lub sprawdź stan rozmowy |
| Zadania nie śledzone | Niezgodność workspace TaskRouter | Zweryfikuj prawidłowy SID workspace |
| Wtyczka nie odpala | Listener zdarzeń niezarejestrowany | Sprawdź, czy wtyczka Flex jest wdrożona i aktywna |

### Tryb debug

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

### Test połączenia

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

## Najlepsze praktyki

1. **Używaj kluczy API zamiast Auth Tokenów** - Klucze API można zawęzić zakresem i odwołać indywidualnie
2. **Korzystaj z Event Streams** - Zdarzenia push są wydajniejsze niż odpytywanie TaskRouter
3. **Buduj wtyczkę Flex** - Używaj wtyczki UI do przechwytywania zdarzeń ukończenia zadań w czasie rzeczywistym
4. **Mapuj kanały spójnie** - Normalizuj dane głosowe, SMS i chat do ujednoliconych zdarzeń Brevo
5. **Śledź wyniki CSAT** - Synchronizuj dane satysfakcji do Brevo dla segmentacji opartej na doświadczeniu
6. **Monitoruj metryki kolejek** - Używaj danych czasu oczekiwania do wyzwalania proaktywnej komunikacji z klientem

## Bezpieczeństwo

- **Account SID + Auth Token** - Standardowe uwierzytelnianie Twilio
- **Klucze API** - Odwoływalne, nie-root poświadczenia dla produkcji
- **Tylko HTTPS** - Cała komunikacja API szyfrowana przez TLS 1.2+
- **Walidacja webhooków** - Weryfikuj podpisy webhooków Twilio za pomocą `X-Twilio-Signature`
- **Zgodność PCI** - Twilio Flex jest zgodny z PCI DSS Level 1
- **Szyfrowane przechowywanie** - Poświadczenia szyfrowane w spoczynku w Tajo

## Powiązane zasoby

- [Konektor Gorgias](https://tajo.io/pl/docs/connectors/support/gorgias)
- [Konektor Jira](https://tajo.io/pl/docs/connectors/custom/jira)
- [Skill synchronizacji klientów](https://tajo.io/pl/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/pl/docs/contact-management)
