Why Folk CRM for Developer Leads
Folk CRM is built for modern GTM teams that value relationship context over rigid pipeline stages. Its flexible contact model — custom fields, groups, enrichment, and a clean API — makes it a natural destination for GitHub developer signals. GitLeads captures developer intent from GitHub (new stars on tracked repos, keyword mentions in issues and PRs) and pushes enriched profiles to Folk via webhook, so your team sees developer leads in the context of your existing Folk workspace.
How GitLeads Sends Leads to Folk
GitLeads does not have a native Folk integration — it uses webhooks. When a signal fires (a new star on your tracked repo, or a keyword match in a GitHub Issue), GitLeads POSTs a JSON payload to your endpoint. You use a lightweight bridge (Make, n8n, Zapier, or a custom webhook receiver) to map the payload fields to Folk's People API.
// GitLeads webhook → Folk CRM bridge (n8n or custom server)
// Step 1: Receive GitLeads webhook
app.post('/webhook/gitleads', async (req, res) => {
const lead = req.body.lead;
// Step 2: Create or update person in Folk via Folk API
await fetch('https://api.folk.app/v2/people', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.FOLK_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
firstName: lead.name?.split(' ')[0] || lead.github_username,
lastName: lead.name?.split(' ').slice(1).join(' ') || '',
email: lead.email ? [{ value: lead.email }] : [],
company: lead.company || '',
customFields: {
github_username: lead.github_username,
github_profile: lead.profile_url,
top_languages: lead.top_languages?.join(', '),
signal_type: req.body.signal_type,
signal_context: req.body.context,
followers: String(lead.followers),
location: lead.location || '',
},
}),
});
res.status(200).json({ ok: true });
});Step-by-Step Setup
- Sign up at gitleads.app and add your first tracked repo or keyword signal
- Create a Folk API key in Folk Settings → Integrations → API
- Build a webhook bridge using n8n, Make, or a serverless function (Cloudflare Workers, Vercel Edge Function)
- In GitLeads, set your webhook URL to your bridge endpoint
- Test with a manual trigger — verify the person appears in your Folk workspace
- Add a Folk group called "GitHub Leads" and auto-assign new contacts to it using Folk's API
Folk Field Mapping for GitHub Leads
- firstName / lastName — parsed from GitLeads lead.name or fallback to GitHub username
- email — from lead.email (populated if GitHub profile has public email)
- company — from lead.company (GitHub profile organization field)
- Custom: github_username — for direct profile lookup
- Custom: signal_type — "stargazer" or "keyword" (segment your pipeline)
- Custom: signal_context — the exact issue/PR text or repo that triggered the signal
- Custom: top_languages — comma-separated (e.g., "TypeScript, Go, Rust")
Using Folk Groups and Views for Developer Segments
Folk's group and view system is ideal for GitHub leads. Create separate groups for "Stargazer Leads" and "Keyword Leads". Within keyword leads, create sub-views filtered by signal_context containing specific terms — for example, filter for contacts where signal_context includes "competitor pricing" for high-intent outreach, or "just deployed" for expansion conversations. Folk's custom field filtering makes this straightforward once data is flowing in.