Konektor Intercom
Połącz swoją przestrzeń roboczą Intercom z Brevo przez Tajo dla ujednoliconego komunikowania się z klientami, śledzenia rozmów i automatyzacji marketingu opartej na zaangażowaniu, zasilanej danymi wsparcia i produktu.
Przegląd
| Właściwość | Wartość |
|---|---|
| Platforma | Intercom |
| Kategoria | Support |
| Poziom konfiguracji | Średni |
| Integracja oficjalna | Tak |
| Synchronizowane dane | Kontakty, Rozmowy, Firmy, Zdarzenia |
| Bazowy URL API | https://api.intercom.io |
Funkcje
- Synchronizacja kontaktów - Dwukierunkowa synchronizacja użytkowników i leadów Intercom z kontaktami Brevo
- Śledzenie rozmów - Synchronizuj dane rozmów dla segmentacji opartej na wsparciu
- Mapowanie firm - Kojarz kontakty z firmami dla workflow opartych na kontach
- Niestandardowe atrybuty - Mapuj niestandardowe atrybuty Intercom na pola kontaktów Brevo
- Śledzenie zdarzeń - Synchronizuj niestandardowe zdarzenia i aktywności użytkowników dla targetowania behawioralnego
- Synchronizacja tagów - Mapuj tagi Intercom na przynależność do list Brevo lub atrybuty
- Dane Messengera - Śledź zaangażowanie w komunikacji w aplikacji i interakcje czatu
- Integracja agenta AI - Synchronizuj wyniki rozmów agenta AI z Brevo
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Przestrzeń roboczą Intercom (plan Starter, Pro lub Premium)
- Aplikację Intercom z tokenem dostępu (aplikacja prywatna) lub skonfigurowany OAuth (aplikacja publiczna)
- Konto Brevo z dostępem do API
- Konto Tajo
Uwierzytelnianie
Token dostępu (aplikacja prywatna)
Dla prywatnych integracji uzyskujących dostęp do własnych danych przestrzeni roboczej.
- Przejdź do Developer Hub > Your Apps > Create new app
- Powiąż z przestrzenią roboczą Intercom
- Skopiuj token dostępu
curl https://api.intercom.io/contacts \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -H "Intercom-Version: 2.11"OAuth 2.0 (aplikacja publiczna)
Dla integracji uzyskujących dostęp do danych Intercom innych klientów.
# Authorization URLhttps://app.intercom.com/oauth?client_id={client_id}&state={state}
# Token exchangecurl -X POST https://api.intercom.io/auth/eagle/token \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "code={auth_code}"Wersjonowanie API
Zawsze dołączaj nagłówek Intercom-Version do swoich żądań. Tajo używa domyślnie wersji API 2.11. Sprawdzaj dziennik zmian Intercom pod kątem zmian łamiących zgodność.
Konfiguracja
Podstawowa konfiguracja
connectors: intercom: enabled: true access_token: "${INTERCOM_ACCESS_TOKEN}" api_version: "2.11"
# Data sync options sync: contacts: true conversations: true companies: true events: true tags: true
# Sync direction direction: intercom_to_brevo
# Brevo list assignment lists: all_users: 35 active_conversations: 36 leads: 37Mapowanie pól
Mapuj dane kontaktów Intercom na atrybuty kontaktów Brevo:
Domyślne mapowania
| Parameter | Type | Description |
|---|---|---|
email required | string | Adres e-mail kontaktu (unikalny identyfikator) |
name optional | string | Pełne imię i nazwisko, podzielone na FIRSTNAME/LASTNAME |
phone optional | string | Mapuje na atrybut SMS dla WhatsApp/SMS |
role optional | string | Typ kontaktu: user lub lead |
company.name optional | string | Nazwa powiązanej firmy |
signed_up_at optional | timestamp | Data rejestracji użytkownika |
last_seen_at optional | timestamp | Znacznik czasu ostatniej aktywności |
custom_attributes optional | object | Pary klucz-wartość niestandardowych atrybutów |
Mapowanie niestandardowych atrybutów
field_mapping: # Standard fields email: email name: FULLNAME phone: SMS
# Engagement fields signed_up_at: SIGNUP_DATE last_seen_at: LAST_ACTIVE session_count: SESSION_COUNT unsubscribed_from_emails: UNSUBSCRIBED
# Company fields company.name: COMPANY_NAME company.plan: COMPANY_PLAN company.size: COMPANY_SIZE
# Custom attributes custom_attributes.plan_tier: PLAN_TIER custom_attributes.feature_usage: FEATURE_USAGEEndpointy API
API Kontaktów
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /contacts | Lista wszystkich kontaktów |
POST | /contacts | Utwórz kontakt |
PUT | /contacts/{id} | Zaktualizuj kontakt |
GET | /contacts/{id} | Pobierz kontakt |
POST | /contacts/search | Wyszukaj kontakty |
DELETE | /contacts/{id} | Zarchiwizuj kontakt |
API Rozmów
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /conversations | Lista rozmów |
GET | /conversations/{id} | Pobierz rozmowę |
POST | /conversations | Utwórz rozmowę |
POST | /conversations/{id}/reply | Odpowiedz na rozmowę |
POST | /conversations/{id}/parts | Dodaj część rozmowy |
API Firm
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /companies | Lista firm |
POST | /companies | Utwórz lub zaktualizuj firmę |
GET | /companies/{id} | Pobierz firmę |
GET | /companies/{id}/contacts | Lista kontaktów firmy |
API Zdarzeń
| Metoda | Endpoint | Opis |
|---|---|---|
POST | /events | Prześlij zdarzenie |
GET | /events?type=user&intercom_user_id={id} | Lista zdarzeń użytkownika |
Zdarzenia
Zdarzenia rozmów
| Zdarzenie | Wyzwalacz | Przypadek użycia |
|---|---|---|
conversation.created | Rozpoczęto nową rozmowę | Alert zgłoszenia wsparcia |
conversation.closed | Rozmowa rozwiązana | Wyzwalacz ankiety CSAT |
conversation.rating.added | Przesłano ocenę | Śledzenie satysfakcji |
conversation.snoozed | Rozmowa wyciszona | Planowanie follow-upu |
Zdarzenia kontaktów
| Zdarzenie | Wyzwalacz | Przypadek użycia |
|---|---|---|
contact.created | Dodano nowy kontakt | Sekwencja powitalna |
contact.updated | Zmieniono dane kontaktu | Synchronizacja atrybutów |
contact.deleted | Kontakt zarchiwizowany | Czyszczenie |
contact.tag.created | Dodano tag do kontaktu | Aktualizacja segmentu |
Zdarzenia użytkowników
| Zdarzenie | Wyzwalacz | Przypadek użycia |
|---|---|---|
user.created | Zarejestrował się nowy użytkownik | Przepływ onboardingowy |
user.email.updated | Zmieniono e-mail | Scalanie kontaktów |
user.unsubscribed | Zrezygnowano z e-maili | Aktualizacja preferencji |
Przykłady kodu
Inicjalizacja konektora
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Intercomawait tajo.connectors.connect('intercom', { accessToken: process.env.INTERCOM_ACCESS_TOKEN, apiVersion: '2.11'});Synchronizuj kontakty i rozmowy
// Full sync of contacts and conversation dataawait tajo.connectors.sync('intercom', { type: 'full', resources: ['contacts', 'conversations', 'companies'], since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('intercom');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 14200,// conversationsSynced: 28400,// companiesSynced: 2100// }Obsługuj webhooki Intercom
import crypto from 'crypto';
app.post('/webhooks/intercom', async (req, res) => { const signature = req.get('X-Hub-Signature'); const expectedSig = 'sha1=' + crypto .createHmac('sha1', process.env.INTERCOM_CLIENT_SECRET) .update(JSON.stringify(req.body)) .digest('hex');
if (signature !== expectedSig) { return res.status(401).send('Unauthorized'); }
await tajo.connectors.handleWebhook('intercom', { topic: req.body.topic, data: req.body.data });
res.status(200).send('OK');});Limity API
Intercom stosuje limity szybkości na podstawie planu:
| Plan | Limit szybkości | Szczegóły |
|---|---|---|
| Starter | 20 żądań/10 sekund | Na aplikację |
| Pro | 50 żądań/10 sekund | Na aplikację |
| Premium | 100 żądań/10 sekund | Na aplikację |
| Endpoint wyszukiwania | 1 żądanie/sekundę | Na aplikację |
| Endpoint scroll | 1 żądanie/minutę | Na aplikację |
Dodatkowe limity:
- Operacje masowe: 15 kontaktów na żądanie masowe
- Przesyłanie zdarzeń: 500 zdarzeń/sekundę na przestrzeń roboczą
- Dostarczanie webhooków: Automatyczne ponowne próby przez 24 godziny
- Eksport danych: 1 równoczesny eksport
Odpowiedź na limit szybkości
Intercom zwraca 429 Too Many Requests z nagłówkiem Retry-After. Wdrożyj wykładnicze wycofanie i respektuj okno ponownych prób.
Rozwiązywanie problemów
Typowe problemy
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
| 401 Unauthorized | Nieprawidłowy lub wygasły token | Wygeneruj ponownie token dostępu w Developer Hub |
| Kontakt nie zsynchronizowany | Brakujące pole e-mail | Leady Intercom mogą nie mieć e-maila; filtruj według roli |
| Puste dane rozmów | Aplikacja nie ma zakresu rozmów | Ponownie autoryzuj z uprawnieniami do odczytu rozmów |
| Webhook nie odebrany | Webhook nie zarejestrowany | Skonfiguruj webhooki w ustawieniach Developer Hub |
| Niezgodność wersji API | Zmiany łamiące zgodność w nowej wersji | Przypiń wersję API nagłówkiem Intercom-Version |
Tryb debug
Włącz szczegółowe logowanie:
connectors: intercom: debug: true log_level: verbose log_webhooks: trueTest połączenia
tajo connectors test intercom# ✓ API connection successful# ✓ Contacts readable# ✓ Conversations readable# ✓ Companies readable# ✓ Webhooks registeredNajlepsze praktyki
- Przypinaj wersję API - Zawsze podawaj
Intercom-Version, aby unikać zmian łamiących zgodność - Efektywnie używaj Search API - Używaj filtrów i paginacji, aby zmniejszyć transfer danych
- Synchronizuj zarówno użytkowników jak i leady - Chwyć pełny lejek w Brevo
- Mapuj tagi rozmów - Używaj tagów rozmów dla segmentów marketingowych po wsparciu
- Śledź niestandardowe zdarzenia - Przesyłaj kluczowe zdarzenia produktowe do Intercom dla targetowania behawioralnego
- Obsługuj scalanie kontaktów - Wdrożyj logikę scalania dla zduplikowanych kontaktów
Bezpieczeństwo
- Token dostępu - Uwierzytelnianie tokenem bearer dla aplikacji prywatnych
- OAuth 2.0 - Delegowana autoryzacja dla aplikacji publicznych z sekretnym kluczem klienta
- Weryfikacja webhooków - Walidacja podpisu HMAC SHA-1 przez
X-Hub-Signature - Szyfrowanie TLS - Cała komunikacja API szyfrowana przez HTTPS
- Kontrola dostępu do danych - Szczegółowy dostęp do danych na konfigurację aplikacji