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

EgenskapVerdi
PlattformHubSpot
KategoriCRM
OppsettskompleksitetMiddels
Offisiell integrasjonJa
Synkroniserte dataKontakter, selskaper, avtaler, tickets, hendelser
API Base URLhttps://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:

  1. En HubSpot-konto (Free, Starter, Professional eller Enterprise)
  2. En HubSpot privat app eller OAuth-app med påkrevde scopes
  3. En Brevo-konto med API-tilgang
  4. En Tajo-konto

Autentisering

Private App Access Token (anbefalt)

Opprett en privat app i HubSpot for direkte API-tilgang med granulær scope-kontroll.

  1. Gå til HubSpot Settings > Integrations > Private Apps
  2. Opprett en ny privat app
  3. Konfigurer påkrevde scopes
  4. Kopier access token
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

Bruk OAuth 2.0 for integrasjoner med flere kontoer som krever brukerautorisering.

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

Påkrevde scopes

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

Konfigurasjon

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: 12

Feltmapping

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: SEGMENT

API-endepunkter

CRM-objekter

MetodeEndepunktBeskrivelse
GET/crm/v3/objects/contactsList kontakter
POST/crm/v3/objects/contactsOpprett en kontakt
PATCH/crm/v3/objects/contacts/{id}Oppdater en kontakt
GET/crm/v3/objects/companiesList selskaper
GET/crm/v3/objects/dealsList avtaler
POST/crm/v3/objects/dealsOpprett en avtale
GET/crm/v3/objects/ticketsList tickets

Tilknytninger

MetodeEndepunktBeskrivelse
GET/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}Hent tilknytninger
PUT/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}Opprett tilknytning

Engasjementer

MetodeEndepunktBeskrivelse
GET/crm/v3/objects/callsList anropsengasjementer
GET/crm/v3/objects/emailsList e-postengasjementer
GET/crm/v3/objects/meetingsList møter
GET/crm/v3/objects/notesList notater
GET/crm/v3/objects/tasksList oppgaver

Hendelser

Kontakthendelser

HendelseTriggerBruksområde
contact.creationNy kontakt opprettetUtløs velkomstflyt
contact.propertyChangeKontaktegenskap oppdatertAttributtsynkronisering
contact.mergeKontakter slått sammenHåndtering av duplikater
contact.deletionKontakt slettetOpprydding i Brevo

Avtalehendelser

HendelseTriggerBruksområde
deal.creationNy avtale opprettetSalgsvarsel
deal.propertyChangeAvtaletrinn endretPipelineautomatisering
deal.deletionAvtale fjernetInntektsrapportering

Selskapshendelser

HendelseTriggerBruksområde
company.creationNytt selskap lagt tilAccount-based marketing
company.propertyChangeSelskapsdata oppdatertFirmografisk 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 HubSpot
await tajo.connectors.connect('hubspot', {
accessToken: process.env.HUBSPOT_ACCESS_TOKEN
});

Kjør kontaktsynkronisering

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

Håndter webhook-hendelser

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

Hastighetsgrenser

HubSpot anvender hastighetsgrenser per privat app eller OAuth-app:

PlanHastighetsgrenseBurst-grense
Free/Starter100 forespørsler/10 sekunder150 forespørsler/10 sekunder
Professional150 forespørsler/10 sekunder200 forespørsler/10 sekunder
Enterprise200 forespørsler/10 sekunder250 forespørsler/10 sekunder
API add-on200 forespørsler/10 sekunder250 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ÅrsakLøsning
401 UnauthorizedUtløpt eller ugyldig tokenGenerer privat app-token på nytt eller oppdater OAuth-token
Kontakt ikke synkronisertManglende e-postegenskapHubSpot-kontakter krever en e-post for Brevo-synkronisering
Dupliserte kontakterIngen deduplikasjonsregelKonfigurer sammenslåingsregler i HubSpot
Webhook ikke mottattAbonnement ikke aktivtRegistrer webhook-abonnementer på nytt
Egenskap ikke mappetEgendefinert egenskap ikke opprettetOpprett egenskapen i HubSpot først

Feilsøkingsmodus

Aktiver detaljert logging:

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

Test tilkobling

Terminal window
tajo connectors test hubspot
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Companies readable
# ✓ Deals readable
# ✓ Webhooks registered

Beste praksis

  1. Bruk private apper fremfor API-nøkler - API-nøkler er utdatert; bruk private apper for bedre sikkerhet
  2. Implementer toveis synkronisering forsiktig - Unngå uendelige løkker ved å spore synkroniseringskilden
  3. Mapp livssyklusstadier - Bruk HubSpot livssyklusstadier for å segmentere kontakter i Brevo
  4. Batch API-forespørsler - Bruk batch-endepunkter for bulk-operasjoner for å holde deg innenfor hastighetsgrensene
  5. Overvåk webhook-levering - Sett opp retry-logikk og håndtering av dead letters
  6. 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

Relaterte ressurser

Subscribe to updates

developer-docs

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

AI-assistent

Hei! Spør meg om dokumentasjonen.

Start gratis med Brevo