---
title: "HubSpot Connector"
description: "Popoln vodnik za integracijo HubSpot CRM za sinhronizacijo stikov, podjetij, poslov, zahtevkov in marketinških podatkov z Brevo prek Tajo."
url: https://tajo.io/sl/docs/connectors/crm/hubspot/
markdown: https://tajo.io/sl/docs/connectors/crm/hubspot.md
lang: sl-SI
robots: noindex
---

Zaprosite za zgodnji dostop

Vnesite svoje ime in službeni e-poštni naslov. Poslali vam bomo povezavo za potrditev zahteve za dostop do Taja.

# HubSpot Connector

Stanje konektorja: V razvoju V izdelavi. Še ni preverjeno.

| Izvorno polje | Ciljno polje | Vzorčna vrednost |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Poveži svoj HubSpot CRM z Brevo prek Tajo za dvosmerno sinhronizacijo stikov, sledenje poslom, podatke o angažiranosti in enotno marketinško avtomatizacijo na obeh platformah.

## Pregled

| Lastnost | Vrednost |
| --- | --- |
| **Platforma** | HubSpot |
| **Kategorija** | CRM |
| **Zahtevnost nastavitve** | Srednja |
| **Uradna integracija** | Ne |
| **Sinhronizirani podatki** | Stiki, podjetja, posli, zahtevki, dogodki |
| **Osnovni URL API** | `https://api.hubapi.com` |

## Funkcionalnosti

- **Dvosmerna sinhronizacija stikov** – stiki so sinhronizirani med HubSpot in Brevo v realnem času
- **Sledenje prodajnim fazam** – sinhronizacija faz poslov in vrednosti za segmentacijo na podlagi prihodkov
- **Sinhronizacija podatkov o podjetjih** – poveži stike z zapisi podjetij in firmografskimi podatki
- **Integracija zahtevkov** – sledi zahtevkom za podporo za ocenjevanje zdravja strank
- **Sledenje angažiranosti** – sinhronizacija odpiranj e-mailov, klikov, sestankov, klicev in opomb
- **Podpora za objekte po meri** – preslikaj objekte po meri HubSpot v atribute Brevo
- **Sprožilci delovnih tokov** – uporabi spremembe faze življenjskega cikla HubSpot za sprožanje avtomatizacij Brevo
- **Webhook dogodki** – obvestila v realnem času ob spremembah podatkov v CRM

## Predpogoji

Preden začneš, se prepričaj, da imaš:

1. Račun HubSpot (Free, Starter, Professional ali Enterprise)
2. Zasebno ali OAuth aplikacijo HubSpot z zahtevanimi obsegi
3. Brevo račun z dostopom do API
4. Tajo račun

## Avtentikacija

### Žeton za dostop zasebne aplikacije (priporočeno)

Ustvari zasebno aplikacijo v HubSpot za neposreden dostop do API z natančnim nadzorom obsegov.

1. Pojdi na HubSpot Settings > Integrations > Private Apps
2. Ustvari novo zasebno aplikacijo
3. Nastavi zahtevane obsege
4. Kopiraj žeton za dostop

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

Uporabi OAuth 2.0 za integracije z več računi, ki zahtevajo pooblastilo uporabnika.

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

#### Zahtevani obsegi

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

## Konfiguracija

### Osnovna nastavitev

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

### Preslikava polj

Preslikaj lastnosti HubSpot v atribute stikov Brevo:

#### Privzete preslikave

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | E-mail stika (primarni identifikator) |
| `firstname` optional | string | Preslika se v atribut FIRSTNAME v Brevo |
| `lastname` optional | string | Preslika se v atribut LASTNAME v Brevo |
| `phone` optional | string | Preslika se v atribut SMS za WhatsApp/SMS |
| `company` optional | string | Ime povezanega podjetja |
| `lifecyclestage` optional | string | Faza življenjskega cikla HubSpot (subscriber, lead, MQL, SQL, customer) |
| `hs_lead_status` optional | string | Status kvalifikacije potencialnega kupca |
| `hubspot_owner_id` optional | string | ID dodeljenega lastnika prodaje |

#### Preslikava lastnosti po meri

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

## Končne točke API

### CRM objekti

| Metoda | Končna točka | Opis |
| --- | --- | --- |
| `GET` | `/crm/v3/objects/contacts` | Seznam stikov |
| `POST` | `/crm/v3/objects/contacts` | Ustvari stik |
| `PATCH` | `/crm/v3/objects/contacts/{id}` | Posodobi stik |
| `GET` | `/crm/v3/objects/companies` | Seznam podjetij |
| `GET` | `/crm/v3/objects/deals` | Seznam poslov |
| `POST` | `/crm/v3/objects/deals` | Ustvari posel |
| `GET` | `/crm/v3/objects/tickets` | Seznam zahtevkov |

### Asociacije

| Metoda | Končna točka | Opis |
| --- | --- | --- |
| `GET` | `/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}` | Pridobi asociacije |
| `PUT` | `/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}` | Ustvari asociacijo |

### Angažiranosti

| Metoda | Končna točka | Opis |
| --- | --- | --- |
| `GET` | `/crm/v3/objects/calls` | Seznam klicev |
| `GET` | `/crm/v3/objects/emails` | Seznam e-mail angažiranosti |
| `GET` | `/crm/v3/objects/meetings` | Seznam sestankov |
| `GET` | `/crm/v3/objects/notes` | Seznam opomb |
| `GET` | `/crm/v3/objects/tasks` | Seznam nalog |

## Dogodki

### Dogodki stikov

| Dogodek | Sprožilec | Primer uporabe |
| --- | --- | --- |
| `contact.creation` | Ustvarjen nov stik | Sprožilec pozdravnega toka |
| `contact.propertyChange` | Posodobljena lastnost stika | Sinhronizacija atributov |
| `contact.merge` | Stiki združeni | Obravnava deduplikacije |
| `contact.deletion` | Stik izbrisan | Čiščenje v Brevo |

### Dogodki poslov

| Dogodek | Sprožilec | Primer uporabe |
| --- | --- | --- |
| `deal.creation` | Ustvarjen nov posel | Obvestilo prodaji |
| `deal.propertyChange` | Spremenjena faza posla | Avtomatizacija prodajnega lijaka |
| `deal.deletion` | Posel odstranjen | Poročanje o prihodkih |

### Dogodki podjetij

| Dogodek | Sprožilec | Primer uporabe |
| --- | --- | --- |
| `company.creation` | Dodano novo podjetje | Marketing na podlagi računov |
| `company.propertyChange` | Posodobljeni podatki podjetja | Sinhronizacija firmografije |

## Primeri kode

### Inicializacija konektorja

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

### Zagon sinhronizacije stikov

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

### Obravnava webhook dogodkov

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

## Omejitve hitrosti

HubSpot uveljavi omejitve hitrosti glede na zasebno ali OAuth aplikacijo:

| Paket | Omejitev hitrosti | Omejitev za sunke |
| --- | --- | --- |
| Free/Starter | 100 zahtevkov/10 sekund | 150 zahtevkov/10 sekund |
| Professional | 150 zahtevkov/10 sekund | 200 zahtevkov/10 sekund |
| Enterprise | 200 zahtevkov/10 sekund | 250 zahtevkov/10 sekund |
| API dodatek | 200 zahtevkov/10 sekund | 250 zahtevkov/10 sekund |

Dodatne omejitve:

- **Search API**: 5 zahtevkov/sekundo na aplikacijo
- **Paketne operacije**: 100 zapisov na paketni zahtevek
- **Dnevna omejitev**: 500.000 zahtevkov/dan (OAuth aplikacije)

Ravnanje z omejitvami hitrosti

HubSpot vrne odgovor `429 Too Many Requests`, ko so omejitve prekoračene. Uporabi eksponentni odlog in spremljaj glave `X-HubSpot-RateLimit-*`.

## Odpravljanje težav

### Pogoste težave

| Težava | Vzrok | Rešitev |
| --- | --- | --- |
| 401 Unauthorized | Potekel ali neveljaven žeton | Obnovi žeton zasebne aplikacije ali osveži OAuth žeton |
| Stik ni sinhroniziran | Manjka lastnost e-mail | HubSpot stiki zahtevajo e-mail za sinhronizacijo z Brevo |
| Podvojeni stiki | Brez pravila deduplikacije | Nastavi pravila združevanja v HubSpot |
| Webhook ni prejet | Naročnina ni aktivna | Znova registriraj naročnine na webhooks |
| Lastnost ni preslikana | Lastnost po meri ni ustvarjena | Najprej ustvari lastnost v HubSpot |

### Način odpravljanja napak

Omogoči podrobno beleženje:

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

### Preizkus povezave

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

## Najboljše prakse

1. **Uporabi zasebne aplikacije namesto API ključev** – API ključi so zastareli; za boljšo varnost uporabi zasebne aplikacije
2. **Previdno implementiraj dvostransko sinhronizacijo** – prepreči neskončne zanke s sledenjem viru sinhronizacije
3. **Preslikaj faze življenjskega cikla** – z njimi segmentiraj stike v Brevo
4. **Paketni API zahtevki** – za množične operacije uporabi paketne končne točke
5. **Spremljaj dostavo webhookov** – nastavi logiko ponovnih poskusov in obravnavo napak
6. **Uporabi postopno sinhronizacijo** – sinhronizacija samo spremenjenih zapisov z lastnostjo `lastmodifieddate`

## Varnost

- **Žetoni zasebnih aplikacij** – žetoni z omejenim dostopom in natančnimi dovoljenji
- **OAuth 2.0** – industrijski standard za avtorizacijo z rotacijo žetona za osvežitev
- **Podpisi webhookov** – preverjanje podpisa na osnovi HMAC (v3)
- **TLS šifriranje** – vsa komunikacija API je šifrirana med prenosom
- **Obsegana dovoljenja** – minimalen zahtevan dostop do obsegov na integracijo

## Povezani viri

- [HubSpot API dokumentacija](https://developers.hubspot.com/docs/api/overview)
- [Vodnik za avtentikacijo HubSpot](https://developers.hubspot.com/docs/api/working-with-oauth)
- [Salesforce Connector](https://tajo.io/sl/docs/connectors/crm/salesforce)
- [Customer Sync Skill](https://tajo.io/sl/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/sl/docs/contact-management)
