Коннектор Pipedrive
Коннектор Pipedrive
Подключите Pipedrive к Brevo через Tajo, чтобы объединить вашу воронку продаж с маркетинговой автоматизацией. Синхронизируйте контакты, сделки, организации и активности, чтобы запускать кампании жизненного цикла по изменениям стадий CRM.
Обзор
| Свойство | Значение |
|---|---|
| Платформа | Pipedrive |
| Категория | CRM |
| Сложность настройки | Лёгкая |
| Официальная интеграция | Нет |
| Синхронизируемые данные | Persons, Deals, Organizations, Activities |
| Доступные навыки | 8 |
Возможности
- Синхронизация контактов, двусторонняя синхронизация persons Pipedrive с контактами Brevo
- Отслеживание стадий сделок, запускайте автоматизации Brevo по изменениям стадий воронки
- Синхронизация организаций, сопоставляйте организации Pipedrive с атрибутами компаний Brevo
- Отслеживание активностей, пересылайте активности Pipedrive (звонки, письма, встречи) как события Brevo
- Кастомные поля, сопоставляйте кастомные поля Pipedrive с атрибутами контакта Brevo
- Отчётность по воронке, получайте данные воронки сделок для маркетинговой атрибуции
- Синхронизация лидов, импортируйте лиды Pipedrive в Brevo для взращивающих кампаний
- Автоматизация через вебхуки, обновления в реальном времени через вебхуки Pipedrive
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Аккаунт Pipedrive с правами администратора
- API-токен Pipedrive (находится в Settings > Personal preferences > API)
- Для OAuth-приложений: зарегистрированное приложение Pipedrive с Client ID и Client Secret
- Аккаунт Brevo с доступом к API
- Аккаунт Tajo с учётными данными API
Аутентификация
API-токен
Самый простой метод аутентификации. Найдите API-токен в Pipedrive в разделе Settings > Personal preferences > API.
curl "https://api.pipedrive.com/v1/persons?api_token=YOUR_API_TOKEN"OAuth 2.0 (рекомендуется для приложений)
Для продакшен-приложений используйте 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"После получения токена доступа:
curl "https://api.pipedrive.com/v1/persons" \ -H "Authorization: Bearer ACCESS_TOKEN"Конфигурация
Базовая настройка
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: 63Сопоставление полей Person
Сопоставьте поля person Pipedrive с атрибутами контакта 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_SIZEСопоставление стадий сделок
Сопоставьте стадии воронки Pipedrive со списками 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 listКонфигурация вебхуков
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
| Метод | Эндпоинт | Описание |
|---|---|---|
GET | /v1/persons | Список persons |
POST | /v1/persons | Создать person |
PUT | /v1/persons/{id} | Обновить person |
DELETE | /v1/persons/{id} | Удалить person |
GET | /v1/deals | Список сделок |
POST | /v1/deals | Создать сделку |
PUT | /v1/deals/{id} | Обновить сделку |
GET | /v1/organizations | Список организаций |
POST | /v1/organizations | Создать организацию |
GET | /v1/activities | Список активностей |
POST | /v1/activities | Создать активность |
GET | /v1/leads | Список лидов |
GET | /v1/pipelines | Список воронок |
GET | /v1/stages | Список стадий воронки |
GET | /v1/itemSearch | Поиск по всем объектам |
POST | /v1/webhooks | Создать вебхук |
GET | /v1/recents | Получить недавно изменённые объекты |
Примеры кода
Инициализация коннектора 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'});Синхронизация persons в 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 }Отслеживание изменений стадий сделок
// 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');});Поиск по 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 organizationsОграничения скорости
| Тариф | Лимит | Детали |
|---|---|---|
| Essential | 80 запросов/10 сек | На API-токен |
| Advanced | 100 запросов/10 сек | На API-токен |
| Professional | 200 запросов/10 сек | На API-токен |
| Power | 200 запросов/10 сек | На API-токен |
| Enterprise | 400 запросов/10 сек | На API-токен |
| OAuth-приложения | 80 запросов/2 сек | На токен доступа |
Дополнительные ограничения:
| Ресурс | Лимит |
|---|---|
| На страницу | Максимум 500 записей |
| Вебхуки | 40 на аккаунт |
| Массовое удаление | 100 объектов/запрос |
| Поиск | Стандартные лимиты |
Заголовки лимитов
Pipedrive возвращает заголовки X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset. Реализуйте задержку, когда X-RateLimit-Remaining приближается к нулю.
Устранение неполадок
| Проблема | Причина | Решение |
|---|---|---|
401 Unauthorized | Недействительный API-токен | Перегенерируйте токен в Pipedrive Settings > API |
403 Forbidden | Разрешения аккаунта | Убедитесь, что у аккаунта есть права администратора для использования API |
| У persons нет email | В записи нет email | Фильтруйте persons с валидным email перед синхронизацией |
| Кастомные поля не сопоставляются | Неверный ключ поля | Используйте ключ поля Pipedrive (hash), а не отображаемое имя |
| Вебхуки не приходят | Блокировка файрволом | Убедитесь, что URL вебхука публично доступен по HTTPS |
| Дубликаты persons | Несколько записей с одним email | Используйте API объединения Pipedrive перед синхронизацией |
429 Too Many Requests | Превышен лимит запросов | Реализуйте задержку с использованием заголовка X-RateLimit-Reset |
Лучшие практики
- Используйте OAuth для продакшена, предпочитайте OAuth 2.0 вместо API-токенов для продакшен-приложений
- Отслеживайте изменения стадий сделок, используйте вебхуки для запуска автоматизаций Brevo при переходах стадий
- Сопоставляйте кастомные поля, используйте ключи кастомных полей Pipedrive (не названия) для надёжного сопоставления
- Обрабатывайте пагинацию, используйте параметры
startиlimit; проверяйтеmore_items_in_collection - Используйте эндпоинт Recents, опрашивайте
/v1/recentsдля инкрементальных синхронизаций вместо полных выгрузок - Выполняйте дедупликацию перед синхронизацией, объединяйте дубликаты persons в Pipedrive перед синхронизацией в Brevo
- Используйте sandbox-аккаунты, создавайте sandbox для разработчиков для тестирования интеграций
Безопасность
- Аутентификация через API-токен, простой доступ на основе токена для личного использования
- OAuth 2.0, безопасный делегированный доступ для сторонних приложений
- Только HTTPS, все API-коммуникации требуют TLS-шифрования
- Вебхуки по HTTPS, вебхуки доставляются только на HTTPS-эндпоинты
- Доступ по ролям, разрешения Pipedrive учитывают роли пользователей
- Сертификация SOC 2, Pipedrive поддерживает соответствие SOC 2
- Соответствие GDPR, поддерживает запросы на экспорт и удаление данных