Push GitHub Leads to Userlist

Push developer leads captured from GitHub into Userlist.com using the GitLeads webhook. Trigger behavioral SaaS email sequences from real GitHub buying signals automatically.

Published: May 11, 2026Updated: May 11, 20266 min read

Why Userlist Is the Right Email Tool for Developer-Led Sales

Userlist is a behavioral email and in-app messaging platform built specifically for SaaS companies. Unlike generic email tools, Userlist focuses on user and company-level segmentation, lifecycle campaigns, and event-triggered automation — the features that matter when your buyers are developers who evaluate tools, sign up for trials, and make decisions over weeks or months.

GitLeads captures developer buying signals from GitHub — new stargazers on tracked repos, keyword mentions in issues and PRs — and pushes enriched lead profiles to your sales stack via webhook. Connecting GitLeads to Userlist lets you trigger behavioral email sequences the moment a developer shows intent on GitHub, before they ever visit your website or sign up.

How the Integration Works

GitLeads does not have a native Userlist connector, but the webhook output maps cleanly to the Userlist Users API. When GitLeads captures a new GitHub signal, it fires a webhook with lead data — name, email, GitHub username, signal context, bio, company, top languages. You pipe that payload into Userlist using a lightweight webhook receiver or a no-code tool like Make or n8n.

// Webhook receiver: map GitLeads payload to Userlist user
import express from 'express';

const app = express();
app.use(express.json());

app.post('/webhook/gitleads', async (req, res) => {
  const lead = req.body;

  // POST to Userlist Users API
  await fetch('https://push.userlist.com/users', {
    method: 'POST',
    headers: {
      'Authorization': `Push ${process.env.USERLIST_PUSH_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      identifier: lead.githubUsername || lead.email,
      email: lead.email,
      properties: {
        name: lead.name,
        github_username: lead.githubUsername,
        github_bio: lead.bio,
        company: lead.company,
        location: lead.location,
        followers: lead.followers,
        top_languages: lead.topLanguages?.join(', '),
        signal_type: lead.signalType,       // 'star' | 'keyword'
        signal_context: lead.signalContext, // repo name or keyword match
        signal_at: new Date().toISOString(),
      },
    }),
  });

  res.sendStatus(200);
});

Triggering Userlist Campaigns from GitHub Signals

Once a lead exists in Userlist as a user with GitHub signal properties, you can trigger campaigns based on those properties:

  • Trigger "competitor evaluation" campaign when signal_type = star AND signal_context = competitor repo name
  • Trigger "integration interest" campaign when signal_context contains your product's keyword or integration name
  • Trigger "high-intent outreach" campaign for leads with followers > 500 (influential developers)
  • Trigger "devrel engagement" campaign for leads whose top_languages match your primary SDK language
  • Segment by company to apply Userlist's company-level messaging to all developers from the same organization

Using Make or n8n Instead of Custom Code

If you prefer no-code, configure GitLeads to send webhook events to a Make scenario or n8n workflow. In Make: use a Webhook module to receive the GitLeads payload, then an HTTP module to POST to https://push.userlist.com/users with your Push key. In n8n: use the Webhook node, transform the data with a Code node, then use the HTTP Request node to call Userlist.

Userlist Company-Level Segmentation from GitHub

Userlist supports both user-level and company-level objects. If a GitLeads webhook includes a company field (extracted from the GitHub user profile), you can also create or update a company record in Userlist simultaneously. This enables account-based messaging: when multiple engineers from the same company star your repo or mention your product, Userlist can detect the pattern and escalate the account to sales.

// Also create/update Userlist company when company is known
if (lead.company) {
  await fetch('https://push.userlist.com/companies', {
    method: 'POST',
    headers: {
      'Authorization': `Push ${process.env.USERLIST_PUSH_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      identifier: lead.company.toLowerCase().replace(/\s+/g, '-'),
      name: lead.company,
      properties: {
        github_signal_count: 1, // increment in production
        last_signal_at: new Date().toISOString(),
      },
    }),
  });
}

What Userlist Receives from GitLeads

  • Name and email (when public on GitHub profile)
  • GitHub username and profile URL for context
  • Signal type: "star" (new star on tracked repo) or "keyword" (mention in issue/PR/discussion)
  • Signal context: repo name or the keyword matched — gives email subject line material
  • Bio and company: pre-enriched for Userlist company segmentation
  • Top languages: used to personalize copy (Python SDK vs Go SDK vs JavaScript SDK)
  • Followers count: proxy for developer influence and network reach
GitLeads captures GitHub developer signals and pushes enriched profiles to Userlist, HubSpot, Clay, Slack, and 15+ other tools via webhook. We do not send emails — we find the leads and your Userlist campaigns handle the outreach. Start free at [gitleads.app](https://gitleads.app). Related: [push GitHub leads to Customer.io](/blog/push-github-leads-to-customer-io), [push GitHub leads to Loops](/blog/push-github-leads-to-loops), [push GitHub leads to Intercom](/blog/push-github-leads-to-intercom).

Want more like this? Get the weekly developer lead playbook.

No spam. 5 emails over 2 weeks. Unsubscribe anytime.

Related Articles

How to Find Leads on GitHub: The Complete Guide (2026)
10 min read
GitHub Leads vs LinkedIn Leads: When to Use Which (2026)
9 min read
GDPR Compliance for GitHub Lead Scraping: What You Must Know
8 min read