Why Push GitHub Leads to Listrak
Listrak is an email and SMS marketing platform with strong subscriber list management, transactional email, and automation workflows. If your team already uses Listrak for customer communications, adding GitHub-sourced developer leads to your Listrak lists lets you nurture them through existing infrastructure without switching platforms.
GitLeads captures developer buying signals from GitHub — new stars on your tracked repos, competitor repos, and keyword mentions in Issues/PRs/Discussions — and enriches each signal with a full lead profile including name, email (when public), GitHub username, company, bio, top languages, and the specific signal that triggered the capture. Pushing those leads to Listrak means your email marketing workflows can immediately activate on fresh developer intent.
Integration Architecture: GitLeads to Listrak
GitLeads does not have a native Listrak connector, but the integration is straightforward via GitLeads webhooks and the Listrak REST API. There are two implementation paths:
- Direct webhook: GitLeads sends lead data to a serverless function (Vercel, AWS Lambda, Cloudflare Worker) that calls the Listrak API to add the subscriber
- Via Zapier or Make: GitLeads webhook triggers a Zapier/Make flow that calls the Listrak "Add or Update Subscriber" action — no-code path
- Via n8n: GitLeads webhook to n8n HTTP trigger to Listrak API node — self-hosted option
Step 1: Configure GitLeads Webhook
In your GitLeads dashboard, navigate to Integrations → Webhooks. Create a new webhook with your endpoint URL. GitLeads will POST the following JSON payload for each new lead:
{
"event": "lead.captured",
"signal_type": "stargazer",
"repo": "your-org/your-repo",
"captured_at": "2026-05-07T10:30:00Z",
"lead": {
"github_username": "devuser123",
"name": "Alex Developer",
"email": "alex@company.io",
"company": "Acme Corp",
"bio": "Platform engineer. Go, Kubernetes, Postgres.",
"location": "San Francisco, CA",
"followers": 342,
"top_languages": ["Go", "TypeScript", "Python"],
"profile_url": "https://github.com/devuser123"
}
}Step 2: Add Subscriber to Listrak via API
The Listrak REST API accepts subscriber additions at POST /v1/Lists/{listId}/Contacts. Obtain a bearer token using your Listrak API client ID and secret, then call the contacts endpoint:
async function getListrakToken(clientId: string, clientSecret: string): Promise<string> {
const res = await fetch('https://auth.listrak.com/OAuth2/Token', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
grant_type: 'client_credentials',
client_id: clientId,
client_secret: clientSecret,
}),
});
const data = await res.json();
return data.access_token;
}
export async function handleGitLeadsWebhook(payload: GitLeadsPayload) {
const { lead, signal_type, repo } = payload;
if (!lead.email) return { skipped: true, reason: 'no_email' };
const token = await getListrakToken(
process.env.LISTRAK_CLIENT_ID!,
process.env.LISTRAK_CLIENT_SECRET!
);
const listId = process.env.LISTRAK_LIST_ID!;
await fetch(`https://api.listrak.com/email/v1/Lists/${listId}/Contacts`, {
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
emailAddress: lead.email,
subscribeStatus: 'Subscribed',
overrideUnsubscribe: false,
segmentationFieldValues: [
{ segmentationFieldId: +process.env.LISTRAK_FIELD_GITHUB_USERNAME!, value: lead.github_username },
{ segmentationFieldId: +process.env.LISTRAK_FIELD_COMPANY!, value: lead.company ?? '' },
{ segmentationFieldId: +process.env.LISTRAK_FIELD_SIGNAL!, value: `${signal_type}:${repo}` },
{ segmentationFieldId: +process.env.LISTRAK_FIELD_LANGUAGES!, value: lead.top_languages.join(', ') },
],
}),
});
return { success: true, email: lead.email };
}Step 3: Create Listrak Segmentation Fields
Before inserting subscribers, create custom segmentation fields in Listrak to store GitHub-specific data. In Listrak admin, go to Lists → [Your List] → Segmentation Fields and create:
- github_username (String) — stores GitHub username for personalization tokens
- company (String) — company from GitHub profile bio
- signal_source (String) — stores "stargazer:repo-name" or "keyword:keyword-value" for segmentation
- top_languages (String) — comma-separated primary languages for content targeting
- github_followers (Number) — follower count for lead scoring in automation rules
Step 4: Trigger Listrak Automation Workflows
With GitHub leads flowing into Listrak as subscribers, use Listrak's automation engine to trigger workflows:
- Welcome series: trigger on new subscriber with signal_source contains "stargazer" — send 3-email educational sequence
- Competitor awareness: filter by signal_source containing a competitor repo name — send competitive positioning email
- High-intent fast-track: filter by github_followers > 500 — trigger personal email from founder instead of automation
- Language-specific nurture: segment by top_languages = "Go" → Go-specific content; "Python" → Python-specific docs
No-Code Path: Zapier to Listrak
If you prefer no-code, GitLeads Zapier integration handles the trigger side:
- Create a new Zap. Trigger: Webhooks by Zapier → Catch Hook, then point GitLeads webhook to that URL
- Add a Filter step: only continue if "lead.email" is present
- Action: Listrak → Add or Update Subscriber, map email and segmentation fields from the GitLeads payload
- Optional: add a second action to post a Slack notification for high-follower leads (500+)