What will you build?
You’ll build an automated workflow that:- Reads contacts from a Google Sheet
- Finds emails using the Enrow Email Finder
- Verifies emails for deliverability with the Enrow Email Verifier
- Writes results back to the Google Sheet
What do you need before starting?
Before building the workflow, make sure you have the following:- n8n installed (get n8n)
- An Enrow API key — see Authentication for how to get and use your key
- A Google Account with a Sheet of contacts
How do you set up the Google Sheet?
Create a Google Sheet with these columns:| First Name | Last Name | Company Domain | Status | Verified | |
|---|---|---|---|---|---|
| John | Doe | apple.com | |||
| Jane | Smith | microsoft.com | |||
| Bob | Johnson | meta.com |
What does the workflow look like?
The workflow runs on a schedule, reads each contact, finds and verifies the email, then updates the sheet:How do you build the workflow step by step?
Follow these steps to assemble each node in n8n.Step 1: Set up the Google Sheets connection
- Add “Google Sheets” node
- Operation: “Read”
- Authenticate with Google
- Select your spreadsheet
- Sheet Name: “Contacts”
- Range: “A:F” (all columns)
Step 2: Add the Cron trigger
- Add “Cron” node as trigger
- Mode: “Every Hour” (or custom schedule)
- Connect to Google Sheets node
Step 3: Filter empty emails
- Add “IF” node after Google Sheets
- Condition:
- Value 1:
{{$json["Email"]}} - Operation:
Is Empty
- Value 1:
- Route “true” to next step (only process contacts without emails)
Step 4: Find the email with Enrow
Send each contact to the Email Finder endpoint. Authenticate with your API key in thex-api-key header.
- Add “HTTP Request” node
- Configure:
Step 5: Wait for the result
The Email Finder runs asynchronously, so you either wait for a webhook or poll the GET endpoint for the result. Option A: Webhook (Recommended)- Add “Webhook” node
- Path:
enrow-email-webhook - Copy webhook URL
- Update Find Email JSON body:
- Add “Wait” node: 5 seconds
- Add “HTTP Request” node:
- Method:
GET - URL:
https://api.enrow.io/email/find/single?id={{$json["id"]}}
- Method:
- Add “IF” node to check status
- Loop back if still
ongoing
Step 6: Verify the email
Pass the found email to the Email Verifier to confirm deliverability before writing it back.- Add “HTTP Request” node after email is found
- Configure:
Step 7: Update the Google Sheet
- Add “Google Sheets” node
- Operation: “Update”
- Select same spreadsheet
- Sheet Name: “Contacts”
- Range: Match row (use row index from original data)
- Map fields:
- Email:
{{$json["email"]}} - Status:
{{$json["confidence"]}} - Verified:
{{$json["status"]}}
- Email:
Where is the complete workflow JSON?
Import the JSON below to get the full workflow in one step.Import this workflow to get started immediately. Just update your API keys!
How can you improve the workflow?
Once the base workflow runs, these additions make it more robust and cost-efficient.Add error handling
- Add “Error Trigger” node
- Add “Send Email” or “Slack” node to notify on errors
- Log failed rows to a separate sheet
Process in bulk
For better performance with many contacts, switch from single searches to a batch:- Change Find Email node to use
/email/find/bulk - Batch contacts into groups of 100
- Process all at once instead of one-by-one
Add conditional verification
Only verify high-confidence emails to save credits:When should you use this workflow?
This workflow is a good fit for:- Sales teams: Enrich prospect lists before outreach
- Recruiters: Find candidate contact information
- Marketers: Build email lists from company databases
- Data teams: Clean and enrich CRM data
What are the best practices?
Rate Limits
Rate Limits
If processing large lists (1000+ contacts):
- Use bulk endpoints
- Add delays between batches
- Or upgrade your Enrow plan
Data Quality
Data Quality
- Always verify emails before using them
- Check confidence scores
- Remove low-quality results
Cost Optimization
Cost Optimization
- Deduplicate contacts before processing
- Cache results to avoid re-searching
- Use conditional logic to skip unnecessary API calls
Error Recovery
Error Recovery
- Log all API responses
- Track failed enrichments
- Retry failed searches automatically
How do you troubleshoot common problems?
Workflow not running automatically?- Check that the Cron trigger is activated
- Verify the schedule is correct
- Check that company domains are correct
- Verify names are spelled correctly
- Try with just company domain (without names)
- Check Google Sheets permissions
- Verify the range matches your data
- Test the Update node manually
FAQ
Do I need a webhook, or can I just poll for results?
Do I need a webhook, or can I just poll for results?
Both work. The Email Finder runs asynchronously, so you can either register a webhook in the
settings.webhook field (Option A) or poll the Get Single Result endpoint on a timer (Option B). Webhooks are recommended because they avoid wasted polling requests and return results as soon as the search completes. See How webhooks work.How many credits does the workflow use?
How many credits does the workflow use?
Each Email Finder search and each Email Verifier check consumes credits per call. Running both on every contact uses more credits than finding alone, so add conditional verification to skip uncertain emails. For exact per-endpoint costs, see Credits & billing.
How do I authenticate the HTTP Request nodes?
How do I authenticate the HTTP Request nodes?
Use n8n’s Header Auth credential with the header name
x-api-key and your Enrow API key as the value, then reuse the same credential across every Enrow node. Full details are in Authentication.What if I have thousands of contacts?
What if I have thousands of contacts?
Switch the Find Email node to the Find Bulk Emails endpoint, which accepts up to 5,000 searches per batch, and stay within your plan’s rate limits.
Next steps
Verification Workflow
Verify existing email lists with n8n and Enrow.
Find Single Email
Explore the Email Finder endpoint used in this workflow.
Verify Single Email
Check whether an email address is valid and deliverable.
Webhooks
Get notified automatically when a search completes.

