Conector Intercom

Conecte seu workspace do Intercom ao Brevo via Tajo para mensageria unificada de clientes, rastreamento de conversas e automação de marketing orientada por engajamento, alimentada pelos seus dados de suporte e produto.

Visão geral

PropriedadeValor
PlataformaIntercom
CategoriaSuporte
Complexidade de configuraçãoMédia
Integração oficialSim
Dados sincronizadosContatos, Conversas, Empresas, Eventos
URL base da APIhttps://api.intercom.io

Recursos

  • Sincronização de contatos - Sincronização bidirecional de usuários e leads do Intercom com contatos do Brevo
  • Rastreamento de conversas - Sincronize dados de conversas para segmentação orientada por suporte
  • Mapeamento de empresas - Associe contatos com empresas para workflows baseados em contas
  • Atributos personalizados - Mapeie atributos personalizados do Intercom para campos de contato do Brevo
  • Rastreamento de eventos - Sincronize eventos personalizados e atividades de usuário para segmentação comportamental
  • Sincronização de tags - Mapeie tags do Intercom para membros de listas ou atributos do Brevo
  • Dados do Messenger - Rastreie engajamento de mensageria in-app e interações de chat
  • Integração com agente de IA - Sincronize resultados de conversas de agentes de IA com o Brevo

Pré-requisitos

Antes de começar, certifique-se de ter:

  1. Um workspace do Intercom (plano Starter, Pro ou Premium)
  2. Um app Intercom com token de acesso (app privado) ou OAuth configurado (app público)
  3. Uma conta Brevo com acesso à API
  4. Uma conta Tajo

Autenticação

Token de acesso (App privado)

Para integrações privadas que acessam os dados do seu próprio workspace.

  1. Vá até Developer Hub > Your Apps > Create new app
  2. Associe com seu workspace do Intercom
  3. Copie o token de acesso
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 (App público)

Para integrações que acessam dados do Intercom de outros clientes.

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

Versionamento da API

Sempre inclua o cabeçalho Intercom-Version em suas requisições. O Tajo usa a versão 2.11 da API por padrão. Consulte o changelog do Intercom para verificar mudanças que quebram a compatibilidade.

Configuração

Configuração básica

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

Mapeamento de campos

Mapeie dados de contato do Intercom para atributos de contato do Brevo:

Default Mappings

Parameter Type Description
email required
string

Endereço de e-mail do contato (identificador único)

name optional
string

Nome completo, dividido em FIRSTNAME/LASTNAME

phone optional
string

Mapeia para o atributo SMS para WhatsApp/SMS

role optional
string

Tipo de contato: user ou lead

company.name optional
string

Nome da empresa associada

signed_up_at optional
timestamp

Data de cadastro do usuário

last_seen_at optional
timestamp

Timestamp da última atividade

custom_attributes optional
object

Pares chave-valor de atributos personalizados

Mapeamento de atributos personalizados

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

Endpoints da API

API de Contatos

MétodoEndpointDescrição
GET/contactsListar todos os contatos
POST/contactsCriar um contato
PUT/contacts/{id}Atualizar um contato
GET/contacts/{id}Obter um contato
POST/contacts/searchBuscar contatos
DELETE/contacts/{id}Arquivar um contato

API de Conversas

MétodoEndpointDescrição
GET/conversationsListar conversas
GET/conversations/{id}Obter uma conversa
POST/conversationsCriar uma conversa
POST/conversations/{id}/replyResponder a uma conversa
POST/conversations/{id}/partsAdicionar parte à conversa

API de Empresas

MétodoEndpointDescrição
GET/companiesListar empresas
POST/companiesCriar ou atualizar uma empresa
GET/companies/{id}Obter uma empresa
GET/companies/{id}/contactsListar contatos da empresa

API de Eventos

MétodoEndpointDescrição
POST/eventsEnviar um evento
GET/events?type=user&intercom_user_id={id}Listar eventos do usuário

Eventos

Eventos de conversa

EventoGatilhoCaso de uso
conversation.createdNova conversa iniciadaAlerta de ticket de suporte
conversation.closedConversa resolvidaDisparo de pesquisa CSAT
conversation.rating.addedAvaliação enviadaRastreamento de satisfação
conversation.snoozedConversa adiadaAgendamento de follow-up

Eventos de contato

EventoGatilhoCaso de uso
contact.createdNovo contato adicionadoSequência de boas-vindas
contact.updatedDados do contato alteradosSincronização de atributos
contact.deletedContato arquivadoLimpeza
contact.tag.createdTag adicionada ao contatoAtualização de segmento

Eventos de usuário

EventoGatilhoCaso de uso
user.createdNovo usuário cadastradoFluxo de onboarding
user.email.updatedE-mail alteradoMesclagem de contato
user.unsubscribedCancelou inscrição de e-mailsAtualização de preferências

Exemplos de código

Inicializar o conector

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

Sincronizar contatos e conversas

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

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

Limites de taxa

O Intercom aplica limites de taxa com base no seu plano:

PlanoLimite de taxaDetalhes
Starter20 requisições/10 segundosPor app
Pro50 requisições/10 segundosPor app
Premium100 requisições/10 segundosPor app
Endpoint de busca1 requisição/segundoPor app
Endpoint de scroll1 requisição/minutoPor app

Limites adicionais:

  • Operações em lote: 15 contatos por requisição em lote
  • Envios de evento: 500 eventos/segundo por workspace
  • Entrega de webhook: Retry automático por 24 horas
  • Exportação de dados: 1 exportação concorrente

Resposta de limite de taxa

O Intercom retorna 429 Too Many Requests com um cabeçalho Retry-After. Implemente backoff exponencial e respeite a janela de retry.

Solução de problemas

Problemas comuns

ProblemaCausaSolução
401 UnauthorizedToken inválido ou expiradoRegere o token de acesso no Developer Hub
Contato não sincronizadoCampo de e-mail ausenteLeads do Intercom podem não ter e-mail; filtre por role
Dados de conversa vaziosApp sem escopo de conversaReautorize com permissões de leitura de conversas
Webhook não recebidoWebhook não registradoConfigure webhooks nas configurações do Developer Hub
Incompatibilidade de versão da APIMudanças que quebram compatibilidade na nova versãoFixe a versão da API com o cabeçalho Intercom-Version

Modo de depuração

Habilite logs detalhados:

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

Testar conexão

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

Melhores práticas

  1. Fixe a versão da API - Sempre especifique Intercom-Version para evitar mudanças que quebram compatibilidade
  2. Use a API de busca com eficiência - Use filtros e paginação para reduzir a transferência de dados
  3. Sincronize usuários e leads - Capture o funil completo no Brevo
  4. Mapeie tags de conversa - Use tags de conversa para segmentos de marketing pós-suporte
  5. Rastreie eventos personalizados - Envie eventos-chave de produto para o Intercom para segmentação comportamental
  6. Trate mesclagens de contato - Implemente lógica de mesclagem para contatos duplicados

Segurança

  • Token de acesso - Autenticação Bearer token para apps privados
  • OAuth 2.0 - Autorização delegada para apps públicos com client secret
  • Verificação de webhook - Validação de assinatura HMAC SHA-1 via X-Hub-Signature
  • Criptografia TLS - Toda comunicação com a API é criptografada via HTTPS
  • Controles de acesso a dados - Acesso granular a dados por configuração de app

Recursos relacionados

Subscribe to updates

developer-docs

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

auto-detect
Assistente AI

Olá! Pergunte-me qualquer coisa sobre a documentação.