---
title: "Konektor Intercom"
description: "Kompletny przewodnik integracji Intercom do synchronizacji kontaktów, rozmów, firm i zdarzeń zaangażowania z Brevo przez Tajo."
url: https://tajo.io/pl/docs/connectors/support/intercom/
markdown: https://tajo.io/pl/docs/connectors/support/intercom.md
lang: pl-PL
robots: noindex
---

Poproś o wcześniejszy dostęp

Podaj imię i firmowy adres e-mail. Wyślemy Ci link potwierdzający prośbę o dostęp do Tajo.

# Konektor Intercom

Status konektora: Planowany Jeszcze niezbudowany. Tajo nie uruchamia dziś tego konektora.

| Pole źródłowe | Pole docelowe | Przykładowa wartość |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Połącz swoją przestrzeń roboczą Intercom z Brevo przez Tajo dla ujednoliconego komunikowania się z klientami, śledzenia rozmów i automatyzacji marketingu opartej na zaangażowaniu, zasilanej danymi wsparcia i produktu.

## Przegląd

| Właściwość | Wartość |
| --- | --- |
| **Platforma** | Intercom |
| **Kategoria** | Support |
| **Poziom konfiguracji** | Średni |
| **Integracja oficjalna** | Nie |
| **Synchronizowane dane** | Kontakty, Rozmowy, Firmy, Zdarzenia |
| **Bazowy URL API** | `https://api.intercom.io` |

## Funkcje

- **Synchronizacja kontaktów** - Dwukierunkowa synchronizacja użytkowników i leadów Intercom z kontaktami Brevo
- **Śledzenie rozmów** - Synchronizuj dane rozmów dla segmentacji opartej na wsparciu
- **Mapowanie firm** - Kojarz kontakty z firmami dla workflow opartych na kontach
- **Niestandardowe atrybuty** - Mapuj niestandardowe atrybuty Intercom na pola kontaktów Brevo
- **Śledzenie zdarzeń** - Synchronizuj niestandardowe zdarzenia i aktywności użytkowników dla targetowania behawioralnego
- **Synchronizacja tagów** - Mapuj tagi Intercom na przynależność do list Brevo lub atrybuty
- **Dane Messengera** - Śledź zaangażowanie w komunikacji w aplikacji i interakcje czatu
- **Integracja agenta AI** - Synchronizuj wyniki rozmów agenta AI z Brevo

## Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

1. Przestrzeń roboczą Intercom (plan Starter, Pro lub Premium)
2. Aplikację Intercom z tokenem dostępu (aplikacja prywatna) lub skonfigurowany OAuth (aplikacja publiczna)
3. Konto Brevo z dostępem do API
4. Konto Tajo

## Uwierzytelnianie

### Token dostępu (aplikacja prywatna)

Dla prywatnych integracji uzyskujących dostęp do własnych danych przestrzeni roboczej.

1. Przejdź do Developer Hub > Your Apps > Create new app
2. Powiąż z przestrzenią roboczą Intercom
3. Skopiuj token dostępu

```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 (aplikacja publiczna)

Dla integracji uzyskujących dostęp do danych Intercom innych klientów.

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

Wersjonowanie API

Zawsze dołączaj nagłówek `Intercom-Version` do swoich żądań. Tajo używa domyślnie wersji API 2.11. Sprawdzaj dziennik zmian Intercom pod kątem zmian łamiących zgodność.

## Konfiguracja

### Podstawowa konfiguracja

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

### Mapowanie pól

Mapuj dane kontaktów Intercom na atrybuty kontaktów Brevo:

#### Domyślne mapowania

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Adres e-mail kontaktu (unikalny identyfikator) |
| `name` optional | string | Pełne imię i nazwisko, podzielone na FIRSTNAME/LASTNAME |
| `phone` optional | string | Mapuje na atrybut SMS dla WhatsApp/SMS |
| `role` optional | string | Typ kontaktu: user lub lead |
| `company.name` optional | string | Nazwa powiązanej firmy |
| `signed_up_at` optional | timestamp | Data rejestracji użytkownika |
| `last_seen_at` optional | timestamp | Znacznik czasu ostatniej aktywności |
| `custom_attributes` optional | object | Pary klucz-wartość niestandardowych atrybutów |

#### Mapowanie niestandardowych atrybutów

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

## Endpointy API

### API Kontaktów

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `/contacts` | Lista wszystkich kontaktów |
| `POST` | `/contacts` | Utwórz kontakt |
| `PUT` | `/contacts/{id}` | Zaktualizuj kontakt |
| `GET` | `/contacts/{id}` | Pobierz kontakt |
| `POST` | `/contacts/search` | Wyszukaj kontakty |
| `DELETE` | `/contacts/{id}` | Zarchiwizuj kontakt |

### API Rozmów

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `/conversations` | Lista rozmów |
| `GET` | `/conversations/{id}` | Pobierz rozmowę |
| `POST` | `/conversations` | Utwórz rozmowę |
| `POST` | `/conversations/{id}/reply` | Odpowiedz na rozmowę |
| `POST` | `/conversations/{id}/parts` | Dodaj część rozmowy |

### API Firm

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `/companies` | Lista firm |
| `POST` | `/companies` | Utwórz lub zaktualizuj firmę |
| `GET` | `/companies/{id}` | Pobierz firmę |
| `GET` | `/companies/{id}/contacts` | Lista kontaktów firmy |

### API Zdarzeń

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `POST` | `/events` | Prześlij zdarzenie |
| `GET` | `/events?type=user&intercom_user_id={id}` | Lista zdarzeń użytkownika |

## Zdarzenia

### Zdarzenia rozmów

| Zdarzenie | Wyzwalacz | Przypadek użycia |
| --- | --- | --- |
| `conversation.created` | Rozpoczęto nową rozmowę | Alert zgłoszenia wsparcia |
| `conversation.closed` | Rozmowa rozwiązana | Wyzwalacz ankiety CSAT |
| `conversation.rating.added` | Przesłano ocenę | Śledzenie satysfakcji |
| `conversation.snoozed` | Rozmowa wyciszona | Planowanie follow-upu |

### Zdarzenia kontaktów

| Zdarzenie | Wyzwalacz | Przypadek użycia |
| --- | --- | --- |
| `contact.created` | Dodano nowy kontakt | Sekwencja powitalna |
| `contact.updated` | Zmieniono dane kontaktu | Synchronizacja atrybutów |
| `contact.deleted` | Kontakt zarchiwizowany | Czyszczenie |
| `contact.tag.created` | Dodano tag do kontaktu | Aktualizacja segmentu |

### Zdarzenia użytkowników

| Zdarzenie | Wyzwalacz | Przypadek użycia |
| --- | --- | --- |
| `user.created` | Zarejestrował się nowy użytkownik | Przepływ onboardingowy |
| `user.email.updated` | Zmieniono e-mail | Scalanie kontaktów |
| `user.unsubscribed` | Zrezygnowano z e-maili | Aktualizacja preferencji |

## Przykłady kodu

### Inicjalizacja konektora

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

### Synchronizuj kontakty i rozmowy

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

### Obsługuj webhooki 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');
});
```

## Limity API

Intercom stosuje limity szybkości na podstawie planu:

| Plan | Limit szybkości | Szczegóły |
| --- | --- | --- |
| Starter | 20 żądań/10 sekund | Na aplikację |
| Pro | 50 żądań/10 sekund | Na aplikację |
| Premium | 100 żądań/10 sekund | Na aplikację |
| Endpoint wyszukiwania | 1 żądanie/sekundę | Na aplikację |
| Endpoint scroll | 1 żądanie/minutę | Na aplikację |

Dodatkowe limity:

- **Operacje masowe**: 15 kontaktów na żądanie masowe
- **Przesyłanie zdarzeń**: 500 zdarzeń/sekundę na przestrzeń roboczą
- **Dostarczanie webhooków**: Automatyczne ponowne próby przez 24 godziny
- **Eksport danych**: 1 równoczesny eksport

Odpowiedź na limit szybkości

Intercom zwraca `429 Too Many Requests` z nagłówkiem `Retry-After`. Wdrożyj wykładnicze wycofanie i respektuj okno ponownych prób.

## Rozwiązywanie problemów

### Typowe problemy

| Problem | Przyczyna | Rozwiązanie |
| --- | --- | --- |
| 401 Unauthorized | Nieprawidłowy lub wygasły token | Wygeneruj ponownie token dostępu w Developer Hub |
| Kontakt nie zsynchronizowany | Brakujące pole e-mail | Leady Intercom mogą nie mieć e-maila; filtruj według roli |
| Puste dane rozmów | Aplikacja nie ma zakresu rozmów | Ponownie autoryzuj z uprawnieniami do odczytu rozmów |
| Webhook nie odebrany | Webhook nie zarejestrowany | Skonfiguruj webhooki w ustawieniach Developer Hub |
| Niezgodność wersji API | Zmiany łamiące zgodność w nowej wersji | Przypiń wersję API nagłówkiem `Intercom-Version` |

### Tryb debug

Włącz szczegółowe logowanie:

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

### Test połączenia

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

## Najlepsze praktyki

1. **Przypinaj wersję API** - Zawsze podawaj `Intercom-Version`, aby unikać zmian łamiących zgodność
2. **Efektywnie używaj Search API** - Używaj filtrów i paginacji, aby zmniejszyć transfer danych
3. **Synchronizuj zarówno użytkowników jak i leady** - Chwyć pełny lejek w Brevo
4. **Mapuj tagi rozmów** - Używaj tagów rozmów dla segmentów marketingowych po wsparciu
5. **Śledź niestandardowe zdarzenia** - Przesyłaj kluczowe zdarzenia produktowe do Intercom dla targetowania behawioralnego
6. **Obsługuj scalanie kontaktów** - Wdrożyj logikę scalania dla zduplikowanych kontaktów

## Bezpieczeństwo

- **Token dostępu** - Uwierzytelnianie tokenem bearer dla aplikacji prywatnych
- **OAuth 2.0** - Delegowana autoryzacja dla aplikacji publicznych z sekretnym kluczem klienta
- **Weryfikacja webhooków** - Walidacja podpisu HMAC SHA-1 przez `X-Hub-Signature`
- **Szyfrowanie TLS** - Cała komunikacja API szyfrowana przez HTTPS
- **Kontrola dostępu do danych** - Szczegółowy dostęp do danych na konfigurację aplikacji

## Powiązane zasoby

- [Dokumentacja dla deweloperów Intercom](https://developers.intercom.com/docs)
- [Dokumentacja API Intercom](https://developers.intercom.com/docs/references/introduction)
- [Konektor Zendesk](https://tajo.io/pl/docs/connectors/support/zendesk)
- [Skill synchronizacji klientów](https://tajo.io/pl/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/pl/docs/contact-management)
