This workflow corresponds to n8n.io template #4786 — 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": "SdBKwXCUZaS6VYQE",
"name": "BuiltWith to trello",
"tags": [],
"nodes": [
{
"id": "ecafd36c-ff4a-4348-95ec-5a221a73ddf7",
"name": "Manual Trigger",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-420,
900
],
"parameters": {},
"typeVersion": 1
},
{
"id": "efbaced5-1171-406b-9704-277a12a51f0d",
"name": "Read Domains from Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
-200,
900
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Hs9LcBpC-kaGgD_QjkkqBEJzDeAd85RW_L1fXTYEdCA/edit?usp=drivesdk",
"cachedResultName": "BuiltWith Domain"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "1793828d-c274-4b8b-b612-33a80a27fba0",
"name": "Fetch detail via BuiltWith",
"type": "n8n-nodes-base.httpRequest",
"position": [
60,
900
],
"parameters": {
"url": "https://api.builtwith.com/v21/api.json",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "KEY",
"value": "YOUR_API_KEY"
},
{
"name": "LOOKUP",
"value": "={{ $json.Domain }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "d64e4b44-5a7c-487d-98ec-5f5ff40ecf56",
"name": "Extract Tech Stack Info",
"type": "n8n-nodes-base.code",
"position": [
280,
900
],
"parameters": {
"jsCode": "const result = $json.Results?.[0];\nconst domain = result?.Lookup || null;\nconst path = result?.Result?.Paths?.[0];\nconst url = path?.Url || null;\n\nlet extracted = null;\n\n// Loop through Groups to find the first available Tech entry\nfor (const group of path?.Groups || []) {\n const category = group.Name;\n const tech = group.Tech?.[0];\n \n if (tech) {\n extracted = {\n Technology: tech.Name,\n Category: category,\n \"First Detected\": tech.FirstDetected,\n \"Last Detected\": tech.LastDetected,\n Domain: domain,\n URL: url\n };\n break; // Stop after first match\n }\n}\n\nreturn extracted ? [extracted] : [];\n"
},
"typeVersion": 2
},
{
"id": "63da73d8-06a5-4780-a8b3-24ebf1c93176",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
220
],
"parameters": {
"color": 5,
"width": 360,
"height": 880,
"content": "# \ud83d\udcca **Section 3: Create Trello Cards**\n\n\ud83d\udce5\ud83d\udcdd\n**Node:**\n\n* `\ud83d\udcd7 Create Trello Cards with Tech Stack`\n\n---\n\n### \ud83d\udd39 What it does:\n\n* Takes the extracted data and **create trello cards for scan**.\n* Fills in columns like:\n\n * `Technology`\n * `Category`\n * `First Detected`\n * `Last Detected`\n * `URL`\n\n### \u270d\ufe0f How it works:\n\n* Provide Due date and member ids\n"
},
"typeVersion": 1
},
{
"id": "43a5ae54-2faa-42c0-bdf1-013fe7cdbd34",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"color": 7,
"width": 440,
"height": 1100,
"content": "## \ud83c\udf0d **Section 2: Tech Stack Lookup**\n\n\ud83d\udd0d\ud83c\udf10\u27a1\ufe0f\ud83e\udde0\n**Nodes:**\n\n* `\ud83c\udf10 Fetch Tech Stack from BuiltWith`\n* `\ud83e\udde0 Extract Tech Stack Info (Function node)`\n\n---\n\n### \ud83d\udd39 What it does:\n\n* For each domain, it sends an HTTP GET request to the **BuiltWith API** to fetch that site's detected technologies.\n* The **Code (Function)** node then parses the complex response and extracts only what you care about:\n\n * `Technology` \ud83d\udee0\ufe0f\n * `Category` \ud83d\udce6\n * `First Detected` \ud83d\udd50\n * `Last Detected` \u231b\n * `Domain` \ud83c\udf10\n * `URL` \ud83d\udd17\n\n### \ud83e\udde0 How it works:\n\n* BuiltWith returns a rich JSON structure with all detected tech.\n* Your function loops through it and pulls **just one matching technology** per domain (to keep it simple).\n* This makes it easy to update a single row in your sheet.\n\n### \ud83d\udca1 Beginner Tips:\n\n* Want **all technologies** per domain? Modify the function to return multiple results per input.\n* Make sure to handle **API limits** if you\u2019re processing many domains\u2014add delays using the `Wait` node if needed.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "4b3f94c2-ff44-49b4-9382-da3933a015af",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-460,
100
],
"parameters": {
"color": 6,
"width": 420,
"height": 1000,
"content": "## \ud83e\udde9 **Section 1: Input Collection**\n\n\ud83d\udcc4\u27a1\ufe0f\ud83d\udce4\n**Nodes:**\n\n* `\ud83d\uddb1\ufe0f Manual Trigger`\n* `\ud83d\udcd7 Read Domains from Google Sheets`\n\n---\n\n### \ud83d\udd39 What it does:\n\n* The workflow starts **when you click \"Test workflow\"** (manual trigger). This is useful for testing before setting up a schedule.\n* Then it connects to a **Google Sheet**, which contains a list of domains (e.g., `webflow.com`, `shopify.com`) you want to analyze.\n\n### \ud83d\udcda How it works:\n\n* You\u2019ve connected your Google Sheets account.\n* It reads all rows from a specific sheet (e.g., a tab called `Domains`).\n* Each row should include at least one column like `Domain`.\n\n### \ud83d\udca1 Beginner Tips:\n\n* Want to analyze other domains? Just paste them into the Google Sheet.\n* You can automate this by replacing the manual trigger with a `Cron` node to run every day, week, or month.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "4be59f24-b1bf-43c9-979c-70d53e4292c8",
"name": "Trello",
"type": "n8n-nodes-base.trello",
"position": [
620,
900
],
"parameters": {
"name": "Scan BuiltWith Results",
"description": "=Domain: {{ $json.Domain }}\nTechnology: {{ $json.Technology }}\nCategory: {{ $json.Category }}\nFirst Detected: {{ $json['First Detected'] }}\nLast Detected: {{ $json['Last Detected'] }}\nURL: {{ $json.URL }}",
"additionalFields": {
"due": "",
"idMembers": ""
}
},
"typeVersion": 1
},
{
"id": "7df51d43-61d0-4999-8e65-d0d7271e0684",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2100,
100
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "df23bd49-1a2c-4c40-8f38-3b90d24850a8",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2100,
440
],
"parameters": {
"color": 4,
"width": 1289,
"height": 2858,
"content": "## \u2699\ufe0f **Workflow Overview: Scrape BuiltWith Tech Data and create trello cards**\n\nThis automation does three main things:\n\n1. \ud83d\udce5 **Reads domains from Google Sheets**\n2. \ud83c\udf10 **Fetches tech stack data from BuiltWith**\n3. \ud83d\udce4 **Create trello cards for scan**\n\n---\n\n## \ud83e\udde9 **Section 1: Input Collection**\n\n\ud83d\udcc4\u27a1\ufe0f\ud83d\udce4\n**Nodes:**\n\n* `\ud83d\uddb1\ufe0f Manual Trigger`\n* `\ud83d\udcd7 Read Domains from Google Sheets`\n\n---\n\n### \ud83d\udd39 What it does:\n\n* The workflow starts **when you click \"Test workflow\"** (manual trigger). This is useful for testing before setting up a schedule.\n* Then it connects to a **Google Sheet**, which contains a list of domains (e.g., `webflow.com`, `shopify.com`) you want to analyze.\n\n### \ud83d\udcda How it works:\n\n* You\u2019ve connected your Google Sheets account.\n* It reads all rows from a specific sheet (e.g., a tab called `Domains`).\n* Each row should include at least one column like `Domain`.\n\n### \ud83d\udca1 Beginner Tips:\n\n* Want to analyze other domains? Just paste them into the Google Sheet.\n* You can automate this by replacing the manual trigger with a `Cron` node to run every day, week, or month.\n\n---\n\n## \ud83c\udf0d **Section 2: Tech Stack Lookup**\n\n\ud83d\udd0d\ud83c\udf10\u27a1\ufe0f\ud83e\udde0\n**Nodes:**\n\n* `\ud83c\udf10 Fetch Tech Stack from BuiltWith`\n* `\ud83e\udde0 Extract Tech Stack Info (Function node)`\n\n---\n\n### \ud83d\udd39 What it does:\n\n* For each domain, it sends an HTTP GET request to the **BuiltWith API** to fetch that site's detected technologies.\n* The **Code (Function)** node then parses the complex response and extracts only what you care about:\n\n * `Technology` \ud83d\udee0\ufe0f\n * `Category` \ud83d\udce6\n * `First Detected` \ud83d\udd50\n * `Last Detected` \u231b\n * `Domain` \ud83c\udf10\n * `URL` \ud83d\udd17\n\n### \ud83e\udde0 How it works:\n\n* BuiltWith returns a rich JSON structure with all detected tech.\n* Your function loops through it and pulls **just one matching technology** per domain (to keep it simple).\n* This makes it easy to update a single row in your sheet.\n\n### \ud83d\udca1 Beginner Tips:\n\n* Want **all technologies** per domain? Modify the function to return multiple results per input.\n* Make sure to handle **API limits** if you\u2019re processing many domains\u2014add delays using the `Wait` node if needed.\n\n---\n\n# \ud83d\udcca **Section 3: Create Trello Cards**\n\n\ud83d\udce5\ud83d\udcdd\n**Node:**\n\n* `\ud83d\udcd7 Create Trello Cards with Tech Stack`\n\n---\n\n### \ud83d\udd39 What it does:\n\n* Takes the extracted data and **create trello cards for scan**.\n* Fills in columns like:\n\n * `Technology`\n * `Category`\n * `First Detected`\n * `Last Detected`\n * `URL`\n\n### \u270d\ufe0f How it works:\n\n* Provide Due date and member ids\n\n\n### \ud83d\udca1 Beginner Tips:\n\n* Add more columns like `Confidence`, `Data Source`, or `Notes` if you want to enrich your research.\n* Use this sheet for:\n\n * \ud83d\udcbc Lead qualification\n * \ud83d\udcca Market analysis\n * \ud83d\ude80 Tech product targeting\n\n---\n\n## \ud83c\udfaf Final Thoughts\n\n\ud83d\udd01 This automation turns a **manual and tedious research task** into a repeatable, scalable, and accurate process. By connecting **Google Sheets + BuiltWith + Trello + n8n**, you can:\n\n\u2705 Automatically analyze websites\n\u2705 Store structured data for marketing or sales\n\u2705 Scale your intelligence gathering with just a few clicks\n\n---\n\n\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "c7136027-b14e-4f10-a759-fbd538ae3991",
"connections": {
"Manual Trigger": {
"main": [
[
{
"node": "Read Domains from Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Extract Tech Stack Info": {
"main": [
[
{
"node": "Trello",
"type": "main",
"index": 0
}
]
]
},
"Fetch detail via BuiltWith": {
"main": [
[
{
"node": "Extract Tech Stack Info",
"type": "main",
"index": 0
}
]
]
},
"Read Domains from Google Sheets": {
"main": [
[
{
"node": "Fetch detail via BuiltWith",
"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.
googleSheetsOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automated workflow that transforms BuiltWith technology data into actionable sales leads in Trello, creating a visual sales pipeline. Converts tech stack data into Trello cards Organizes leads by technology stack Tracks sales pipeline stages Enables team collaboration Updates…
Source: https://n8n.io/workflows/4786/ — 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 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.
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.
PCN. Uses googleSheets, httpRequest, @n-octo-n/n8n-nodes-json-database, itemLists. Event-driven trigger; 60 nodes.
The workflow automates the process of gathering extensive keyword data for a "Main Keyword." It starts by reading initial parameters from a Google Sheets template, creates a new dedicated Google Sheet
🔥 March Sale – n8n Community Members Get ideoGener8r for Just $27! (Reg. $47) Use Coupon Code: (Valid until 3/31/2025 for n8n community members)