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ść
PlatformaIntercom
KategoriaSupport
Poziom konfiguracjiŚredni
Integracja oficjalnaTak
Synchronizowane daneKontakty, Rozmowy, Firmy, Zdarzenia
Bazowy URL APIhttps://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:

  1. Przestrzeń roboczą Intercom (plan Starter, Pro lub Premium)
  2. Aplikację Intercom z tokenem dostępu (aplikacja prywatna) lub skonfigurowany OAuth (aplikacja publiczna)
  3. Konto Brevo z dostępem do API
  4. Konto Tajo

Uwierzytelnianie

Token dostępu (aplikacja prywatna)

Dla prywatnych integracji uzyskujących dostęp do własnych danych przestrzeni roboczej.

  1. Przejdź do Developer Hub > Your Apps > Create new app
  2. Powiąż z przestrzenią roboczą Intercom
  3. Skopiuj token dostępu
Terminal window
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.

Terminal window
# Authorization URL
https://app.intercom.com/oauth?client_id={client_id}&state={state}
# Token exchange
curl -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: 37

Mapowanie 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_USAGE

Endpointy API

API Kontaktów

MetodaEndpointOpis
GET/contactsLista wszystkich kontaktów
POST/contactsUtwórz kontakt
PUT/contacts/{id}Zaktualizuj kontakt
GET/contacts/{id}Pobierz kontakt
POST/contacts/searchWyszukaj kontakty
DELETE/contacts/{id}Zarchiwizuj kontakt

API Rozmów

MetodaEndpointOpis
GET/conversationsLista rozmów
GET/conversations/{id}Pobierz rozmowę
POST/conversationsUtwórz rozmowę
POST/conversations/{id}/replyOdpowiedz na rozmowę
POST/conversations/{id}/partsDodaj część rozmowy

API Firm

MetodaEndpointOpis
GET/companiesLista firm
POST/companiesUtwórz lub zaktualizuj firmę
GET/companies/{id}Pobierz firmę
GET/companies/{id}/contactsLista kontaktów firmy

API Zdarzeń

MetodaEndpointOpis
POST/eventsPrześlij zdarzenie
GET/events?type=user&intercom_user_id={id}Lista zdarzeń użytkownika

Zdarzenia

Zdarzenia rozmów

ZdarzenieWyzwalaczPrzypadek użycia
conversation.createdRozpoczęto nową rozmowęAlert zgłoszenia wsparcia
conversation.closedRozmowa rozwiązanaWyzwalacz ankiety CSAT
conversation.rating.addedPrzesłano ocenęŚledzenie satysfakcji
conversation.snoozedRozmowa wyciszonaPlanowanie follow-upu

Zdarzenia kontaktów

ZdarzenieWyzwalaczPrzypadek użycia
contact.createdDodano nowy kontaktSekwencja powitalna
contact.updatedZmieniono dane kontaktuSynchronizacja atrybutów
contact.deletedKontakt zarchiwizowanyCzyszczenie
contact.tag.createdDodano tag do kontaktuAktualizacja segmentu

Zdarzenia użytkowników

ZdarzenieWyzwalaczPrzypadek użycia
user.createdZarejestrował się nowy użytkownikPrzepływ onboardingowy
user.email.updatedZmieniono e-mailScalanie kontaktów
user.unsubscribedZrezygnowano z e-mailiAktualizacja 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 Intercom
await tajo.connectors.connect('intercom', {
accessToken: process.env.INTERCOM_ACCESS_TOKEN,
apiVersion: '2.11'
});

Synchronizuj kontakty i rozmowy

// Full sync of contacts and conversation data
await tajo.connectors.sync('intercom', {
type: 'full',
resources: ['contacts', 'conversations', 'companies'],
since: '2023-01-01'
});
// Check sync status
const 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:

PlanLimit szybkościSzczegóły
Starter20 żądań/10 sekundNa aplikację
Pro50 żądań/10 sekundNa aplikację
Premium100 żądań/10 sekundNa aplikację
Endpoint wyszukiwania1 żądanie/sekundęNa aplikację
Endpoint scroll1 żą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

ProblemPrzyczynaRozwiązanie
401 UnauthorizedNieprawidłowy lub wygasły tokenWygeneruj ponownie token dostępu w Developer Hub
Kontakt nie zsynchronizowanyBrakujące pole e-mailLeady Intercom mogą nie mieć e-maila; filtruj według roli
Puste dane rozmówAplikacja nie ma zakresu rozmówPonownie autoryzuj z uprawnieniami do odczytu rozmów
Webhook nie odebranyWebhook nie zarejestrowanySkonfiguruj webhooki w ustawieniach Developer Hub
Niezgodność wersji APIZmiany łamiące zgodność w nowej wersjiPrzypiń wersję API nagłówkiem Intercom-Version

Tryb debug

Włącz szczegółowe logowanie:

connectors:
intercom:
debug: true
log_level: verbose
log_webhooks: true

Test połączenia

Terminal window
tajo connectors test intercom
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Conversations readable
# ✓ Companies readable
# ✓ Webhooks registered

Najlepsze praktyki

  1. Przypinaj wersję API - Zawsze podawaj Intercom-Version, aby unikać zmian łamiących zgodność
  2. Efektywnie używaj Search API - Używaj filtrów i paginacji, aby zmniejszyć transfer danych
  3. Synchronizuj zarówno użytkowników jak i leady - Chwyć pełny lejek w Brevo
  4. Mapuj tagi rozmów - Używaj tagów rozmów dla segmentów marketingowych po wsparciu
  5. Śledź niestandardowe zdarzenia - Przesyłaj kluczowe zdarzenia produktowe do Intercom dla targetowania behawioralnego
  6. 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

Powiązane zasoby

Subscribe to updates

developer-docs

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

auto-detect
Asystent AI

Cześć! Zapytaj mnie o dokumentację.