---
title: "Конектор HubSpot"
description: "Пълно ръководство за интеграция с HubSpot CRM за синхронизация на контакти, компании, сделки, билети и маркетингови данни с Brevo чрез Tajo."
url: https://tajo.io/bg/docs/connectors/crm/hubspot/
markdown: https://tajo.io/bg/docs/connectors/crm/hubspot.md
lang: bg-BG
robots: noindex
---

Заявете ранен достъп

Въведете собственото си име и служебен имейл адрес. Ще ви изпратим връзка за потвърждение на заявката за достъп до Tajo.

# Конектор HubSpot

Статус на конектора: В разработка В процес на изграждане. Все още не е проверен.

| Поле източник | Целево поле | Примерна стойност |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Свържете своя HubSpot CRM с Brevo чрез Tajo за двупосочна синхронизация на контакти, проследяване на сделки, данни за ангажираност и унифицирана маркетингова автоматизация между двете платформи.

## Преглед

| Свойство | Стойност |
| --- | --- |
| **Платформа** | HubSpot |
| **Категория** | CRM |
| **Сложност на настройка** | Средна |
| **Официална интеграция** | Не |
| **Синхронизирани данни** | Контакти, компании, сделки, билети, събития |
| **API Base URL** | `https://api.hubapi.com` |

## Функции

- **Двупосочна синхронизация на контакти** – Поддържайте контактите синхронизирани между HubSpot и Brevo в реално време
- **Проследяване на пайплайна от сделки** – Синхронизирайте етапите и стойностите на сделките за сегментация на базата на приходите
- **Синхронизация на данни за компаниите** – Свържете контактите с фирмени записи и фирмографски данни
- **Интеграция на билети** – Проследявайте билети за поддръжка за оценка на клиентското здраве
- **Проследяване на ангажираност** – Синхронизирайте отварянията на имейли, кликванията, срещите, обажданията и бележките
- **Поддръжка на персонализирани обекти** – Mапвайте персонализирани обекти на HubSpot към атрибути в Brevo
- **Тригери на работни процеси** – Използвайте промените в етапа от жизнения цикъл на HubSpot, за да задействате автоматизации в Brevo
- **Събития през webhook** – Нотификации в реално време за промени в CRM данните

## Предварителни условия

Преди да започнете, уверете се, че имате:

1. Акаунт в HubSpot (Free, Starter, Professional или Enterprise)
2. Частно приложение или OAuth приложение в HubSpot с необходимите обхвати
3. Акаунт в Brevo с API достъп
4. Акаунт в Tajo

## Автентикация

### Токен за достъп от частно приложение (препоръчително)

Създайте частно приложение в HubSpot за директен API достъп с гранулиран контрол на обхватите.

1. Отидете в HubSpot Settings > Integrations > Private Apps
2. Създайте ново частно приложение
3. Конфигурирайте необходимите обхвати
4. Копирайте токена за достъп

```bash
curl -X GET "https://api.hubapi.com/crm/v3/objects/contacts" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
```

### OAuth 2.0

Използвайте OAuth 2.0 за интеграции с множество акаунти, които изискват оторизация от потребителя.

```bash
# Authorization URL
https://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}
```

#### Необходими обхвати

```
crm.objects.contacts.read
crm.objects.contacts.write
crm.objects.companies.read
crm.objects.deals.read
crm.objects.deals.write
crm.objects.custom.read
crm.schemas.custom.read
```

## Конфигурация

### Основна настройка

```yaml
connectors:
  hubspot:
    enabled: true
    access_token: "${HUBSPOT_ACCESS_TOKEN}"

    # Data sync options
    sync:
      contacts: true
      companies: true
      deals: true
      tickets: true
      engagements: true

    # Sync direction
    direction: bidirectional  # or 'hubspot_to_brevo' | 'brevo_to_hubspot'

    # List assignment in Brevo
    lists:
      all_contacts: 10
      qualified_leads: 11
      customers: 12
```

### Мапване на полета

Мапвайте свойствата от HubSpot към атрибутите на контактите в Brevo:

#### Мапвания по подразбиране

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Имейл на контакта (основен идентификатор) |
| `firstname` optional | string | Мапва се към атрибута FIRSTNAME в Brevo |
| `lastname` optional | string | Мапва се към атрибута LASTNAME в Brevo |
| `phone` optional | string | Мапва се към атрибута SMS за WhatsApp/SMS |
| `company` optional | string | Име на свързаната компания |
| `lifecyclestage` optional | string | Етап от жизнения цикъл в HubSpot (subscriber, lead, MQL, SQL, customer) |
| `hs_lead_status` optional | string | Статус на квалификация на лийда |
| `hubspot_owner_id` optional | string | ID на определения собственик от продажбите |

#### Мапване на персонализирани свойства

```yaml
field_mapping:
  # Standard fields
  email: email
  firstname: FIRSTNAME
  lastname: LASTNAME
  phone: SMS

  # CRM fields
  lifecyclestage: LIFECYCLE_STAGE
  hs_lead_status: LEAD_STATUS
  company: COMPANY_NAME

  # Deal metrics
  hs_total_deal_value: DEAL_VALUE
  num_associated_deals: DEAL_COUNT

  # Custom properties
  preferred_channel: PREFERRED_CHANNEL
  customer_segment: SEGMENT
```

## API крайни точки

### CRM обекти

| Method | Endpoint | Описание |
| --- | --- | --- |
| `GET` | `/crm/v3/objects/contacts` | Списък на контактите |
| `POST` | `/crm/v3/objects/contacts` | Създаване на контакт |
| `PATCH` | `/crm/v3/objects/contacts/{id}` | Обновяване на контакт |
| `GET` | `/crm/v3/objects/companies` | Списък на компаниите |
| `GET` | `/crm/v3/objects/deals` | Списък на сделките |
| `POST` | `/crm/v3/objects/deals` | Създаване на сделка |
| `GET` | `/crm/v3/objects/tickets` | Списък на билетите |

### Асоциации

| Method | Endpoint | Описание |
| --- | --- | --- |
| `GET` | `/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}` | Извличане на асоциации |
| `PUT` | `/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}` | Създаване на асоциация |

### Ангажираност

| Method | Endpoint | Описание |
| --- | --- | --- |
| `GET` | `/crm/v3/objects/calls` | Списък на ангажиментите от обаждания |
| `GET` | `/crm/v3/objects/emails` | Списък на имейл ангажиментите |
| `GET` | `/crm/v3/objects/meetings` | Списък на срещите |
| `GET` | `/crm/v3/objects/notes` | Списък на бележките |
| `GET` | `/crm/v3/objects/tasks` | Списък на задачите |

## Събития

### Събития за контакти

| Събитие | Тригер | Случай на употреба |
| --- | --- | --- |
| `contact.creation` | Създаден нов контакт | Тригер за приветствен поток |
| `contact.propertyChange` | Обновено свойство на контакта | Синхронизация на атрибути |
| `contact.merge` | Обединени контакти | Обработка на дубликати |
| `contact.deletion` | Изтрит контакт | Почистване в Brevo |

### Събития за сделки

| Събитие | Тригер | Случай на употреба |
| --- | --- | --- |
| `deal.creation` | Създадена нова сделка | Известие до продажбите |
| `deal.propertyChange` | Променен етап на сделката | Автоматизация на пайплайна |
| `deal.deletion` | Премахната сделка | Отчитане на приходи |

### Събития за компании

| Събитие | Тригер | Случай на употреба |
| --- | --- | --- |
| `company.creation` | Добавена нова компания | Account-based маркетинг |
| `company.propertyChange` | Обновени данни за компанията | Фирмографска синхронизация |

## Примери за код

### Инициализация на конектора

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect HubSpot
await tajo.connectors.connect('hubspot', {
  accessToken: process.env.HUBSPOT_ACCESS_TOKEN
});
```

### Изпълнение на синхронизация на контакти

```javascript
// Full bidirectional sync
await tajo.connectors.sync('hubspot', {
  type: 'full',
  resources: ['contacts', 'companies', 'deals'],
  direction: 'bidirectional',
  since: '2023-01-01'
});

// Check sync status
const status = await tajo.connectors.status('hubspot');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   contactsSynced: 34200,
//   companiesSynced: 5100,
//   dealsSynced: 2340
// }
```

### Обработка на webhook събития

```javascript
// Handle HubSpot webhook notifications
app.post('/webhooks/hubspot', async (req, res) => {
  const signature = req.get('X-HubSpot-Signature-v3');

  // Verify webhook signature
  if (!verifyHubSpotSignature(req.body, signature)) {
    return res.status(401).send('Unauthorized');
  }

  for (const event of req.body) {
    await tajo.connectors.handleWebhook('hubspot', {
      eventType: event.subscriptionType,
      objectId: event.objectId,
      propertyName: event.propertyName,
      propertyValue: event.propertyValue
    });
  }

  res.status(200).send('OK');
});
```

## Лимити на заявки

HubSpot прилага лимити на заявките за всяко частно приложение или OAuth приложение:

| План | Лимит на заявки | Лимит при пикове |
| --- | --- | --- |
| Free/Starter | 100 заявки/10 секунди | 150 заявки/10 секунди |
| Professional | 150 заявки/10 секунди | 200 заявки/10 секунди |
| Enterprise | 200 заявки/10 секунди | 250 заявки/10 секунди |
| API add-on | 200 заявки/10 секунди | 250 заявки/10 секунди |

Допълнителни лимити:

- **Search API**: 5 заявки/секунда за приложение
- **Операции в batch**: 100 записа на batch заявка
- **Дневен лимит**: 500 000 заявки/ден (OAuth приложения)

Обработка на лимита на заявки

HubSpot връща отговор `429 Too Many Requests` при надвишаване на лимитите. Използвайте експоненциално отлагане и наблюдавайте хедърите `X-HubSpot-RateLimit-*`.

## Отстраняване на проблеми

### Често срещани проблеми

| Проблем | Причина | Решение |
| --- | --- | --- |
| 401 Unauthorized | Изтекъл или невалиден токен | Генерирайте нов токен за частно приложение или обновете OAuth токена |
| Контакт не е синхронизиран | Липсващо свойство email | Контактите в HubSpot изискват имейл за синхронизация с Brevo |
| Дублирани контакти | Няма правило за дедупликация | Конфигурирайте правила за обединяване в HubSpot |
| Webhook не е получен | Абонаментът не е активен | Регистрирайте отново webhook абонаментите |
| Свойството не е мапнато | Персонализираното свойство не е създадено | Първо създайте свойството в HubSpot |

### Debug режим

Активирайте подробно логиране:

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

### Тестване на връзката

```bash
tajo connectors test hubspot
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Companies readable
# ✓ Deals readable
# ✓ Webhooks registered
```

## Най-добри практики

1. **Използвайте частни приложения вместо API ключове** – API ключовете са отхвърлени; използвайте частни приложения за по-добра сигурност
2. **Внимателно прилагайте двупосочна синхронизация** – Избягвайте безкрайни цикли, като проследявате източника на синхронизация
3. **Мапвайте етапите от жизнения цикъл** – Използвайте етапите от жизнения цикъл в HubSpot за сегментиране на контактите в Brevo
4. **Групирайте API заявките** – Използвайте batch крайни точки за групови операции, за да останете в рамките на лимитите
5. **Наблюдавайте доставката на webhook** – Настройте логика за повторен опит и обработка на dead letter
6. **Използвайте инкрементална синхронизация** – Синхронизирайте само променените записи чрез свойството `lastmodifieddate`

## Сигурност

- **Токени за частни приложения** – Обхватни токени за достъп с гранулирани разрешения
- **OAuth 2.0** – Индустриален стандарт за оторизация с ротация на refresh токени
- **Webhook подписи** – HMAC-базирана верификация на подписи (v3)
- **TLS криптиране** – Цялата API комуникация е криптирана при предаване
- **Обхватни разрешения** – Минимално необходим обхват за всяка интеграция

## Свързани ресурси

- [HubSpot API Documentation](https://developers.hubspot.com/docs/api/overview)
- [HubSpot Authentication Guide](https://developers.hubspot.com/docs/api/working-with-oauth)
- [Конектор Salesforce](https://tajo.io/bg/docs/connectors/crm/salesforce)
- [Customer Sync Skill](https://tajo.io/bg/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/bg/docs/contact-management)
