Conector Pipedrive
Conector Pipedrive
Conectați Pipedrive la Brevo prin Tajo pentru a lega pipeline-ul de vânzări cu automatizarea de marketing. Sincronizați contactele, ofertele, organizațiile și activitățile pentru a alimenta campanii de ciclu de viață declanșate de schimbările de etapă CRM.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Pipedrive |
| Categorie | CRM |
| Complexitate configurare | Ușoară |
| Integrare oficială | Nu |
| Date sincronizate | Persoane, Oferte, Organizații, Activități |
| Skilluri disponibile | 8 |
Funcționalități
- Sincronizare contacte - Sincronizare bidirecțională a persoanelor Pipedrive cu contactele Brevo
- Urmărire etape ofertă - Declanșați automatizări Brevo pe baza schimbărilor de etapă din pipeline
- Sincronizare organizații - Mapați organizațiile Pipedrive la atributele de companie Brevo
- Urmărire activități - Transmiteți activitățile Pipedrive (apeluri, e-mailuri, întâlniri) ca evenimente Brevo
- Câmpuri personalizate - Mapați câmpurile personalizate Pipedrive la atributele de contact Brevo
- Raportare pipeline - Extrageți date din pipeline pentru atribuirea de marketing
- Sincronizare lead-uri - Importați lead-uri Pipedrive în Brevo pentru campanii de nurturing
- Automatizare webhook - Actualizări în timp real prin webhook-uri Pipedrive
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un cont Pipedrive cu acces de administrator
- Tokenul dvs. API Pipedrive (găsit în Settings > Personal preferences > API)
- Pentru aplicații OAuth: o aplicație Pipedrive înregistrată cu Client ID și Client Secret
- Un cont Brevo cu acces API
- Un cont Tajo cu credențiale API
Autentificare
Token API
Cea mai simplă metodă de autentificare. Găsiți Tokenul API în Pipedrive la Settings > Personal preferences > API.
curl "https://api.pipedrive.com/v1/persons?api_token=YOUR_API_TOKEN"OAuth 2.0 (Recomandat pentru aplicații)
Pentru aplicații de producție, utilizați 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"După obținerea tokenului de acces:
curl "https://api.pipedrive.com/v1/persons" \ -H "Authorization: Bearer ACCESS_TOKEN"Configurare
Configurare de bază
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: 63Mapare câmpuri persoană
Mapați câmpurile persoanei Pipedrive la atributele de contact Brevo:
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_SIZEMapare etape ofertă
Mapați etapele pipeline-ului Pipedrive la atribuirile de liste Brevo:
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 listConfigurare webhook
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"Puncte finale API
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /v1/persons | Listează persoane |
POST | /v1/persons | Creează o persoană |
PUT | /v1/persons/{id} | Actualizează o persoană |
DELETE | /v1/persons/{id} | Șterge o persoană |
GET | /v1/deals | Listează oferte |
POST | /v1/deals | Creează o ofertă |
PUT | /v1/deals/{id} | Actualizează o ofertă |
GET | /v1/organizations | Listează organizații |
POST | /v1/organizations | Creează o organizație |
GET | /v1/activities | Listează activități |
POST | /v1/activities | Creează o activitate |
GET | /v1/leads | Listează lead-uri |
GET | /v1/pipelines | Listează pipeline-uri |
GET | /v1/stages | Listează etapele pipeline-ului |
GET | /v1/itemSearch | Caută în toate elementele |
POST | /v1/webhooks | Creează un webhook |
GET | /v1/recents | Obține elementele modificate recent |
Exemple de cod
Inițializare conector Pipedrive
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'});Sincronizare persoane cu 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 }Urmărire schimbări de etapă ofertă
// 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');});Căutare în 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 organizationsLimite de rată
| Plan | Limită | Detalii |
|---|---|---|
| Essential | 80 cereri/10 sec | Per token API |
| Advanced | 100 cereri/10 sec | Per token API |
| Professional | 200 cereri/10 sec | Per token API |
| Power | 200 cereri/10 sec | Per token API |
| Enterprise | 400 cereri/10 sec | Per token API |
| Aplicații OAuth | 80 cereri/2 sec | Per token de acces |
Limite suplimentare:
| Resursă | Limită |
|---|---|
| Per pagină | Maxim 500 înregistrări |
| Webhook-uri | 40 per cont |
| Ștergere în bloc | 100 elemente/cerere |
| Căutare | Limite de rată standard |
Anteturi de limite de rată
Pipedrive returnează anteturile X-RateLimit-Limit, X-RateLimit-Remaining și X-RateLimit-Reset. Implementați backoff când X-RateLimit-Remaining se apropie de zero.
Depanare
| Problemă | Cauză | Soluție |
|---|---|---|
401 Unauthorized | Token API invalid | Regenerați tokenul în Pipedrive Settings > API |
403 Forbidden | Permisiuni cont | Asigurați-vă că contul are acces de administrator pentru utilizarea API |
| Persoane fără e-mail | Fără e-mail în înregistrare | Filtrați persoanele cu e-mail valid înainte de sincronizare |
| Câmpuri personalizate nemapate | Cheie câmp greșită | Utilizați cheia câmpului Pipedrive (hash), nu numele de afișare |
| Webhook-uri nereceptionate | Firewall blochează | Asigurați-vă că URL-ul webhook este accesibil public prin HTTPS |
| Persoane duplicate | Înregistrări cu mai multe e-mailuri | Utilizați API-ul de combinare Pipedrive înainte de sincronizare |
429 Too Many Requests | Limită de rată depășită | Implementați backoff folosind antetul X-RateLimit-Reset |
Bune practici
- Utilizați OAuth pentru producție - Preferați OAuth 2.0 față de tokeni API pentru aplicații de producție
- Urmăriți schimbările de etapă ofertă - Utilizați webhook-uri pentru a declanșa automatizări Brevo la tranzițiile de etapă din pipeline
- Mapați câmpuri personalizate - Utilizați cheile câmpurilor personalizate Pipedrive (nu numele) pentru mapare fiabilă
- Gestionați paginarea - Utilizați parametrii
startșilimit; verificațimore_items_in_collection - Utilizați punctul final Recents - Interogați
/v1/recentspentru sincronizări incrementale în loc de exporturi complete - Deduplicați înainte de sincronizare - Combinați persoanele duplicate din Pipedrive înainte de sincronizarea cu Brevo
- Utilizați conturi sandbox - Creați un cont sandbox de dezvoltare pentru testarea integrărilor
Securitate
- Autentificare cu token API - Acces simplu bazat pe token pentru uz personal
- OAuth 2.0 - Acces delegat securizat pentru aplicații terțe
- Numai HTTPS - Toată comunicarea API necesită criptare TLS
- Webhook-uri HTTPS - Webhook-urile sunt livrate numai la punctele finale HTTPS
- Acces bazat pe roluri - Permisiunile Pipedrive respectă rolurile utilizatorilor
- Certificat SOC 2 - Pipedrive menține conformitatea SOC 2
- Conformitate GDPR - Suportă cereri de export și ștergere a datelor