Pipedrive-koppling
Pipedrive-koppling
Anslut Pipedrive till Brevo via Tajo för att koppla din säljpipeline till marknadsautomation. Synka kontakter, affärer, organisationer och aktiviteter för att driva livscykelkampanjer som utlöses av ändringar i CRM-stadier.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Pipedrive |
| Kategori | CRM |
| Installationskomplexitet | Enkel |
| Officiell integration | Nej |
| Data som synkas | Personer, affärer, organisationer, aktiviteter |
| Tillgängliga skills | 8 |
Funktioner
- Kontaktsynkronisering - Dubbelriktad synk av personer i Pipedrive till kontakter i Brevo
- Uppföljning av affärsstadier - Utlös Brevo-automationer baserat på ändringar i pipelinestadier
- Synkronisering av organisationer - Mappa Pipedrive-organisationer till Brevos företagsattribut
- Aktivitetsspårning - Vidarebefordra Pipedrive-aktiviteter (samtal, e-post, möten) som Brevo-händelser
- Anpassade fält - Mappa Pipedrives anpassade fält till Brevo-kontaktattribut
- Pipelinerapportering - Hämta data från affärspipeline för marknadsföringsattribution
- Leadsynkronisering - Importera Pipedrive-leads till Brevo för nurture-kampanjer
- Webhook-automation - Realtidsuppdateringar via Pipedrives webhooks
Förutsättningar
Innan du börjar, se till att du har:
- Ett Pipedrive-konto med administratörsåtkomst
- Din API-token från Pipedrive (finns under Settings > Personal preferences > API)
- För OAuth-appar: en registrerad Pipedrive-app med Client ID och Client Secret
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med API-uppgifter
Autentisering
API-token
Den enklaste autentiseringsmetoden. Hitta din API-token i Pipedrive under Settings > Personal preferences > API.
curl "https://api.pipedrive.com/v1/persons?api_token=YOUR_API_TOKEN"OAuth 2.0 (rekommenderas för appar)
För produktionsapplikationer, använd 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"Efter att du har fått åtkomsttoken:
curl "https://api.pipedrive.com/v1/persons" \ -H "Authorization: Bearer ACCESS_TOKEN"Konfiguration
Grundinställning
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: 63Mappning av personfält
Mappa fält för personer i Pipedrive till Brevo-kontaktattribut:
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_SIZEMappning av affärsstadier
Mappa Pipedrives pipelinestadier till Brevo-listtilldelningar:
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
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /v1/persons | Lista personer |
POST | /v1/persons | Skapa en person |
PUT | /v1/persons/{id} | Uppdatera en person |
DELETE | /v1/persons/{id} | Radera en person |
GET | /v1/deals | Lista affärer |
POST | /v1/deals | Skapa en affär |
PUT | /v1/deals/{id} | Uppdatera en affär |
GET | /v1/organizations | Lista organisationer |
POST | /v1/organizations | Skapa en organisation |
GET | /v1/activities | Lista aktiviteter |
POST | /v1/activities | Skapa en aktivitet |
GET | /v1/leads | Lista leads |
GET | /v1/pipelines | Lista pipelines |
GET | /v1/stages | Lista pipelinestadier |
GET | /v1/itemSearch | Sök över alla objekt |
POST | /v1/webhooks | Skapa en webhook |
GET | /v1/recents | Hämta senast ändrade objekt |
Kodexempel
Initiera Pipedrive-kopplingen
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'});Synka personer till 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 }Följ ändringar i affärsstadier
// 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ök över 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 organizationsHastighetsbegränsningar
| Plan | Gräns | Detaljer |
|---|---|---|
| Essential | 80 förfrågningar/10 sek | Per API-token |
| Advanced | 100 förfrågningar/10 sek | Per API-token |
| Professional | 200 förfrågningar/10 sek | Per API-token |
| Power | 200 förfrågningar/10 sek | Per API-token |
| Enterprise | 400 förfrågningar/10 sek | Per API-token |
| OAuth-appar | 80 förfrågningar/2 sek | Per åtkomsttoken |
Ytterligare gränser:
| Resurs | Gräns |
|---|---|
| Per sida | Max 500 poster |
| Webhooks | 40 per konto |
| Bulk delete | 100 objekt/förfrågan |
| Sök | Standardhastighetsbegränsningar |
Headers för hastighetsbegränsning
Pipedrive returnerar headers X-RateLimit-Limit, X-RateLimit-Remaining och X-RateLimit-Reset. Implementera backoff när X-RateLimit-Remaining närmar sig noll.
Felsökning
| Problem | Orsak | Lösning |
|---|---|---|
401 Unauthorized | Ogiltig API-token | Återgenerera token i Pipedrive Settings > API |
403 Forbidden | Kontobehörigheter | Se till att kontot har administratörsåtkomst för API-användning |
| Personer saknar e-post | Ingen e-post på posten | Filtrera bort personer utan giltig e-post innan synkronisering |
| Anpassade fält mappas inte | Fel fältnyckel | Använd Pipedrives fältnyckel (hash), inte visningsnamnet |
| Webhooks tas inte emot | Brandvägg blockerar | Se till att webhook-URL:en är offentligt tillgänglig över HTTPS |
| Dubblettpersoner | Flera poster med samma e-post | Använd Pipedrives merge-API innan synkronisering |
429 Too Many Requests | Hastighetsbegränsning överskriden | Implementera backoff med hjälp av X-RateLimit-Reset-headern |
Bästa praxis
- Använd OAuth för produktion - Föredra OAuth 2.0 framför API-tokens för produktionsapplikationer
- Följ ändringar i affärsstadier - Använd webhooks för att utlösa Brevo-automationer vid övergångar mellan pipelinestadier
- Mappa anpassade fält - Använd Pipedrives fältnycklar (inte namn) för pålitlig fältmappning
- Hantera paginering - Använd parametrarna
startochlimit; kontrolleramore_items_in_collection - Använd Recents-endpointen - Polla
/v1/recentsför inkrementell synk istället för fullständiga exporter - Deduplicera innan synk - Slå ihop dubblettpersoner i Pipedrive innan du synkar till Brevo
- Använd sandbox-konton - Skapa ett utvecklarsandboxkonto för att testa integrationer
Säkerhet
- API-tokenautentisering - Enkel tokenbaserad åtkomst för personligt bruk
- OAuth 2.0 - Säker delegerad åtkomst för tredjepartsapplikationer
- Endast HTTPS - All API-kommunikation kräver TLS-kryptering
- Webhook HTTPS - Webhooks levereras endast till HTTPS-endpoints
- Rollbaserad åtkomst - Pipedrive-behörigheter respekterar användarroller
- SOC 2-certifierad - Pipedrive upprätthåller SOC 2-efterlevnad
- GDPR-efterlevnad - Stöder dataexport och raderingsförfrågningar