Pipedrive-connector
Pipedrive-connector
Verbind Pipedrive met Brevo via Tajo om je sales pipeline te koppelen aan marketingautomatisering. Synchroniseer contacten, deals, organisaties en activiteiten om lifecyclecampagnes te triggeren op basis van CRM-fasewijzigingen.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Platform | Pipedrive |
| Categorie | CRM |
| Setupcomplexiteit | Eenvoudig |
| Officiële integratie | Nee |
| Gesynchroniseerde data | Personen, Deals, Organisaties, Activiteiten |
| Beschikbare Skills | 8 |
Functies
- Contactsynchronisatie - Bidirectionele synchronisatie van Pipedrive-personen naar Brevo-contacten
- Dealfase-tracking - Trigger Brevo-automatiseringen op basis van wijzigingen in pipelinefases
- Organisatiesynchronisatie - Map Pipedrive-organisaties naar Brevo-bedrijfsattributen
- Activiteitstracking - Stuur Pipedrive-activiteiten (calls, e-mails, meetings) door als Brevo-events
- Custom fields - Map custom fields uit Pipedrive naar Brevo-contactattributen
- Pipeline-rapportage - Haal dealpipelinedata op voor marketingattributie
- Leadsynchronisatie - Importeer Pipedrive-leads in Brevo voor nurture-campagnes
- Webhook-automatisering - Realtime updates via Pipedrive-webhooks
Vereisten
Voordat je begint, zorg dat je beschikt over:
- Een Pipedrive-account met admin-toegang
- Je Pipedrive API Token (te vinden in Settings > Personal preferences > API)
- Voor OAuth apps: een geregistreerde Pipedrive-app met Client ID en Client Secret
- Een Brevo-account met API-toegang
- Een Tajo-account met API-credentials
Authenticatie
API Token
De eenvoudigste authenticatiemethode. Je API Token vind je in Pipedrive onder Settings > Personal preferences > API.
curl "https://api.pipedrive.com/v1/persons?api_token=YOUR_API_TOKEN"OAuth 2.0 (aanbevolen voor apps)
Gebruik voor productieapplicaties 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"Nadat je het access token hebt verkregen:
curl "https://api.pipedrive.com/v1/persons" \ -H "Authorization: Bearer ACCESS_TOKEN"Configuratie
Basisinstelling
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: 63Persoon-veldmapping
Map velden van Pipedrive-personen naar Brevo-contactattributen:
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_SIZEDealfase-mapping
Map Pipedrive-pipelinefases naar Brevo-listtoewijzingen:
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-configuratie
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
| Method | Endpoint | Beschrijving |
|---|---|---|
GET | /v1/persons | Lijst personen |
POST | /v1/persons | Maak een persoon aan |
PUT | /v1/persons/{id} | Werk een persoon bij |
DELETE | /v1/persons/{id} | Verwijder een persoon |
GET | /v1/deals | Lijst deals |
POST | /v1/deals | Maak een deal aan |
PUT | /v1/deals/{id} | Werk een deal bij |
GET | /v1/organizations | Lijst organisaties |
POST | /v1/organizations | Maak een organisatie aan |
GET | /v1/activities | Lijst activiteiten |
POST | /v1/activities | Maak een activiteit aan |
GET | /v1/leads | Lijst leads |
GET | /v1/pipelines | Lijst pipelines |
GET | /v1/stages | Lijst pipelinefases |
GET | /v1/itemSearch | Zoek in alle items |
POST | /v1/webhooks | Maak een webhook aan |
GET | /v1/recents | Haal recent gewijzigde items op |
Codevoorbeelden
Pipedrive-connector initialiseren
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'});Personen synchroniseren naar 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 }Dealfasewijzigingen tracken
// 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');});Zoeken in 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 | Limiet | Details |
|---|---|---|
| Essential | 80 requests/10 sec | Per API token |
| Advanced | 100 requests/10 sec | Per API token |
| Professional | 200 requests/10 sec | Per API token |
| Power | 200 requests/10 sec | Per API token |
| Enterprise | 400 requests/10 sec | Per API token |
| OAuth apps | 80 requests/2 sec | Per access token |
Aanvullende limieten:
| Resource | Limiet |
|---|---|
| Per pagina | Max. 500 records |
| Webhooks | 40 per account |
| Bulk delete | 100 items/request |
| Search | Standaard rate limits |
Rate limit-headers
Pipedrive retourneert X-RateLimit-Limit-, X-RateLimit-Remaining- en X-RateLimit-Reset-headers. Implementeer backoff wanneer X-RateLimit-Remaining richting nul gaat.
Probleemoplossing
| Probleem | Oorzaak | Oplossing |
|---|---|---|
401 Unauthorized | Ongeldig API token | Regenereer het token in Pipedrive Settings > API |
403 Forbidden | Accountrechten | Zorg dat het account admin-toegang heeft voor API-gebruik |
| Personen zonder e-mail | Geen e-mail op record | Filter personen met geldig e-mailadres voor synchronisatie |
| Custom fields worden niet gemapt | Verkeerde field key | Gebruik Pipedrive’s field key (hash), niet de weergavenaam |
| Webhooks niet ontvangen | Firewall blokkeert | Zorg dat de webhook-URL publiek bereikbaar is via HTTPS |
| Dubbele personen | Meerdere records met hetzelfde e-mailadres | Gebruik Pipedrive’s merge API voor synchronisatie |
429 Too Many Requests | Rate limit overschreden | Implementeer backoff met de X-RateLimit-Reset-header |
Best practices
- Gebruik OAuth voor productie - Geef voorkeur aan OAuth 2.0 boven API tokens in productieapplicaties
- Track dealfasewijzigingen - Gebruik webhooks om Brevo-automatiseringen te triggeren bij pipelinefase-overgangen
- Map custom fields - Gebruik custom field keys van Pipedrive (niet namen) voor betrouwbare veldmapping
- Handel paginering af - Gebruik de parameters
startenlimit; controleermore_items_in_collection - Gebruik het Recents-endpoint - Poll
/v1/recentsvoor incrementele syncs in plaats van volledige exports - Deduplicatie vóór synchronisatie - Merge dubbele personen in Pipedrive voordat je synchroniseert naar Brevo
- Gebruik sandbox-accounts - Maak een developer sandbox-account voor het testen van integraties
Beveiliging
- API token-authenticatie - Eenvoudige token-gebaseerde toegang voor persoonlijk gebruik
- OAuth 2.0 - Veilige gedelegeerde toegang voor externe applicaties
- Alleen HTTPS - Alle API-communicatie vereist TLS-encryptie
- Webhook HTTPS - Webhooks worden alleen afgeleverd aan HTTPS-endpoints
- Rolgebaseerde toegang - Pipedrive-rechten respecteren gebruikersrollen
- SOC 2-gecertificeerd - Pipedrive hanteert SOC 2-compliance
- GDPR-compliance - Ondersteunt data-export- en verwijderingsverzoeken