Why Route GitHub Leads Into Maropost
Maropost is a unified marketing platform built for high-volume email and journey automation. If your team already sends campaigns through Maropost, routing GitLeads signal captures directly into Maropost means every developer who stars a tracked repo or mentions your keywords on GitHub automatically enters your nurture flow — no manual CSV imports, no stale contact lists.
How the Integration Works
GitLeads detects new stargazers and keyword matches in real time. For each matched lead, GitLeads sends an enriched payload — name, email, GitHub username, company, top languages, signal context — to your Maropost account via the Maropost Contacts API or through a webhook-to-Maropost bridge (Zapier, Make, n8n).
- GitLeads detects a new stargazer on a tracked repo (your product or a competitor repo)
- GitLeads enriches the lead with GitHub profile data (company, languages, followers)
- GitLeads sends the payload to your configured webhook or integration destination
- The integration creates or updates a contact in Maropost and enrolls them in a journey
Setting Up the GitLeads → Maropost Connection
Option 1: Via GitLeads Webhook + Maropost Contacts API
// Receive GitLeads webhook and create Maropost contact
import crypto from 'crypto';
import axios from 'axios';
export async function POST(req: Request) {
const body = await req.json();
// Verify GitLeads webhook signature
const signature = req.headers.get('x-gitleads-signature');
const expected = crypto
.createHmac('sha256', process.env.GITLEADS_WEBHOOK_SECRET!)
.update(JSON.stringify(body))
.digest('hex');
if (signature !== `sha256=${expected}`) {
return new Response('Unauthorized', { status: 401 });
}
const lead = body.lead;
// Create or update contact in Maropost via Contacts API
await axios.post(
`https://api.maropost.com/accounts/${process.env.MAROPOST_ACCOUNT_ID}/contacts.json`,
{
api_key: process.env.MAROPOST_API_KEY,
contact: {
email: lead.email,
first_name: lead.name?.split(' ')[0] ?? lead.github_username,
last_name: lead.name?.split(' ').slice(1).join(' ') ?? '',
custom_field: {
github_username: lead.github_username,
company: lead.company ?? '',
top_language: lead.top_languages?.[0] ?? '',
signal_type: body.signal_type,
signal_repo: body.repo ?? '',
github_profile: lead.profile_url,
follower_count: String(lead.followers ?? 0),
},
},
}
);
return new Response('OK');
}Option 2: Via Zapier or Make
- In GitLeads, go to Integrations and create a Webhook destination
- Copy the webhook URL into a Zapier or Make HTTP trigger
- Map lead fields (email, name, company) to Maropost "Create/Update Contact" action
- Add a "Add Contact to List" step to enroll in the correct Maropost list
- Optionally add a "Subscribe to Journey" action to trigger automated email sequences
Useful Maropost Custom Fields for GitHub Leads
- github_username — for personalization tokens in email copy
- top_language — lets you segment Python vs Go vs TypeScript developers for relevant messaging
- signal_type — "stargazer" vs "keyword" for different messaging angles
- signal_repo — which repo triggered the lead (useful for competitor intel)
- follower_count — proxy for seniority; prioritize leads with 200+ followers
Developer Email Journeys in Maropost
Once GitHub leads are flowing into Maropost, build journeys that speak to developers. Start with value: a technical guide, a case study from a similar stack, or a free tool relevant to their signal. Avoid generic "book a demo" asks in the first email — developers tune those out immediately.