This workflow corresponds to n8n.io template #4295 — we link there as the canonical source.
This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "8dpOtivR6zGMa8Nf",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Automated Lead Scraper: Apify to Google Sheets",
"tags": [],
"nodes": [
{
"id": "331e904a-362e-4b18-ac01-60bd138a7ee1",
"name": "Manual Trigger",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1740,
-300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c8c72d6e-4558-4ab1-9c19-2b8e3cefc856",
"name": "Run Apify Scraper",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1280,
-300
],
"parameters": {
"url": "={{ 'https://api.apify.com/v2/actor-tasks/' + $json.APIFY_TASK_ID + '/run-sync-get-dataset-items?token=' +$json.APIFY_TOKEN}}",
"options": {
"splitIntoItems": true
}
},
"typeVersion": 1
},
{
"id": "fb61d5a9-0352-4079-a00f-c42df06bb09e",
"name": "Clean Data",
"type": "n8n-nodes-base.code",
"position": [
-1080,
-300
],
"parameters": {
"jsCode": "// Clean scraped data before LLM processing\nreturn $input.all().map(item => ({\n ...item.json,\n phone: item.json.phone?.replace(/[^\\d+]/g, '') || '',\n email: item.json.email?.toLowerCase().trim() || ''\n}));"
},
"typeVersion": 2
},
{
"id": "a6988139-87e5-423c-bec9-ce155f617dab",
"name": "Export to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
-760,
-300
],
"parameters": {
"columns": {
"value": {
"phone": "={{ $json.phone }}",
"Address": "={{ $json.address }}",
"company name": "={{ $json.title }}"
},
"schema": [
{
"id": "company name",
"type": "string",
"display": true,
"required": false,
"displayName": "company name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "website",
"type": "string",
"display": true,
"required": false,
"displayName": "website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phone",
"type": "string",
"display": true,
"required": false,
"displayName": "phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UHkd_OuK1Xzc0ZXo7FPrsd5M1JlsIY9pJDC3fsJ3oq8/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UHkd_OuK1Xzc0ZXo7FPrsd5M1JlsIY9pJDC3fsJ3oq8/edit?usp=drivesdk",
"cachedResultName": "leas list solar"
}
},
"typeVersion": 4.5
},
{
"id": "f4398fd2-bff0-4e9c-ae1b-f5950be0a384",
"name": "Variables",
"type": "n8n-nodes-base.set",
"position": [
-1500,
-300
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4486360c-2296-41ad-a48f-706e24c49a4f",
"name": "APIFY_TOKEN",
"type": "string",
"value": "YOUR_APIFY_API_TOKEN"
},
{
"id": "6e56b0e3-36ae-4f1e-b0e5-38767bbe8af9",
"name": "APIFY_TASK_ID",
"type": "string",
"value": "YOUR_APIFY_TASK_ID"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "04a980cf-365b-4cc3-8439-fd71cb1f05a3",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1860,
-820
],
"parameters": {
"color": 7,
"width": 1660,
"height": 780,
"content": "## Automated Business Lead Scraper with Apify to Google Sheets\n**Purpose:** Automates scraping business leads using Apify, cleaning the data, and exporting them to Google Sheets.\n\n**Workflow Steps:**\n1. **Manual Trigger**: Starts the workflow manually.\n2. **Set API Credentials**: Add your `APIFY_TOKEN` and `APIFY_TASK_ID`.\n3. **Run Apify Scraper**: Fetches leads using Apify HTTP API.\n4. **Clean Data**: Formats phone numbers and emails.\n5. **Export to Google Sheets**: Appends data to your spreadsheet.\n\n**Google Sheet Requirements:**\n- Sheet name: `Sheet1`\n- Columns: `company name`, `phone`, `Address`\n\n**Customization Tips:**\n- Add more fields like `email`, `website` in Clean Data and mapping.\n- Add conditions or filters before exporting.\n- Add email alerts if needed.\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "47bf9abd-67aa-49c8-81c9-761e75ee731f",
"connections": {
"Start": {
"main": [
[
{
"node": "Variables",
"type": "main",
"index": 0
}
]
]
},
"Variables": {
"main": [
[
{
"node": "Run Apify Scraper",
"type": "main",
"index": 0
}
]
]
},
"Clean Data": {
"main": [
[
{
"node": "Export to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Run Apify Scraper": {
"main": [
[
{
"node": "Clean Data",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n workflow automates the process of scraping leads using Apify, cleaning the extracted data, and exporting it to Google Sheets—ready for use in outreach, prospecting, or CRM pipelines. ✅ Start – Manually triggers the workflow. 🧩 Set Variables – Stores required Apify…
Source: https://n8n.io/workflows/4295/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Automate LinkedIn lead generation by scraping comments from targeted posts and enriching profiles with detailed data
This automated n8n workflow scrapes job listings from Upwork using Apify, processes and cleans the data, and generates daily email reports with job summaries. The system uses Google Sheets for data st
Transform LinkedIn profile URLs into comprehensive enriched lead profiles, quickly and automatically.
Transform any website into a structured knowledge repository with this intelligent crawler that extracts hyperlinks from the homepage, intelligently filters images and content pages, and aggregates fu
Content creators, researchers, educators, and digital marketers who need to discover high-quality YouTube training videos on specific topics. Perfect for building curated learning resource lists, comp