---
title: "Conector Intercom"
description: "Guia completo de integração do Intercom para sincronizar contatos, conversas, empresas e eventos de engajamento com o Brevo via Tajo."
url: https://tajo.io/pt/docs/connectors/support/intercom/
markdown: https://tajo.io/pt/docs/connectors/support/intercom.md
lang: pt-BR
robots: noindex
---

Solicite acesso antecipado

Indique o seu nome e endereço de e-mail profissional. Enviaremos um link para confirmar o seu pedido de acesso ao Tajo.

# Conector Intercom

Status do conector: Planejado Ainda não construído. O Tajo não executa este conector hoje.

| Campo de origem | Campo de destino | Valor de exemplo |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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

| Propriedade | Valor |
| --- | --- |
| **Plataforma** | Intercom |
| **Categoria** | Suporte |
| **Complexidade de configuração** | Média |
| **Integração oficial** | Não |
| **Dados sincronizados** | Contatos, Conversas, Empresas, Eventos |
| **URL base da API** | `https://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

```bash
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.

```bash
# 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

```yaml
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

```yaml
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étodo | Endpoint | Descrição |
| --- | --- | --- |
| `GET` | `/contacts` | Listar todos os contatos |
| `POST` | `/contacts` | Criar um contato |
| `PUT` | `/contacts/{id}` | Atualizar um contato |
| `GET` | `/contacts/{id}` | Obter um contato |
| `POST` | `/contacts/search` | Buscar contatos |
| `DELETE` | `/contacts/{id}` | Arquivar um contato |

### API de Conversas

| Método | Endpoint | Descrição |
| --- | --- | --- |
| `GET` | `/conversations` | Listar conversas |
| `GET` | `/conversations/{id}` | Obter uma conversa |
| `POST` | `/conversations` | Criar uma conversa |
| `POST` | `/conversations/{id}/reply` | Responder a uma conversa |
| `POST` | `/conversations/{id}/parts` | Adicionar parte à conversa |

### API de Empresas

| Método | Endpoint | Descrição |
| --- | --- | --- |
| `GET` | `/companies` | Listar empresas |
| `POST` | `/companies` | Criar ou atualizar uma empresa |
| `GET` | `/companies/{id}` | Obter uma empresa |
| `GET` | `/companies/{id}/contacts` | Listar contatos da empresa |

### API de Eventos

| Método | Endpoint | Descrição |
| --- | --- | --- |
| `POST` | `/events` | Enviar um evento |
| `GET` | `/events?type=user&intercom_user_id={id}` | Listar eventos do usuário |

## Eventos

### Eventos de conversa

| Evento | Gatilho | Caso de uso |
| --- | --- | --- |
| `conversation.created` | Nova conversa iniciada | Alerta de ticket de suporte |
| `conversation.closed` | Conversa resolvida | Disparo de pesquisa CSAT |
| `conversation.rating.added` | Avaliação enviada | Rastreamento de satisfação |
| `conversation.snoozed` | Conversa adiada | Agendamento de follow-up |

### Eventos de contato

| Evento | Gatilho | Caso de uso |
| --- | --- | --- |
| `contact.created` | Novo contato adicionado | Sequência de boas-vindas |
| `contact.updated` | Dados do contato alterados | Sincronização de atributos |
| `contact.deleted` | Contato arquivado | Limpeza |
| `contact.tag.created` | Tag adicionada ao contato | Atualização de segmento |

### Eventos de usuário

| Evento | Gatilho | Caso de uso |
| --- | --- | --- |
| `user.created` | Novo usuário cadastrado | Fluxo de onboarding |
| `user.email.updated` | E-mail alterado | Mesclagem de contato |
| `user.unsubscribed` | Cancelou inscrição de e-mails | Atualização de preferências |

## Exemplos de código

### Inicializar o conector

```javascript
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

```javascript
// 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

```javascript
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:

| Plano | Limite de taxa | Detalhes |
| --- | --- | --- |
| Starter | 20 requisições/10 segundos | Por app |
| Pro | 50 requisições/10 segundos | Por app |
| Premium | 100 requisições/10 segundos | Por app |
| Endpoint de busca | 1 requisição/segundo | Por app |
| Endpoint de scroll | 1 requisição/minuto | Por 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

| Problema | Causa | Solução |
| --- | --- | --- |
| 401 Unauthorized | Token inválido ou expirado | Regere o token de acesso no Developer Hub |
| Contato não sincronizado | Campo de e-mail ausente | Leads do Intercom podem não ter e-mail; filtre por role |
| Dados de conversa vazios | App sem escopo de conversa | Reautorize com permissões de leitura de conversas |
| Webhook não recebido | Webhook não registrado | Configure webhooks nas configurações do Developer Hub |
| Incompatibilidade de versão da API | Mudanças que quebram compatibilidade na nova versão | Fixe a versão da API com o cabeçalho `Intercom-Version` |

### Modo de depuração

Habilite logs detalhados:

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

### Testar conexão

```bash
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

- [Documentação para desenvolvedores do Intercom](https://developers.intercom.com/docs)
- [Referência da API do Intercom](https://developers.intercom.com/docs/references/introduction)
- [Conector Zendesk](https://tajo.io/pt/docs/connectors/support/zendesk)
- [Skill de sincronização de clientes](https://tajo.io/pt/docs/skills/data-sync/customer-sync)
- [API de contatos do Brevo](https://tajo.io/pt/docs/contact-management)
