{"product_id":"scrape-do-n8n-extract-emails-from-websites-to-google-sheets","title":"Scrape.do + n8n: Extract Emails from Websites to Google Sheets","description":"\u003ch3\u003eExtract emails from websites into Google Sheets using Scrape.do + n8n\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow automatically pulls website URLs from your Google Sheet, scrapes each site with the \u003cstrong\u003eScrape.do\u003c\/strong\u003e API, finds the most relevant email addresses in the page content, and writes the best match back into the \u003cstrong\u003eEmails\u003c\/strong\u003e column.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eManual start in n8n:\u003c\/strong\u003e you trigger the workflow by manually executing it in n8n.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReads URLs from Google Sheets:\u003c\/strong\u003e the workflow looks for a \u003cstrong\u003e“Websites”\u003c\/strong\u003e column containing full URLs to process.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eScrapes each page via Scrape.do:\u003c\/strong\u003e for every URL (processed in batches), it sends a request to the Scrape.do API to fetch the page content.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eExtracts and filters emails:\u003c\/strong\u003e it parses the returned content to find email addresses, removes duplicates and common junk\/platform domains, and prefers emails that match the scraped site’s domain.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eWrites results back to the same row:\u003c\/strong\u003e it appends or updates the row by matching on \u003cstrong\u003e“Websites”\u003c\/strong\u003e, then saves the selected email into the \u003cstrong\u003e“Emails”\u003c\/strong\u003e column.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eBuild or enrich lead lists by extracting contact emails from a list of company websites stored in Google Sheets.\u003c\/li\u003e\n  \u003cli\u003eQuickly generate outreach targets for SaaS operators and marketers who need website-to-email mapping.\u003c\/li\u003e\n  \u003cli\u003eValidate or supplement existing datasets by scraping and selecting the best matching email found on each page.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003en8n nodes\/steps:\u003c\/strong\u003e \u003cem\u003eif\u003c\/em\u003e, \u003cem\u003ecode\u003c\/em\u003e, \u003cem\u003ewait\u003c\/em\u003e, \u003cem\u003esticky note\u003c\/em\u003e, \u003cem\u003eHTTP Request\u003c\/em\u003e, \u003cem\u003eGoogle Sheets\u003c\/em\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGoogle Sheets integration:\u003c\/strong\u003e uses OAuth2 connection; expects headers including \u003cstrong\u003e“Websites”\u003c\/strong\u003e and \u003cstrong\u003e“Emails”\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eScrape.do API:\u003c\/strong\u003e add your Scrape.do API token as the HTTP request query parameter named \u003cstrong\u003etoken\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eConfigurable filtering:\u003c\/strong\u003e the workflow includes logic to manage blocked email domains and filtering rules (including optional allowances for common providers like Gmail\/Outlook) in the JavaScript code.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45814417457331,"sku":"N8N-18014","price":51.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/xoEj6avm5Fv0mJ0NT6H05_mrNe7tBg.png?v=1786439187","url":"https:\/\/buyflowscripts.com\/products\/scrape-do-n8n-extract-emails-from-websites-to-google-sheets","provider":"N8N Commerce","version":"1.0","type":"link"}