Pipedrive Connector
Pipedrive Connector
Forbind Pipedrive med Brevo gennem Tajo for at bygge bro mellem din salgspipeline og marketingautomatisering. Synkronisér kontakter, aftaler, organisationer og aktiviteter for at drive livscykluskampagner, der udløses af CRM-stadieændringer.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Pipedrive |
| Kategori | CRM |
| Opsætningskompleksitet | Let |
| Officiel integration | Nej |
| Synkroniserede data | Personer, aftaler, organisationer, aktiviteter |
| Tilgængelige skills | 8 |
Funktioner
- Kontaktsynkronisering - Tovejssynkronisering af Pipedrive-personer til Brevo-kontakter
- Sporing af aftalestadier - Udløs Brevo-automatiseringer baseret på ændringer i pipeline-stadier
- Organisationssynkronisering - Kortlæg Pipedrive-organisationer til Brevo-virksomhedsattributter
- Aktivitetssporing - Videresend Pipedrive-aktiviteter (opkald, e-mails, møder) som Brevo-hændelser
- Brugerdefinerede felter - Kortlæg Pipedrive-brugerdefinerede felter til Brevo-kontaktattributter
- Pipeline-rapportering - Træk aftaledata fra pipelinen til marketing-attribution
- Lead-synkronisering - Importér Pipedrive-leads til Brevo til nurture-kampagner
- Webhook-automatisering - Opdateringer i realtid via Pipedrive-webhooks
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Pipedrive-konto med administratoradgang
- Dit Pipedrive API-token (findes i Settings > Personal preferences > API)
- For OAuth-apps: en registreret Pipedrive-app med Client ID og Client Secret
- En Brevo-konto med API-adgang
- En Tajo-konto med API-legitimationsoplysninger
Autentifikation
API-token
Den enkleste autentifikationsmetode. Find dit API-token i Pipedrive under Settings > Personal preferences > API.
curl "https://api.pipedrive.com/v1/persons?api_token=YOUR_API_TOKEN"OAuth 2.0 (anbefalet til apps)
Brug OAuth 2.0 til produktionsapps:
# 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"Når du har modtaget adgangstokenet:
curl "https://api.pipedrive.com/v1/persons" \ -H "Authorization: Bearer ACCESS_TOKEN"Konfiguration
Grundlæggende opsætning
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: 63Mapping af personfelter
Kortlæg Pipedrive-personfelter til Brevo-kontaktattributter:
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_SIZEMapping af aftalestadier
Kortlæg Pipedrive-pipeline-stadier til Brevo-liste-tildelinger:
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 listWebhook-konfiguration
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-endpoints
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /v1/persons | Vis personer |
POST | /v1/persons | Opret en person |
PUT | /v1/persons/{id} | Opdatér en person |
DELETE | /v1/persons/{id} | Slet en person |
GET | /v1/deals | Vis aftaler |
POST | /v1/deals | Opret en aftale |
PUT | /v1/deals/{id} | Opdatér en aftale |
GET | /v1/organizations | Vis organisationer |
POST | /v1/organizations | Opret en organisation |
GET | /v1/activities | Vis aktiviteter |
POST | /v1/activities | Opret en aktivitet |
GET | /v1/leads | Vis leads |
GET | /v1/pipelines | Vis pipelines |
GET | /v1/stages | Vis pipeline-stadier |
GET | /v1/itemSearch | Søg på tværs af alle elementer |
POST | /v1/webhooks | Opret en webhook |
GET | /v1/recents | Hent nyligt ændrede elementer |
Kodeeksempler
Initialisér Pipedrive-connector
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'});Synkronisér personer til 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 }Spor ændringer i aftalestadier
// 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');});Søg på tværs af 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 organizationsRate limits
| Plan | Grænse | Detaljer |
|---|---|---|
| Essential | 80 anmodninger/10 sek. | Pr. API-token |
| Advanced | 100 anmodninger/10 sek. | Pr. API-token |
| Professional | 200 anmodninger/10 sek. | Pr. API-token |
| Power | 200 anmodninger/10 sek. | Pr. API-token |
| Enterprise | 400 anmodninger/10 sek. | Pr. API-token |
| OAuth-apps | 80 anmodninger/2 sek. | Pr. adgangstoken |
Yderligere grænser:
| Ressource | Grænse |
|---|---|
| Pr. side | Maks. 500 poster |
| Webhooks | 40 pr. konto |
| Bulk-sletning | 100 elementer/anmodning |
| Søgning | Standard rate limits |
Rate limit-headers
Pipedrive returnerer headerne X-RateLimit-Limit, X-RateLimit-Remaining og X-RateLimit-Reset. Implementér backoff, når X-RateLimit-Remaining nærmer sig nul.
Fejlfinding
| Problem | Årsag | Løsning |
|---|---|---|
401 Unauthorized | Ugyldigt API-token | Regenerér token i Pipedrive Settings > API |
403 Forbidden | Kontotilladelser | Sørg for, at kontoen har administratoradgang til API-brug |
| Personer mangler e-mail | Ingen e-mail registreret | Filtrér personer med gyldig e-mail før synkronisering |
| Brugerdefinerede felter mappes ikke | Forkert feltnøgle | Brug Pipedrives feltnøgle (hash), ikke visningsnavn |
| Webhooks modtages ikke | Firewall blokerer | Sørg for, at webhook-URL’en er offentligt tilgængelig via HTTPS |
| Duplikerede personer | Flere e-mailposter | Brug Pipedrives merge-API før synkronisering |
429 Too Many Requests | Rate limit overskredet | Implementér backoff ved hjælp af X-RateLimit-Reset-header |
Bedste praksis
- Brug OAuth til produktion - Foretræk OAuth 2.0 frem for API-tokens til produktionsapps
- Spor ændringer i aftalestadier - Brug webhooks til at udløse Brevo-automatiseringer ved overgange mellem pipeline-stadier
- Kortlæg brugerdefinerede felter - Brug Pipedrive-feltnøgler (ikke navne) for pålidelig feltmapping
- Håndtér paginering - Brug parametrene
startoglimit; tjekmore_items_in_collection - Brug Recents-endpointet - Poll
/v1/recentstil inkrementelle synkroniseringer i stedet for fulde eksporter - Deduplikér før synkronisering - Flet duplikerede personer i Pipedrive, inden du synkroniserer til Brevo
- Brug sandbox-konti - Opret en udvikler-sandbox-konto til test af integrationer
Sikkerhed
- API-token-autentifikation - Enkel token-baseret adgang til personlig brug
- OAuth 2.0 - Sikker delegeret adgang til tredjepartsapps
- Kun HTTPS - Al API-kommunikation kræver TLS-kryptering
- Webhook-HTTPS - Webhooks leveres kun til HTTPS-endpoints
- Rollebaseret adgang - Pipedrive-tilladelser respekterer brugerroller
- SOC 2-certificeret - Pipedrive opretholder SOC 2-compliance
- GDPR-overholdelse - Understøtter anmodninger om dataeksport og -sletning