---
title: "Connettore Intercom"
description: "Guida completa all'integrazione di Intercom per sincronizzare contatti, conversazioni, aziende ed eventi di engagement con Brevo tramite Tajo."
url: https://tajo.io/it/docs/connectors/support/intercom/
markdown: https://tajo.io/it/docs/connectors/support/intercom.md
lang: it-IT
robots: noindex
---

Richiedi l’accesso anticipato

Inserisci il tuo nome e indirizzo email aziendale. Ti invieremo un link per confermare la richiesta di accesso a Tajo.

# Connettore Intercom

Stato del connettore: Pianificato Non ancora realizzato. Oggi Tajo non esegue questo connettore.

| Campo di origine | Campo di destinazione | Valore di esempio |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Collega il tuo workspace Intercom a Brevo tramite Tajo per messaggistica cliente unificata, tracciamento delle conversazioni e marketing automation guidata dall’engagement, alimentata dai tuoi dati di supporto e di prodotto.

## Panoramica

| Proprietà | Valore |
| --- | --- |
| **Piattaforma** | Intercom |
| **Categoria** | Supporto |
| **Complessità di setup** | Media |
| **Integrazione ufficiale** | Sì |
| **Dati sincronizzati** | Contatti, Conversazioni, Aziende, Eventi |
| **API Base URL** | `https://api.intercom.io` |

## Funzionalità

- **Sync dei contatti** - Sync bidirezionale di utenti e lead Intercom con i contatti Brevo
- **Tracciamento conversazioni** - Sincronizza i dati delle conversazioni per la segmentazione guidata dal supporto
- **Mappatura aziende** - Associa i contatti alle aziende per workflow account-based
- **Attributi personalizzati** - Mappa gli attributi personalizzati Intercom ai campi di contatto Brevo
- **Tracciamento eventi** - Sincronizza eventi personalizzati e attività utente per il targeting comportamentale
- **Sync dei tag** - Mappa i tag Intercom ad appartenenze a liste o attributi Brevo
- **Dati Messenger** - Traccia l’engagement della messaggistica in-app e le interazioni chat
- **Integrazione AI agent** - Sincronizza gli esiti delle conversazioni dell’AI agent con Brevo

## Prerequisiti

Prima di iniziare, assicurati di avere:

1. Un workspace Intercom (piano Starter, Pro o Premium)
2. Un’app Intercom con access token (private app) o OAuth configurato (public app)
3. Un account Brevo con accesso API
4. Un account Tajo

## Autenticazione

### Access Token (Private App)

Per integrazioni private che accedono ai dati del tuo workspace.

1. Vai in Developer Hub > Your Apps > Create new app
2. Associa con il tuo workspace Intercom
3. Copia l’access token

```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 (Public App)

Per integrazioni che accedono ai dati Intercom di altri clienti.

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

Includi sempre l’header `Intercom-Version` nelle tue richieste. Tajo usa la versione API 2.11 di default. Controlla il changelog Intercom per le breaking change.

## Configurazione

### Setup di base

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

### Mappatura dei campi

Mappa i dati di contatto Intercom agli attributi di contatto Brevo:

#### Mappature predefinite

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Indirizzo email del contatto (identificatore univoco) |
| `name` optional | string | Nome completo, suddiviso in FIRSTNAME/LASTNAME |
| `phone` optional | string | Mappato all'attributo SMS per WhatsApp/SMS |
| `role` optional | string | Tipo di contatto: user o lead |
| `company.name` optional | string | Nome dell'azienda associata |
| `signed_up_at` optional | timestamp | Data di registrazione dell'utente |
| `last_seen_at` optional | timestamp | Timestamp dell'ultima attività |
| `custom_attributes` optional | object | Coppie chiave-valore degli attributi personalizzati |

#### Mappatura attributi personalizzati

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

## Endpoint API

### API Contatti

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `GET` | `/contacts` | Elenca tutti i contatti |
| `POST` | `/contacts` | Crea un contatto |
| `PUT` | `/contacts/{id}` | Aggiorna un contatto |
| `GET` | `/contacts/{id}` | Recupera un contatto |
| `POST` | `/contacts/search` | Cerca contatti |
| `DELETE` | `/contacts/{id}` | Archivia un contatto |

### API Conversazioni

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `GET` | `/conversations` | Elenca le conversazioni |
| `GET` | `/conversations/{id}` | Recupera una conversazione |
| `POST` | `/conversations` | Crea una conversazione |
| `POST` | `/conversations/{id}/reply` | Rispondi a una conversazione |
| `POST` | `/conversations/{id}/parts` | Aggiungi parte di conversazione |

### API Aziende

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `GET` | `/companies` | Elenca le aziende |
| `POST` | `/companies` | Crea o aggiorna un’azienda |
| `GET` | `/companies/{id}` | Recupera un’azienda |
| `GET` | `/companies/{id}/contacts` | Elenca i contatti dell’azienda |

### API Eventi

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `POST` | `/events` | Invia un evento |
| `GET` | `/events?type=user&intercom_user_id={id}` | Elenca gli eventi utente |

## Eventi

### Eventi conversazione

| Evento | Trigger | Caso d’uso |
| --- | --- | --- |
| `conversation.created` | Nuova conversazione iniziata | Avviso ticket di supporto |
| `conversation.closed` | Conversazione risolta | Trigger sondaggio CSAT |
| `conversation.rating.added` | Rating inviato | Tracciamento soddisfazione |
| `conversation.snoozed` | Conversazione in snooze | Pianificazione follow-up |

### Eventi contatto

| Evento | Trigger | Caso d’uso |
| --- | --- | --- |
| `contact.created` | Nuovo contatto aggiunto | Sequenza di benvenuto |
| `contact.updated` | Dati contatto modificati | Sync attributi |
| `contact.deleted` | Contatto archiviato | Pulizia |
| `contact.tag.created` | Tag aggiunto al contatto | Aggiornamento segmento |

### Eventi utente

| Evento | Trigger | Caso d’uso |
| --- | --- | --- |
| `user.created` | Nuovo utente registrato | Flusso di onboarding |
| `user.email.updated` | Email modificata | Merge contatto |
| `user.unsubscribed` | Disiscritto dalle email | Aggiornamento preferenze |

## Esempi di codice

### Inizializza il connettore

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

### Sincronizza contatti e conversazioni

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

### Gestisci i webhook 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');
});
```

## Limiti di velocità

Intercom applica limiti di velocità in base al tuo piano:

| Piano | Limite | Dettagli |
| --- | --- | --- |
| Starter | 20 richieste/10 secondi | Per app |
| Pro | 50 richieste/10 secondi | Per app |
| Premium | 100 richieste/10 secondi | Per app |
| Endpoint search | 1 richiesta/secondo | Per app |
| Endpoint scroll | 1 richiesta/minuto | Per app |

Limiti aggiuntivi:

- **Operazioni bulk**: 15 contatti per richiesta bulk
- **Invio eventi**: 500 eventi/secondo per workspace
- **Consegna webhook**: Retry automatico per 24 ore
- **Esportazione dati**: 1 esportazione concorrente

Risposta limite di velocità

Intercom restituisce `429 Too Many Requests` con un header `Retry-After`. Implementa il backoff esponenziale e rispetta la finestra di retry.

## Risoluzione dei problemi

### Problemi comuni

| Problema | Causa | Soluzione |
| --- | --- | --- |
| 401 Unauthorized | Token non valido o scaduto | Rigenera l’access token nel Developer Hub |
| Contatto non sincronizzato | Campo email mancante | I lead Intercom potrebbero non avere email; filtra per ruolo |
| Dati conversazione vuoti | L’app non ha lo scope per le conversazioni | Riautorizza con i permessi di lettura conversazioni |
| Webhook non ricevuto | Webhook non registrato | Configura i webhook nelle impostazioni del Developer Hub |
| Mismatch versione API | Breaking change in nuova versione | Fissa la versione API con l’header `Intercom-Version` |

### Modalità debug

Abilita il logging dettagliato:

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

### Testa la connessione

```bash
tajo connectors test intercom
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Conversations readable
# ✓ Companies readable
# ✓ Webhooks registered
```

## Best practice

1. **Fissa la versione API** - Specifica sempre `Intercom-Version` per evitare breaking change
2. **Usa la search API in modo efficiente** - Usa filtri e paginazione per ridurre il trasferimento dati
3. **Sincronizza sia utenti che lead** - Cattura l’intero funnel in Brevo
4. **Mappa i tag delle conversazioni** - Usa i tag delle conversazioni per segmenti marketing post-supporto
5. **Traccia eventi personalizzati** - Invia eventi prodotto chiave a Intercom per il targeting comportamentale
6. **Gestisci il merge dei contatti** - Implementa logica di merge per contatti duplicati

## Sicurezza

- **Access Token** - Autenticazione bearer token per private app
- **OAuth 2.0** - Autorizzazione delegata per public app con client secret
- **Verifica webhook** - Convalida firma HMAC SHA-1 tramite `X-Hub-Signature`
- **Cifratura TLS** - Tutte le comunicazioni API cifrate via HTTPS
- **Controlli accesso ai dati** - Accesso ai dati granulare per configurazione app

## Risorse correlate

- [Documentazione Intercom Developer](https://developers.intercom.com/docs)
- [Riferimento API Intercom](https://developers.intercom.com/docs/references/introduction)
- [Connettore Zendesk](https://tajo.io/it/docs/connectors/support/zendesk)
- [Skill Customer Sync](https://tajo.io/it/docs/skills/data-sync/customer-sync)
- [API Contatti Brevo](https://tajo.io/it/docs/contact-management)
