Brevo (formerly Sendinblue) is a popular CRM and email automation platform used by thousands of B2B SaaS teams — especially in Europe. If you sell developer tools and want to capture GitHub buying signals and route them directly into Brevo contacts and automation workflows, GitLeads makes this a one-time setup.
What GitHub signals does GitLeads capture?
- New stargazers on your repo or competitor repos (buying intent from developers who discovered your product)
- Keyword mentions in GitHub Issues, PRs, and Discussions (e.g. "looking for X alternative", "evaluating Y")
- Code and commit references matching tracked keywords
Each lead is enriched with GitHub username, name, company, bio, location, follower count, and top programming languages — giving Brevo enough context to segment and personalize campaigns effectively.
Why send GitHub leads to Brevo?
Brevo combines contact management, email automation, transactional email, and a CRM in one platform. Routing GitHub intent signals into Brevo lets you: trigger welcome sequences the moment a developer stars your repo, segment by language (e.g. Python vs. TypeScript users), and track email engagement alongside CRM deal stages — all without exporting a CSV.
How to connect GitLeads to Brevo
- Sign up at gitleads.app and add your repo or keyword signals.
- In GitLeads dashboard → Integrations → Brevo.
- Paste your Brevo API key (Marketing API key from Brevo Settings → API & SMTP).
- Map fields: GitLeads enrichment fields → Brevo contact attributes (FIRSTNAME, LASTNAME, GITHUB_USERNAME, COMPANY, etc.).
- Choose a default list or let GitLeads create a "GitHub Signals" list automatically.
- Optionally map signals to Brevo automation triggers — e.g. "stargazer" signal starts the "GitHub Warm Lead" workflow.
Brevo automation workflow example
A typical workflow for developer tool companies looks like this:
- Developer stars your GitHub repo → GitLeads captures the signal.
- GitLeads creates/updates the Brevo contact with enriched GitHub data.
- Brevo automation triggers a 3-email onboarding sequence ("You were just looking at our GitHub — here's how to get started in 5 minutes").
- If no email is clicked in 7 days, a Slack notification fires to the sales rep for manual follow-up.
- Converted contacts are tagged "GitHub Source" in Brevo CRM for pipeline attribution.
GitLeads webhook → Brevo API (code example)
If you want full control, use the GitLeads webhook to push directly to the Brevo Contacts API:
import type { NextApiRequest, NextApiResponse } from 'next';
const BREVO_API_KEY = process.env.BREVO_API_KEY!;
interface GitLeadsPayload {
signal: 'stargazer' | 'keyword';
login: string;
name?: string;
email?: string;
company?: string;
bio?: string;
location?: string;
followers: number;
topLanguages: string[];
signalContext?: string;
}
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method !== 'POST') return res.status(405).end();
const lead: GitLeadsPayload = req.body;
const contact = {
email: lead.email ?? `${lead.login}@noemail.invalid`,
attributes: {
FIRSTNAME: lead.name?.split(' ')[0] ?? lead.login,
LASTNAME: lead.name?.split(' ').slice(1).join(' ') ?? '',
GITHUB_USERNAME: lead.login,
COMPANY: lead.company ?? '',
LOCATION: lead.location ?? '',
TOP_LANGUAGES: lead.topLanguages.join(', '),
GITHUB_FOLLOWERS: lead.followers,
SIGNAL_TYPE: lead.signal,
SIGNAL_CONTEXT: lead.signalContext ?? '',
},
listIds: [parseInt(process.env.BREVO_LIST_ID ?? '1')],
updateEnabled: true,
};
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.ok) {
const err = await response.text();
console.error('Brevo error:', err);
return res.status(500).json({ error: err });
}
return res.status(200).json({ success: true });
}Field mapping reference
- GitLeads login → Brevo GITHUB_USERNAME (custom attribute)
- GitLeads name → Brevo FIRSTNAME + LASTNAME
- GitLeads email → Brevo email (primary identifier)
- GitLeads company → Brevo COMPANY
- GitLeads topLanguages → Brevo TOP_LANGUAGES (for segmentation)
- GitLeads signal type → Brevo custom attribute for workflow branching
Segment GitHub leads in Brevo
With custom attributes populated, you can build Brevo segments like: "TOP_LANGUAGES contains Python AND SIGNAL_TYPE = stargazer AND GITHUB_FOLLOWERS > 100" — giving you a list of high-signal Python developers who actively explored your repo. Pair this with a targeted campaign about your Python SDK.