---
title: "HubSpot Konektor"
description: "Kompletan vodič za integraciju HubSpot CRM-a za sinkronizaciju kontakata, tvrtki, poslova, tiketa i marketinških podataka s Brevom putem Taja."
url: https://tajo.io/hr/docs/connectors/crm/hubspot/
markdown: https://tajo.io/hr/docs/connectors/crm/hubspot.md
lang: hr-HR
robots: noindex
---

Zatražite rani pristup

Unesite ime i poslovnu adresu e-pošte. Poslat ćemo vam poveznicu za potvrdu zahtjeva za pristup Taju.

# HubSpot Konektor

Status konektora: U izradi Gradi se. Još nije provjereno.

| Izvorno polje | Odredišno polje | Primjer vrijednosti |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Povežite svoj HubSpot CRM s Brevom putem Taja za dvosmjernu sinkronizaciju kontakata, praćenje poslova, angažmanske podatke i unificiranu marketinšku automatizaciju na obje platforme.

## Pregled

| Svojstvo | Vrijednost |
| --- | --- |
| **Platforma** | HubSpot |
| **Kategorija** | CRM |
| **Složenost postavljanja** | Srednje |
| **Službena integracija** | Ne |
| **Sinkronizirani podaci** | Kontakti, Tvrtke, Poslovi, Tiketi, Događaji |
| **Osnovni URL API-ja** | `https://api.hubapi.com` |

## Značajke

- **Dvosmjerna sinkronizacija kontakata** - Zadržite kontakte sinkroniziranim između HubSpota i Breva u stvarnom vremenu
- **Praćenje prodajnog cjevovoda** - Sinkronizirajte faze i vrijednosti poslova za segmentaciju temeljenu na prihodima
- **Sinkronizacija podataka o tvrtkama** - Povežite kontakte s evidencijama tvrtki i firmografskim podacima
- **Integracija tiketa** - Pratite tikete za podršku radi ocjenjivanja zdravlja korisnika
- **Praćenje angažmana** - Sinkronizirajte otvaranja e-pošte, klikove, sastanke, pozive i bilješke
- **Podrška za prilagođene objekte** - Mapirajte prilagođene HubSpot objekte na atribute Breva
- **Okidači tijekova rada** - Koristite promjene životnog ciklusa u HubSpotu za pokretanje automatizacija u Brevu
- **Webhook događaji** - Obavijesti u stvarnom vremenu o promjenama CRM podataka

## Preduvjeti

Prije nego što počnete, osigurajte da imate:

1. HubSpot račun (Besplatni, Starter, Professional ili Enterprise)
2. HubSpot privatnu aplikaciju ili OAuth aplikaciju s potrebnim opsezima
3. Brevo račun s API pristupom
4. Tajo račun

## Autentifikacija

### Token za pristup privatnoj aplikaciji (Preporučeno)

Stvorite privatnu aplikaciju u HubSpotu za izravan API pristup s granularnom kontrolom opsega.

1. Idite na HubSpot Postavke > Integracije > Privatne aplikacije
2. Stvorite novu privatnu aplikaciju
3. Konfigurirajte potrebne opsege
4. Kopirajte token za pristup

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

Koristite OAuth 2.0 za integracije s više računa koje zahtijevaju korisničku autorizaciju.

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

#### Potrebni opsezi

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

```yaml
connectors:
  hubspot:
    enabled: true
    access_token: "${HUBSPOT_ACCESS_TOKEN}"

    # Opcije sinkronizacije podataka
    sync:
      contacts: true
      companies: true
      deals: true
      tickets: true
      engagements: true

    # Smjer sinkronizacije
    direction: bidirectional  # ili 'hubspot_to_brevo' | 'brevo_to_hubspot'

    # Dodjela popisa u Brevu
    lists:
      all_contacts: 10
      qualified_leads: 11
      customers: 12
```

### Mapiranje polja

Mapirajte HubSpot svojstva na atribute kontakata u Brevu:

#### Zadana mapiranja

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | E-mail kontakta (primarni identifikator) |
| `firstname` optional | string | Mapira se na atribut FIRSTNAME u Brevu |
| `lastname` optional | string | Mapira se na atribut LASTNAME u Brevu |
| `phone` optional | string | Mapira se na atribut SMS za WhatsApp/SMS |
| `company` optional | string | Naziv povezane tvrtke |
| `lifecyclestage` optional | string | Faza životnog ciklusa u HubSpotu (pretplatnik, lead, MQL, SQL, klijent) |
| `hs_lead_status` optional | string | Status kvalifikacije leada |
| `hubspot_owner_id` optional | string | ID dodijeljenog prodajnog vlasnika |

#### Mapiranje prilagođenih svojstava

```yaml
field_mapping:
  # Standardna polja
  email: email
  firstname: FIRSTNAME
  lastname: LASTNAME
  phone: SMS

  # CRM polja
  lifecyclestage: LIFECYCLE_STAGE
  hs_lead_status: LEAD_STATUS
  company: COMPANY_NAME

  # Metrike poslova
  hs_total_deal_value: DEAL_VALUE
  num_associated_deals: DEAL_COUNT

  # Prilagođena svojstva
  preferred_channel: PREFERRED_CHANNEL
  customer_segment: SEGMENT
```

## API krajnje točke

### CRM objekti

| Metoda | Krajnja točka | Opis |
| --- | --- | --- |
| `GET` | `/crm/v3/objects/contacts` | Popis kontakata |
| `POST` | `/crm/v3/objects/contacts` | Stvaranje kontakta |
| `PATCH` | `/crm/v3/objects/contacts/{id}` | Ažuriranje kontakta |
| `GET` | `/crm/v3/objects/companies` | Popis tvrtki |
| `GET` | `/crm/v3/objects/deals` | Popis poslova |
| `POST` | `/crm/v3/objects/deals` | Stvaranje posla |
| `GET` | `/crm/v3/objects/tickets` | Popis tiketa |

### Asocijacije

| Metoda | Krajnja točka | Opis |
| --- | --- | --- |
| `GET` | `/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}` | Dohvaćanje asocijacija |
| `PUT` | `/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}` | Stvaranje asocijacije |

### Angažmani

| Metoda | Krajnja točka | Opis |
| --- | --- | --- |
| `GET` | `/crm/v3/objects/calls` | Popis poziva |
| `GET` | `/crm/v3/objects/emails` | Popis e-mailova |
| `GET` | `/crm/v3/objects/meetings` | Popis sastanaka |
| `GET` | `/crm/v3/objects/notes` | Popis bilješki |
| `GET` | `/crm/v3/objects/tasks` | Popis zadataka |

## Događaji

### Događaji kontakata

| Događaj | Okidač | Slučaj upotrebe |
| --- | --- | --- |
| `contact.creation` | Stvoren novi kontakt | Pokretanje toka dobrodošlice |
| `contact.propertyChange` | Ažurirano svojstvo kontakta | Sinkronizacija atributa |
| `contact.merge` | Kontakti spojeni | Rukovanje deduplikacijom |
| `contact.deletion` | Kontakt obrisan | Čišćenje u Brevu |

### Događaji poslova

| Događaj | Okidač | Slučaj upotrebe |
| --- | --- | --- |
| `deal.creation` | Stvoren novi posao | Obavijest prodaji |
| `deal.propertyChange` | Promijenjena faza posla | Automatizacija cjevovoda |
| `deal.deletion` | Posao uklonjen | Izvješćivanje o prihodima |

### Događaji tvrtki

| Događaj | Okidač | Slučaj upotrebe |
| --- | --- | --- |
| `company.creation` | Dodana nova tvrtka | Marketing temeljen na računima |
| `company.propertyChange` | Ažurirani podaci tvrtke | Sinkronizacija firmografskih podataka |

## Primjeri koda

### Inicijalizacija konektora

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Povezivanje HubSpota
await tajo.connectors.connect('hubspot', {
  accessToken: process.env.HUBSPOT_ACCESS_TOKEN
});
```

### Pokretanje sinkronizacije kontakata

```javascript
// Potpuna dvosmjerna sinkronizacija
await tajo.connectors.sync('hubspot', {
  type: 'full',
  resources: ['contacts', 'companies', 'deals'],
  direction: 'bidirectional',
  since: '2023-01-01'
});

// Provjera statusa sinkronizacije
const status = await tajo.connectors.status('hubspot');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   contactsSynced: 34200,
//   companiesSynced: 5100,
//   dealsSynced: 2340
// }
```

### Rukovanje Webhook događajima

```javascript
// Rukovanje webhook obavijestima HubSpota
app.post('/webhooks/hubspot', async (req, res) => {
  const signature = req.get('X-HubSpot-Signature-v3');

  // Verifikacija webhook potpisa
  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');
});
```

## Ograničenja brzine

HubSpot primjenjuje ograničenja brzine po privatnoj ili OAuth aplikaciji:

| Plan | Ograničenje brzine | Ograničenje naglih skokova |
| --- | --- | --- |
| Besplatni/Starter | 100 zahtjeva/10 sekundi | 150 zahtjeva/10 sekundi |
| Professional | 150 zahtjeva/10 sekundi | 200 zahtjeva/10 sekundi |
| Enterprise | 200 zahtjeva/10 sekundi | 250 zahtjeva/10 sekundi |
| API dodatak | 200 zahtjeva/10 sekundi | 250 zahtjeva/10 sekundi |

Dodatna ograničenja:

- **Search API**: 5 zahtjeva/sekundi po aplikaciji
- **Skupne operacije**: 100 zapisa po skupnom zahtjevu
- **Dnevno ograničenje**: 500.000 zahtjeva/dan (OAuth aplikacije)

Rukovanje ograničenjima brzine

HubSpot vraća odgovor `429 Too Many Requests` kada su prekoračena ograničenja. Koristite eksponencijalni povratak i pratite zaglavlja `X-HubSpot-RateLimit-*`.

## Rješavanje problema

### Uobičajeni problemi

| Problem | Uzrok | Rješenje |
| --- | --- | --- |
| 401 Unauthorized | Istekao ili nevažeći token | Regenerirajte token privatne aplikacije ili osvježite OAuth token |
| Kontakt nije sinkroniziran | Nedostaje svojstvo e-pošte | HubSpot kontakti zahtijevaju e-mail za sinkronizaciju s Brevom |
| Duplikati kontakata | Nema pravila deduplikacije | Konfigurirajte pravila spajanja u HubSpotu |
| Webhook nije primljen | Pretplata nije aktivna | Ponovo registrirajte webhook pretplate |
| Svojstvo nije mapirano | Prilagođeno svojstvo nije stvoreno | Prvo stvorite svojstvo u HubSpotu |

### Način otklanjanja grešaka

Omogućite opširno zapisivanje:

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

### Testiranje veze

```bash
tajo connectors test hubspot
# ✓ API veza uspješna
# ✓ Kontakti čitljivi
# ✓ Tvrtke čitljive
# ✓ Poslovi čitljivi
# ✓ Webhooks registrirani
```

## Preporučene prakse

1. **Koristite privatne aplikacije umjesto API ključeva** - API ključevi su zastarjeli; koristite privatne aplikacije za bolju sigurnost
2. **Pažljivo implementirajte dvosmjernu sinkronizaciju** - Izbjegavajte beskonačne petlje praćenjem izvora sinkronizacije
3. **Mapirajte faze životnog ciklusa** - Koristite faze životnog ciklusa HubSpota za segmentaciju kontakata u Brevu
4. **Skupni API zahtjevi** - Koristite skupne krajnje točke za masovne operacije kako biste ostali u granicama
5. **Pratite isporuku webhookova** - Postavite logiku ponovnog pokušaja i rukovanje mrtvim pismima
6. **Koristite inkrementalnu sinkronizaciju** - Sinkronizirajte samo promijenjene zapise koristeći svojstvo `lastmodifieddate`

## Sigurnost

- **Tokeni privatnih aplikacija** - Opsežni tokeni za pristup s granularnim dozvolama
- **OAuth 2.0** - Industrijski standardna autorizacija s rotacijom tokena za osvježavanje
- **Webhook potpisi** - Verifikacija potpisa temeljena na HMAC-u (v3)
- **TLS enkripcija** - Sva API komunikacija šifrirana u tranzitu
- **Opsežne dozvole** - Minimalni potrebni pristup opsegu po integraciji

## Povezani resursi

- [HubSpot API dokumentacija](https://developers.hubspot.com/docs/api/overview)
- [HubSpot vodič za autentifikaciju](https://developers.hubspot.com/docs/api/working-with-oauth)
- [Salesforce Konektor](https://tajo.io/hr/docs/connectors/crm/salesforce)
- [Vještina sinkronizacije korisnika](https://tajo.io/hr/docs/skills/data-sync/customer-sync)
- [Brevo API kontakata](https://tajo.io/hr/docs/contact-management)
