Describe the problem/error/question
I’m using n8n Cloud and one of my scheduled workflows is causing repeated “Workspace offline (503)” issues on a specific workspace. The same workflow logic and schedule on another n8n Cloud account runs without any problems, so I’m not sure if this is due to my workflow settings or something specific to this workspace. The issue started when the trigger began and has been happening on every run.
When the schedule trigger runs, sometimes the whole workspace becomes unavailable. After refreshing the editor, I see a “Workspace offline (503)” / “Workspace is restarting and currently offline” message.
What is the error message (if any)?
-
Workspace offline (503) – Your workspace is restarting and currently offline. If you continue to see this page, contact support. -
Sometimes I also see
Connection lostin the editor while the workflow is running.
Additional context
-
Workflow complexity: The workflow uses Apify’s Google Maps Scraper (
maxCrawledPlacesPerSearch: 400) which returns large datasets, then processes them through deduplication Code nodes and batch-writes to Google Sheets (batch size: 50). -
Schedule: Triggers daily at 15:50
-
Memory-intensive operations:
-
The “Build Existing Set” Code node loads ALL existing Place IDs and Emails into memory (JavaScript
Setobjects) -
The “Deduplication in Sheets” Code node uses
$getWorkflowStaticData('node')to persistseenPlaceIdsandseenEmailsacross batches — this static data grows indefinitely and is never cleared -
The Apify actor can return up to 400 × 3 keywords = ~1,200 records per campaign row
-
-
The same workflow on another n8n Cloud account works fine, so this might be workspace-specific (resource limits, accumulated static data, etc.)
-
Possible root cause: The
$getWorkflowStaticData('node')arrays (seenPlaceIds,seenEmails) grow with every execution and are never pruned. Over days/weeks, this could consume significant memory. -
n8n Cloud plan: (please fill in your plan tier, e.g. Starter / Pro / Enterprise)
Questions
-
Could the growing
$getWorkflowStaticData('node')(seenPlaceIds / seenEmails arrays that are never cleared) cause memory issues that crash the workspace? -
Is there a way to check the memory usage of my n8n Cloud workspace?
-
Could the Apify node (“Run actor and get dataset”) returning large payloads (~1,200 records) be causing the workspace to run out of memory?
-
Is there a known issue with n8n Cloud 2.9.3 and scheduled workflows causing 503 errors?
Please share your workflow
json
{
"nodes": [
{
"parameters": {
"content": "# | Google Maps",
"height": 756,
"width": 3720,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [0, 0],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Sticky Note7"
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "={{$node[\"Config\"].json[\"GooglespreadsheetId\"]}}",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "={{$node[\"Config\"].json[\"sheetId\"]}}",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Place ID": "={{ $json['Place ID'] }}",
"Company Name": "={{ $json['Company Name'] }}",
"Category": "={{ $json.Category }}",
"Website": "={{ $json.Website }}",
"Company Address": "={{ $json['Company Address'] }}",
"Country Code": "={{ $json['Country Code'] }}",
"Leads Name": "={{ $json['Leads Name'] }}",
"Leads Email": "={{ $json['Leads Email'] }}",
"Leads Job Title": "={{ $json['Leads Job Title'] }}",
"Lead LinkedIn URL": "={{ $json['Lead LinkedIn URL'] }}",
"Scrape Complete?": "No",
"Submitted At": "={{ $now }}"
},
"matchingColumns": ["Place ID"],
"schema": [
{"id": "Place ID", "displayName": "Place ID", "type": "string", "canBeUsedToMatch": true},
{"id": "Company Name", "displayName": "Company Name", "type": "string", "canBeUsedToMatch": true},
{"id": "Category", "displayName": "Category", "type": "string", "canBeUsedToMatch": true},
{"id": "Website", "displayName": "Website", "type": "string", "canBeUsedToMatch": true},
{"id": "Company Address", "displayName": "Company Address", "type": "string", "canBeUsedToMatch": true},
{"id": "Country Code", "displayName": "Country Code", "type": "string", "canBeUsedToMatch": true},
{"id": "Leads Name", "displayName": "Leads Name", "type": "string", "canBeUsedToMatch": true},
{"id": "Leads Email", "displayName": "Leads Email", "type": "string", "canBeUsedToMatch": true},
{"id": "Leads Job Title", "displayName": "Leads Job Title", "type": "string", "canBeUsedToMatch": true},
{"id": "Lead LinkedIn URL", "displayName": "Lead LinkedIn URL", "type": "string", "canBeUsedToMatch": true},
{"id": "Scrape Complete?", "displayName": "Scrape Complete?", "type": "string", "canBeUsedToMatch": true},
{"id": "Submitted At", "displayName": "Submitted At", "type": "string", "canBeUsedToMatch": true}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4. Maps Status", "lookupValue": "To be searched"},
{"lookupColumn": "Date Added", "lookupValue": "={{ $today.toFormat('yyyy-MM-dd') }}"}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [512, 480],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Get Campaign Sheet",
"retryOnFail": true,
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_CREDENTIAL_ID",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "YOUR_CAMPAIGN_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "0",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Polygon": "={{ $json._campaignInput }}",
"Module A - Google Maps Status": "Completed",
"Module B - Company Research Status": "Started"
},
"matchingColumns": ["Polygon"],
"schema": [
{"id": "Polygon", "displayName": "Polygon", "type": "string", "canBeUsedToMatch": true},
{"id": "Module A - Google Maps Status", "displayName": "Module A - Google Maps Status", "type": "string", "canBeUsedToMatch": true},
{"id": "Module B - Company Research Status", "displayName": "Module B - Company Research Status", "type": "string", "canBeUsedToMatch": true}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [3088, 128],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Update Campaign List Search Status",
"retryOnFail": true,
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_CREDENTIAL_ID",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"jsCode": "const allMergedItems = $input.all();\n\nlet existingSet = new Set();\nlet existingEmails = new Set();\nconst apifyItems = [];\n\nfor (const item of allMergedItems) {\n if (item.json.existingSet !== undefined) {\n for (const id of (item.json.existingSet || [])) {\n const trimmed = String(id || '').trim();\n if (trimmed) existingSet.add(trimmed);\n }\n for (const em of (item.json.existingEmails || [])) {\n const trimmed = String(em || '').trim().toLowerCase();\n if (trimmed) existingEmails.add(trimmed);\n }\n } else {\n apifyItems.push(item);\n }\n}\n\nconst staticData = $getWorkflowStaticData('node');\nif (!staticData.seenPlaceIds) staticData.seenPlaceIds = [];\nif (!staticData.seenEmails) staticData.seenEmails = [];\n\n// ⚠️ NOTE: These arrays grow indefinitely and are never cleared\nconst seenAcrossBatchesPlaces = new Set(staticData.seenPlaceIds);\nconst seenAcrossBatchesEmails = new Set([\n ...staticData.seenEmails,\n ...existingEmails\n]);\n\nlet campaignInput = '';\ntry {\n campaignInput = $('Campaign Loop').first().json[\"Polygon\"];\n} catch (e) {\n campaignInput = staticData._lastCampaignInput || '';\n}\nif (campaignInput) staticData._lastCampaignInput = campaignInput;\n\nconst seenThisBatchPlaces = new Set();\nconst seenThisBatchEmails = new Set();\nconst out = [];\n\nfor (const it of apifyItems) {\n const p = it.json;\n const placeId = String(p?.placeId || '').trim();\n if (!placeId) continue;\n\n if (existingSet.has(placeId)) continue;\n if (seenAcrossBatchesPlaces.has(placeId)) continue;\n if (seenThisBatchPlaces.has(placeId)) continue;\n\n const lead0 = Array.isArray(p?.leadsEnrichment) ? p.leadsEnrichment[0] : null;\n const leadEmail = String(lead0?.email || '').trim().toLowerCase();\n\n let finalEmail = lead0?.email ?? '';\n if (leadEmail && (\n existingEmails.has(leadEmail) ||\n seenAcrossBatchesEmails.has(leadEmail) || \n seenThisBatchEmails.has(leadEmail)\n )) {\n finalEmail = '';\n }\n\n seenThisBatchPlaces.add(placeId);\n if (leadEmail) seenThisBatchEmails.add(leadEmail);\n\n out.push({\n json: {\n \"Place ID\": placeId,\n \"Company Name\": p?.title ?? '',\n \"Category\": Array.isArray(p?.categories) ? p.categories.join(', ') : (p?.categoryName ?? ''),\n \"Website\": p?.website ?? '',\n \"Company Address\": p?.address ?? '',\n \"Country Code\": p?.countryCode ?? '',\n \"Leads Name\": finalEmail ? (lead0?.fullName ?? '') : '',\n \"Leads Email\": finalEmail,\n \"Leads Job Title\": finalEmail ? (lead0?.jobTitle ?? '') : '',\n \"Lead LinkedIn URL\": finalEmail ? (lead0?.linkedinProfile ?? '') : '',\n \"_campaignInput\": campaignInput,\n }\n });\n}\n\nfor (const id of seenThisBatchPlaces) {\n staticData.seenPlaceIds.push(id);\n}\nfor (const em of seenThisBatchEmails) {\n staticData.seenEmails.push(em);\n}\n\nif (out.length === 0) {\n return [{ json: { skip: true, reason: 'No new Place IDs.', existingSetSize: existingSet.size, \"_campaignInput\": campaignInput } }];\n}\n\nreturn out;\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [2128, 336],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Deduplication in Sheets"
},
{
"parameters": {
"jsCode": "function normalizePlaceId(raw) {\n if (!raw) return '';\n return String(raw).trim();\n}\n\nconst allItems = $input.all();\nconst existingKeys = new Set();\nconst existingEmails = new Set();\n\nfor (const item of allItems) {\n const rawId = item.json[\"Place ID\"];\n const key = normalizePlaceId(rawId);\n if (key) existingKeys.add(key);\n const rawEmail = item.json[\"Leads Email\"];\n const email = String(rawEmail || '').trim().toLowerCase();\n if (email) existingEmails.add(email);\n}\n\nreturn [{\n json: {\n existingSet: Array.from(existingKeys),\n existingSetCount: existingKeys.size,\n existingEmails: Array.from(existingEmails),\n existingEmailsCount: existingEmails.size,\n }\n}];\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [1680, 240],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Build Existing Set"
},
{
"parameters": {
"fields": {
"values": [
{"name": "GooglespreadsheetId", "stringValue": "YOUR_LEADS_SPREADSHEET_ID"},
{"name": "sheetId", "stringValue": "0"}
]
},
"options": {}
},
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Config",
"type": "n8n-nodes-base.set",
"typeVersion": 3,
"position": [240, 480]
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "={{$node[\"Config\"].json[\"GooglespreadsheetId\"]}}",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "={{$node[\"Config\"].json[\"sheetId\"]}}",
"mode": "id"
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [976, 240],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Get Existing Places",
"onError": "continueErrorOutput",
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_CREDENTIAL_ID",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"conditions": {
"options": {"caseSensitive": true, "typeValidation": "strict", "version": 3},
"conditions": [
{"leftValue": "={{$json.skip}}", "operator": {"type": "boolean", "operation": "true", "singleValue": true}}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.3,
"position": [2352, 336],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "No new Place ID"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [1904, 336],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Merge1"
},
{
"parameters": {
"assignments": {
"assignments": [
{"name": "_campaignInput", "value": "={{ $('Deduplication in Sheets').first().json[\"_campaignInput\"] }}", "type": "string"}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [2864, 128],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Restore Campaign Input"
},
{
"parameters": {"options": {}},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [976, 464],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Campaign Loop"
},
{
"parameters": {
"batchSize": 50,
"options": {"reset": "={{ $prevNode.name === 'No new Place ID' }}"}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [2592, 352],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Record in Google Sheets Loop"
},
{
"parameters": {"amount": 10},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [2864, 368],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Wait",
"webhookId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "YOUR_CAMPAIGN_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "0",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Polygon": "={{ $json.Polygon }}",
"Module A - Google Maps Status": "In Progress"
},
"matchingColumns": ["Polygon"],
"schema": [
{"id": "Polygon", "displayName": "Polygon", "type": "string", "canBeUsedToMatch": true},
{"id": "Module A - Google Maps Status", "displayName": "Module A - Google Maps Status", "type": "string", "canBeUsedToMatch": true}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [1248, 480],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Update Campaign List Search Status - In Progress",
"retryOnFail": true,
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_CREDENTIAL_ID",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "YOUR_CAMPAIGN_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "0",
"mode": "id"
},
"filtersUI": {
"values": [
{"lookupColumn": "Module A - Google Maps Status", "lookupValue": "In Progress"}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [1456, 480],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Get Campaign",
"retryOnFail": true,
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_CREDENTIAL_ID",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"rule": {
"interval": [{"triggerAtHour": 15, "triggerAtMinute": 50}]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [48, 480],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Schedule Trigger"
},
{
"parameters": {"amount": 65},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [3312, 368],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Wait for Retry",
"webhookId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "={{$node[\"Config\"].json[\"GooglespreadsheetId\"]}}",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "={{$node[\"Config\"].json[\"sheetId\"]}}",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Place ID": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Place ID\"] }}",
"Company Name": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Company Name\"] }}",
"Category": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Category\"] }}",
"Website": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Website\"] }}",
"Company Address": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Company Address\"] }}",
"Country Code": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Country Code\"] }}",
"Leads Name": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Leads Name\"] }}",
"Leads Email": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Leads Email\"] }}",
"Leads Job Title": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Leads Job Title\"] }}",
"Lead LinkedIn URL": "={{ $node[\"Record in Google Sheets Loop\"].json[\"Lead LinkedIn URL\"] }}",
"Scrape Complete?": "No",
"Submitted At": "={{ $now }}"
},
"matchingColumns": ["Place ID"],
"schema": [
{"id": "Place ID", "displayName": "Place ID", "type": "string", "canBeUsedToMatch": true},
{"id": "Company Name", "displayName": "Company Name", "type": "string", "canBeUsedToMatch": true},
{"id": "Category", "displayName": "Category", "type": "string", "canBeUsedToMatch": true},
{"id": "Website", "displayName": "Website", "type": "string", "canBeUsedToMatch": true},
{"id": "Company Address", "displayName": "Company Address", "type": "string", "canBeUsedToMatch": true},
{"id": "Country Code", "displayName": "Country Code", "type": "string", "canBeUsedToMatch": true},
{"id": "Leads Name", "displayName": "Leads Name", "type": "string", "canBeUsedToMatch": true},
{"id": "Leads Email", "displayName": "Leads Email", "type": "string", "canBeUsedToMatch": true},
{"id": "Leads Job Title", "displayName": "Leads Job Title", "type": "string", "canBeUsedToMatch": true},
{"id": "Lead LinkedIn URL", "displayName": "Lead LinkedIn URL", "type": "string", "canBeUsedToMatch": true},
{"id": "Scrape Complete?", "displayName": "Scrape Complete?", "type": "string", "canBeUsedToMatch": true},
{"id": "Submitted At", "displayName": "Submitted At", "type": "string", "canBeUsedToMatch": true}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [3536, 368],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Retry - Update Leads Search Results",
"onError": "continueErrorOutput",
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_CREDENTIAL_ID",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"conditions": {
"options": {"caseSensitive": true, "typeValidation": "strict", "version": 3},
"conditions": [
{"leftValue": "={{ $json['Module A - Google Maps Status'] }}", "rightValue": "To be searched", "operator": {"type": "string", "operation": "equals"}},
{"leftValue": "={{ $json['Date Added'] }}", "rightValue": "={{ $today.toFormat('yyyy-MM-dd') }}", "operator": {"type": "string", "operation": "equals"}},
{"leftValue": "={{ $json.Polygon }}", "operator": {"type": "string", "operation": "exists", "singleValue": true}},
{"leftValue": "={{ $json.Language }}", "operator": {"type": "string", "operation": "exists", "singleValue": true}},
{"leftValue": "={{ $json['Search Keyword 1'] }}", "operator": {"type": "string", "operation": "exists", "singleValue": true}},
{"leftValue": "={{ $json['Search Keyword 2'] }}", "operator": {"type": "string", "operation": "exists", "singleValue": true}},
{"leftValue": "={{ $json['Search Keyword 3'] }}", "operator": {"type": "string", "operation": "exists", "singleValue": true}}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.3,
"position": [736, 480],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "If"
},
{
"parameters": {"amount": 2, "unit": "minutes"},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [1200, 240],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Wait2",
"webhookId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "={{$node[\"Config\"].json[\"GooglespreadsheetId\"]}}",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "={{$node[\"Config\"].json[\"sheetId\"]}}",
"mode": "id"
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [1408, 240],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Retry - Get Existing Places",
"onError": "continueErrorOutput",
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_CREDENTIAL_ID",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"operation": "Run actor and get dataset",
"actorId": {
"__rl": true,
"value": "nwua9Gu5YrADL7ZDj",
"mode": "list",
"cachedResultName": "Google Maps Scraper (compass/crawler-google-places)"
},
"customBody": "={\n \"customGeolocation\": {\n \"type\": \"Polygon\",\n \"coordinates\": {{ $json.Polygon }}\n },\n \"includeWebResults\": false,\n \"language\": \"{{ $json.Language }}\",\n \"maxCrawledPlacesPerSearch\": 400,\n \"maxImages\": 0,\n \"zoom\": 16,\n \"maximumLeadsEnrichmentRecords\": 1,\n \"scrapeContacts\": false,\n \"scrapeDirectories\": false,\n \"scrapeImageAuthors\": false,\n \"scrapePlaceDetailPage\": false,\n \"scrapeReviewsPersonalData\": true,\n \"scrapeSocialMediaProfiles\": {\n \"facebooks\": false,\n \"instagrams\": false,\n \"tiktoks\": false,\n \"twitters\": false,\n \"youtubes\": false\n },\n \"scrapeTableReservationProvider\": false,\n \"searchStringsArray\": [\n \"{{ $json['Search Keyword 1'] }}\",\n \"{{ $json['Search Keyword 2'] }}\",\n \"{{ $json['Search Keyword 3'] }}\"\n ],\n \"skipClosedPlaces\": false\n}",
"authentication": "apifyOAuth2Api"
},
"type": "@apify/n8n-nodes-apify.apify",
"typeVersion": 1,
"position": [1680, 480],
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Run an Actor and get dataset",
"credentials": {
"apifyOAuth2Api": {
"id": "YOUR_CREDENTIAL_ID",
"name": "Apify account"
}
}
}
],
"connections": {
"Update Leads Search Results": {
"main": [
[{"node": "Record in Google Sheets Loop", "type": "main", "index": 0}],
[{"node": "Wait for Retry", "type": "main", "index": 0}]
]
},
"Get Campaign Sheet": {
"main": [[{"node": "If", "type": "main", "index": 0}]]
},
"Update Campaign List Search Status": {
"main": [[{"node": "Campaign Loop", "type": "main", "index": 0}]]
},
"Deduplication in Sheets": {
"main": [[{"node": "No new Place ID", "type": "main", "index": 0}]]
},
"Build Existing Set": {
"main": [[{"node": "Merge1", "type": "main", "index": 0}]]
},
"Config": {
"main": [[{"node": "Get Campaign Sheet", "type": "main", "index": 0}]]
},
"Get Existing Places": {
"main": [
[{"node": "Build Existing Set", "type": "main", "index": 0}],
[{"node": "Wait2", "type": "main", "index": 0}]
]
},
"No new Place ID": {
"main": [
[{"node": "Restore Campaign Input", "type": "main", "index": 0}],
[{"node": "Record in Google Sheets Loop", "type": "main", "index": 0}]
]
},
"Merge1": {
"main": [[{"node": "Deduplication in Sheets", "type": "main", "index": 0}]]
},
"Restore Campaign Input": {
"main": [[{"node": "Update Campaign List Search Status", "type": "main", "index": 0}]]
},
"Campaign Loop": {
"main": [
[],
[
{"node": "Get Existing Places", "type": "main", "index": 0},
{"node": "Update Campaign List Search Status - In Progress", "type": "main", "index": 0}
]
]
},
"Record in Google Sheets Loop": {
"main": [
[{"node": "Restore Campaign Input", "type": "main", "index": 0}],
[{"node": "Wait", "type": "main", "index": 0}]
]
},
"Wait": {
"main": [[{"node": "Update Leads Search Results", "type": "main", "index": 0}]]
},
"Update Campaign List Search Status - In Progress": {
"main": [[{"node": "Get Campaign", "type": "main", "index": 0}]]
},
"Get Campaign": {
"main": [[{"node": "Run an Actor and get dataset", "type": "main", "index": 0}]]
},
"Schedule Trigger": {
"main": [[{"node": "Config", "type": "main", "index": 0}]]
},
"Wait for Retry": {
"main": [[{"node": "Retry - Update Leads Search Results", "type": "main", "index": 0}]]
},
"Retry - Update Leads Search Results": {
"main": [
[{"node": "Record in Google Sheets Loop", "type": "main", "index": 0}],
[{"node": "Wait for Retry", "type": "main", "index": 0}]
]
},
"If": {
"main": [
[
{"node": "Campaign Loop", "type": "main", "index": 0},
{"node": "Get Existing Places", "type": "main", "index": 0}
]
]
},
"Wait2": {
"main": [[{"node": "Retry - Get Existing Places", "type": "main", "index": 0}]]
},
"Retry - Get Existing Places": {
"main": [
[{"node": "Build Existing Set", "type": "main", "index": 0}],
[{"node": "Wait2", "type": "main", "index": 0}]
]
},
"Run an Actor and get dataset": {
"main": [[{"node": "Merge1", "type": "main", "index": 1}]]
}
},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": true
}
}
Share the output returned by the last node
N/A — The workspace goes offline (503) before the workflow completes, so no output is available.
Information on your n8n setup
-
n8n version: 2.9.3
-
Database (default: SQLite): N/A (n8n Cloud)
-
n8n EXECUTIONS_PROCESS setting (default: own, main): own
-
Running n8n via: n8n Cloud
-
Operating system: n8n Cloud