AutomationFlowsAI & RAG › Ideal Customer Profile (icp) Generation: Ai, Firecrawl, Gemini, Telegram

Ideal Customer Profile (icp) Generation: Ai, Firecrawl, Gemini, Telegram

ByMalik Hashir @malikx on n8n.io

This workflow is designed to save hours of manual research for digital marketers, media buyers, copywriters, and business strategists. It empowers users to quickly understand their target customers’ behaviors, pain points, desires, and communication preferences by leveraging…

Event trigger★★★★☆ complexityAI-powered24 nodesChain LlmGoogle Gemini ChatHTTP RequestOutput Parser StructuredTelegramTelegram TriggerAgent
AI & RAG Trigger: Event Nodes: 24 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #5047 — we link there as the canonical source.

This workflow follows the Agent → Chainllm 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 →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "6d4d3657-2634-4e39-82e3-ae6413886573",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1400,
        -1240
      ],
      "parameters": {},
      "typeVersion": 1.6
    },
    {
      "id": "da083438-dcba-4d63-988a-61237a108ced",
      "name": "Google Gemini Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1420,
        -980
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "fa7ad8a8-4e43-4f37-927e-eed3b6515347",
      "name": "GET - the scraped content",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1240,
        -540
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "f36441c9-0117-4834-a3ac-b5bc2017e62f",
      "name": "Basic LLM Chain1",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1420,
        -540
      ],
      "parameters": {},
      "typeVersion": 1.6
    },
    {
      "id": "71b9138d-f29d-470a-bc14-3a2343c7068b",
      "name": "Google Gemini Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1500,
        -180
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "62c74703-6ab5-4004-ab67-c07c270fdf14",
      "name": "Google Gemini Chat Model4",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -520,
        -380
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "52163878-86d0-4a14-99ce-791457d4d25c",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -280,
        -400
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "8e93367b-06f2-4900-a62d-acc0bc968b81",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2100,
        -780
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "602405f1-f9e3-4694-be36-fc4d1de73fe9",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1860,
        -560
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "5e34628b-3a14-44c0-b3f4-911602767c88",
      "name": "Convert to File1",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1820,
        -920
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "ef1ef73e-940c-498a-98ff-e0b26717e34b",
      "name": "User Request - Telegram",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -840,
        -760
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "1247c332-63da-451b-9c4e-5ce9fbc97796",
      "name": "Extracts URL and No of Pages",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -520,
        -760
      ],
      "parameters": {},
      "typeVersion": 1.9
    },
    {
      "id": "e55af8e5-fb98-41d2-8dea-9648040159c4",
      "name": "Sets url and no of pages",
      "type": "n8n-nodes-base.set",
      "position": [
        -160,
        -780
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "af075ebd-d2af-48d1-9ba2-0f9369a95484",
      "name": "If page 1 (true) or more than 1 (false)",
      "type": "n8n-nodes-base.if",
      "position": [
        100,
        -900
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "642ec1ad-36b8-4e8c-8532-0b2c19907b14",
      "name": "Wait 60 seconds - for scraping",
      "type": "n8n-nodes-base.wait",
      "position": [
        1000,
        -540
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "a68bd72f-a3c1-4cdd-89e3-573267d7d06b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        -1160
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8e0d9e7e-70f2-497a-8cd2-58e23ba29784",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        -480
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "6ae93f34-c015-4319-9ba7-4d335e221534",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -1000
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e72cecba-762a-4753-aa1c-fdecb60d981e",
      "name": "Scrapes more than one page - uses /crawl endpoint",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        620,
        -640
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "7158ddee-737a-4c3b-b458-2662987071b4",
      "name": "Scrape One Page - user /scrape endpoint",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        620,
        -960
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "77fbbddc-1c29-4383-b73d-2af51fd2544d",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        -1420
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "6321b475-2941-4efd-988f-ef0006497361",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2040,
        -1080
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "36749f78-045a-41ca-bd10-a81b899821c0",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1380,
        -280
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "3b91f5ae-33a7-4493-8e29-5e52337f06a2",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1300,
        -1080
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Telegram": {
      "main": [
        []
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Convert to Text File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain1": {
      "main": [
        [
          {
            "node": "Convert to Text File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File1": {
      "main": [
        [
          {
            "node": "Send Text File (containing detailed info about ICP) via Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "User Request - Telegram": {
      "main": [
        [
          {
            "node": "Extracts URL and No of Pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sets url and no of pages": {
      "main": [
        [
          {
            "node": "If page 1 (true) or more than 1 (false)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Extracts URL and No of Pages",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "GET - the scraped content": {
      "main": [
        [
          {
            "node": "Basic LLM Chain1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model4": {
      "ai_languageModel": [
        [
          {
            "node": "Extracts URL and No of Pages",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extracts URL and No of Pages": {
      "main": [
        [
          {
            "node": "Sets url and no of pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 60 seconds - for scraping": {
      "main": [
        [
          {
            "node": "GET - the scraped content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If page 1 (true) or more than 1 (false)": {
      "main": [
        [
          {
            "node": "Scrape One Page - user /scrape endpoint",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Scrapes more than one page - uses /crawl endpoint",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape One Page - user /scrape endpoint": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrapes more than one page - uses /crawl endpoint": {
      "main": [
        [
          {
            "node": "Wait 60 seconds - for scraping",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is designed to save hours of manual research for digital marketers, media buyers, copywriters, and business strategists. It empowers users to quickly understand their target customers’ behaviors, pain points, desires, and communication preferences by leveraging…

Source: https://n8n.io/workflows/5047/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow creates a multi-talented AI assistant named Simran that interacts with users via Telegram. It can handle text and voice messages, understand the user's intent, and perform various tasks.

MongoDB, Chain Llm, Google Gemini Chat +11
AI & RAG

Creators, marketers, and brands that want to turn a single product photo into premium motion clips, then optionally publish to Instagram/TikTok/YouTube via LATE. No editing skills required.

Telegram, Agent Tool, Telegram Trigger +5
AI & RAG

Product to Social Video (xCodeWraith Edition). Uses telegram, agentTool, telegramTrigger, httpRequest. Event-driven trigger; 83 nodes.

Telegram, Agent Tool, Telegram Trigger +5
AI & RAG

This automation is designed to help you generate AI-powered music tracks, cover art, and fully rendered music videos — all triggered from a simple Telegram chat and managed via Google Sheets.

OpenAI Chat, Memory Buffer Window, Output Parser Structured +11
AI & RAG

LinkedIn URL → Scrape → Match → Screen → Decide, all automated

Google Drive, Agent, Google Drive Tool +6