{
  "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
          }
        ]
      ]
    }
  }
}