{
  "id": "FtzJlVWzcws353Gp",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "3. Event Attendee scraper",
  "tags": [],
  "nodes": [
    {
      "id": "ebf3b7e1-727d-44f0-a198-4899fe5eeabd",
      "name": "\ud83d\udd52 Schedule Scraper",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "07cd890b-ac50-4c89-9082-3784efe19cc8",
      "name": "\u2699\ufe0f Input URL & Params",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c1e742bf-8bd2-4d18-9a51-dac7cfaa51fd",
              "name": "url",
              "type": "string",
              "value": "https://10times.com"
            },
            {
              "id": "107ffa9d-231b-4991-b362-415ec08505b7",
              "name": "format",
              "type": "string",
              "value": "scrape_as_markdown"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "06a0519f-bb0b-4c81-af7e-a34b972fa54a",
      "name": "\ud83e\udd16 Bright Data AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        580,
        0
      ],
      "parameters": {
        "text": "=Scrape all category, featured_event, attendee_feedback and venue data using \"MCP Client to Scrape as markdown\" tool:\nurl: {{ $json.url }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "d343e2d6-92b8-4a7d-b7d4-b5e83b67f8f4",
      "name": "\ud83e\udde0 Agent Memory Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        480,
        320
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "43bfe724-c78f-4597-b9dd-ef7c3d25afa3",
      "name": "\ud83d\udd77\ufe0f MCP Scraper: 10times",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        680,
        320
      ],
      "parameters": {
        "toolName": "scrape_as_markdown",
        "operation": "executeTool",
        "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}",
        "descriptionType": "manual",
        "toolDescription": "Scrape a single webpage URL with advanced options for content extraction and get back the results in markdown"
      },
      "credentials": {
        "mcpClientApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1dab45f4-1080-40ce-8381-a83f48855715",
      "name": "\ud83d\udce5 Save to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1160,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "vanues": "={{ $json.output.venues }}",
            "Categories": "={{ $json.output.categories }}",
            "Featured events": "={{ $json.output.featured_events }}",
            "Attendee feedback": "={{ $json.output.attendee_feedback }}"
          },
          "schema": [
            {
              "id": "Categories",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Categories",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Featured events",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Featured events",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Attendee feedback",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Attendee feedback",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "vanues",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "vanues",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D9wZsMdv0bUvlC5IRAEiFsRNaLGrHwdykJWKOMXOe60/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1D9wZsMdv0bUvlC5IRAEiFsRNaLGrHwdykJWKOMXOe60",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D9wZsMdv0bUvlC5IRAEiFsRNaLGrHwdykJWKOMXOe60/edit?usp=drivesdk",
          "cachedResultName": "Attendies data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "858b205e-200f-4bac-aabe-dca745da17bd",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -640
      ],
      "parameters": {
        "color": 2,
        "width": 400,
        "height": 820,
        "content": "## \ud83d\udfe2 **SECTION 1: Trigger & Input Configuration**\n\n### \ud83d\udd01 `\ud83d\udd52 Schedule Scraper`\n\nThis is the **starting point** of the workflow. You can set it to run:\n\n* At specific intervals (e.g., daily, weekly)\n* Or manually (while testing)\n\n> \ud83d\udcd8 *Benefit for beginners:* No coding needed! Just drag and set the schedule, and your workflow runs itself.\n\n---\n\n### \u270f\ufe0f `\u2699\ufe0f Input URL & Params`\n\nHere, you provide the **URL of the 10times event page** (like: `https://10times.com/ces/exhibitors`). You can customize or hardcode this value.\n\n> \ud83d\udcd8 *Tip:* You can turn this into a form or connect it to a database to auto-feed event URLs.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "80c31fa5-1838-40af-9416-5e1e1efdd4bf",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        -1500
      ],
      "parameters": {
        "color": 3,
        "width": 400,
        "height": 1680,
        "content": "## \ud83e\udd16 **SECTION 2: Smart Scraping via AI Agent**\n\nThis is where the **heavy lifting** happens using Bright Data\u2019s **Mobile Carrier Proxy (MCP)** and OpenAI\u2019s logic to bypass website protections.\n\n---\n\n### \ud83e\udde0 `\ud83e\udd16 Bright Data AI Agent`\n\nThis node coordinates scraping. It tells the agent exactly:\n\n* Which URL to open\n* What to extract (like attendees, venues, events)\n* How to format the response (in markdown or JSON)\n\n> \u26a1 *Why it's powerful:* The AI Agent understands human-like prompts and adapts scraping automatically.\n\n---\n\n#### \ud83e\udde0 `\ud83e\udde0 Agent Memory Model`\n\nHelps the Agent remember its instructions or carry session context (e.g., \"continue scrolling\", \"grab the next batch\").\n\n---\n\n#### \ud83c\udf10 `\ud83d\udd77\ufe0f MCP Scraper: 10times`\n\nThis is the **actual web scraper** running on **Bright Data\u2019s mobile proxy** \u2014 which mimics a real mobile device to avoid bot detection. It loads JavaScript, scrolls pages, and handles dynamic content.\n\n> \ud83d\udee1\ufe0f *Biggest Advantage:* Can access pages that block most traditional scrapers!\n\n---\n\n#### \ud83d\udcc4 `\ud83e\uddfe Parse Attendee Data`\n\nUses the **Structured Output Parser** to turn messy scraped markdown into clean, structured JSON with fields like:\n\n* `categories`\n* `featured_events`\n* `attendee_feedback`\n* `venues`\n\n> \ud83e\udde9 *Tip:* This is the secret to clean automation \u2014 parsed data can now be reused, filtered, or enriched!\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4b32365f-d9ea-4043-8901-9e882357b892",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1020,
        -520
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 700,
        "content": "## \ud83d\udcca **SECTION 3: Save & Reuse the Leads**\n\n### \ud83d\udce5 `\ud83d\udce5 Save to Google Sheets`\n\nThis node stores each piece of parsed data (e.g., 1 attendee feedback per row) into your connected **Google Sheets** document.\n\n* Each row is tagged with a `type` (like `category`, `venue`, etc.)\n* You can filter, analyze, or export this for marketing, research, outreach, etc.\n\n> \ud83d\udcbc *Business Use:* Build a database of trending events, track where competitors exhibit, or generate cold outreach leads.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "aa026e7b-1731-435d-b21f-3bcf150270ca",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2100,
        -640
      ],
      "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": "029770da-da09-432a-b085-434b9d7a0660",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2100,
        -300
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2398,
        "content": "## \ud83d\ude80 **Workflow Title: 10times Event Intelligence Scraper**\n\n> This no-code automation scrapes attendee data from [10times.com](https://10times.com), parses it into structured information (like categories, events, and feedback), and logs it into Google Sheets for lead generation or event research.\n\n---\n\n## \ud83d\udfe2 **SECTION 1: Trigger & Input Configuration**\n\n### \ud83d\udd01 `\ud83d\udd52 Schedule Scraper`\n\nThis is the **starting point** of the workflow. You can set it to run:\n\n* At specific intervals (e.g., daily, weekly)\n* Or manually (while testing)\n\n> \ud83d\udcd8 *Benefit for beginners:* No coding needed! Just drag and set the schedule, and your workflow runs itself.\n\n---\n\n### \u270f\ufe0f `\u2699\ufe0f Input URL & Params`\n\nHere, you provide the **URL of the 10times event page** (like: `https://10times.com/ces/exhibitors`). You can customize or hardcode this value.\n\n> \ud83d\udcd8 *Tip:* You can turn this into a form or connect it to a database to auto-feed event URLs.\n\n---\n\n## \ud83e\udd16 **SECTION 2: Smart Scraping via AI Agent**\n\nThis is where the **heavy lifting** happens using Bright Data\u2019s **Mobile Carrier Proxy (MCP)** and OpenAI\u2019s logic to bypass website protections.\n\n---\n\n### \ud83e\udde0 `\ud83e\udd16 Bright Data AI Agent`\n\nThis node coordinates scraping. It tells the agent exactly:\n\n* Which URL to open\n* What to extract (like attendees, venues, events)\n* How to format the response (in markdown or JSON)\n\n> \u26a1 *Why it's powerful:* The AI Agent understands human-like prompts and adapts scraping automatically.\n\n---\n\n#### \ud83e\udde0 `\ud83e\udde0 Agent Memory Model`\n\nHelps the Agent remember its instructions or carry session context (e.g., \"continue scrolling\", \"grab the next batch\").\n\n---\n\n#### \ud83c\udf10 `\ud83d\udd77\ufe0f MCP Scraper: 10times`\n\nThis is the **actual web scraper** running on **Bright Data\u2019s mobile proxy** \u2014 which mimics a real mobile device to avoid bot detection. It loads JavaScript, scrolls pages, and handles dynamic content.\n\n> \ud83d\udee1\ufe0f *Biggest Advantage:* Can access pages that block most traditional scrapers!\n\n---\n\n#### \ud83d\udcc4 `\ud83e\uddfe Parse Attendee Data`\n\nUses the **Structured Output Parser** to turn messy scraped markdown into clean, structured JSON with fields like:\n\n* `categories`\n* `featured_events`\n* `attendee_feedback`\n* `venues`\n\n> \ud83e\udde9 *Tip:* This is the secret to clean automation \u2014 parsed data can now be reused, filtered, or enriched!\n\n---\n\n## \ud83d\udcca **SECTION 3: Save & Reuse the Leads**\n\n### \ud83d\udce5 `\ud83d\udce5 Save to Google Sheets`\n\nThis node stores each piece of parsed data (e.g., 1 attendee feedback per row) into your connected **Google Sheets** document.\n\n* Each row is tagged with a `type` (like `category`, `venue`, etc.)\n* You can filter, analyze, or export this for marketing, research, outreach, etc.\n\n> \ud83d\udcbc *Business Use:* Build a database of trending events, track where competitors exhibit, or generate cold outreach leads.\n\n---\n\n## \u2705 Summary for Beginners\n\n| \ud83e\udde9 Feature      | \ud83d\udca1 Purpose                                                 | \ud83d\udc76 Beginner Tip                                    |\n| --------------- | ---------------------------------------------------------- | -------------------------------------------------- |\n| Trigger & Input | Decide **when and what** to scrape                         | No code needed \u2014 just set your event URL           |\n| AI Agent & MCP  | Use **AI-powered scraper** to get around anti-bot barriers | Agent uses natural language, no selector headaches |\n| Parser          | Clean your data into usable format                         | Plug-and-play output with titles, dates, users     |\n| Google Sheets   | **Save your leads** for marketing or research              | Auto-fills your spreadsheet \u2014 no copy-paste needed |\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0cd21ab6-0482-4948-a601-3bf2cc3b8264",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        -520
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 240,
        "content": "## I\u2019ll receive a tiny commission if you join Bright Data through this link\u2014thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
      },
      "typeVersion": 1
    },
    {
      "id": "de5252a5-bc2b-4014-bb53-2891dd5d58af",
      "name": "Auto-fixing Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        820,
        320
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "4c8802f0-0dfd-4452-b413-b4b049820cef",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        780,
        560
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "35f9f084-8513-4170-bf77-bf28efb732a1",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        960,
        540
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"categories\": [\n    \"Education & Training\",\n    \"Medical & Pharma\",\n    \"IT & Technology\",\n    \"Banking & Finance\",\n    \"Business Services\",\n    \"Entertainment & Media\",\n    \"Industrial Engineering\"\n  ],\n  \"featured_events\": [\n    {\n      \"name\": \"Texworld New York City\",\n      \"date\": \"Wed, 23 - Fri, 25 Jul 2025\",\n      \"location\": \"New York, USA\"\n    },\n    {\n      \"name\": \"Home Textiles Sourcing Expo\",\n      \"date\": \"Wed, 23 - Fri, 25 Jul 2025\",\n      \"location\": \"New York, USA\"\n    },\n    {\n      \"name\": \"Texworld Los Angeles\",\n      \"date\": \"Tue, 29 - Thu, 31 Jul 2025\",\n      \"location\": \"Los Angeles, USA\"\n    }\n  ],\n  \"attendee_feedback\": [\n    {\n      \"event\": \"Restaurants Canada Show\",\n      \"comment\": \"Great preparations\",\n      \"user\": \"MARIAH NDAGIRE\",\n      \"country\": \"Canada\"\n    },\n    {\n      \"event\": \"WoodEX for Africa\",\n      \"comment\": \"Great event, well organised...\",\n      \"user\": \"Kgometji Thosago\",\n      \"country\": \"South Africa\"\n    },\n    {\n      \"event\": \"International Hardware Fair Saudi Arabia\",\n      \"comment\": \"Well organised and clean setup...\",\n      \"user\": \"Taha Khan\",\n      \"country\": \"Saudi Arabia\"\n    },\n    {\n      \"event\": \"World Environment Expo\",\n      \"comment\": \"Very nice exhibition with lots of new information...\",\n      \"user\": \"Chauhansir\",\n      \"country\": \"India\"\n    },\n    {\n      \"event\": \"IGC Grains Conference\",\n      \"comment\": \"Learnt a lot...\",\n      \"user\": \"AbdulFatai Suleiman\",\n      \"country\": \"Nigeria\"\n    }\n  ],\n  \"venues\": [\n    {\n      \"name\": \"Jio World Convention Centre\",\n      \"city\": \"Mumbai\",\n      \"country\": \"India\",\n      \"total_events\": 204\n    },\n    {\n      \"name\": \"ExCeL London\",\n      \"city\": \"London\",\n      \"country\": \"United Kingdom\",\n      \"total_events\": 815\n    },\n    {\n      \"name\": \"Melbourne Convention and Exhibition Centre\",\n      \"city\": \"Melbourne\",\n      \"country\": \"Australia\",\n      \"total_events\": 1028\n    }\n  ]\n}\n"
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "34c237ed-c5b5-460e-a596-42bf236c5422",
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd52 Schedule Scraper": {
      "main": [
        [
          {
            "node": "\u2699\ufe0f Input URL & Params",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udde0 Agent Memory Model": {
      "ai_languageModel": [
        [
          {
            "node": "\ud83e\udd16 Bright Data AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "\ud83e\udd16 Bright Data AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "\u2699\ufe0f Input URL & Params": {
      "main": [
        [
          {
            "node": "\ud83e\udd16 Bright Data AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udd16 Bright Data AI Agent": {
      "main": [
        [
          {
            "node": "\ud83d\udce5 Save to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd77\ufe0f MCP Scraper: 10times": {
      "ai_tool": [
        [
          {
            "node": "\ud83e\udd16 Bright Data AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}