🎣 Automate company data enrichment with ZoomInfo, Serper & Oxylabs to Google Sheets

⚑ 662 views · 🎣 Lead Generation & Enrichment

πŸ’‘ Pro Tip β€” HTTP Request scraping tends to break when sites update their markup. If you’re scraping a major platform, check if ScraperNode covers it β€” it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.

View All Scrapers

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

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

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

Requirements

How to set up

  1. Make a copy of the Google Sheets template - Click here to copy the template to your Google Drive
  2. 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
  3. Set up Google Sheets authentication using OAuth2
  4. Update the Google Sheets document ID in all Google Sheets nodes to point to your copied template
  5. Add your domain list to the sheet with β€˜processed’ column empty or false
  6. Run the workflow using the manual trigger

How to customize the workflow

Output data includes

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

Google Sheets, HTTP Request

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup