Zapier
What this Zap does: When a new LinkedIn connection request is accepted in HeyReach, this Zap automatically enriches the prospect with FullEnrich to retrieve their professional email and phone number. Your LinkedIn connections are instantly ready for outreach. The Zap uses 2 steps: HeyReach Connection Request Accepted → FullEnrich Enrich Contact.

Use this Zap
1. Open the Zap template
Click the Use this Zap button above to open the pre-built Zap in Zapier. It contains 2 steps already configured:
Trigger: HeyReach - Connection Request Accepted (fires instantly when a prospect accepts your invite)
Action: FullEnrich - Enrich Contact (finds verified emails and phones)
2. Connect your HeyReach account
In Step 1 of the Zap, click Sign in to HeyReach and enter your HeyReach API key. You can find it in HeyReach → Settings → API Keys. The trigger is set to listen for Connection Request Accepted events across all your HeyReach campaigns. When a prospect accepts, HeyReach sends the lead data (first_name, last_name, company_name, company_url, linkedin_url) to the next step.
3. Connect your FullEnrich account
In Step 2 of the Zap, click Sign in to FullEnrich and enter your API key (found in FullEnrich → Settings → API). Then map the contact fields from the HeyReach trigger:
First Name → Lead First Name from HeyReach
Last Name → Lead Last Name from HeyReach
Company Name → Lead Company Name from HeyReach
Domain → Lead Company URL from HeyReach
Enrich with →
contact.emails,contact.phones
FullEnrich uses these fields to find verified emails and phone numbers for the new connection.
4. Test and publish
Click Test step on each step to verify everything works. You'll need at least one accepted connection in your HeyReach campaigns to load sample data. Check that FullEnrich returns a verified email and phone number. Once confirmed, click Publish to turn the Zap on.
Tip: This Zap enriches the new connection but doesn't push the data anywhere by default. Add a third step to send the enriched contact to your CRM (Attio, Pipedrive, HubSpot), a Google Sheet, or Slack for instant lead alerts — otherwise the emails and phones only live inside the Zap history.
Instant trigger: This Zap uses an instant trigger — it fires immediately when a connection request is accepted in HeyReach, with no polling delay.
Problem | Solution |
|---|---|
Zap doesn't trigger | Make sure the Zap is published and your HeyReach account is properly connected. Ensure you have an active campaign in HeyReach that's sending connection requests. |
FullEnrich returns no email | Some contacts can't be matched. Make sure first_name, last_name, and company_name are populated in the HeyReach lead data. A LinkedIn URL or company domain improves match rates. |
HeyReach connection fails | Re-check your HeyReach API key. Go to HeyReach → Settings → API Keys to regenerate it if needed. |
Empty company URL | HeyReach doesn't always return the company domain. You can leave Domain empty and rely on company_name only — FullEnrich will still attempt to match. |
Want to push data to a CRM | Add a third step after FullEnrich — e.g. Attio - Create Person, Pipedrive - Create Person, or Google Sheets - Create Spreadsheet Row. Map the enriched email and phone from FullEnrich. |
Make
What this scenario does: When someone accepts your LinkedIn connection request via HeyReach, Make detects it through a webhook and sends the contact to FullEnrich to find verified emails and phone numbers. 2 modules: HeyReach Connection Request Accepted → FullEnrich Enrich.

Get template
1. Import the template into Make
Click Get Template above to download the blueprint JSON file. In Make, go to Scenarios → Create a new scenario, click the ... menu at the bottom and select Import Blueprint. Upload the JSON file. You'll see 2 modules:
Module 1: HeyReach - Connection Request Accepted (webhook trigger)
Module 2: FullEnrich - Enrich Contact (finds verified emails and phones)
2. Connect your HeyReach account
Click on Module 1 (HeyReach Connection Request Accepted). Click Add next to Webhook, name it (e.g. My Connection Request Accepted webhook), and connect your HeyReach account using your API key. You can find it in HeyReach → Settings → API Keys. The webhook triggers the scenario instantly each time a prospect accepts your LinkedIn connection request in any HeyReach campaign.
3. Connect your FullEnrich account
Click on Module 2 (FullEnrich Enrich). Click Add to create a new FullEnrich connection and enter your API key (found in FullEnrich → Settings → API). The fields are already pre-mapped from the HeyReach payload:
First Name →
{{1.lead.first_name}}Last Name →
{{1.lead.last_name}}Company Name →
{{1.lead.company_name}}Domain →
{{1.lead.company_url}}Enrich with →
contact.emails,contact.phones
Tip: Add a 3rd module after FullEnrich to push the enriched data somewhere useful — your CRM (Attio, Pipedrive, HubSpot), a Google Sheet, or Slack for instant lead alerts. Without a destination module, the enriched emails and phones stay in Make and aren't saved anywhere.
4. Test and activate
Click Run once to test. Accept a new LinkedIn connection request triggered by one of your HeyReach campaigns and verify that:
Module 1 picks up the "Connection Request Accepted" event
Module 2 returns verified emails and phone numbers from FullEnrich
Once confirmed, toggle the scenario to ON and set the scheduling to Immediately (it uses a webhook, so it runs instantly).
Problem | Solution |
|---|---|
Webhook doesn't fire | Make sure the scenario is toggled ON and the webhook is properly registered in HeyReach. Go to the webhook settings in Module 1 and click "Re-determine data structure" if needed. |
FullEnrich returns no email | Some contacts can't be matched. Make sure first_name, last_name, and company_name are populated in the HeyReach lead data. A LinkedIn URL or valid company domain improves match rates. |
Empty company_url field | HeyReach doesn't always return the company domain. You can leave Domain empty and rely on company_name only — FullEnrich will still attempt to match. |
Enriched data goes nowhere | The blueprint is 2-module by design (trigger + enrich). Add a 3rd module (CRM, Google Sheet, Slack...) to persist the enriched emails and phones. |

n8n
What this workflow does: When a LinkedIn connection request is accepted in HeyReach, this workflow sends the contact to FullEnrich for async enrichment, and a second webhook receives the enriched data (verified emails + phones) as soon as it's ready. Event-driven, zero polling, zero Wait nodes — scales for 1 or 1000 accepts/day.

1. Import the workflow
Click Copy Template URL above. In n8n, go to Workflows → Add Workflow, click the ... menu in the top-right and select Import from URL. Paste the URL and click Import. You'll see 3 nodes using an event-driven callback pattern:
HeyReach Accepted (Webhook) — receives the "Connection Request Accepted" event from HeyReach
FullEnrich Bulk Enrich — starts an async enrichment and returns immediately with an
enrichment_idFullEnrich Callback (Webhook) — receives the enriched contact data (emails + phones) when FullEnrich finishes (typically 30s–5min later)
Important: Activate the workflow first to get production webhook URLs. Test URLs won't work for this async flow because the callback must be publicly reachable when FullEnrich fires it back.
2. Activate the workflow and copy the production URLs
Toggle the workflow to Active at the top-right. Then open each webhook node and copy its Production URL:
HeyReach Accepted → you'll paste this in HeyReach (Step 4)
FullEnrich Callback → you'll paste this in the FullEnrich node (Step 3)
3. Connect FullEnrich and wire the callback URL
Open the FullEnrich Bulk Enrich node. Click Credential to connect with and add your FullEnrich API key (found in FullEnrich → Settings → API). Replace the placeholder in the Webhook URL field with the production URL of the FullEnrich Callback node (copied in Step 2). The rest of the fields are already pre-mapped from the HeyReach payload:
First Name →
{{ $json.body.lead.first_name }}Last Name →
{{ $json.body.lead.last_name }}Company Name →
{{ $json.body.lead.company_name }}Company Domain →
{{ $json.body.lead.company_url }}Enrichment Name →
HeyReach LinkedIn approved
4. Register the HeyReach webhook
In HeyReach, go to Settings → Webhooks → Add webhook. Paste the HeyReach Accepted production URL (copied in Step 2) and select the Connection Request Accepted event. Save. From now on, every accepted LinkedIn invite will hit your n8n webhook instantly.
5. Plug your destination after the callback
Add a node after FullEnrich Callback to persist the enriched data — otherwise the emails and phones only live in n8n's execution logs. Common destinations:
Google Sheets → Append Row with the enriched contact
HubSpot / Salesforce / Pipedrive / Attio → Create or Update Contact
Slack → Send a message with the verified email/phone for instant alerts
Airtable / Clay → Append or Update Record
The callback payload includes the verified email, phone, and the full enriched contact data — map whatever you need.
6. Test the end-to-end flow
Trigger a real acceptance in one of your HeyReach campaigns (or wait for the next one). Check that:
The HeyReach Accepted webhook fires on acceptance
The FullEnrich Bulk Enrich node returns an
enrichment_idand exits immediately30s–5min later, the FullEnrich Callback webhook fires with the enriched data
Your destination node (Sheet / CRM / Slack…) receives the verified email and phone
How it works behind the scenes: Traditional enrichment workflows poll the API or use a Wait node until the result is ready — that burns executions and adds latency. This template uses FullEnrich's async webhook: you send the contact, FullEnrich replies "got it" and closes the connection, then it calls back your second webhook only when the enrichment is complete. No polling, no wait, scales linearly.
Problem | Solution |
|---|---|
HeyReach webhook doesn't fire | Make sure you pasted the production URL (not the test URL) in HeyReach, and that the workflow is toggled Active. Also check that your HeyReach campaign is live and actually sending invites. |
FullEnrich Callback never fires | Check that you replaced the |
FullEnrich returns no email | Some contacts can't be matched. Ensure first_name, last_name, and company_name are populated in the HeyReach lead data. A valid company domain improves match rates. |
Empty | HeyReach doesn't always return the company domain. You can leave Company Domain empty and rely on Company Name only — FullEnrich will still attempt to match. |
Callback fires but destination node doesn't run | Make sure you connected a node after FullEnrich Callback. The template ships without a destination — you must add one. |


