---
title: "HubSpot-koppling"
description: "Komplett integrationsguide för HubSpot CRM för att synkronisera kontakter, företag, affärer, ärenden och marknadsföringsdata med Brevo via Tajo."
url: https://tajo.io/se/docs/connectors/crm/hubspot/
markdown: https://tajo.io/se/docs/connectors/crm/hubspot.md
lang: sv-SE
robots: noindex
---

Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

# HubSpot-koppling

Kopplingens status: Under utveckling Byggs. Inte verifierad än.

| Källfält | Målfält | Exempelvärde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Anslut ditt HubSpot CRM till Brevo via Tajo för dubbelriktad kontaktsynkronisering, uppföljning av affärer, engagemangsdata och enhetlig marknadsautomation mellan båda plattformarna.

## Översikt

| Egenskap | Värde |
| --- | --- |
| **Plattform** | HubSpot |
| **Kategori** | CRM |
| **Installationskomplexitet** | Medel |
| **Officiell integration** | Nej |
| **Data som synkas** | Kontakter, företag, affärer, ärenden, händelser |
| **API bas-URL** | `https://api.hubapi.com` |

## Funktioner

- **Dubbelriktad kontaktsynkronisering** - Håll kontakter synkroniserade mellan HubSpot och Brevo i realtid
- **Uppföljning av affärspipeline** - Synka stadier och värden på affärer för intäktsbaserad segmentering
- **Synkronisering av företagsdata** - Koppla kontakter till företagsposter och firmografisk data
- **Integration av ärenden** - Följ supportärenden för kundhälsopoäng
- **Engagemangsspårning** - Synka e-postöppningar, klick, möten, samtal och anteckningar
- **Stöd för anpassade objekt** - Mappa HubSpots anpassade objekt till Brevo-attribut
- **Arbetsflödesutlösare** - Använd ändringar i HubSpots livscykelstadium för att utlösa Brevo-automationer
- **Webhook-händelser** - Notifieringar i realtid för CRM-dataändringar

## Förutsättningar

Innan du börjar, se till att du har:

1. Ett HubSpot-konto (Free, Starter, Professional eller Enterprise)
2. En HubSpot privat app eller OAuth-app med nödvändiga scopes
3. Ett Brevo-konto med API-åtkomst
4. Ett Tajo-konto

## Autentisering

### Åtkomsttoken för privat app (rekommenderas)

Skapa en privat app i HubSpot för direkt API-åtkomst med granulär scope-kontroll.

1. Gå till HubSpot Settings > Integrations > Private Apps
2. Skapa en ny privat app
3. Konfigurera nödvändiga scopes
4. Kopiera åtkomsttoken

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

Använd OAuth 2.0 för integrationer med flera konton som kräver användarens godkännande.

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

#### Nödvändiga 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
```

## Konfiguration

### Grundinställning

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

### Fältmappning

Mappa HubSpot-egenskaper till Brevo-kontaktattribut:

#### Standardmappningar

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Kontaktens e-post (primär identifierare) |
| `firstname` optional | string | Mappas till attributet FIRSTNAME i Brevo |
| `lastname` optional | string | Mappas till attributet LASTNAME i Brevo |
| `phone` optional | string | Mappas till attributet SMS för WhatsApp/SMS |
| `company` optional | string | Tillhörande företagsnamn |
| `lifecyclestage` optional | string | HubSpots livscykelstadium (subscriber, lead, MQL, SQL, customer) |
| `hs_lead_status` optional | string | Status för leadkvalificering |
| `hubspot_owner_id` optional | string | ID för tilldelad säljansvarig |

#### Mappning av anpassade egenskaper

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

### CRM-objekt

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `GET` | `/crm/v3/objects/contacts` | Lista kontakter |
| `POST` | `/crm/v3/objects/contacts` | Skapa en kontakt |
| `PATCH` | `/crm/v3/objects/contacts/{id}` | Uppdatera en kontakt |
| `GET` | `/crm/v3/objects/companies` | Lista företag |
| `GET` | `/crm/v3/objects/deals` | Lista affärer |
| `POST` | `/crm/v3/objects/deals` | Skapa en affär |
| `GET` | `/crm/v3/objects/tickets` | Lista ärenden |

### Associationer

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `GET` | `/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}` | Hämta associationer |
| `PUT` | `/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}` | Skapa association |

### Engagemang

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `GET` | `/crm/v3/objects/calls` | Lista samtalsengagemang |
| `GET` | `/crm/v3/objects/emails` | Lista e-postengagemang |
| `GET` | `/crm/v3/objects/meetings` | Lista möten |
| `GET` | `/crm/v3/objects/notes` | Lista anteckningar |
| `GET` | `/crm/v3/objects/tasks` | Lista uppgifter |

## Händelser

### Kontakthändelser

| Händelse | Utlösare | Användningsfall |
| --- | --- | --- |
| `contact.creation` | Ny kontakt skapad | Utlösare för välkomstflöde |
| `contact.propertyChange` | Kontaktegenskap uppdaterad | Attributsynkronisering |
| `contact.merge` | Kontakter sammanslagna | Hantering av dubbletter |
| `contact.deletion` | Kontakt raderad | Rensning i Brevo |

### Affärshändelser

| Händelse | Utlösare | Användningsfall |
| --- | --- | --- |
| `deal.creation` | Ny affär skapad | Säljnotifiering |
| `deal.propertyChange` | Affärsstadium ändrat | Pipelineautomation |
| `deal.deletion` | Affär borttagen | Intäktsrapportering |

### Företagshändelser

| Händelse | Utlösare | Användningsfall |
| --- | --- | --- |
| `company.creation` | Nytt företag tillagt | Kontobaserad marknadsföring |
| `company.propertyChange` | Företagsdata uppdaterad | Firmografisk synkronisering |

## Kodexempel

### Initiera kopplingen

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

### Kör kontaktsynkronisering

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

### Hantera webhook-händelser

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

## Hastighetsbegränsningar

HubSpot tillämpar hastighetsbegränsningar per privat app eller OAuth-app:

| Plan | Hastighetsbegränsning | Burst-gräns |
| --- | --- | --- |
| Free/Starter | 100 förfrågningar/10 sekunder | 150 förfrågningar/10 sekunder |
| Professional | 150 förfrågningar/10 sekunder | 200 förfrågningar/10 sekunder |
| Enterprise | 200 förfrågningar/10 sekunder | 250 förfrågningar/10 sekunder |
| API-tillägg | 200 förfrågningar/10 sekunder | 250 förfrågningar/10 sekunder |

Ytterligare gränser:

- **Search API**: 5 förfrågningar/sekund per app
- **Batch-operationer**: 100 poster per batch-förfrågan
- **Daglig gräns**: 500 000 förfrågningar/dag (OAuth-appar)

Hantering av hastighetsbegränsning

HubSpot returnerar ett `429 Too Many Requests`-svar när gränser överskrids. Använd exponentiell backoff och övervaka `X-HubSpot-RateLimit-*`-headrarna.

## Felsökning

### Vanliga problem

| Problem | Orsak | Lösning |
| --- | --- | --- |
| 401 Unauthorized | Utgången eller ogiltig token | Återgenerera privata appens token eller uppdatera OAuth-token |
| Kontakt inte synkad | Saknar e-postegenskap | HubSpot-kontakter kräver e-post för synkronisering till Brevo |
| Dubblettkontakter | Ingen regel för dedup | Konfigurera sammanslagningsregler i HubSpot |
| Webhook inte mottagen | Prenumeration inte aktiv | Registrera om webhook-prenumerationer |
| Egenskap inte mappad | Anpassad egenskap ej skapad | Skapa egenskapen i HubSpot först |

### Felsökningsläge

Aktivera utförlig loggning:

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

### Testa anslutning

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

## Bästa praxis

1. **Använd privata appar framför API-nycklar** - API-nycklar är utfasade; använd privata appar för bättre säkerhet
2. **Implementera dubbelriktad synk försiktigt** - Undvik oändliga loopar genom att spåra synkens källa
3. **Mappa livscykelstadier** - Använd HubSpots livscykelstadier för att segmentera kontakter i Brevo
4. **Batcha API-förfrågningar** - Använd batch-endpoints för mass-operationer för att hålla dig inom hastighetsbegränsningar
5. **Övervaka webhook-leverans** - Sätt upp återförsökslogik och hantering av dead letters
6. **Använd inkrementell synk** - Synka endast ändrade poster med egenskapen `lastmodifieddate`

## Säkerhet

- **Tokens för privata appar** - Scopade åtkomsttokens med granulära behörigheter
- **OAuth 2.0** - Industristandard för auktorisering med rotation av refresh-tokens
- **Webhook-signaturer** - HMAC-baserad signaturverifiering (v3)
- **TLS-kryptering** - All API-kommunikation krypterad i transit
- **Scopade behörigheter** - Åtkomst till minsta nödvändiga scope per integration

## Relaterade resurser

- [HubSpots API-dokumentation](https://developers.hubspot.com/docs/api/overview)
- [HubSpots autentiseringsguide](https://developers.hubspot.com/docs/api/working-with-oauth)
- [Salesforce-koppling](https://tajo.io/se/docs/connectors/crm/salesforce)
- [Skill för kundsynkronisering](https://tajo.io/se/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/se/docs/contact-management)
