---
title: "Connecteur Pipedrive"
description: "Guide complet d'intégration Pipedrive pour synchroniser transactions, contacts, organisations et données de pipeline avec Brevo via Tajo."
url: https://tajo.io/fr/docs/connectors/crm/pipedrive/
markdown: https://tajo.io/fr/docs/connectors/crm/pipedrive.md
lang: fr-FR
robots: noindex
---

Demandez un accès anticipé

Indiquez votre prénom et votre adresse e-mail professionnelle. Nous vous enverrons un lien pour confirmer votre demande d’accès à Tajo.

# Connecteur Pipedrive

Statut du connecteur: Prévu Pas encore construit. Tajo n'exécute pas ce connecteur aujourd'hui.

| Champ source | Champ de destination | Valeur d’exemple |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Connectez Pipedrive à Brevo via Tajo pour faire le pont entre votre pipeline commercial et l’automatisation marketing. Synchronisez contacts, transactions, organisations et activités afin d’alimenter les campagnes du cycle de vie déclenchées par les changements d’étape dans le CRM.

## Vue d’ensemble

| Propriété | Valeur |
| --- | --- |
| **Plateforme** | Pipedrive |
| **Catégorie** | CRM |
| **Complexité d’installation** | Facile |
| **Intégration officielle** | Non |
| **Données synchronisées** | Personnes, transactions, organisations, activités |
| **Skills disponibles** | 8 |

## Fonctionnalités

- **Synchronisation des contacts**, Synchronisation bidirectionnelle des personnes Pipedrive vers les contacts Brevo
- **Suivi des étapes de transaction**, Déclenchez des automatisations Brevo en fonction des changements d’étape du pipeline
- **Synchronisation des organisations**, Mappez les organisations Pipedrive vers les attributs d’entreprise Brevo
- **Suivi des activités**, Transmettez les activités Pipedrive (appels, e-mails, réunions) en tant qu’événements Brevo
- **Champs personnalisés**, Mappez les champs personnalisés Pipedrive vers les attributs de contact Brevo
- **Reporting du pipeline**, Récupérez les données du pipeline de transactions pour l’attribution marketing
- **Synchronisation des leads**, Importez les leads Pipedrive dans Brevo pour les campagnes de nurturing
- **Automatisation via webhook**, Mises à jour en temps réel via les webhooks Pipedrive

## Prérequis

Avant de commencer, assurez-vous de disposer de :

1. Un compte Pipedrive avec accès administrateur
2. Votre jeton API Pipedrive (disponible dans Settings > Personal preferences > API)
3. Pour les applications OAuth : une application Pipedrive enregistrée avec Client ID et Client Secret
4. Un compte Brevo avec accès API
5. Un compte Tajo avec des identifiants API

## Authentification

### Jeton API

La méthode d’authentification la plus simple. Retrouvez votre jeton API dans Pipedrive sous Settings > Personal preferences > API.

```bash
curl "https://api.pipedrive.com/v1/persons?api_token=YOUR_API_TOKEN"
```

### OAuth 2.0 (recommandé pour les applications)

Pour les applications de production, utilisez OAuth 2.0 :

```bash
# Authorization URL
https://oauth.pipedrive.com/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI

# Token exchange
curl -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"
```

Après obtention du jeton d’accès :

```bash
curl "https://api.pipedrive.com/v1/persons" \
  -H "Authorization: Bearer ACCESS_TOKEN"
```

## Configuration

### Configuration de base

```yaml
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
```

### Mappage des champs de personne

Mappez les champs de personne Pipedrive vers les attributs de contact Brevo :

```yaml
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
```

### Mappage des étapes de transaction

Mappez les étapes du pipeline Pipedrive vers les affectations de listes Brevo :

```yaml
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
```

### Configuration des webhooks

```yaml
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"
```

## Endpoints API

| Méthode | Endpoint | Description |
| --- | --- | --- |
| `GET` | `/v1/persons` | Lister les personnes |
| `POST` | `/v1/persons` | Créer une personne |
| `PUT` | `/v1/persons/{id}` | Mettre à jour une personne |
| `DELETE` | `/v1/persons/{id}` | Supprimer une personne |
| `GET` | `/v1/deals` | Lister les transactions |
| `POST` | `/v1/deals` | Créer une transaction |
| `PUT` | `/v1/deals/{id}` | Mettre à jour une transaction |
| `GET` | `/v1/organizations` | Lister les organisations |
| `POST` | `/v1/organizations` | Créer une organisation |
| `GET` | `/v1/activities` | Lister les activités |
| `POST` | `/v1/activities` | Créer une activité |
| `GET` | `/v1/leads` | Lister les leads |
| `GET` | `/v1/pipelines` | Lister les pipelines |
| `GET` | `/v1/stages` | Lister les étapes de pipeline |
| `GET` | `/v1/itemSearch` | Rechercher parmi tous les éléments |
| `POST` | `/v1/webhooks` | Créer un webhook |
| `GET` | `/v1/recents` | Récupérer les éléments récemment modifiés |

## Exemples de code

### Initialiser le connecteur Pipedrive

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect Pipedrive account
await tajo.connectors.connect('pipedrive', {
  apiToken: process.env.PIPEDRIVE_API_TOKEN,
  companyDomain: 'yourcompany'
});
```

### Synchroniser les personnes vers Brevo

```javascript
// Fetch persons from Pipedrive
const 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 }
```

### Suivre les changements d’étape de transaction

```javascript
// Webhook handler for deal updates
app.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');
});
```

### Rechercher dans Pipedrive

```javascript
// Global search across persons, deals, and organizations
const query = encodeURIComponent('jane@example.com');
const 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
```

## Limites de débit

| Plan | Limite | Détails |
| --- | --- | --- |
| **Essential** | 80 requêtes/10 s | Par jeton API |
| **Advanced** | 100 requêtes/10 s | Par jeton API |
| **Professional** | 200 requêtes/10 s | Par jeton API |
| **Power** | 200 requêtes/10 s | Par jeton API |
| **Enterprise** | 400 requêtes/10 s | Par jeton API |
| **Applications OAuth** | 80 requêtes/2 s | Par jeton d’accès |

Limites supplémentaires :

| Ressource | Limite |
| --- | --- |
| **Par page** | 500 enregistrements max |
| **Webhooks** | 40 par compte |
| **Suppression en masse** | 100 éléments/requête |
| **Recherche** | Limites de débit standard |

En-têtes de limite de débit

Pipedrive renvoie les en-têtes `X-RateLimit-Limit`, `X-RateLimit-Remaining` et `X-RateLimit-Reset`. Implémentez un backoff lorsque `X-RateLimit-Remaining` approche de zéro.

## Dépannage

| Problème | Cause | Solution |
| --- | --- | --- |
| `401 Unauthorized` | Jeton API invalide | Régénérez le jeton dans Pipedrive Settings > API |
| `403 Forbidden` | Permissions du compte | Assurez-vous que le compte dispose d’un accès administrateur pour l’API |
| Personnes sans e-mail | Aucun e-mail dans l’enregistrement | Filtrez les personnes avec un e-mail valide avant la synchronisation |
| Champs personnalisés non mappés | Mauvaise clé de champ | Utilisez la clé de champ Pipedrive (hash), pas le nom affiché |
| Webhooks non reçus | Pare-feu bloquant | Assurez-vous que l’URL du webhook est accessible publiquement via HTTPS |
| Personnes dupliquées | Plusieurs enregistrements d’e-mail | Utilisez l’API de fusion Pipedrive avant la synchronisation |
| `429 Too Many Requests` | Limite de débit dépassée | Implémentez un backoff en utilisant l’en-tête `X-RateLimit-Reset` |

## Bonnes pratiques

1. **Utilisez OAuth en production**, Privilégiez OAuth 2.0 aux jetons API pour les applications de production
2. **Suivez les changements d’étape de transaction**, Utilisez les webhooks pour déclencher des automatisations Brevo lors des transitions d’étape
3. **Mappez les champs personnalisés**, Utilisez les clés de champ personnalisé Pipedrive (pas les noms) pour un mappage fiable
4. **Gérez la pagination**, Utilisez les paramètres `start` et `limit` ; vérifiez `more_items_in_collection`
5. **Utilisez l’endpoint Recents**, Interrogez `/v1/recents` pour les synchronisations incrémentales plutôt que des exports complets
6. **Dédupliquez avant la synchronisation**, Fusionnez les personnes dupliquées dans Pipedrive avant la synchronisation vers Brevo
7. **Utilisez des comptes sandbox**, Créez un compte sandbox développeur pour tester les intégrations

## Sécurité

- **Authentification par jeton API**, Accès simple basé sur un jeton pour un usage personnel
- **OAuth 2.0**, Accès délégué sécurisé pour les applications tierces
- **HTTPS uniquement**, Toutes les communications API requièrent un chiffrement TLS
- **Webhooks HTTPS**, Les webhooks ne sont livrés qu’aux endpoints HTTPS
- **Accès basé sur les rôles**, Les permissions Pipedrive respectent les rôles utilisateur
- **Certifié SOC 2**, Pipedrive maintient sa conformité SOC 2
- **Conformité RGPD**, Prise en charge des demandes d’export et de suppression de données

## Ressources associées

- [Connecteur Brevo](https://tajo.io/fr/docs/connectors/marketing/brevo)
- [Connecteur Shopify](https://tajo.io/fr/docs/connectors/ecommerce/shopify)
- [Skill Customer Sync](https://tajo.io/fr/docs/skills/data-sync/customer-sync)
- [API Contacts Brevo](https://tajo.io/fr/docs/contact-management)
