Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Konektor Intercom

Hubungkan workspace Intercom Anda ke Brevo melalui Tajo untuk pesan pelanggan yang terpadu, pelacakan percakapan, dan otomatisasi marketing berbasis engagement yang ditenagai data support dan produk Anda.

Ikhtisar

PropertiNilai
PlatformIntercom
KategoriSupport
Kompleksitas setupMenengah
Integrasi resmiYa
Data yang disinkronkanKontak, Percakapan, Perusahaan, Event
Base URL APIhttps://api.intercom.io

Fitur

  • Sinkronisasi kontak - Sinkronisasi dua arah user dan lead Intercom dengan kontak Brevo
  • Pelacakan percakapan - Sinkronkan data percakapan untuk segmentasi berbasis support
  • Pemetaan perusahaan - Kaitkan kontak dengan perusahaan untuk alur kerja account-based
  • Atribut kustom - Petakan atribut kustom Intercom ke field kontak Brevo
  • Pelacakan event - Sinkronkan event kustom dan aktivitas user untuk penargetan berbasis perilaku
  • Sinkronisasi tag - Petakan tag Intercom ke keanggotaan daftar atau atribut Brevo
  • Data Messenger - Lacak engagement pesan in-app dan interaksi chat
  • Integrasi AI agent - Sinkronkan hasil percakapan AI agent dengan Brevo

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  1. Sebuah workspace Intercom (paket Starter, Pro, atau Premium)
  2. Sebuah app Intercom dengan access token (private app) atau OAuth yang sudah dikonfigurasi (public app)
  3. Akun Brevo dengan akses API
  4. Akun Tajo

Autentikasi

Access token (private app)

Untuk integrasi privat yang mengakses data workspace Anda sendiri.

  1. Buka Developer Hub > Your Apps > Create new app
  2. Kaitkan dengan workspace Intercom Anda
  3. Salin access token
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 (public app)

Untuk integrasi yang mengakses data Intercom milik pelanggan lain.

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

Versi API

Selalu sertakan header Intercom-Version pada permintaan Anda. Tajo menggunakan API versi 2.11 secara default. Periksa changelog Intercom untuk perubahan yang bersifat breaking.

Konfigurasi

Setup dasar

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

Pemetaan field

Petakan data kontak Intercom ke atribut kontak Brevo:

Pemetaan default

Parameter Type Description
email required
string

Alamat email kontak (pengenal unik)

name optional
string

Nama lengkap, dipecah menjadi FIRSTNAME/LASTNAME

phone optional
string

Dipetakan ke atribut SMS untuk WhatsApp/SMS

role optional
string

Tipe kontak: user atau lead

company.name optional
string

Nama perusahaan yang terkait

signed_up_at optional
timestamp

Tanggal pendaftaran user

last_seen_at optional
timestamp

Timestamp aktivitas terakhir

custom_attributes optional
object

Pasangan key-value atribut kustom

Pemetaan atribut kustom

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

Endpoint API

Contacts API

MetodeEndpointDeskripsi
GET/contactsMenampilkan semua kontak
POST/contactsMembuat kontak
PUT/contacts/{id}Memperbarui kontak
GET/contacts/{id}Mengambil satu kontak
POST/contacts/searchMencari kontak
DELETE/contacts/{id}Mengarsipkan kontak

Conversations API

MetodeEndpointDeskripsi
GET/conversationsMenampilkan percakapan
GET/conversations/{id}Mengambil satu percakapan
POST/conversationsMembuat percakapan
POST/conversations/{id}/replyMembalas percakapan
POST/conversations/{id}/partsMenambahkan bagian percakapan

Companies API

MetodeEndpointDeskripsi
GET/companiesMenampilkan perusahaan
POST/companiesMembuat atau memperbarui perusahaan
GET/companies/{id}Mengambil satu perusahaan
GET/companies/{id}/contactsMenampilkan kontak perusahaan

Events API

MetodeEndpointDeskripsi
POST/eventsMengirimkan sebuah event
GET/events?type=user&intercom_user_id={id}Menampilkan event user

Event

Event percakapan

EventPemicuKasus penggunaan
conversation.createdPercakapan baru dimulaiNotifikasi tiket support
conversation.closedPercakapan selesaiPemicu survei CSAT
conversation.rating.addedRating dikirimkanPelacakan kepuasan
conversation.snoozedPercakapan ditundaPenjadwalan follow-up

Event kontak

EventPemicuKasus penggunaan
contact.createdKontak baru ditambahkanRangkaian welcome
contact.updatedData kontak berubahSinkronisasi atribut
contact.deletedKontak diarsipkanPembersihan data
contact.tag.createdTag ditambahkan ke kontakPembaruan segmen

Event user

EventPemicuKasus penggunaan
user.createdUser baru mendaftarAlur onboarding
user.email.updatedEmail berubahPenggabungan kontak
user.unsubscribedBerhenti berlangganan emailPembaruan preferensi

Contoh kode

Inisialisasi konektor

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

Menyinkronkan kontak dan percakapan

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

Menangani webhook 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');
});

Batas rate

Intercom menerapkan batas rate berdasarkan paket Anda:

PaketBatas rateDetail
Starter20 permintaan/10 detikPer app
Pro50 permintaan/10 detikPer app
Premium100 permintaan/10 detikPer app
Endpoint search1 permintaan/detikPer app
Endpoint scroll1 permintaan/menitPer app

Batas tambahan:

  • Operasi bulk: 15 kontak per permintaan bulk
  • Pengiriman event: 500 event/detik per workspace
  • Pengiriman webhook: Percobaan ulang otomatis selama 24 jam
  • Ekspor data: 1 ekspor bersamaan

Respons batas rate

Intercom mengembalikan 429 Too Many Requests beserta header Retry-After. Terapkan exponential backoff dan hormati jendela percobaan ulang tersebut.

Pemecahan masalah

Masalah umum

MasalahPenyebabSolusi
401 UnauthorizedToken tidak valid atau kedaluwarsaBuat ulang access token di Developer Hub
Kontak tidak tersinkronisasiField email kosongLead Intercom bisa tidak memiliki email; filter berdasarkan role
Data percakapan kosongApp tidak memiliki scope percakapanOtorisasi ulang dengan izin baca percakapan
Webhook tidak diterimaWebhook belum terdaftarKonfigurasikan webhook di pengaturan Developer Hub
Versi API tidak cocokPerubahan breaking pada versi baruKunci versi API dengan header Intercom-Version

Mode debug

Aktifkan logging verbose:

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

Menguji koneksi

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

Praktik terbaik

  1. Kunci versi API - Selalu tentukan Intercom-Version untuk menghindari perubahan breaking
  2. Gunakan search API secara efisien - Gunakan filter dan paginasi untuk mengurangi transfer data
  3. Sinkronkan user dan lead sekaligus - Tangkap keseluruhan funnel di Brevo
  4. Petakan tag percakapan - Gunakan tag percakapan untuk segmen marketing pasca support
  5. Lacak event kustom - Kirimkan event produk penting ke Intercom untuk penargetan berbasis perilaku
  6. Tangani penggabungan kontak - Terapkan logika merge untuk kontak duplikat

Keamanan

  • Access token - Autentikasi bearer token untuk private app
  • OAuth 2.0 - Otorisasi terdelegasi untuk public app dengan client secret
  • Verifikasi webhook - Validasi tanda tangan HMAC SHA-1 melalui X-Hub-Signature
  • Enkripsi TLS - Semua komunikasi API dienkripsi lewat HTTPS
  • Kontrol akses data - Akses data granular per konfigurasi app

Sumber daya terkait

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.