Pipedrive konektor
Pipedrive konektor
Poveži Pipedrive sa Brevo putem Tajo kako bi premostio/la svoju prodajnu pipeline sa marketing automatizacijom. Sinhronizuj kontakte, poslove, organizacije i aktivnosti za pokretanje lifecycle kampanja na osnovu promena CRM faze.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Pipedrive |
| Kategorija | CRM |
| Složenost podešavanja | Lako |
| Zvanična integracija | Ne |
| Sinhronizovani podaci | Osobe, Poslovi, Organizacije, Aktivnosti |
| Dostupne veštine | 8 |
Karakteristike
- Sinhronizacija kontakata - Dvosrna sinhronizacija Pipedrive osoba sa Brevo kontaktima
- Praćenje faza poslova - Pokretanje Brevo automatizacija na osnovu promena faze u prodajnom pipelineu
- Sinhronizacija organizacija - Mapiranje Pipedrive organizacija na Brevo atribute kompanije
- Praćenje aktivnosti - Prosleđivanje Pipedrive aktivnosti (pozivi, emailovi, sastanci) kao Brevo događaja
- Prilagođena polja - Mapiranje Pipedrive prilagođenih polja na Brevo atribute kontakta
- Izveštavanje o pipelineu - Povlačenje podataka o deal pipelineu za marketing atribuciju
- Sinhronizacija leadova - Uvoz Pipedrive leadova u Brevo za nurture kampanje
- Webhook automatizacija - Ažuriranja u realnom vremenu putem Pipedrive webhook-ova
Preduslovi
Pre nego što započneš, proveri da imaš:
- Pipedrive nalog sa admin pristupom
- Tvoj Pipedrive API Token (pronađi ga u Settings > Personal preferences > API)
- Za OAuth aplikacije: registrovanu Pipedrive aplikaciju sa Client ID i Client Secret
- Brevo nalog sa API pristupom
- Tajo nalog sa API kredencijalima
Autentifikacija
API Token
Najjednostavniji metod autentifikacije. Pronađi API Token u Pipedrive pod Settings > Personal preferences > API.
curl "https://api.pipedrive.com/v1/persons?api_token=YOUR_API_TOKEN"OAuth 2.0 (preporučeno za aplikacije)
Za produkcione aplikacije, koristi OAuth 2.0:
# Authorization URLhttps://oauth.pipedrive.com/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI
# Token exchangecurl -X POST https://oauth.pipedrive.com/oauth/token \ -d "grant_type=authorization_code" \ -d "code=AUTH_CODE" \ -d "redirect_uri=REDIRECT_URI" \ -u "CLIENT_ID:CLIENT_SECRET"Nakon dobijanja access tokena:
curl "https://api.pipedrive.com/v1/persons" \ -H "Authorization: Bearer ACCESS_TOKEN"Konfiguracija
Osnovno podešavanje
connectors: pipedrive: enabled: true api_token: "your-pipedrive-api-token" company_domain: "yourcompany" # yourcompany.pipedrive.com
# Data sync options sync: persons: true deals: true organizations: true activities: true leads: true
# Brevo list assignment lists: all_contacts: 60 qualified_leads: 61 customers: 62 churned: 63Mapiranje polja osoba
Mapiranje Pipedrive polja osoba na Brevo atribute kontakta:
person_mapping: email: email name: FULLNAME first_name: FIRSTNAME last_name: LASTNAME phone: SMS org_id.name: COMPANY
# Deal-related computed fields won_deals_count: WON_DEALS lost_deals_count: LOST_DEALS open_deals_count: OPEN_DEALS closed_deals_count: CLOSED_DEALS total_revenue: LTV
# Custom fields (use Pipedrive field key) custom_fields.lead_source: LEAD_SOURCE custom_fields.industry: INDUSTRY custom_fields.company_size: COMPANY_SIZEMapiranje faza poslova
Mapiranje Pipedrive faza pipelinea na Brevo liste:
deal_stage_mapping: # stage_id -> brevo_list_id 1: 61 # Lead In 2: 61 # Contact Made 3: 62 # Proposal Made 4: 62 # Negotiations Started "won": 63 # Won -> Customers list "lost": 64 # Lost -> Win-back listKonfiguracija webhook-ova
webhooks: - event_action: "added" event_object: "person" brevo_event: "contact_created" - event_action: "updated" event_object: "person" brevo_event: "contact_updated" - event_action: "added" event_object: "deal" brevo_event: "deal_created" - event_action: "updated" event_object: "deal" brevo_event: "deal_updated" - event_action: "merged" event_object: "person" brevo_event: "contact_merged" - event_action: "added" event_object: "activity" brevo_event: "activity_logged"API endpointi
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /v1/persons | Listanje osoba |
POST | /v1/persons | Kreiranje osobe |
PUT | /v1/persons/{id} | Ažuriranje osobe |
DELETE | /v1/persons/{id} | Brisanje osobe |
GET | /v1/deals | Listanje poslova |
POST | /v1/deals | Kreiranje posla |
PUT | /v1/deals/{id} | Ažuriranje posla |
GET | /v1/organizations | Listanje organizacija |
POST | /v1/organizations | Kreiranje organizacije |
GET | /v1/activities | Listanje aktivnosti |
POST | /v1/activities | Kreiranje aktivnosti |
GET | /v1/leads | Listanje leadova |
GET | /v1/pipelines | Listanje pipelinea |
GET | /v1/stages | Listanje faza pipelinea |
GET | /v1/itemSearch | Pretraga svih stavki |
POST | /v1/webhooks | Kreiranje webhook-a |
GET | /v1/recents | Dohvatanje nedavno izmenjenih stavki |
Primeri koda
Inicijalizacija Pipedrive konektora
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Pipedrive accountawait tajo.connectors.connect('pipedrive', { apiToken: process.env.PIPEDRIVE_API_TOKEN, companyDomain: 'yourcompany'});Sinhronizacija osoba sa Brevo
// Fetch persons from Pipedriveconst response = await fetch( `https://api.pipedrive.com/v1/persons?start=0&limit=100&api_token=${API_TOKEN}`);
const { data, additional_data } = await response.json();// data: [{ id, name, first_name, last_name, email, phone, org_id, ... }]// additional_data.pagination: { start, limit, more_items_in_collection }Praćenje promena faze posla
// Webhook handler for deal updatesapp.post('/webhooks/pipedrive', async (req, res) => { const { meta, current, previous } = req.body;
if (meta.object === 'deal' && meta.action === 'updated') { // Detect stage change if (current.stage_id !== previous.stage_id) { await tajo.connectors.handleWebhook('pipedrive', { topic: 'deal.stage_changed', payload: { dealId: current.id, dealTitle: current.title, previousStage: previous.stage_id, newStage: current.stage_id, personId: current.person_id, value: current.value, currency: current.currency } }); } }
res.status(200).send('OK');});Pretraga u Pipedrive
// Global search across persons, deals, and organizationsconst response = await fetch( `https://api.pipedrive.com/v1/itemSearch?term=${query}&item_types=person,deal&api_token=${API_TOKEN}`);
const { data } = await response.json();// Returns matching persons, deals, and organizationsOgraničenja brzine
| Plan | Limit | Detalji |
|---|---|---|
| Essential | 80 zahteva/10 sek | Po API tokenu |
| Advanced | 100 zahteva/10 sek | Po API tokenu |
| Professional | 200 zahteva/10 sek | Po API tokenu |
| Power | 200 zahteva/10 sek | Po API tokenu |
| Enterprise | 400 zahteva/10 sek | Po API tokenu |
| OAuth aplikacije | 80 zahteva/2 sek | Po access tokenu |
Dodatna ograničenja:
| Resurs | Limit |
|---|---|
| Po stranici | Maksimalno 500 zapisa |
| Webhook-ovi | 40 po nalogu |
| Bulk brisanje | 100 stavki/zahtev |
| Pretraga | Standardna ograničenja brzine |
Headeri ograničenja brzine
Pipedrive vraća X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset headere. Implementiraj usporavanje kada X-RateLimit-Remaining bude blizu nule.
Rešavanje problema
| Problem | Uzrok | Rešenje |
|---|---|---|
401 Unauthorized | Nevažeći API token | Regeneriši token u Pipedrive Settings > API |
403 Forbidden | Dozvole naloga | Proveri da nalog ima admin pristup za korišćenje API-ja |
| Osobe nemaju email | Nema emaila u zapisu | Filtriraj osobe sa validnim emailom pre sinhronizacije |
| Prilagođena polja se ne mapiraju | Pogrešan ključ polja | Koristi Pipedrive ključ polja (hash), ne prikazano ime |
| Webhook-ovi nisu primljeni | Firewall blokira | Proveri da je URL webhook-a javno dostupan putem HTTPS-a |
| Duplirane osobe | Više email zapisa | Koristi Pipedrive API za spajanje pre sinhronizacije |
429 Too Many Requests | Prekoračeno ograničenje brzine | Implementiraj usporavanje koristeći X-RateLimit-Reset header |
Najbolje prakse
- Koristi OAuth za produkciju - Preferiraj OAuth 2.0 umesto API tokena za produkcione aplikacije
- Prati promene faze poslova - Koristi webhook-ove za pokretanje Brevo automatizacija pri prelasku faza pipelinea
- Mapiraj prilagođena polja - Koristi Pipedrive ključeve prilagođenih polja (ne nazive) za pouzdano mapiranje
- Obradi paginaciju - Koristi
startilimitparametre; proverimore_items_in_collection - Koristi Recents endpoint - Ispituj
/v1/recentsza inkrementalne sinhronizacije umesto punih izvoza - Dedupliraj pre sinhronizacije - Spoji duplirane osobe u Pipedrive pre sinhronizacije sa Brevo
- Koristi sandbox naloge - Kreiraj developer sandbox nalog za testiranje integracija
Bezbednost
- Autentifikacija API tokenom - Pristup zasnovan na jednostavnom tokenu za ličnu upotrebu
- OAuth 2.0 - Bezbedno delegirani pristup za aplikacije trećih strana
- Samo HTTPS - Sva API komunikacija zahteva TLS enkripciju
- Webhook HTTPS - Webhook-ovi se isporučuju samo na HTTPS endpointe
- Pristup zasnovan na ulogama - Pipedrive dozvole poštuju uloge korisnika
- SOC 2 sertifikat - Pipedrive održava SOC 2 usklađenost
- GDPR usklađenost - Podrška za zahteve za izvoz i brisanje podataka