Konektor Pipedrive
Konektor Pipedrive
Połącz Pipedrive z Brevo przez Tajo, aby połączyć lejek sprzedażowy z automatyzacją marketingu. Synchronizuj kontakty, transakcje, organizacje i aktywności, aby zasilać kampanie cyklu życia wyzwalane zmianami etapów CRM.
Przegląd
| Właściwość | Wartość |
|---|---|
| Platforma | Pipedrive |
| Kategoria | CRM |
| Poziom konfiguracji | Łatwy |
| Integracja oficjalna | Nie |
| Synchronizowane dane | Osoby, Transakcje, Organizacje, Aktywności |
| Dostępne Skills | 8 |
Funkcje
- Synchronizacja kontaktów - Dwukierunkowa synchronizacja osób z Pipedrive na kontakty Brevo
- Śledzenie etapów transakcji - Wyzwalaj automatyzacje Brevo na podstawie zmian etapów lejka transakcji
- Synchronizacja organizacji - Mapuj organizacje Pipedrive na atrybuty firm Brevo
- Śledzenie aktywności - Przekazuj aktywności Pipedrive (rozmowy, e-maile, spotkania) jako zdarzenia Brevo
- Pola niestandardowe - Mapuj niestandardowe pola Pipedrive na atrybuty kontaktów Brevo
- Raportowanie lejka - Pobieraj dane lejka transakcji dla atrybucji marketingowej
- Synchronizacja leadów - Importuj leady Pipedrive do Brevo dla kampanii nurturingu
- Automatyzacja webhook - Aktualizacje w czasie rzeczywistym przez webhooki Pipedrive
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Konto Pipedrive z dostępem administratora
- Token API Pipedrive (w Settings > Personal preferences > API)
- Dla aplikacji OAuth: zarejestrowaną aplikację Pipedrive z Client ID i Client Secret
- Konto Brevo z dostępem do API
- Konto Tajo z danymi uwierzytelniającymi API
Uwierzytelnianie
Token API
Najprostsza metoda uwierzytelniania. Znajdź swój token API w Pipedrive w Settings > Personal preferences > API.
curl "https://api.pipedrive.com/v1/persons?api_token=YOUR_API_TOKEN"OAuth 2.0 (zalecane dla aplikacji)
Dla aplikacji produkcyjnych użyj 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"Po uzyskaniu tokenu dostępu:
curl "https://api.pipedrive.com/v1/persons" \ -H "Authorization: Bearer ACCESS_TOKEN"Konfiguracja
Podstawowa konfiguracja
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: 63Mapowanie pól osoby
Mapuj pola osób Pipedrive na atrybuty kontaktów 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_SIZEMapowanie etapów transakcji
Mapuj etapy lejka Pipedrive na przypisania list 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 listKonfiguracja webhooków
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"Endpointy API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /v1/persons | Lista osób |
POST | /v1/persons | Utwórz osobę |
PUT | /v1/persons/{id} | Aktualizuj osobę |
DELETE | /v1/persons/{id} | Usuń osobę |
GET | /v1/deals | Lista transakcji |
POST | /v1/deals | Utwórz transakcję |
PUT | /v1/deals/{id} | Aktualizuj transakcję |
GET | /v1/organizations | Lista organizacji |
POST | /v1/organizations | Utwórz organizację |
GET | /v1/activities | Lista aktywności |
POST | /v1/activities | Utwórz aktywność |
GET | /v1/leads | Lista leadów |
GET | /v1/pipelines | Lista lejków |
GET | /v1/stages | Lista etapów lejka |
GET | /v1/itemSearch | Wyszukaj we wszystkich elementach |
POST | /v1/webhooks | Utwórz webhook |
GET | /v1/recents | Pobierz ostatnio zmodyfikowane elementy |
Przykłady kodu
Inicjalizacja konektora 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'});Synchronizuj osoby z 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 }Śledzenie zmian etapów transakcji
// 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');});Wyszukiwanie w 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 organizationsLimity API
| Plan | Limit | Szczegóły |
|---|---|---|
| Essential | 80 żądań/10 sek | Na token API |
| Advanced | 100 żądań/10 sek | Na token API |
| Professional | 200 żądań/10 sek | Na token API |
| Power | 200 żądań/10 sek | Na token API |
| Enterprise | 400 żądań/10 sek | Na token API |
| Aplikacje OAuth | 80 żądań/2 sek | Na token dostępu |
Dodatkowe limity:
| Zasób | Limit |
|---|---|
| Na stronę | Maks. 500 rekordów |
| Webhooki | 40 na konto |
| Usuwanie zbiorcze | 100 elementów/żądanie |
| Wyszukiwanie | Standardowe limity API |
Nagłówki limitów API
Pipedrive zwraca nagłówki X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset. Wdrożyj wycofanie, gdy X-RateLimit-Remaining zbliża się do zera.
Rozwiązywanie problemów
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
401 Unauthorized | Nieprawidłowy token API | Wygeneruj ponownie token w Pipedrive Settings > API |
403 Forbidden | Uprawnienia konta | Upewnij się, że konto ma dostęp administratora do API |
| Brakujący e-mail osób | Brak e-maila w rekordzie | Filtruj osoby z prawidłowym e-mailem przed synchronizacją |
| Pola niestandardowe nie mapują | Zły klucz pola | Używaj klucza pola Pipedrive (hash), nie nazwy wyświetlanej |
| Webhooki nie odbierane | Zapora blokuje | Upewnij się, że URL webhooka jest publicznie dostępny przez HTTPS |
| Duplikaty osób | Wiele rekordów e-mail | Użyj API scalania Pipedrive przed synchronizacją |
429 Too Many Requests | Przekroczono limit | Wdrożyj wycofanie używając nagłówka X-RateLimit-Reset |
Najlepsze praktyki
- Używaj OAuth dla produkcji - Preferuj OAuth 2.0 nad tokenami API dla aplikacji produkcyjnych
- Śledź zmiany etapów transakcji - Używaj webhooków do wyzwalania automatyzacji Brevo przy przejściach etapów lejka
- Mapuj pola niestandardowe - Używaj kluczy pól niestandardowych Pipedrive (nie nazw) dla niezawodnego mapowania
- Obsługuj paginację - Używaj parametrów
startilimit; sprawdzajmore_items_in_collection - Używaj endpointu Recents - Odpytuj
/v1/recentsdla synchronizacji przyrostowych zamiast pełnych eksportów - Deduplikuj przed synchronizacją - Scalaj zduplikowane osoby w Pipedrive przed synchronizacją z Brevo
- Używaj kont sandbox - Utwórz deweloperskie konto sandbox do testowania integracji
Bezpieczeństwo
- Uwierzytelnianie tokenem API - Prosty dostęp oparty na tokenach do użytku osobistego
- OAuth 2.0 - Bezpieczny delegowany dostęp dla aplikacji zewnętrznych
- Tylko HTTPS - Cała komunikacja API wymaga szyfrowania TLS
- Webhooki HTTPS - Webhooki dostarczane tylko do endpointów HTTPS
- Dostęp oparty na rolach - Uprawnienia Pipedrive respektują role użytkowników
- Certyfikat SOC 2 - Pipedrive utrzymuje zgodność z SOC 2
- Zgodność z RODO - Obsługuje żądania eksportu i usunięcia danych