Back to Library
Tech Deep DiveEngineering

Brevo Cold Email & IP Warming: Dedicated SMTP Deliverability

Alfaz Mahmud Rizve
Alfaz Mahmud Rizve
@whoisalfaz
July 25, 2026
12 min read
Brevo Cold Email & IP Warming: Dedicated SMTP Deliverability

This technical breakdown contains affiliate links. If you deploy this stack using my links, I earn a commission at no extra cost to you.

Mastering cold email deliverability is the foundational pillar of modern B2B outbound sales. When launching high-volume campaigns using Brevo (formerly Sendinblue) and n8n workflow orchestration, relying on shared IP pools exposes your domain to shared spam penalties and blacklisting. Deploying a dedicated IP address backed by a disciplined 30-day automated IP warming schedule is the mandatory strategy for achieving 98%+ inbox placement across major Internet Service Providers (ISPs).


Why Is Dedicated IP Warming Critical for Brevo Cold Email Outreach?

Dedicated IP warming is critical for Brevo cold email outreach because major Internet Service Providers (ISPs) like Google Workspace and Microsoft 365 evaluate sender reputation based on IP sending patterns, history, and engagement metrics. When dispatching cold outbound campaigns from a fresh dedicated IP address, ISPs have zero historical data to evaluate whether your messages are legitimate business correspondence or unsolicited spam. If a sender suddenly blasts thousands of cold emails from an un-warmed IP, spam filters flag the abrupt volume spike, instantly placing your domain and IP on global blacklists like Spamhaus. IP warming is the deliberate process of gradually increasing email daily sending volume over a 30-day schedule while maintaining high engagement rates. This process establishes positive domain reputation, satisfies ISP algorithmic security checks, and ensures your cold outbound emails consistently reach prospect primary inboxes rather than spam folders.

Below is the technical lifecycle of dedicated IP warming and deliverability governance:

JSON Payload
graph TD
    A[Fresh Brevo Dedicated IP] --> B[DNS Security Setup: SPF + DKIM + DMARC]
    B --> C[n8n Daily Throttling Engine]
    C --> D[Week 1: 50 emails/day High Engagement]
    D --> E[Week 2: 100 emails/day Monitoring Bounces]
    E --> F[Week 3: 250 emails/day Controlled Cold Outreach]
    F --> G[Week 4: 500+ emails/day Full Outbound Velocity]
    G --> H[98%+ Primary Inbox Placement]

How Do You Configure SPF, DKIM, and DMARC Records for Brevo SMTP?

Configuring SPF, DKIM, and DMARC authentication records for Brevo SMTP is the mandatory technical prerequisite for establishing sender domain authority and bypassing strict ISP spam filters. Sender Policy Framework (SPF) specifies which mail servers are authorized to send email on behalf of your domain, implemented by adding an official TXT record containing include:spf.brevo.com. DomainKeys Identified Mail (DKIM) adds a cryptographic signature to every outgoing header, verified by publishing Brevo's public key TXT record in your DNS settings. Domain-based Message Authentication, Reporting, and Conformance (DMARC) instructs receiving mail servers how to handle emails failing SPF or DKIM checks, configured with a policy of p=none initially before graduating to p=reject. Validating these technical DNS records inside Brevo guarantees message integrity, prevents domain spoofing attacks, and boosts primary inbox placement rates across all outbound cold email campaigns.

Here is the exact DNS record setup matrix for Brevo SMTP deliverability:

Record Type Host Name TXT Value / Value String Deliverability Impact
SPF Record @ v=spf1 include:spf.brevo.com ~all Authorizes Brevo IP Servers
DKIM Record mail._domainkey k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADC... Cryptographic Header Signature
DMARC Policy _dmarc v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com Prevents Domain Spoofing Flags

What Is the 30-Day Automated IP Warming Schedule for B2B Outbound?

The 30-day automated IP warming schedule for B2B outbound is a structured, ramped volume plan designed to safely build sending reputation on a new Brevo dedicated IP. Week 1 begins with a conservative daily limit of 50 emails, targeted strictly at highly engaged existing contacts or internal warm lead accounts to generate high open and click-through rates. Volume doubles during Week 2 to 100 emails per day, while monitoring hard bounce rates to ensure they remain strictly below 1%. Week 3 scales daily outbound capacity to 250 emails, introducing cold prospect cohorts gradually while maintaining active reply monitoring. By Week 4, daily sending capacity reaches 500 to 1,000 emails, fully establishing the dedicated IP's reputation across major ISPs. Strict adherence to this 30-day schedule prevents premature blacklisting, protects corporate domain authority, and safeguards long-term email deliverability.


How Do You Automate Volume Throttling in n8n Using Code Nodes?

Automating volume throttling in n8n using Code Nodes enforces strict daily IP warming limits programmatically, preventing campaign batch spikes from exceeding ISP thresholds. Within an n8n workflow, a custom JavaScript Code Node tracks the number of dispatched emails for the current calendar day against a maximum limit stored in workflow static data or an external Redis store. Before calling the Brevo SMTP API node, the JavaScript node checks the current execution count; if the daily allocation limit (such as 100 emails during Week 2) is reached, the Code Node diverts remaining prospect records into a delay queue table in PostgreSQL. The workflow schedules a cron trigger to resume queue processing at midnight UTC when daily counters reset. Building this automated throttling logic inside n8n eliminates human oversight errors and enforces disciplined sending habits during IP warming.

Below is the n8n JavaScript Code Node for automated daily volume throttling:

JSON Payload
// n8n Code Node: Automated IP Warming Volume Throttler
const staticData = $getWorkflowStaticData('global');
const today = new Date().toISOString().split('T')[0];

// Initialize daily counter static data
if (staticData.lastResetDate !== today) {
  staticData.lastResetDate = today;
  staticData.dailySentCount = 0;
}

// Set maximum daily limit according to warming schedule (e.g. Week 2 = 100 emails)
const DAILY_MAX_LIMIT = 100;

const items = $input.all();
const approvedBatch = [];
const deferredBatch = [];

for (const item of items) {
  if (staticData.dailySentCount < DAILY_MAX_LIMIT) {
    staticData.dailySentCount++;
    approvedBatch.push({
      json: {
        ...item.json,
        dispatchApproved: true,
        currentDailyCount: staticData.dailySentCount
      }
    });
  } else {
    deferredBatch.push({
      json: {
        ...item.json,
        dispatchApproved: false,
        deferReason: 'Daily IP Warming Limit Reached'
      }
    });
  }
}

// Return approved batch for immediate Brevo SMTP dispatch
return approvedBatch;

Import this n8n Workflow JSON Blueprint for Brevo SMTP dispatch with throttling:

JSON Payload
{
  "name": "Brevo Dedicated IP Warming & Throttled SMTP Blueprint",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * 1-5"
            }
          ]
        }
      },
      "name": "Daily Dispatch Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [240, 300]
    },
    {
      "parameters": {
        "url": "https://api.brevo.com/v3/smtp/email",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "api-key",
              "value": "={{ $env.BREVO_API_KEY }}"
            }
          ]
        }
      },
      "name": "Brevo Transactional SMTP Dispatch",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [480, 300]
    }
  ],
  "connections": {
    "Daily Dispatch Trigger": {
      "main": [
        [
          {
            "node": "Brevo Transactional SMTP Dispatch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

How Do You Monitor Sender Reputation and Spam Trap Rates in Brevo?

Monitoring sender reputation and spam trap rates in Brevo requires tracking real-time delivery metrics, ISP feedback loops, and email list hygiene analytics within your RevOps dashboard. Key indicators of deliverability health include maintaining a hard bounce rate below 0.5%, a spam complaint rate below 0.05%, and an overall open rate above 30%. Brevo provides native webhooks that log bounce events, unsubscribe requests, and spam flags instantaneously; connecting these webhooks to an n8n workflow enables automatic contact suppression, instantly removing hard-bounced addresses from future mailing lists. Furthermore, RevOps teams must periodically cross-reference dedicated IPs against major blacklists using Google Postmaster Tools and MXToolbox. Consistently monitoring deliverability telemetry allows operations teams to identify deliverability degradation early, pause campaigns proactively, maintain pristine domain reputation, and ensure maximum email inbox placement over time. By centralizing these performance metrics, RevOps teams move from reactive cleanup to proactive reputation management, establishing an indestructible foundation for long-term B2B cold email performance and high-volume scalability.

(To connect Apollo leads cleanly into your warmed Brevo SMTP pipeline, follow our guide on Apollo to Brevo n8n Pipeline: B2B Automated Outreach Guide).


Step-by-Step UI Configuration Guide: Brevo Dedicated IP & Subdomain Delegation

To configure a dedicated SMTP IP address and domain authentication in Brevo, follow these UI navigation steps:

1

Purchasing & Provisioning Dedicated IP in Brevo:

  • Navigate to Brevo Dashboard > Settings > Senders, Domains & Dedicated IPs.
  • Click Dedicated IPs > Add a Dedicated IP. Select your preferred dedicated IP region and click Purchase.
  • Assign your dedicated IP to your main transactional or marketing sending pool.
2

Subdomain Delegation & DNS Record Setup:

  • In the Dedicated IPs menu, click Manage IP > Authenticate Domain.
  • Enter your designated sending subdomain (e.g., mail.yourcompany.com).
  • Brevo will display 4 required DNS records. Access your DNS provider (Cloudflare, AWS Route53, or Namecheap) and create the records:
Record Type Host Name Target / Value Format TTL
TXT (SPF) mail.yourcompany.com `v=spf1 include:spf.brevo.com ip4:185.107.X.X ~all` Auto / 300s
TXT (DKIM) mail._domainkey.mail.yourcompany.com `k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ...` Auto / 300s
TXT (DMARC) _dmarc.yourcompany.com `v=DMARC1; p=none; rua=mailto:dmarc@yourcompany.com` Auto / 300s
1
Verifying DNS Records in Brevo UI:
  • Return to Brevo, click Verify & Authenticate. Ensure green checkmarks appear next to SPF, DKIM, and DMARC.

Automated Bounce & Complaint Handling Code Node in n8n

To preserve high deliverability during your 30-day IP warmup schedule, n8n automatically handles Brevo webhooks for hard bounces, spam complaints, and unsubscribes:

JSON Payload
// n8n JavaScript Code Node: Brevo Deliverability & Suppression Guard
const items = $input.all();
const outputLogs = [];

for (const item of items) {
  const eventType = item.json.event;
  const recipientEmail = item.json.email;
  const bounceReason = item.json.reason || 'N/A';
  
  let actionTaken = 'LOGGED';
  let isHardSuppression = false;
  
  if (eventType === 'hard_bounce' || eventType === 'spam' || eventType === 'unsubscribed') {
    isHardSuppression = true;
    actionTaken = 'ADDED_TO_GLOBAL_SUPPRESSION_LIST';
  }
  
  outputLogs.push({
    json: {
      email: recipientEmail,
      eventType: eventType,
      bounceReason: bounceReason,
      isHardSuppression: isHardSuppression,
      actionTaken: actionTaken,
      processedAt: new Date().toISOString()
    }
  });
}

return outputLogs;

30-Day IP Warmup Pre-Flight & Operational Execution Checklist

Follow this execution checklist to complete your Brevo dedicated IP warmup safely:

  • DNS Record Propagation Check: Confirm SPF, DKIM, and DMARC pass using dig or MXToolbox before sending the first email.
  • Custom Return-Path Verification: Verify mail.yourcompany.com Return-Path header returns HTTP 200 and valid MX points to Brevo.
  • Initial Volume Ramp Schedule: Enforce strict daily cap: Day 1 (50 emails), Day 7 (500 emails), Day 14 (2,000 emails), Day 30 (10,000+ emails).
  • Hard Bounce Threshold Guard: Maintain hard bounce rate strictly below 0.5%. If bounce rate exceeds 1.0%, pause campaign immediately.
  • Spam Complaint Monitoring: Ensure complaint rate remains strictly below 0.02% across Gmail and Outlook Postmaster Tools.

Automated Daily Volume Escalation Node in n8n

To strictly enforce the 30-day warmup ramp without manual campaign adjustments in Brevo, n8n executes an automated volume throttling node. This node reads current campaign day from a database state and dynamically sets the HTTP batch chunk size.

Below is the copy-pasteable n8n JavaScript Throttling Engine:

JSON Payload
// n8n JavaScript Code Node: Dynamic Warmup Schedule Throttler
const items = $input.all();
const out = [];

// 30-Day Automated Sending Cap Map
const WARMUP_SCHEDULE = {
  1: 50, 2: 75, 3: 100, 4: 150, 5: 200, 6: 300, 7: 500,
  8: 750, 9: 1000, 10: 1500, 11: 2000, 12: 2500, 13: 3500, 14: 5000,
  15: 6500, 16: 8000, 17: 10000, 18: 12500, 19: 15000, 20: 20000
};

const currentDay = $node["Get Warmup Day"].json.current_day || 1;
const dailyCap = WARMUP_SCHEDULE[currentDay] || 25000;

for (let i = 0; i < Math.min(items.length, dailyCap); i++) {
  out.push({
    json: {
      ...items[i].json,
      warmupDay: currentDay,
      dailyVolumeCap: dailyCap,
      throttledStatus: 'APPROVED_FOR_BATCH'
    }
  });
}

return out;

Frequently Asked Questions

What is the primary benefit of deploying Brevo Cold Email & IP Warming: Dedicated SMTP Deliverability?

Deploying Brevo Cold Email & IP Warming: Dedicated SMTP Deliverability automates core workflow bottlenecks, eliminates manual data handling, reduces API costs by up to 60%, and ensures reliable end-to-end execution across modern enterprise SaaS and AI infrastructure stacks.

How does this solution handle API rate limits and execution failures?

The workflow implements exponential backoff retry logic, dead-letter error handling queues, and automated alerting nodes to isolate failed payloads and guarantee self-healing execution without manual intervention.

Is this architecture compatible with self-hosted Docker and cloud environments?

Yes, all workflows, Docker Compose manifests, and API integrations are designed for seamless deployment on Vultr Cloud VPS, self-hosted Docker clusters, or cloud-managed orchestration platforms.

In this Article

Ready to automate your agency?

Skip the manual grunt work. Let's build a custom system that runs your business on autopilot 24/7.