1. Opening Problem Statement
Meet Sarah, a busy sales manager at a tech startup that heavily relies on GitHub for collaborative development. Whenever someone forks their GitHub repositories, Sarah wants to capture and nurture these potential leads automatically in their Pipedrive CRM. But manually checking GitHub notifications and copying user details into Pipedrive is tedious and error-prone. She loses hours each week, risking missed opportunities and inconsistent lead data.
Specifically, Sarah could be missing dozens of leads every month due to slow manual updates. Worse, incorrect data entry can derail the sales pipeline. This workflow solves exactly Sarah’s problem by automating this entire lead capture process, allowing her to focus on closing deals.
2. What This Automation Does
This workflow connects GitHub and Pipedrive to automate lead creation triggered by repository forks. When a GitHub repo fork event occurs, it does the following:
- Captures the user information who forked the repo by calling GitHub’s API.
- Searches Pipedrive for an existing person with that user’s email.
- If the person exists, reuses their Pipedrive person ID.
- If not, creates a new person in Pipedrive with the GitHub user’s name and email.
- Creates a new lead in Pipedrive associated with that person, titled dynamically with the repo name and user name.
- Adds a Pipedrive note with a link to the GitHub user’s profile for reference.
By automating these, Sarah saves countless hours weekly, eliminates human errors from manual data entry, and keeps Pipedrive leads fresh and properly linked.
3. Prerequisites ⚙️
- n8n account (self-hosting supported, for advanced users consider hosting options like Hostinger)
- GitHub account and repository access with repo fork webhook configured
- Pipedrive CRM account with API access credentials
- GitHub API credentials set up in n8n
- Pipedrive API credentials set up in n8n
4. Step-by-Step Guide
Step 1: Set Up GitHub Fork Trigger
In n8n, add the GitHub Trigger node (type: githubTrigger) from the node panel. Configure it to monitor the specific repository by entering the owner (e.g., “John-n8n”) and repository name (e.g., “DemoRepo”). Select the event type fork.
You should see the webhook URL generated by n8n – copy this and add it as a webhook in your GitHub repository settings under Webhooks.
After saving, perform a test by forking the repo to trigger the webhook. You should see payloads appearing in the node execution log.
Common mistake: Forgetting to add the webhook URL to GitHub or selecting incorrect repository or event type may prevent triggering.
Step 2: Retrieve Forking User Information
Connect the GitHub Trigger node to an HTTP Request node (type: httpRequest) to fetch detailed user info. Use the expression for URL: {{$json["body"].sender.url}}.
Authenticate this request with your GitHub API credential in n8n. This will pull email and other details required later.
Expected output is a JSON object containing the user’s profile information.
Common mistake: Missing or invalid GitHub API credentials will cause 401 Unauthorized errors.
Step 3: Search Pipedrive for Existing Person by Email
Next, add a Pipedrive node (type: pipedrive) set to search person operation, searching by email.
Use expression to map email from HTTP Request node: {{$json["email"]}}.
This step checks if the GitHub user already exists as a contact in Pipedrive.
Look for an empty or non-empty response. n8n allows outputting data regardless with the alwaysOutputData option, keep that on to handle both cases.
Common mistake: Not mapping the email correctly will yield no results.
Step 4: Check if Person Exists Using an IF Node
Add an IF node (type: if) to check if the person search returned a non-empty name field. Set condition: Value 1 = expression {{$json["name"]}}, Condition = “isNotEmpty”.
This routes the workflow to either use the existing person or create a new one.
Common mistake: Incorrect condition will misroute the data.
Step 5: For Existing Persons, Set Their Pipedrive ID
Connect the IF node’s “true” output to a Set node (type: set) to save the person’s ID from the search results into a new field called PipedrivePersonId.
Use expression: {{$json["id"]}}.
This allows subsequent nodes to reference the person properly.
Step 6: For New Users, Create a New Person in Pipedrive
Connect the IF node’s “false” output to a Create person Pipedrive node (type: pipedrive), with resource set to person.
Map the person’s name from GitHub JSON data: {{$node["On fork"].json["body"].forkee.owner.login}}, and add email from the HTTP Request node: {{$node["Get Github user information"].email}}.
This adds a new contact to your CRM if none was found.
Common mistake: Missing email or name fields can cause creation failures.
Step 7: Set the New Person’s ID
Link the Create person node output to another Set node where you again save the newly created person’s ID as PipedrivePersonId.
This ensures uniform reference for the rest of the workflow.
Step 8: Create a Lead in Pipedrive
Next, add a Create lead Pipedrive node (type: pipedrive) connecting from the Set node(s) holding the person ID.
Configure the lead title dynamically with expressions like:
Repo '{{$node["On fork"].json["body"]["repository"]["full_name"]}}' forked by {{$json["name"]}}
Set person_id to the variable {{$json["PipedrivePersonId"]}} and associateWith to “person”.
This step logs an actionable lead corresponding to the fork event in your CRM.
Common mistake: Forgetting to associate the lead with the person causes disconnected data.
Step 9: Add a Pipedrive Note with GitHub User URL
Finally, connect the output of the create lead node to a Create note Pipedrive node (type: pipedrive).
Add a note content: Github user url: {{ $node["On fork"].json["body"].sender.html_url }} to link the lead visually to the GitHub profile.
Configure the note to associate with the lead via lead_id set from the lead creation output.
5. Customizations ✏️
- Customize Lead Title Format: In the Create lead node, change the
titleexpression to reflect your internal lead naming convention, for example adding fork date or repo description. - Add More GitHub Data to Person: In the Create person node, include additional fields such as GitHub bio, location, or followers count (available from the HTTP Request node JSON) to enrich CRM data.
- Filter by Repository Name: Use an additional IF node after GitHub Trigger to trigger leads only for specific repos or fork types, improving signal-to-noise ratio.
- Send Notification on New Lead: Add an email or Slack node after lead creation to notify your sales team immediately about the new potential client.
- Log Fork Events in a Spreadsheet: Add Google Sheets node to log every fork and lead information for easy tracking and auditing.
6. Troubleshooting 🔧
- Problem: “Webhook not triggering on GitHub fork event”
Cause: Webhook URL not properly registered or wrong repository/event selected.
Solution: Double-check webhook settings on GitHub, ensure URL is exact, event type “fork” chosen, and webhook is active. - Problem: “HTTP Request returning 401 Unauthorized”
Cause: Invalid or missing GitHub API credentials in n8n.
Solution: Reconfigure GitHub credentials in n8n, verify token permissions, and test connection. - Problem: “Person search always returns empty”
Cause: Email field mapping error or inconsistent data.
Solution: Verify the email extracted from GitHub user information matches Pipedrive search field; use debug logs to inspect payloads. - Problem: “New person creation fails”
Cause: Missing required fields like name or email.
Solution: Confirm all required fields are mapped correctly; use default fallbacks if necessary.
7. Pre-Production Checklist ✅
- Confirm GitHub webhook is correctly added and triggers on repo fork event.
- Ensure all API credentials (GitHub, Pipedrive) are correctly configured and tested.
- Run manual test by forking the repository and watch the data flow through the workflow.
- Verify person search logic is functioning by checking logs for correct email matching.
- Confirm leads and notes appear in Pipedrive with correct associations.
- Create backup or export of current Pipedrive data before starting automation (optional but recommended).
8. Deployment Guide
Once tested, activate the workflow in n8n by clicking Activate in the workflow editor.
Monitor executions from the n8n dashboard to ensure events trigger successfully.
Set up alerts or logs for failed runs for quick troubleshooting.
You can export the workflow JSON for sharing or backup.
9. FAQs
- Can I use other CRM tools instead of Pipedrive?
Yes, but you’ll need to adjust the Pipedrive-specific nodes to corresponding API calls or nodes for other CRMs. - Will this consume GitHub API rate limits?
Yes, each fork triggers an HTTP request for user info. Consider GitHub API limits and use caching or batch processing if needed. - Is my data secure?
n8n runs workflows in your environment and uses secured API credentials. Ensure your environment is secure. - Can this workflow handle large volumes of forks?
It depends on your n8n instance capacity and API limits. For high volume, consider queueing mechanisms.
10. Conclusion
By following this guide, you’ve automated the crucial step of capturing GitHub repo forks into actionable leads in Pipedrive. Sarah’s workload is drastically reduced, saving hours per week and improving lead accuracy.
This specific workflow tightly integrates GitHub fork events with Pipedrive lead management, a powerful edge for any tech sales team leveraging open-source community activity.
Next, consider automating follow-up emails to new leads, syncing leads with a marketing platform, or integrating Slack alerts for immediate sales notifications.
You now have a solid foundation to build even more comprehensive sales automation with n8n.