HubSpot-kobling
HubSpot-kobling
Koble HubSpot CRM til Brevo via Tajo for toveis kontaktsynkronisering, sporing av avtaler, engasjementsdata og enhetlig markedsføringsautomatisering på tvers av begge plattformer.
Oversikt
| Egenskap | Verdi |
|---|---|
| Plattform | HubSpot |
| Kategori | CRM |
| Oppsettskompleksitet | Middels |
| Offisiell integrasjon | Ja |
| Synkroniserte data | Kontakter, selskaper, avtaler, tickets, hendelser |
| API Base URL | https://api.hubapi.com |
Funksjoner
- Toveis kontaktsynkronisering - Hold kontakter synkronisert mellom HubSpot og Brevo i sanntid
- Sporing av avtalepipeline - Synkroniser avtaletrinn og -verdier for inntektsbasert segmentering
- Synkronisering av selskapsdata - Tilknytt kontakter med selskapsposter og firmografiske data
- Ticket-integrasjon - Spor supporttickets for kundehelsepoeng
- Sporing av engasjement - Synkroniser e-poståpninger, klikk, møter, anrop og notater
- Støtte for egendefinerte objekter - Mapp HubSpot egendefinerte objekter til Brevo-attributter
- Arbeidsflyttriggere - Bruk endringer i HubSpot livssyklusstadium for å utløse Brevo-automatiseringer
- Webhook-hendelser - Sanntidsvarsler for endringer i CRM-data
Forutsetninger
Før du begynner, sørg for at du har:
- En HubSpot-konto (Free, Starter, Professional eller Enterprise)
- En HubSpot privat app eller OAuth-app med påkrevde scopes
- En Brevo-konto med API-tilgang
- En Tajo-konto
Autentisering
Private App Access Token (anbefalt)
Opprett en privat app i HubSpot for direkte API-tilgang med granulær scope-kontroll.
- Gå til HubSpot Settings > Integrations > Private Apps
- Opprett en ny privat app
- Konfigurer påkrevde scopes
- Kopier access token
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
Bruk OAuth 2.0 for integrasjoner med flere kontoer som krever brukerautorisering.
# Authorization URLhttps://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}Påkrevde scopes
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.deals.readcrm.objects.deals.writecrm.objects.custom.readcrm.schemas.custom.readKonfigurasjon
Grunnleggende oppsett
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: 12Feltmapping
Mapp HubSpot-egenskaper til Brevo-kontaktattributter:
Standardmappinger
| Parameter | Type | Description |
|---|---|---|
email required | string | Kontakt-e-post (primær identifikator) |
firstname optional | string | Mappes til FIRSTNAME-attributtet i Brevo |
lastname optional | string | Mappes til LASTNAME-attributtet i Brevo |
phone optional | string | Mappes til SMS-attributtet for WhatsApp/SMS |
company optional | string | Tilknyttet selskapsnavn |
lifecyclestage optional | string | HubSpot livssyklusstadium (subscriber, lead, MQL, SQL, customer) |
hs_lead_status optional | string | Kvalifiseringsstatus for lead |
hubspot_owner_id optional | string | ID for tildelt salgseier |
Mapping av egendefinerte egenskaper
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: SEGMENTAPI-endepunkter
CRM-objekter
| Metode | Endepunkt | Beskrivelse |
|---|---|---|
GET | /crm/v3/objects/contacts | List kontakter |
POST | /crm/v3/objects/contacts | Opprett en kontakt |
PATCH | /crm/v3/objects/contacts/{id} | Oppdater en kontakt |
GET | /crm/v3/objects/companies | List selskaper |
GET | /crm/v3/objects/deals | List avtaler |
POST | /crm/v3/objects/deals | Opprett en avtale |
GET | /crm/v3/objects/tickets | List tickets |
Tilknytninger
| Metode | Endepunkt | Beskrivelse |
|---|---|---|
GET | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} | Hent tilknytninger |
PUT | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} | Opprett tilknytning |
Engasjementer
| Metode | Endepunkt | Beskrivelse |
|---|---|---|
GET | /crm/v3/objects/calls | List anropsengasjementer |
GET | /crm/v3/objects/emails | List e-postengasjementer |
GET | /crm/v3/objects/meetings | List møter |
GET | /crm/v3/objects/notes | List notater |
GET | /crm/v3/objects/tasks | List oppgaver |
Hendelser
Kontakthendelser
| Hendelse | Trigger | Bruksområde |
|---|---|---|
contact.creation | Ny kontakt opprettet | Utløs velkomstflyt |
contact.propertyChange | Kontaktegenskap oppdatert | Attributtsynkronisering |
contact.merge | Kontakter slått sammen | Håndtering av duplikater |
contact.deletion | Kontakt slettet | Opprydding i Brevo |
Avtalehendelser
| Hendelse | Trigger | Bruksområde |
|---|---|---|
deal.creation | Ny avtale opprettet | Salgsvarsel |
deal.propertyChange | Avtaletrinn endret | Pipelineautomatisering |
deal.deletion | Avtale fjernet | Inntektsrapportering |
Selskapshendelser
| Hendelse | Trigger | Bruksområde |
|---|---|---|
company.creation | Nytt selskap lagt til | Account-based marketing |
company.propertyChange | Selskapsdata oppdatert | Firmografisk synkronisering |
Kodeeksempler
Initialiser koblingen
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect HubSpotawait tajo.connectors.connect('hubspot', { accessToken: process.env.HUBSPOT_ACCESS_TOKEN});Kjør kontaktsynkronisering
// Full bidirectional syncawait tajo.connectors.sync('hubspot', { type: 'full', resources: ['contacts', 'companies', 'deals'], direction: 'bidirectional', since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('hubspot');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 34200,// companiesSynced: 5100,// dealsSynced: 2340// }Håndter webhook-hendelser
// Handle HubSpot webhook notificationsapp.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');});Hastighetsgrenser
HubSpot anvender hastighetsgrenser per privat app eller OAuth-app:
| Plan | Hastighetsgrense | Burst-grense |
|---|---|---|
| Free/Starter | 100 forespørsler/10 sekunder | 150 forespørsler/10 sekunder |
| Professional | 150 forespørsler/10 sekunder | 200 forespørsler/10 sekunder |
| Enterprise | 200 forespørsler/10 sekunder | 250 forespørsler/10 sekunder |
| API add-on | 200 forespørsler/10 sekunder | 250 forespørsler/10 sekunder |
Ytterligere grenser:
- Search API: 5 forespørsler/sekund per app
- Batch-operasjoner: 100 poster per batch-forespørsel
- Daglig grense: 500 000 forespørsler/dag (OAuth-apper)
Håndtering av hastighetsgrenser
HubSpot returnerer et 429 Too Many Requests-svar når grenser overskrides. Bruk eksponentiell backoff og overvåk X-HubSpot-RateLimit-*-headere.
Feilsøking
Vanlige problemer
| Problem | Årsak | Løsning |
|---|---|---|
| 401 Unauthorized | Utløpt eller ugyldig token | Generer privat app-token på nytt eller oppdater OAuth-token |
| Kontakt ikke synkronisert | Manglende e-postegenskap | HubSpot-kontakter krever en e-post for Brevo-synkronisering |
| Dupliserte kontakter | Ingen deduplikasjonsregel | Konfigurer sammenslåingsregler i HubSpot |
| Webhook ikke mottatt | Abonnement ikke aktivt | Registrer webhook-abonnementer på nytt |
| Egenskap ikke mappet | Egendefinert egenskap ikke opprettet | Opprett egenskapen i HubSpot først |
Feilsøkingsmodus
Aktiver detaljert logging:
connectors: hubspot: debug: true log_level: verbose log_webhooks: trueTest tilkobling
tajo connectors test hubspot# ✓ API connection successful# ✓ Contacts readable# ✓ Companies readable# ✓ Deals readable# ✓ Webhooks registeredBeste praksis
- Bruk private apper fremfor API-nøkler - API-nøkler er utdatert; bruk private apper for bedre sikkerhet
- Implementer toveis synkronisering forsiktig - Unngå uendelige løkker ved å spore synkroniseringskilden
- Mapp livssyklusstadier - Bruk HubSpot livssyklusstadier for å segmentere kontakter i Brevo
- Batch API-forespørsler - Bruk batch-endepunkter for bulk-operasjoner for å holde deg innenfor hastighetsgrensene
- Overvåk webhook-levering - Sett opp retry-logikk og håndtering av dead letters
- Bruk inkrementell synkronisering - Synkroniser kun endrede poster med
lastmodifieddate-egenskapen
Sikkerhet
- Private app-tokens - Scoped access tokens med granulære tillatelser
- OAuth 2.0 - Industristandard autorisering med rotasjon av refresh token
- Webhook-signaturer - HMAC-basert signaturverifisering (v3)
- TLS-kryptering - All API-kommunikasjon kryptert under transport
- Scopede tillatelser - Minimum nødvendig scope-tilgang per integrasjon