Automate Company Data Enrichment with ZoomInfo, Serper & Oxylabs to Google Sheets

Go to Workflow
0 views
Built by Naveen Choudhary Naveen Choudhary
Created on June 05, 2026

Description

This workflow automatically enriches company domain lists with comprehensive business information scraped from ZoomInfo, organizing the data in Google Sheets for sales teams and researchers.

Who's it for
Sales teams** building prospect databases with accurate company information
Marketing professionals** researching target companies for outreach campaigns
Business development teams** qualifying leads with revenue and employee data
Researchers** collecting structured company data for market analysis
Lead generation specialists** enriching domain lists with contact details

How it works
The workflow processes unprocessed domains from a Google Sheet, searches for their ZoomInfo profiles using Serper API, scrapes the company pages through Oxylabs proxy service, and extracts structured business data. Each domain is marked as processed to prevent duplicates, and the workflow includes proper rate limiting to respect API limits.

What it does
Loads unprocessed domains from your Google Sheets database
Searches ZoomInfo using targeted queries via Serper API for each domain
Validates search results and extracts relevant ZoomInfo profile URLs
Scrapes company pages using Oxylabs to bypass anti-scraping protection
Extracts structured data including company details, address, revenue, and employee count
Updates Google Sheets with enriched company information
Tracks processing status to prevent reprocessing the same domains

Requirements
Serper API account** with search credits (Get API key)
Oxylabs subscription** for web scraping proxy service (Sign up here)
Google Sheets API access** with OAuth2 authentication
Google Sheets template** - Make a copy of this template sheet with pre-configured columns

How to set up
Make a copy of the Google Sheets template - Click here to copy the template to your Google Drive
Configure API credentials in the respective HTTP Request nodes:
Add Serper API key in the search node
Set up Oxylabs username/password in the scraping node
Set up Google Sheets authentication using OAuth2
Update the Google Sheets document ID in all Google Sheets nodes to point to your copied template
Add your domain list to the sheet with 'processed' column empty or false
Run the workflow using the manual trigger

How to customize the workflow
Search query modification**: Update the search query in the Serper node for different geographic focus (currently set for Czech Republic)
Data extraction fields**: Modify the Google Sheets column mapping to include/exclude specific company data points
Rate limiting**: Adjust wait times between requests to match your API rate limits
Batch processing**: Configure the split batch size for processing domains in smaller groups
Error handling**: Customize the continue-on-error settings based on your data quality requirements
Scheduling**: Replace Manual Trigger with Schedule Trigger for automated daily/weekly runs

Output data includes
Complete company name and official address
Phone numbers and contact information
Revenue figures and employee headcount
Industry classifications and business categories
LinkedIn company profile URLs
Geographic location details (city, state, country, postal code)
Processing status tracking for workflow management

Note: This workflow includes comprehensive error handling to ensure domains are always marked as processed, preventing infinite loops while maintaining data integrity. Rate limiting is built-in to respect API quotas and avoid service interruptions.

Nodes Used (4)

Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets
HTML
n8n-nodes-base.html
HTTP Request
n8n-nodes-base.httpRequest