Intercom konektor
Poveži Intercom radni prostor sa Brevo putem Tajo za unifikovane poruke kupcima, praćenje razgovora i marketing automatizaciju zasnovanu na angažovanju, pokretanu podacima o podršci i proizvodu.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Intercom |
| Kategorija | Podrška |
| Složenost podešavanja | Srednje |
| Zvanična integracija | Da |
| Sinhronizovani podaci | Kontakti, Razgovori, Kompanije, Događaji |
| Osnovni URL API-ja | https://api.intercom.io |
Karakteristike
- Sinhronizacija kontakata - Dvosmerna sinhronizacija Intercom korisnika i potencijalnih kupaca sa Brevo kontaktima
- Praćenje razgovora - Sinhronizacija podataka o razgovorima za segmentaciju zasnovanu na podršci
- Mapiranje kompanija - Povezivanje kontakata sa kompanijama za tokove rada zasnovane na nalogu
- Prilagođeni atributi - Mapiranje Intercom prilagođenih atributa na Brevo polja kontakta
- Praćenje događaja - Sinhronizacija prilagođenih događaja i aktivnosti korisnika za bihevioralno ciljanje
- Sinhronizacija tagova - Mapiranje Intercom tagova na Brevo članstvo na listi ili atribute
- Podaci Messengera - Praćenje angažovanja u aplikaciji i interakcija u čatu
- Integracija AI agenta - Sinhronizacija ishoda razgovora AI agenta sa Brevo
Preduslovi
Pre nego što započneš, proveri da imaš:
- Intercom radni prostor (Starter, Pro ili Premium plan)
- Intercom aplikaciju sa access tokenom (privatna aplikacija) ili konfigurisanim OAuth-om (javna aplikacija)
- Brevo nalog sa API pristupom
- Tajo nalog
Autentifikacija
Access Token (Privatna aplikacija)
Za privatne integracije koje pristupaju podacima tvog radnog prostora.
- Idi na Developer Hub > Your Apps > Create new app
- Poveži sa Intercom radnim prostorom
- Kopiraj access token
curl https://api.intercom.io/contacts \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -H "Intercom-Version: 2.11"OAuth 2.0 (Javna aplikacija)
Za integracije koje pristupaju Intercom podacima drugih kupaca.
# 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}"Verzioniranje API-ja
Uvek uključi header Intercom-Version u zahteve. Tajo podrazumevano koristi API verziju 2.11. Proveri Intercom changelog za izmene koje remete kompatibilnost.
Konfiguracija
Osnovno podešavanje
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: 37Mapiranje polja
Mapiranje podataka Intercom kontakta na Brevo atribute kontakta:
Default Mappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Email adresa kontakta (jedinstveni identifikator) |
name optional | string | Puno ime, podeljeno na FIRSTNAME/LASTNAME |
phone optional | string | Mapira se na SMS atribut za WhatsApp/SMS |
role optional | string | Tip kontakta: user ili lead |
company.name optional | string | Naziv povezane kompanije |
signed_up_at optional | timestamp | Datum registracije korisnika |
last_seen_at optional | timestamp | Vremenska oznaka poslednje aktivnosti |
custom_attributes optional | object | Parovi ključ-vrednost prilagođenih atributa |
Mapiranje prilagođenih atributa
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_USAGEAPI endpointi
Contacts API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /contacts | Listanje svih kontakata |
POST | /contacts | Kreiranje kontakta |
PUT | /contacts/{id} | Ažuriranje kontakta |
GET | /contacts/{id} | Dohvatanje kontakta |
POST | /contacts/search | Pretraga kontakata |
DELETE | /contacts/{id} | Arhiviranje kontakta |
Conversations API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /conversations | Listanje razgovora |
GET | /conversations/{id} | Dohvatanje razgovora |
POST | /conversations | Kreiranje razgovora |
POST | /conversations/{id}/reply | Odgovor na razgovor |
POST | /conversations/{id}/parts | Dodavanje dela razgovora |
Companies API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /companies | Listanje kompanija |
POST | /companies | Kreiranje ili ažuriranje kompanije |
GET | /companies/{id} | Dohvatanje kompanije |
GET | /companies/{id}/contacts | Listanje kontakata kompanije |
Events API
| Metoda | Endpoint | Opis |
|---|---|---|
POST | /events | Slanje događaja |
GET | /events?type=user&intercom_user_id={id} | Listanje korisničkih događaja |
Događaji
Događaji razgovora
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
conversation.created | Pokrenut novi razgovor | Upozorenje o tiketu podrške |
conversation.closed | Razgovor rešen | Okidač CSAT ankete |
conversation.rating.added | Ocena dodata | Praćenje zadovoljstva |
conversation.snoozed | Razgovor odložen | Zakazivanje praćenja |
Događaji kontakta
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
contact.created | Dodat novi kontakt | Tok dobrodošlice |
contact.updated | Podaci kontakta promenjeni | Sinhronizacija atributa |
contact.deleted | Kontakt arhiviran | Čišćenje |
contact.tag.created | Tag dodat kontaktu | Ažuriranje segmenta |
Korisnički događaji
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
user.created | Novi korisnik se registrovao | Tok onboardinga |
user.email.updated | Email promenjen | Spajanje kontakata |
user.unsubscribed | Odjavljen od emailova | Ažuriranje preferencija |
Primeri koda
Inicijalizacija 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'});Sinhronizacija kontakata i razgovora
// 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// }Obrada Intercom webhook-ova
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');});Ograničenja brzine
Intercom primenjuje ograničenja brzine na osnovu tvog plana:
| Plan | Ograničenje brzine | Detalji |
|---|---|---|
| Starter | 20 zahteva/10 sekundi | Po aplikaciji |
| Pro | 50 zahteva/10 sekundi | Po aplikaciji |
| Premium | 100 zahteva/10 sekundi | Po aplikaciji |
| Search endpoint | 1 zahtev/sekundi | Po aplikaciji |
| Scroll endpoint | 1 zahtev/minuti | Po aplikaciji |
Dodatni limiti:
- Bulk operacije: 15 kontakata po bulk zahtevu
- Slanje događaja: 500 događaja/sekundi po radnom prostoru
- Isporuka webhook-ova: Automatski ponovni pokušaj 24 sata
- Izvoz podataka: 1 istovremeni izvoz
Odgovor na ograničenje brzine
Intercom vraća 429 Too Many Requests sa headerom Retry-After. Implementiraj eksponencijalno usporavanje i poštuj prozor ponovnog pokušaja.
Rešavanje problema
Česti problemi
| Problem | Uzrok | Rešenje |
|---|---|---|
| 401 Unauthorized | Nevažeći ili istekli token | Regeneriši access token u Developer Hub-u |
| Kontakt nije sinhronizovan | Nedostaje polje emaila | Intercom potencijalni kupci možda nemaju email; filtriraj po ulozi |
| Podaci razgovora prazni | Aplikacija nema skop razgovora | Ponovo autorizuj sa dozvolama za čitanje razgovora |
| Webhook nije primljen | Webhook nije registrovan | Konfiguriši webhook-ove u podešavanjima Developer Hub-a |
| Nepodudaranje verzije API-ja | Izmene koje remete kompatibilnost u novoj verziji | Pinuj verziju API-ja sa headerom Intercom-Version |
Debug režim
Uključi detaljno logovanje:
connectors: intercom: debug: true log_level: verbose log_webhooks: trueTestiraj vezu
tajo connectors test intercom# ✓ API connection successful# ✓ Contacts readable# ✓ Conversations readable# ✓ Companies readable# ✓ Webhooks registeredNajbolje prakse
- Pinuj verziju API-ja - Uvek navedi
Intercom-Versionda izbegneš izmene koje remete kompatibilnost - Efikasno koristi Search API - Koristi filtere i paginaciju da smanjiš prenos podataka
- Sinhronizuj i korisnike i potencijalne kupce - Uhvati ceo tok u Brevo
- Mapiraj tagove razgovora - Koristi tagove razgovora za segmente marketinga nakon podrške
- Prati prilagođene događaje - Slaj ključne događaje proizvoda u Intercom za bihevioralno ciljanje
- Obradi spajanja kontakata - Implementiraj logiku spajanja za duplirane kontakte
Bezbednost
- Access Token - Bearer token autentifikacija za privatne aplikacije
- OAuth 2.0 - Delegirana autorizacija za javne aplikacije sa tajnom klijenta
- Verifikacija webhook-ova - HMAC SHA-1 validacija potpisa putem
X-Hub-Signature - TLS enkripcija - Sva API komunikacija enkriptovana putem HTTPS
- Kontrole pristupa podacima - Granuliran pristup podacima po konfiguraciji aplikacije