Brevo (formerly Sendinblue) is an all-in-one marketing platform with email, SMS, chat, and CRM. Connecting InstantDM to Brevo automatically adds Instagram DM leads to your contact lists, triggers email automations, and can even send SMS follow-ups - all from a single platform.
Why Connect InstantDM to Brevo?
- Email + SMS in one platform - send email sequences and SMS follow-ups from the same tool
- Generous free tier - 300 emails/day on the free plan with unlimited contacts
- Transactional emails - send instant confirmation emails when a lead is captured
- Built-in CRM - track deals alongside email campaigns
- Budget-friendly - one of the most affordable email marketing platforms at scale
Common Use Cases
- Add Instagram DM leads to a Brevo contact list
- Trigger a welcome email automation when a new lead arrives
- Send an SMS follow-up after capturing a phone number via DM
- Create a deal in Brevo's CRM from Instagram leads
- Segment contacts by Instagram campaign or flow
What You'll Need
| Requirement | Details |
|---|---|
| InstantDM account | Trendsetter, Trendsetter Pro, or any Multi plan |
| Brevo account | Free or paid plan |
| InstantDM API key | Found at Settings → API in your InstantDM dashboard |
| Brevo API key | Found at Settings → SMTP & API → API Keys in Brevo |
Method 1: Via Make.com (Recommended)
Step 1: Set Up the Webhook
Follow Steps 1-4 in the Make.com integration guide to create a webhook scenario.
Step 2: Add a Brevo Module
- After the webhook trigger, add a Filter:
eventequalsflow_completed. - Click "+" and search for Brevo (or Sendinblue).
- Select Create/Update a Contact.
- Connect your Brevo account.
Step 3: Map Fields
| Brevo Field | Make.com Mapping |
|---|---|
{{data.response_variables.email}} | |
| First Name (attribute) | {{data.response_variables.full_name}} |
| Phone (attribute) | {{data.response_variables.phone}} |
| List IDs | Select your target list |
Step 4: Test and Activate
- Run once in Make.com.
- Trigger a test event from InstantDM.
- Check Brevo - the contact should appear in your list.
- Activate the scenario.
Method 2: Via Zapier
Step 1: Create the Zap
Follow the Zapier integration guide to set up a webhook trigger.
Step 2: Add Brevo Action
- Add a Filter:
eventexactly matchesflow_completed. - Add Brevo → Create or Update Contact.
- Connect your Brevo account.
- Map email, attributes, and list.
Step 3: Test and Activate
- Test with sample data.
- Verify in Brevo.
- Turn the Zap on.
Method 3: Direct API Integration
Step 1: Get Your Brevo API Key
- In Brevo, go to Settings → SMTP & API → API Keys.
- Create a new API key or copy an existing one.
- Get your List ID: go to Contacts → Lists and note the list ID.
Step 2: Build a Webhook Receiver
const express = require('express');
const app = express();
app.use(express.json());
const BREVO_API_KEY = process.env.BREVO_API_KEY;
const LIST_ID = 2; // Your Brevo list ID
app.post('/instantdm-webhook', async (req, res) => {
const { event, data } = req.body;
if (event !== 'flow_completed' || !data.response_variables?.email) {
return res.status(200).json({ status: 'skipped' });
}
const contact = {
email: data.response_variables.email,
attributes: {
FIRSTNAME: data.response_variables.full_name || '',
SMS: data.response_variables.phone || '',
INSTAGRAM: data.username,
FLOW_NAME: data.flow_name,
INTEREST: data.response_variables.interest || '',
},
listIds: [LIST_ID],
updateEnabled: true, // Update if contact exists
};
try {
const response = await fetch('https://api.brevo.com/v3/contacts', {
method: 'POST',
headers: {
'api-key': BREVO_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify(contact),
});
if (response.status === 201) {
const result = await response.json();
res.status(200).json({ status: 'created', id: result.id });
} else if (response.status === 204) {
res.status(200).json({ status: 'updated' });
} else {
const error = await response.json();
res.status(500).json({ status: 'error', details: error });
}
} catch (error) {
res.status(500).json({ status: 'error', message: error.message });
}
});
app.listen(3000);
Sending a Transactional Email on Lead Capture
Brevo excels at transactional emails - send an instant confirmation when a lead is captured.
Step 1: Create an Email Template in Brevo
- Go to Transactional → Templates.
- Create a template with dynamic variables:
Hi {{ params.FIRSTNAME }},
Thanks for reaching out on Instagram! Here's the info you requested about {{ params.INTEREST }}.
[Your content here]
- Note the Template ID.
Step 2: Send the Email via API
Add this after creating the contact:
// Send transactional email
await fetch('https://api.brevo.com/v3/smtp/email', {
method: 'POST',
headers: {
'api-key': BREVO_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
templateId: 1, // Your template ID
to: [{ email: data.response_variables.email, name: data.response_variables.full_name }],
params: {
FIRSTNAME: data.response_variables.full_name,
INTEREST: data.response_variables.interest,
INSTAGRAM: data.username,
},
}),
});
SMS Follow-Up
If your DM flow captures a phone number, Brevo can send an SMS follow-up.
// Send SMS via Brevo
await fetch('https://api.brevo.com/v3/transactionalSMS/sms', {
method: 'POST',
headers: {
'api-key': BREVO_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
type: 'transactional',
sender: 'YourBrand',
recipient: data.response_variables.phone,
content: `Hi ${data.response_variables.full_name}! Thanks for connecting on Instagram. Check your email for the info you requested.`,
}),
});
Note: SMS requires a Brevo paid plan and phone number verification. Check Brevo's SMS pricing for your region.
Contact Attributes
Creating Custom Attributes
- Go to Contacts → Settings → Contact Attributes.
- Add attributes:
| Attribute Name | Type | Purpose |
|---|---|---|
INSTAGRAM | Text | Instagram username |
FLOW_NAME | Text | DM flow name |
INTEREST | Text | Stated interest |
LEAD_SOURCE | Text | Always "Instagram DM" |
Email Automations
Welcome Sequence
- Go to Automations → Create an Automation.
- Trigger: Contact added to list → select your Instagram leads list.
- Steps:
- Send email: Welcome + promised content
- Wait: 1 day
- Send email: Follow-up value
- Wait: 3 days
- Send email: Offer or CTA
Conditional Branching
Use Brevo's automation conditions to send different emails based on attributes:
- If
INTERESTequals "pricing" → send pricing email - If
INTERESTequals "demo" → send demo booking link - Default → send general welcome
Troubleshooting
| Issue | Solution |
|---|---|
| Contact not appearing | Check the API response. Verify the API key and list ID. Ensure the email format is valid. |
| Attributes empty | Attribute names must match exactly (case-sensitive). Create them in Brevo first. |
| API returning 400 | Check the request body format. Ensure listIds is an array of numbers, not strings. |
| Duplicate contacts | Set updateEnabled: true in the API call. This updates existing contacts instead of returning an error. |
| Transactional email not sent | Check that the template ID is correct and the template is active. Verify your Brevo sending domain is configured. |
| SMS not delivered | Verify the phone number format (international format with country code). Check your Brevo SMS credits. |
Frequently Asked Questions
How does Brevo's free plan work with InstantDM?
Brevo's free plan allows unlimited contacts and 300 emails per day. There's no limit on API calls for creating contacts. This makes it one of the most generous free tiers for InstantDM integration.
Can I send both email and SMS from Brevo?
Yes. Brevo supports email, SMS, and WhatsApp from a single platform. If your DM flow captures both email and phone, you can send a welcome email and an SMS confirmation in the same automation.
How does Brevo compare to Mailchimp?
Brevo is more affordable at scale (pricing is based on emails sent, not contacts stored). It also includes SMS and transactional email on all plans. Mailchimp has a larger template library and more third-party integrations. For InstantDM, both work well - choose based on your existing stack and budget.
Does Brevo have a CRM?
Yes. Brevo includes a basic CRM (Sales platform) on paid plans. You can create deals from Instagram leads and track them through a pipeline, similar to Pipedrive.
What's Next
- Set up Klaviyo if you're in e-commerce.
- Connect to Mailchimp for a widely-used alternative.
- Read the ActiveCampaign guide for advanced automation.
- Build a Custom AI Agent to qualify leads before adding them to your list.
- Explore the full API docs at instantdm.com/instagram-api-docs.