Why Salesmate Users Need GitHub Signal Data
Salesmate is a modern CRM built for fast-moving sales teams — it supports custom pipelines, sequences, and automation workflows that make it ideal for developer-focused GTM motions. The missing layer is intent data: knowing which developers are actively evaluating tools in your space right now, before they fill out a form.
GitLeads solves this by monitoring GitHub for developer buying signals — new stars on your tracked repos, keyword mentions in Issues and PRs — and pushing enriched lead profiles into Salesmate the moment the signal fires.
What Developer Leads Look Like in Salesmate
- Contact created with GitHub username, name, email (if public), company, bio, and location
- Custom field: "Signal Type" — stargazer or keyword match
- Custom field: "Signal Context" — which repo was starred or which keyword was matched
- Custom field: "GitHub Followers" — for lead scoring
- Custom field: "Top Languages" — for persona segmentation
- Deal created automatically when follower count exceeds threshold
- Activity logged with signal timestamp and context
Setting Up the GitLeads → Salesmate Integration
GitLeads connects to Salesmate via its REST API. Use the webhook destination in GitLeads to forward lead payloads to a thin middleware layer that calls the Salesmate contact and deal endpoints:
// Middleware: GitLeads webhook → Salesmate API
import express from 'express';
const app = express();
app.use(express.json());
const SALESMATE_API_KEY = process.env.SALESMATE_API_KEY!;
const SALESMATE_DOMAIN = process.env.SALESMATE_DOMAIN!; // e.g. yourcompany.salesmate.io
app.post('/webhook/gitleads', async (req, res) => {
const { lead, signal_type, signal_context, repo } = req.body;
const contactRes = await fetch(
`https://${SALESMATE_DOMAIN}/apis/v3/contacts`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': SALESMATE_API_KEY,
'x-linkname': SALESMATE_DOMAIN,
},
body: JSON.stringify({
name: lead.name || lead.github_username,
email: lead.email,
company: lead.company,
website: lead.profile_url,
description: lead.bio,
'cf-signal-type': signal_type,
'cf-signal-context': signal_context,
'cf-github-followers': lead.followers,
'cf-top-languages': (lead.top_languages || []).join(', '),
tags: [`github_${signal_type}`, repo.replace('/', '_')],
}),
}
);
const contact = await contactRes.json();
// Create a deal for high-value leads
if (lead.followers > 500) {
await fetch(`https://${SALESMATE_DOMAIN}/apis/v3/deals`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': SALESMATE_API_KEY,
'x-linkname': SALESMATE_DOMAIN,
},
body: JSON.stringify({
title: `${lead.github_username} — ${signal_type} on ${repo}`,
status: 'Open',
pipeline: 'GitHub Inbound',
contactId: contact.data.id,
description: signal_context,
}),
});
}
res.json({ ok: true });
});
app.listen(3000);Salesmate Automation Workflows for GitHub Leads
- Trigger a Salesmate sequence when "Signal Type" = "keyword" — these are higher intent than passive stargazers
- Auto-assign contacts to the right rep based on "Top Languages" field (Python → ML rep, TypeScript → DevTools rep)
- Create a deal automatically when GitHub followers > 1000 — likely developer advocates or engineering leads
- Use Salesmate email sequences to send technical onboarding content to stargazers within 24 hours
- Tag contacts by repo cluster for targeted product messaging
Alternative: Connect via Zapier or Make
GitLeads also supports Zapier and Make (formerly Integromat), both of which have native Salesmate connectors. If you prefer no-code, create a Zap: GitLeads Webhook → Salesmate Create Contact → Salesmate Create Deal. This covers the core flow without writing middleware.