{
  "id": "8owN5INh7X8vZtVY",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "BuiltWith Weekly Summary",
  "tags": [],
  "nodes": [
    {
      "id": "94dc7e06-7eae-429a-a7ac-a732452b430f",
      "name": "Extract Tech Stack Info",
      "type": "n8n-nodes-base.code",
      "position": [
        900,
        0
      ],
      "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": "609233cd-e8d6-4896-8e63-f065305022e5",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1200,
        220
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7a9ebaf7-2abf-4e1b-ad9a-bed19adc9bd5",
      "name": "Weekly Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        180,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0750f0ed-8dd0-4a67-815a-dbb6c5d0c45d",
      "name": "Fetch Domain List",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        380,
        0
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1byVKIR8vdDYc8HbrKVlIXw48dVMvcU23SMczwt4E8S8/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1byVKIR8vdDYc8HbrKVlIXw48dVMvcU23SMczwt4E8S8",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1byVKIR8vdDYc8HbrKVlIXw48dVMvcU23SMczwt4E8S8/edit?usp=drivesdk",
          "cachedResultName": "BuiltWith weekly ecommerce summary"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "d5f6b578-a70f-4768-86c8-76dac077c99a",
      "name": "Get Tech Stack (BuiltWith API)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        680,
        0
      ],
      "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": "7a85fed1-df8e-4fb2-bcf9-aed9fdbf86af",
      "name": "Generate Stack Summary (AI)",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1220,
        0
      ],
      "parameters": {
        "text": "=Provide summary of the data that is scraped from BuiltWith\n\nDomain: {{ $json.Domain }}\nTechnology: {{ $json.Technology }}\nCategory: {{ $json.Category }}\nFirst Detected: {{ $json['First Detected'] }}\nLast Detected: {{ $json['Last Detected'] }}\nURL: {{ $json.URL }}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "3057b031-183a-4f84-be77-0ce53418203b",
      "name": "Send Summary Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1580,
        0
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "={{ $json.output }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "Weekly BuitlWith Ecommerce Platform Summary",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "fe050e42-81ae-43e2-bb7f-899f9a0f1029",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        120,
        -1380
      ],
      "parameters": {
        "color": 6,
        "width": 440,
        "height": 1560,
        "content": "## \ud83d\udce6 **Section 1: Data Collection Stage**\n\n**(Nodes: 1\ufe0f\u20e3 Schedule Trigger + 2\ufe0f\u20e3 Fetch Domain List)**\n\n### \ud83d\udd01 1. Weekly Automation Trigger\n\n\ud83d\udd58 **Node Name: `Weekly Summary Trigger`**\n\u23f0 **What it does:**\nThis node kicks off the entire workflow **automatically every Monday at 9 AM** \u2014 no manual work needed!\n\n\ud83d\udca1 **Think of it like a morning alarm** for your workflow. Every week, it starts the process so you never forget to analyze the tech stacks again.\n\n---\n\n### \ud83d\udcc4 2. Read Domains from Google Sheets\n\n\ud83d\uddc2\ufe0f **Node Name: `Fetch Domain List`**\n\ud83d\udce5 **What it does:**\nThis node goes into your **Google Sheet** and pulls a list of ecommerce **website domains** (like `nike.com`, `asos.com`, etc.)\n\n\ud83d\udd17 *You just need to keep updating your Google Sheet whenever you want to analyze new ecommerce websites.*\n\n---\n\n### \u2705 **Summary of Section 1:**\n\nThis section **automates the start** and pulls the **input data (website list)** from a central, editable place (Google Sheets).\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "55d142da-8cf6-4f84-bb38-d9311eb8e094",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        620,
        -1380
      ],
      "parameters": {
        "color": 5,
        "width": 440,
        "height": 1560,
        "content": "# \ud83e\udde0 **Section 2: Tech Stack Intelligence Stage**\n\n**(Nodes: 3\ufe0f\u20e3 Get Tech Stack + 4\ufe0f\u20e3 Parse Tech Info)**\n\n### \ud83c\udf10 3. Fetch Tech Stack via BuiltWith\n\n\ud83d\udd27 **Node Name: `Get Tech Stack (BuiltWith API)`**\n\ud83d\udce1 **What it does:**\nThis node sends each domain from the sheet to [BuiltWith](https://builtwith.com) \u2014 a powerful tool that tells you **which technologies** a website is using.\n\n\ud83d\udcac For example:\n`nike.com` \u2192 Shopify, Google Analytics, Facebook Pixel, etc.\n\n\ud83d\udcec It does this using a GET request from BuiltWith\u2019s API endpoint:\n\n```\nGET https://api.builtwith.com/\n```\n\n---\n\n### \ud83e\uddfe 4. Extract Useful Info\n\n\ud83e\uddee **Node Name: `Parse Tech Stack Details`**\n\ud83d\udce4 **What it does:**\nThe raw response from BuiltWith can be messy. This node **cleans up the data** and pulls only what\u2019s **relevant** \u2014 like ecommerce platforms, analytics tools, and payment gateways.\n\n\ud83d\udd0d *It extracts only the gold from the data mine.*\n\n---\n\n### \u2705 **Summary of Section 2:**\n\nThis section **fetches and organizes** advanced tech insights about each ecommerce site. No need for you to visit every site or dig through source code!\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ddb1135e-3bd4-4b80-aa00-c070ed7722a7",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        -1100
      ],
      "parameters": {
        "color": 3,
        "width": 620,
        "height": 1460,
        "content": "## \ud83d\udc8c **Section 3: Smart Summary & Delivery**\n\n**(Nodes: 5\ufe0f\u20e3 Generate Stack Summary + 6\ufe0f\u20e3 Send Email)**\n\n### \ud83e\udd16 5. Generate Tech Summary with AI\n\n\ud83e\udde0 **Node Name: `Generate Stack Summary (AI)`**\n\ud83d\udccb **What it does:**\nThis is where the magic happens! It uses **OpenAI Chat Model** to analyze and summarize the tech stack for each domain in **clear, readable language**.\n\n\ud83e\uddd1\u200d\ud83d\udcbb Instead of showing raw JSON or tool names, it says:\n\n> *\u201cNike.com uses Shopify for its storefront, integrates Google Tag Manager for analytics, and uses Klarna for payment processing.\u201d*\n\n\ud83d\udcc8 You can easily forward this to clients, managers, or teammates.\n\n---\n\n### \ud83d\udcec 6. Email the Summary\n\n\ud83d\udce8 **Node Name: `Send Summary Email`**\n\ud83d\udce7 **What it does:**\nFinally, this node **sends the generated summaries via Gmail** to a specified email address \u2014 or even multiple addresses.\n\n\ud83d\udca1 You can customize the subject, recipient list, and message format easily.\n\n---\n\n### \u2705 **Summary of Section 3:**\n\nThis section turns complex data into **natural-language insights** and delivers them **automatically** via email. It's like having your own tech intelligence assistant!\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b2c9dc89-87f5-4921-8f98-4dd20601e46a",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1560,
        -1360
      ],
      "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": "0603059d-4e1b-4fa1-b9c5-17b75a40ba56",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1560,
        -1020
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 3398,
        "content": "## \ud83e\udde9 **Automated Tech Stack Reporting Workflow**\n\n\ud83c\udfaf *Goal: Automatically fetch and summarize the technology stacks of ecommerce domains every week and email the summary.*\n\n---\n\n## \ud83d\udce6 **Section 1: Data Collection Stage**\n\n**(Nodes: 1\ufe0f\u20e3 Schedule Trigger + 2\ufe0f\u20e3 Fetch Domain List)**\n\n### \ud83d\udd01 1. Weekly Automation Trigger\n\n\ud83d\udd58 **Node Name: `Weekly Summary Trigger`**\n\u23f0 **What it does:**\nThis node kicks off the entire workflow **automatically every Monday at 9 AM** \u2014 no manual work needed!\n\n\ud83d\udca1 **Think of it like a morning alarm** for your workflow. Every week, it starts the process so you never forget to analyze the tech stacks again.\n\n---\n\n### \ud83d\udcc4 2. Read Domains from Google Sheets\n\n\ud83d\uddc2\ufe0f **Node Name: `Fetch Domain List`**\n\ud83d\udce5 **What it does:**\nThis node goes into your **Google Sheet** and pulls a list of ecommerce **website domains** (like `nike.com`, `asos.com`, etc.)\n\n\ud83d\udd17 *You just need to keep updating your Google Sheet whenever you want to analyze new ecommerce websites.*\n\n---\n\n### \u2705 **Summary of Section 1:**\n\nThis section **automates the start** and pulls the **input data (website list)** from a central, editable place (Google Sheets).\n\n---\n\n## \ud83e\udde0 **Section 2: Tech Stack Intelligence Stage**\n\n**(Nodes: 3\ufe0f\u20e3 Get Tech Stack + 4\ufe0f\u20e3 Parse Tech Info)**\n\n### \ud83c\udf10 3. Fetch Tech Stack via BuiltWith\n\n\ud83d\udd27 **Node Name: `Get Tech Stack (BuiltWith API)`**\n\ud83d\udce1 **What it does:**\nThis node sends each domain from the sheet to [BuiltWith](https://builtwith.com) \u2014 a powerful tool that tells you **which technologies** a website is using.\n\n\ud83d\udcac For example:\n`nike.com` \u2192 Shopify, Google Analytics, Facebook Pixel, etc.\n\n\ud83d\udcec It does this using a GET request from BuiltWith\u2019s API endpoint:\n\n```\nGET https://api.builtwith.com/\n```\n\n---\n\n### \ud83e\uddfe 4. Extract Useful Info\n\n\ud83e\uddee **Node Name: `Parse Tech Stack Details`**\n\ud83d\udce4 **What it does:**\nThe raw response from BuiltWith can be messy. This node **cleans up the data** and pulls only what\u2019s **relevant** \u2014 like ecommerce platforms, analytics tools, and payment gateways.\n\n\ud83d\udd0d *It extracts only the gold from the data mine.*\n\n---\n\n### \u2705 **Summary of Section 2:**\n\nThis section **fetches and organizes** advanced tech insights about each ecommerce site. No need for you to visit every site or dig through source code!\n\n---\n\n## \ud83d\udc8c **Section 3: Smart Summary & Delivery**\n\n**(Nodes: 5\ufe0f\u20e3 Generate Stack Summary + 6\ufe0f\u20e3 Send Email)**\n\n### \ud83e\udd16 5. Generate Tech Summary with AI\n\n\ud83e\udde0 **Node Name: `Generate Stack Summary (AI)`**\n\ud83d\udccb **What it does:**\nThis is where the magic happens! It uses **OpenAI Chat Model** to analyze and summarize the tech stack for each domain in **clear, readable language**.\n\n\ud83e\uddd1\u200d\ud83d\udcbb Instead of showing raw JSON or tool names, it says:\n\n> *\u201cNike.com uses Shopify for its storefront, integrates Google Tag Manager for analytics, and uses Klarna for payment processing.\u201d*\n\n\ud83d\udcc8 You can easily forward this to clients, managers, or teammates.\n\n---\n\n### \ud83d\udcec 6. Email the Summary\n\n\ud83d\udce8 **Node Name: `Send Summary Email`**\n\ud83d\udce7 **What it does:**\nFinally, this node **sends the generated summaries via Gmail** to a specified email address \u2014 or even multiple addresses.\n\n\ud83d\udca1 You can customize the subject, recipient list, and message format easily.\n\n---\n\n### \u2705 **Summary of Section 3:**\n\nThis section turns complex data into **natural-language insights** and delivers them **automatically** via email. It's like having your own tech intelligence assistant!\n\n---\n\n## \ud83c\udf1f **What Beginners Can Do with This Workflow**\n\n| \ud83d\udee0\ufe0f Use Case            | \u2705 Benefit                                         |\n| ----------------------- | ------------------------------------------------- |\n| \ud83e\uddea **Tech Analysis**    | Learn what tech stacks big ecommerce sites use    |\n| \ud83d\udcca **Client Reporting** | Automatically send insights to stakeholders       |\n| \ud83e\udde0 **AI Integration**   | Understand how LLMs can summarize complex data    |\n| \ud83e\udde9 **Automation**       | Master scheduling, APIs, and data flows           |\n| \ud83d\udcbc **Freelance Growth** | Offer it as a service to marketing or dev clients |\n\n---\n\n## \ud83c\udf08 **Conclusion:**\n\nThis workflow is a **zero-touch**, **AI-powered automation** for ecommerce tech stack analysis that beginners can adopt, modify, and scale for other industries too!\n\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "5f270319-ac54-4ce9-9230-c6debfc01927",
  "connections": {
    "Weekly Trigger": {
      "main": [
        [
          {
            "node": "Fetch Domain List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Domain List": {
      "main": [
        [
          {
            "node": "Get Tech Stack (BuiltWith API)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Stack Summary (AI)",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extract Tech Stack Info": {
      "main": [
        [
          {
            "node": "Generate Stack Summary (AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Stack Summary (AI)": {
      "main": [
        [
          {
            "node": "Send Summary Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Tech Stack (BuiltWith API)": {
      "main": [
        [
          {
            "node": "Extract Tech Stack Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}