n8n

How to Automate Google Sheets Company Enrichment?

Turn a basic company list in Google Sheets into rich profiles ready for outreach and segmentation. The flow reads each website, scrapes the homepage, and writes clear fields like offer, value proposition, business model, and ICP. It suits marketing teams that need fast research at scale.

A webhook starts the run. Rows are pulled from your sheet, then handled one by one using a loop. An AI agent calls a helper workflow that uses ScrapingBee to fetch the page, converts HTML to markdown to lower token use, then sends the text to an OpenAI chat model. A structured parser returns clean fields that map back to the same row so your sheet stays updated without copy and paste. The agent also flags missing or mismatched content so you know what to review.

You will need a Google service account with access to the sheet, an OpenAI key, and a ScrapingBee key. Expect research time per company to drop from minutes to seconds while keeping data consistent across the list. Use it to qualify leads, segment accounts, and prepare outreach without manual browsing. Make sure your sheet has Company and Website columns and confirm the document ID and tab configured in the nodes.

What are the key features?

  • Webhook trigger starts the enrichment from any external call
  • Reads company rows from Google Sheets using a service account
  • Loops through each row to keep website context matched to the right company
  • AI agent uses an OpenAI chat model to extract offers, value proposition, business model, and ICP
  • Calls a helper workflow that scrapes the homepage with ScrapingBee
  • Converts HTML to markdown to reduce token use and improve parsing
  • Structured output parser formats results for direct sheet updates
  • Updates the same row in Google Sheets with all enriched fields and flags

What are the benefits?

  • Reduce manual research from 10 minutes per company to about 1 minute
  • Automate up to 90 percent of company profile enrichment
  • Improve data quality by adding structured fields and clear flags
  • Handle large lists by processing rows in controlled batches
  • Connect Google Sheets, OpenAI, and ScrapingBee in one flow

How do you set it up?

  1. Import the template into n8n: Create a new workflow in n8n > Click the three dots menu > Select 'Import from File' > Choose the downloaded JSON file.
  2. You'll need accounts with Google Sheets, OpenAI and ScrapingBee. See the Tools Required section above for links to create accounts with these services.
  3. In the n8n credentials manager, create a Google Sheets credential using a Google service account. Upload the JSON key. In Google Sheets, share the spreadsheet with the service account email so it has edit access.
  4. In the Google Sheets nodes, set the document ID and the target tab. Confirm the sheet has Company and Website columns. Save the node settings.
  5. In your OpenAI account, create an API key. In n8n, open the OpenAI Chat Model node, choose Create new credential, and paste the API key.
  6. In your ScrapingBee account, copy the API key. Open the HTTP Request node for scraping, add the api_key query parameter, and paste the key. Keep the url parameter mapped to the item url field.
  7. Open the Set company url node and make sure it maps the incoming website field to url. This ensures the scraper fetches the correct homepage.
  8. Check the AI Agent node to confirm the output parser is selected and the schema includes Business Area, Offers or Product, Value Proposition, Business Model, Ideal Customer Profile, and Additional Information fields.
  9. Open the Update row node and verify each field maps to the correct sheet column. Ensure row_number is taken from the original row so updates go to the right place.
  10. Copy the webhook URL from the Webhook node. Send a simple test call from a tool like Postman to start the flow, or trigger it from your website or another system.
  11. Run a small test with a few rows. Watch the execution in n8n. Confirm the scraper returns content, the AI agent extracts fields, and the sheet updates the same rows.
  12. Troubleshoot common issues: if Google Sheets fails to update, confirm the service account has edit access. If scraping fails, verify the website URL and try adjusting ScrapingBee options. If output is empty, the page may block bots or lacks content. If token use is high, keep HTML to Markdown enabled and limit extra pages.

Tools Required

$24 / mo or $20 / mo billed annually to use n8n in the cloud. However, the local or self-hosted n8n Community Edition is free.

Google Sheets

Sign up

Free: $0 (Google Sheets API usage has no additional cost; quota limits apply)

OpenAI

Sign up

Pay-as-you-go: GPT-5 at $1.25 per 1M input tokens and $10 per 1M output tokens

ScrapingBee

Sign up

Freelance: $49 / mo, 250,000 API credits

Similar Templates

Join Futurise to access 1,200+ automation templates

Get instant access to ready-made automation workflows for n8n, Make.com, AI agents, and more. Download, customise, and deploy in minutes.