Integration BlueprintUse case: nurture sequencesUpdated 2026-10-19

Pipedrive to Brevo Nurture Sequence Integration

Integrating Pipedrive with Brevo establishes an automated lead nurturing pipeline by bridging deal-stage movements directly to targeted messaging tracks. This guide details configuring Pipedrive added.deal webhooks, filtering payloads by pipeline ID, and invoking Brevo v3 contacts API to inject leads into automated email and SMS workflows without manual CSV exports.

Explore: CRM · Email Marketing

Comparison matrix

FeaturePipedriveBrevoEdge
Starting Price$14/user/month (Essential)$9/month (5k emails) / Free tier availableBrevo
Contact Storage ModelCapped by plan tier limitsUnlimited contacts across all tiersBrevo
Primary Auth MethodOAuth 2.0 or API Token query paramapi-key HTTP headerBrevo
API Rate LimitsDaily budget per company (up to 80 req/2s burst)1,000 requests/sec for transactional endpointsBrevo
Native Multi-Channel MessagingEmail only (sync via IMAP/SMTP)Email, SMS, and WhatsAppBrevo
Sales Pipeline ManagementVisual drag-and-drop deal board with stage trackingBasic built-in CRM functionalityPipedrive
Self-Hosting OptionNo (Cloud SaaS only)No (Cloud SaaS only)Tie
Webhook CustomizationEntity-level subscriptions (deal, person, org)Event-based (delivered, opened, hard_bounce)Pipedrive
Start freeTry Pipedrive →Try Brevo →

ROI metrics

Hours saved / mo

35

Pipedrive / mo

$140

Brevo / mo

$65

Break-even

2.4 wks

Annual savings

$18,450

Automating Pipedrive deal ingestion into Brevo nurture sequences saves 35 rep hours per month on manual list export and email creation, paying off setup costs in under 3 weeks.

Step-by-step setup guide

  1. 1.Generate Brevo v3 API Key and Configure Nurture List

    Log in to Brevo, navigate to SMTP & API > API Keys, and generate a key. Next, create a target nurture list under Contacts > Lists (note the numeric list ID, e.g., 42). Set up an automation workflow triggered by the 'Contact added to list' event.

    curl -X GET "https://api.brevo.com/v3/contacts/lists/42" \
      -H "accept: application/json" \
      -H "api-key: xkeysib-YOUR_BREVO_API_KEY"
  2. 2.Identify Deal Custom Fields in Pipedrive

    Call Pipedrive dealFields endpoint to identify custom field hash keys for pipeline qualification data, such as nurture interest or persona tags, ensuring matching attributes exist in Brevo.

    curl -X GET "https://api.pipedrive.com/v1/dealFields?api_token=YOUR_PIPEDRIVE_TOKEN"
  3. 3.Register Pipedrive added.deal Webhook

    Establish a webhook subscription in Pipedrive targeting your ingestion endpoint. This triggers an immediate payload whenever a rep creates or moves a lead into the nurture pipeline.

    curl -X POST "https://api.pipedrive.com/v1/webhooks" \
      -H "Content-Type: application/json" \
      -d '{
        "event_action": "added",
        "event_object": "deal",
        "subscription_url": "https://api.yourdomain.com/webhooks/pipedrive",
        "api_token": "YOUR_PIPEDRIVE_TOKEN"
      }'
  4. 4.Ingest Webhook and Fetch Full Person Details

    Upon receiving the webhook, extract current.person_id.value. If email is not present in the deal webhook context, issue a GET request to Pipedrive /persons/{id} to retrieve primary email and phone.

    curl -X GET "https://api.pipedrive.com/v1/persons/10892?api_token=YOUR_PIPEDRIVE_TOKEN"
  5. 5.Upsert Contact into Brevo Nurture List

    Send a POST request to Brevo /contacts with updateEnabled=true to add or update the contact attributes and immediately bind them to your automated sequence list ID.

    curl -X POST "https://api.brevo.com/v3/contacts" \
      -H "Content-Type: application/json" \
      -H "api-key: xkeysib-YOUR_BREVO_API_KEY" \
      -d '{
        "email": "alex.rivers@example.com",
        "attributes": {
          "FIRSTNAME": "Alex",
          "DEAL_VALUE": 5000,
          "PIPELINE_STAGE": "Lead Qualified"
        },
        "listIds": [42],
        "updateEnabled": true
      }'

Webhook payload example

POST https://api.yourdomain.com/webhooks/pipedrive · event: added.deal

{
  "v": 1,
  "matches_filters": {
    "current": []
  },
  "meta": {
    "action": "added",
    "change_source": "app",
    "company_id": 849201,
    "entity_id": 45019,
    "host": "app.pipedrive.com",
    "id": 912830,
    "is_bulk": false,
    "matches_filters": {
      "current": []
    },
    "object": "deal",
    "permitted_user_ids": [10294],
    "pipedrive_service_name": "deals",
    "timestamp": 1709549822,
    "user_id": 10294,
    "webhook_id": 1205
  },
  "current": {
    "id": 45019,
    "user_id": 10294,
    "person_id": {
      "name": "Alex Rivers",
      "email": [{"value": "alex.rivers@example.com", "primary": true}],
      "value": 10892
    },
    "org_id": {
      "name": "Apex Logistics",
      "value": 4018
    },
    "stage_id": 2,
    "title": "Apex Logistics - 50 Seats",
    "value": 5000,
    "currency": "USD",
    "add_time": "2024-03-04 10:57:02",
    "status": "open",
    "pipeline_id": 1
  },
  "previous": null
}

Pipedrive: pros & cons

  • ✅ Granular deal-level webhook events with previous and current state data
  • ✅ Fast visual management for tracking SDR-to-AE nurture handoffs
  • ✅ Robust custom field schemas for capturing deal-specific attributes
  • ⚠️ Lacks native automated multi-channel messaging (SMS/WhatsApp)
  • ⚠️ API token exposure required if OAuth 2.0 workflow is not implemented

Brevo: pros & cons

  • ✅ Pricing based purely on email volume rather than contact counts
  • ✅ Native support for automated SMS and WhatsApp sequences alongside email
  • ✅ High API throughput limit of up to 1,000 requests per second
  • ⚠️ Pipeline and deal tracking features are basic compared to dedicated CRMs
  • ⚠️ Free tier enforces Brevo branding in the email footer

FAQ

How do I prevent unsubscribed Brevo contacts from receiving new sequences when a Pipedrive deal is updated?

When executing POST /contacts in Brevo with updateEnabled=true, Brevo retains the contact's global emailBlacklisted status. If a contact previously opted out, transactional lists will not override that block unless explicitly unblacklisted.

What happens if a Pipedrive webhook payload omits the contact's email address?

Pipedrive deal webhooks include current.person_id as an object or integer. If the nested email array is null, your middleware must call GET /v1/persons/{id} using the person_id to retrieve the primary email before invoking Brevo.

Can I trigger different Brevo nurture workflows depending on Pipedrive pipeline stages?

Yes. Inspect current.stage_id or current.pipeline_id in your webhook handler, map those IDs to distinct Brevo list IDs (e.g., stage 2 maps to list 42, stage 3 to list 43), and pass the corresponding listId array in the Brevo payload.

How are Pipedrive API rate limits managed during mass deal imports?

Pipedrive enforces a daily API token usage limit that depends on your subscription tier (e.g., 10,000 to 100,000 calls per day), alongside an 80 requests per 2-second rate limit. Queue outbound API calls using an exponential backoff buffer to prevent HTTP 429 errors.

Related integrations & comparisons