This workflow corresponds to n8n.io template #7623 — we link there as the canonical source.
This workflow follows the Airtable → Google Sheets 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 →
{
"meta": {
"templateCredsSetupCompleted": false
},
"name": "14 - Domain Traffic Enricher",
"tags": [],
"nodes": [
{
"id": "541d74fd-8229-442d-8805-3485c0f183ba",
"name": "\ud83d\udfe2 Sheet Trigger: New Domain",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
-1740,
60
],
"parameters": {
"event": "rowAdded",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID_HERE/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID_HERE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID_HERE/edit?usp=drivesdk",
"cachedResultName": "Companies List"
}
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "cc51b573-cf22-44ea-8c77-60e12187b348",
"name": "\ud83e\uddfc Clean Domain URL",
"type": "n8n-nodes-base.set",
"position": [
-1520,
60
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "domain_cleanup",
"name": "domain",
"type": "string",
"value": "={{ $json.List.replace(/^https?:\\/\\//, '').replace(/^www\\./, '').replace(/\\/$/, '') }}"
},
{
"id": "row_number",
"name": "rowNumber",
"type": "number",
"value": "={{ $json.row_number }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "bbd629ed-94fa-4cfd-8274-075890405f6d",
"name": "\ud83c\udf10 Fetch Analysis (SimilarWeb API)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1300,
60
],
"parameters": {
"url": "https://similarweb8.p.rapidapi.com/get-analysis",
"options": {
"timeout": 30000
},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "domain",
"value": "={{ $json.domain }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "X-RapidAPI-Key",
"value": "YOUR_SIMILARWEB_RAPIDAPI_KEY_HERE"
},
{
"name": "X-RapidAPI-Host",
"value": "similarweb8.p.rapidapi.com"
}
]
}
},
"typeVersion": 4.1,
"continueOnFail": true
},
{
"id": "4c68f450-c6c1-4233-af80-527a720114dd",
"name": "\ud83d\udcca Extract Key Traffic Metrics",
"type": "n8n-nodes-base.code",
"position": [
-1080,
60
],
"parameters": {
"jsCode": "// Input: Raw SimilarWeb data in `$json.data`\nconst data = $json.data;\n\nconst output = {\n domain: data.domain,\n globalRank: data.global_rank,\n countryRank: `${data.country_rank.country} - ${data.country_rank.rank}`,\n categoryRank: `${data.category_rank.category} - ${data.category_rank.rank}`,\n totalVisits: data.traffic_overview.total_visits,\n bounceRate: `${(data.traffic_overview.bounce_rate * 100).toFixed(2)}%`,\n pagesPerVisit: data.traffic_overview.pages_per_visit,\n avgVisitDuration: data.traffic_overview.avg_visit_duration,\n\n // Only top 3 traffic sources\n topTrafficSources: {\n direct: `${(data.traffic_sources.direct * 100).toFixed(1)}%`,\n search: `${(data.traffic_sources.search * 100).toFixed(1)}%`,\n social: `${(data.traffic_sources.social * 100).toFixed(1)}%`\n },\n\n // Top 3 countries only\n topCountries: data.geography.top_countries.slice(0, 3).map(c => `${c.country}: ${(c.share * 100).toFixed(1)}%`),\n\n deviceSplit: {\n mobile: `${(data.mobile_vs_desktop.mobile * 100).toFixed(1)}%`,\n desktop: `${(data.mobile_vs_desktop.desktop * 100).toFixed(1)}%`\n }\n};\n\nreturn [\n {\n json: output\n }\n];"
},
"typeVersion": 2
},
{
"id": "1c94450d-23dd-4a58-a10b-1a976d53e03e",
"name": "\ud83d\udce4 Update Sheet with Traffic Data",
"type": "n8n-nodes-base.googleSheets",
"position": [
-860,
-40
],
"parameters": {
"columns": {
"value": {},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "update",
"sheetName": "Sheet1",
"documentId": "YOUR_OUTPUT_GOOGLE_SHEET_ID_HERE"
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4
},
{
"id": "e4edab91-d07a-4045-96fb-36918cb869ce",
"name": "\ud83d\udcc1 Export to Airtable (Optional)",
"type": "n8n-nodes-base.airtable",
"position": [
-860,
160
],
"parameters": {
"base": {
"__rl": true,
"mode": "id",
"value": "YOUR_AIRTABLE_BASE_ID"
},
"table": {
"__rl": true,
"mode": "id",
"value": "YOUR_AIRTABLE_TABLE_NAME"
},
"columns": {
"value": {},
"schema": [],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create",
"authentication": "airtableOAuth2Api"
},
"credentials": {
"airtableOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "e6e73f3f-5987-4a01-b5b3-b2e7f5f5c0bd",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1780,
-200
],
"parameters": {
"width": 400,
"height": 540,
"content": "## \ud83e\uddfe Trigger Sheet | \ud83d\udee0\ufe0f Set Sheet Data\n\n**Purpose:**\n\n*Fetches site URLs from the connected Google Sheet and structures each row into a clean format with keys like domain, rowNumber, etc., preparing the data for enrichment and traffic analysis.*"
},
"typeVersion": 1
},
{
"id": "2356c9db-8443-4805-af2c-77b32170637b",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1360,
-320
],
"parameters": {
"width": 420,
"height": 660,
"content": "## \ud83c\udf0d Similarweb HTTP Request | \ud83d\udee0\ufe0f Set Formatted Similarweb Response\n\n**Purpose:**\n\n*Fetches web traffic and engagement insights from Similarweb for each domain (e.g. global rank, total visits, bounce rate). Then formats this data to extract only key metrics like:\n\nGlobal Rank, Country Rank, Monthly Visits, Avg Visit Duration, Top Traffic Sources, Device Split (Mobile/Desktop)*"
},
"typeVersion": 1
},
{
"id": "0de06e71-5a3e-4040-b110-1ebe399fe669",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-920,
-320
],
"parameters": {
"width": 200,
"height": 660,
"content": "## \ud83e\uddfe Send to Sheet\n\n**Purpose:**\n\n*Appends the enriched and filtered lead data back to a new Google Sheet or another destination sheet for further use.*"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"connections": {
"\ud83e\uddfc Clean Domain URL": {
"main": [
[
{
"node": "\ud83c\udf10 Fetch Analysis (SimilarWeb API)",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udfe2 Sheet Trigger: New Domain": {
"main": [
[
{
"node": "\ud83e\uddfc Clean Domain URL",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udcca Extract Key Traffic Metrics": {
"main": [
[
{
"node": "\ud83d\udce4 Update Sheet with Traffic Data",
"type": "main",
"index": 0
},
{
"node": "\ud83d\udcc1 Export to Airtable (Optional)",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udce4 Update Sheet with Traffic Data": {
"main": [
[]
]
},
"\ud83c\udf10 Fetch Analysis (SimilarWeb API)": {
"main": [
[
{
"node": "\ud83d\udcca Extract Key Traffic Metrics",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
airtableOAuth2ApigoogleSheetsOAuth2ApigoogleSheetsTriggerOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow starts whenever a new domain is added to a Google Sheet. It cleans the domain, fetches traffic insights from SimilarWeb, extracts the most relevant metrics, and updates the sheet with enriched data. Optionally, it can also send this information to Airtable for…
Source: https://n8n.io/workflows/7623/ — 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.
This template is ideal for solo store owners, eCommerce marketers, automation beginners, or anyone using Shopify and Gmail who wants to recover lost revenue without coding.
This guide will walk you through setting up your n8n workflow. By the end, you'll have a fully automated system for managing your recruitment pipeline.
Stickynote Workflow. Uses googleTranslate, googleSheetsTrigger, googleDrive, httpRequest. Event-driven trigger; 22 nodes.
This workflow is perfect for recruiters, HR professionals, and startup founders who receive job applications by email and want to automate the process of parsing, matching, and evaluating resumes. If
This powerful no-code workflow automates plagiarism detection using Plagiarism Checker AI Powered. Users submit text through Google Sheets. The system checks for duplication using the API, sends a det