AutomationFlowsAI & RAG › Outreach for Your Product Using Apollo, Linkedin, Gpt-4.1 and Sendgrid

Outreach for Your Product Using Apollo, Linkedin, Gpt-4.1 and Sendgrid

ByMisek @misek987 on n8n.io

> 💛 Sticky Note: > This Hyperpersonalized Outreach n8n template automates AI‑powered B2B email campaigns by combining Apollo.io lead scraping, LinkedIn enrichment, GPT‑4 generation, and SendGrid delivery. Follow the setup steps below to get started in minutes!

Event trigger★★★★★ complexityAI-powered35 nodesHTTP RequestSupabaseOutput Parser StructuredAgentOpenAI ChatSendGridChat Trigger
AI & RAG Trigger: Event Nodes: 35 Complexity: ★★★★★ AI nodes: yes Added:

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

This workflow follows the Agent → Chat Trigger 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
{
  "id": "eZfFdSNlnzCVX3Vq",
  "name": "Hyperpresonalized Outreach",
  "tags": [
    {
      "id": "tWKtoc0mr7oKZh9m",
      "name": "INDIA",
      "createdAt": "2025-07-09T07:09:33.889Z",
      "updatedAt": "2025-07-09T07:09:33.889Z"
    }
  ],
  "nodes": [
    {
      "id": "63af4c83-7aae-485d-8f84-84d51148874d",
      "name": "Apollo Scraper",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2760,
        -320
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/code_crafter~apollo-io-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN_HERE",
        "options": {},
        "jsonBody": "={\n    \"getPersonalEmails\": true,\n    \"getWorkEmails\": true,\n    \"totalRecords\": 500,\n    \"url\": \"\"\n}",
        "sendBody": true,
        "specifyBody": "json"
      },
      "typeVersion": 4.2,
      "alwaysOutputData": false
    },
    {
      "id": "4bce359d-0cea-4155-b596-f82cd0491d66",
      "name": "Required Data",
      "type": "n8n-nodes-base.set",
      "position": [
        2940,
        -320
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "12627ab3-3654-4f68-8a59-6a73e24bda05",
              "name": "linkedin_url",
              "type": "string",
              "value": "={{ $json.linkedin_url }}"
            },
            {
              "id": "159c2aae-13c6-4ea9-bdf9-9b35df005f41",
              "name": "email",
              "type": "string",
              "value": "={{ $json.email }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "43b754c0-91e0-4559-b8f1-f05e6a6dc623",
      "name": "When clicking \u2018Test workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        2580,
        -320
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b742c3ec-1a3c-4274-9716-75638b545f4a",
      "name": "Supabase",
      "type": "n8n-nodes-base.supabase",
      "position": [
        3140,
        -320
      ],
      "parameters": {
        "tableId": "Data",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "linkedin_url",
              "fieldValue": "={{ $json.linkedin_url }}"
            },
            {
              "fieldId": "email",
              "fieldValue": "={{ $json.email }}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e86c3301-442a-4a71-a772-29e4c0528cbf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2520,
        -600
      ],
      "parameters": {
        "color": 6,
        "width": 820,
        "height": 460,
        "content": "## Lead Collector\n\n\n## 1. Go to apollo.io, use filters and after that copy the link from tab and paste that in the http node url section (paste inside the \"\").\n## 2. Pay for APify to get more data\n## 3. Create a supabase table beforhand according to your fields and make changes to both scrape and outreach workflow accordingly."
      },
      "typeVersion": 1
    },
    {
      "id": "0324b737-19f1-47ad-adba-24f504bd846f",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        4820,
        740
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"Subject\": \"\",\n\t\"Body\": \"\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "98d9aa9f-d7e9-4719-9f2a-c4b8131bab68",
      "name": "Story",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        4600,
        560
      ],
      "parameters": {
        "text": "=Pain Point + Solution:{{ $json['Pain Point + Solution'] }}\nPersonal History:{{ $json.Fullposition }}",
        "options": {
          "systemMessage": "="
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.9
    },
    {
      "id": "8eae5dd1-f6df-4a3a-a592-6e5e93525514",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        5020,
        500
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "b7c0f891-ba44-499a-9200-54b150554f2f",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        5400,
        680
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "b40150f2-4fed-47a5-8139-475c232545d9",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        5200,
        500
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "7f8f830d-1db2-4b1e-8eb7-4f42191fef3d",
      "name": "HTML Modifier",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        5420,
        500
      ],
      "parameters": {
        "text": "=HTML File: {{ $json.data[1].output.Body }}\nFirst Name:{{ $json.data[0].data[0].firstName }}",
        "options": {
          "systemMessage": "="
        },
        "promptType": "define"
      },
      "retryOnFail": true,
      "typeVersion": 1.9
    },
    {
      "id": "7cce232a-dabc-4a1a-9b08-fb81d223be6c",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        2480,
        680
      ],
      "parameters": {
        "jsCode": "const url    = $input.first().json.linkedin_url; \nconst p1     = \"http://www.linkedin.com/in/\";\nconst p2     = \"linkedin.com/in/\";\n\nlet handle = url;\nif (handle.startsWith(p1)) {\n  handle = handle.slice(p1.length);\n} else if (handle.startsWith(p2)) {\n  handle = handle.slice(p2.length);\n}\n\n// now `handle` is just the username\nreturn [{ json: { handle } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "3b7621a2-e10f-4cd2-9bef-3a35734cf256",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        4000,
        320
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"Yes\": \"True\",\n\t\"No\": \"False\",\n  \"Pain Point + Solution\": \"\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "bbaf969a-6287-42e1-aee2-694d69bbf2a3",
      "name": "Aggregate1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        3180,
        600
      ],
      "parameters": {
        "options": {
          "includeBinaries": true
        },
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "eb12db12-0a58-47e9-aed9-913c50fbebf7",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        3020,
        600
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "06b5cb2b-d08a-40f6-b6db-9ba841dd6e60",
      "name": "LinkedIn Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2480,
        480
      ],
      "parameters": {
        "url": "=https://li-data-scraper.p.rapidapi.com/get-profile-data-by-url?url= {{ $json.linkedin_url }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {}
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "li-data-scraper.p.rapidapi.com"
            },
            {
              "name": "x-rapidapi-key"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a6b4b60f-9ea6-43fd-863d-9b434af3bd65",
      "name": "LinkedIn Posts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2640,
        680
      ],
      "parameters": {
        "url": "https://li-data-scraper.p.rapidapi.com/get-profile-posts",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "username",
              "value": "={{ $json.handle }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "li-data-scraper.p.rapidapi.com"
            },
            {
              "name": "x-rapidapi-key"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "eba257da-fdde-458e-a00e-751642528380",
      "name": "Summery+First Name",
      "type": "n8n-nodes-base.set",
      "position": [
        2640,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ab22b342-5eaf-4623-af3d-959cda750294",
              "name": "firstName",
              "type": "string",
              "value": "={{ $json.firstName }}"
            },
            {
              "id": "43306643-963b-414b-a882-9513006b9a7d",
              "name": "summary",
              "type": "string",
              "value": "={{ $json.summary }}"
            },
            {
              "id": "3c792265-2f1d-4195-9aa2-6e7e05275d6c",
              "name": "position[0].companyName",
              "type": "string",
              "value": "={{ $json.position[0].companyName }}"
            },
            {
              "id": "d7a3c26e-ed8f-4095-87c6-7fca37d1ef07",
              "name": "position[0].title",
              "type": "string",
              "value": "={{ $json.position[0].title }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c86745b3-fdd1-42b0-b504-56f6985f00ed",
      "name": "Last 5 Posts",
      "type": "n8n-nodes-base.set",
      "position": [
        2780,
        680
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e3ed3613-293f-4c67-8e64-b0dacc739129",
              "name": "data[0].text",
              "type": "string",
              "value": "={{ $json.data[0].text }}"
            },
            {
              "id": "9e801380-0227-4b9c-9307-889b5e60ad25",
              "name": "data[1].text",
              "type": "string",
              "value": "={{ $json.data[1].text }}"
            },
            {
              "id": "a408d1b7-7861-4df0-9f28-75c0bc8baac1",
              "name": "data[2].text",
              "type": "string",
              "value": "={{ $json.data[2].text }}"
            },
            {
              "id": "51ea0115-3609-4ef2-88d2-ee759f59efda",
              "name": "data[3].text",
              "type": "string",
              "value": "={{ $json.data[3].text }}"
            },
            {
              "id": "6e56c7db-2267-4b08-aa2b-a1f44f312f07",
              "name": "data[4].text",
              "type": "string",
              "value": "={{ $json.data[4].text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "eb735ea3-8163-4690-9039-095cdc687c4c",
      "name": "Check Null Values",
      "type": "n8n-nodes-base.if",
      "position": [
        3400,
        600
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "6f5351cc-3f1a-408f-900f-bcfcf70c92f3",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.data[0].firstName }}",
              "rightValue": "[null]"
            },
            {
              "id": "9771735c-9c4f-4395-aadd-918dd78760ba",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.data[0].summary }}",
              "rightValue": "[null]"
            },
            {
              "id": "d4fb6404-2b5f-4c7e-b4ad-0c84287cebc8",
              "operator": {
                "type": "array",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.data[1].data }}",
              "rightValue": "[null]"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "0bc317fe-0a8f-436d-a556-ef6f506a204f",
      "name": "Relevance Check",
      "type": "n8n-nodes-base.if",
      "position": [
        4200,
        180
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "deb56fcf-527e-4de4-a01c-bc085c9974ae",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "=true",
              "rightValue": "true"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "bd03e4d8-4fa9-44bb-9e94-3412810ac54b",
      "name": "Irrelevant Leads",
      "type": "n8n-nodes-base.supabase",
      "position": [
        4240,
        660
      ],
      "parameters": {
        "tableId": "C-Suite",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "status",
              "fieldValue": "False"
            }
          ]
        },
        "operation": "update"
      },
      "typeVersion": 1
    },
    {
      "id": "33fc8056-3f9a-4329-9c5d-613f52a5e69f",
      "name": "Successful Outreach",
      "type": "n8n-nodes-base.supabase",
      "position": [
        5740,
        700
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "email",
              "keyValue": "=",
              "condition": "eq"
            }
          ]
        },
        "tableId": "C-Suite",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "status",
              "fieldValue": "True"
            }
          ]
        },
        "operation": "update"
      },
      "typeVersion": 1
    },
    {
      "id": "475977b6-cc71-45f7-bc2b-cfd6141e8263",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        4520,
        740
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "57f33280-8434-4945-8e3b-24a27eb92c01",
      "name": "Name",
      "type": "n8n-nodes-base.set",
      "position": [
        3800,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b48fcb7b-6e10-4b7b-83ba-0df4a2e0b734",
              "name": "data[0].firstName",
              "type": "string",
              "value": "={{ $json.data[0].firstName }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "bc14615f-7af4-4958-8845-47d7a7be0de5",
      "name": "History",
      "type": "n8n-nodes-base.set",
      "position": [
        3800,
        660
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "db6d425d-687b-43b9-bc65-6aea510721a3",
              "name": "Fullposition",
              "type": "string",
              "value": "={{ $('LinkedIn Data').item.json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b8d4ceb7-bdfd-4abc-a12d-15dee5eaf31c",
      "name": "Merge2",
      "type": "n8n-nodes-base.merge",
      "position": [
        4480,
        240
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "401c61cf-8d1e-48a8-9f6e-e83e49e45a8f",
      "name": "Aggregate2",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        4660,
        240
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "999f524d-22f7-447a-930b-6b95ad12a90c",
      "name": "Edit Fields1",
      "type": "n8n-nodes-base.set",
      "position": [
        4840,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4d6e58bc-05b6-4751-b450-ead72648e40f",
              "name": "Pain Point + Solution",
              "type": "string",
              "value": "={{ $json.data[0].output['Pain Point + Solution'] }}"
            },
            {
              "id": "05211aa5-b572-41fe-bb8e-09a1cb29cdb7",
              "name": "Fullposition",
              "type": "string",
              "value": "={{ $json.data[1].Fullposition }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6cb4c7db-1a41-4a0c-9ab8-6cdbd8a3c050",
      "name": "All Done",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2480,
        240
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5e5fba3e-a950-4425-993d-b82f0b32d8db",
      "name": "SendGrid",
      "type": "n8n-nodes-base.sendGrid",
      "position": [
        5760,
        500
      ],
      "parameters": {
        "subject": "={{ $('Aggregate').item.json.data[1].output.Subject }}",
        "toEmail": "=",
        "resource": "mail",
        "contentType": "text/html",
        "contentValue": "={{ $json.output }}",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "bc32ff25-c629-487f-89e2-6311afa4a6ed",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        3740,
        340
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "ffb55b9c-7480-4907-9bd0-5cc427b67b3d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2040,
        -120
      ],
      "parameters": {
        "color": 4,
        "width": 3960,
        "height": 1160,
        "content": "## Hyper-Personalised Mail Generator \n\n\n## 1. Add twilio for smtp(manages everything for you).\n## 2. Pay for rapid api otherwise the flow will fail after 20-25 scrapes in free tier.\n## 3. Pay for supabase if data is too much.\n## 4. Ensure that you have enough tokens in your openAI for your outreach volume.\n## 5. 7000-12000 total token consumption per run(avg).\n## 6. Give the linkedin id link as input"
      },
      "typeVersion": 1
    },
    {
      "id": "db19ec1f-6a6b-4c17-b6ba-1f015d686084",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        2140,
        600
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "1c8cb7dd-627d-49f9-a92a-d1c6b24a9a0d",
      "name": "User Profiling according to Product",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3780,
        160
      ],
      "parameters": {
        "text": "={{ $json.data }}",
        "options": {
          "systemMessage": "="
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.9
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "37a86dac-74ed-41c2-99ab-615c0b5d9990",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "LinkedIn Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Name": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Story": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Aggregate1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge2": {
      "main": [
        [
          {
            "node": "Aggregate2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "History": {
      "main": [
        [
          {
            "node": "Merge2",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "SendGrid": {
      "main": [
        [
          {
            "node": "Successful Outreach",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "HTML Modifier",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate1": {
      "main": [
        [
          {
            "node": "Check Null Values",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate2": {
      "main": [
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields1": {
      "main": [
        [
          {
            "node": "Story",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Last 5 Posts": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "HTML Modifier": {
      "main": [
        [
          {
            "node": "SendGrid",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn Data": {
      "main": [
        [
          {
            "node": "Summery+First Name",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Required Data": {
      "main": [
        [
          {
            "node": "Supabase",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Apollo Scraper": {
      "main": [
        [
          {
            "node": "Required Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn Posts": {
      "main": [
        [
          {
            "node": "Last 5 Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Relevance Check": {
      "main": [
        [
          {
            "node": "Merge2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Irrelevant Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Irrelevant Leads": {
      "main": [
        [
          {
            "node": "All Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Null Values": {
      "main": [
        [
          {
            "node": "User Profiling according to Product",
            "type": "main",
            "index": 0
          },
          {
            "node": "Name",
            "type": "main",
            "index": 0
          },
          {
            "node": "History",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "All Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "User Profiling according to Product",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "HTML Modifier",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Story",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Summery+First Name": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Successful Outreach": {
      "main": [
        [
          {
            "node": "All Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Story",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "User Profiling according to Product",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "LinkedIn Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Apollo Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "User Profiling according to Product": {
      "main": [
        [
          {
            "node": "Relevance Check",
            "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

> 💛 Sticky Note: > This Hyperpersonalized Outreach n8n template automates AI‑powered B2B email campaigns by combining Apollo.io lead scraping, LinkedIn enrichment, GPT‑4 generation, and SendGrid delivery. Follow the setup steps below to get started in minutes!

Source: https://n8n.io/workflows/6039/ — 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

Autonomous Ai Crawler. Uses toolWorkflow, lmChatOpenAi, outputParserStructured, manualTrigger. Event-driven trigger; 38 nodes.

Tool Workflow, OpenAI Chat, Output Parser Structured +3
AI & RAG

This workflow with AI agent is designed to navigate through the page to retrieve specific type of information (in this example: social media profile links).

Tool Workflow, OpenAI Chat, Output Parser Structured +3
AI & RAG

The scoring approach is adapted from the open-source evaluations project RAGAS and you can see the source here https://github.com/explodinggradients/ragas/blob/main/ragas/src/ragas/metrics/answercorre

Chain Llm, Output Parser Structured, OpenAI Chat +5
AI & RAG

fomono_v5. Uses telegramTrigger, telegram, supabase, httpRequest. Event-driven trigger; 26 nodes.

Telegram Trigger, Telegram, Supabase +5
AI & RAG

The scoring approach is adapted from the open-source evaluations project RAGAS and you can see the source here https://github.com/explodinggradients/ragas/blob/main/ragas/src/ragas/metrics/answerrelev

OpenAI Chat, Evaluation Trigger, Evaluation +5