Конектор HubSpot

Конектор HubSpot

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

Преглед

СвойствоСтойност
ПлатформаHubSpot
КатегорияCRM
Сложност на настройкаСредна
Официална интеграцияДа
Синхронизирани данниКонтакти, компании, сделки, билети, събития
API Base URLhttps://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. Копирайте токена за достъп
Terminal window
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 за интеграции с множество акаунти, които изискват оторизация от потребителя.

Terminal window
# 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

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

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

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 на определения собственик от продажбите

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

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 обекти

MethodEndpointОписание
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Списък на билетите

Асоциации

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

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

MethodEndpointОписание
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Обновени данни за компаниятаФирмографска синхронизация

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

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

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

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

// 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 събития

// 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/Starter100 заявки/10 секунди150 заявки/10 секунди
Professional150 заявки/10 секунди200 заявки/10 секунди
Enterprise200 заявки/10 секунди250 заявки/10 секунди
API add-on200 заявки/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 режим

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

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

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

Terminal window
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 комуникация е криптирана при предаване
  • Обхватни разрешения – Минимално необходим обхват за всяка интеграция

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

Subscribe to updates

developer-docs

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

AI асистент

Здравейте! Попитайте ме за документацията.

Започнете безплатно с Brevo