{"workflow":{"id":13026,"name":"Score LinkedIn leads against your ICP with Google Sheets, SourceGeek and Gemini","views":89,"recentViews":0,"totalViews":89,"createdAt":"2026-01-27T09:14:45.758Z","description":"**How it works**\nThis template is using a LinkedIn User Profile in combination with your detailed Ideal Customer Profile (ICP) to create a score, including reasoning and outreach messages.\n\nIt is manually triggered and uses a Google Sheet as an entry point. Inside there are rows with only LinkedIn profile urls in it.\n\nThen the SourceGeek Node is being triggered and the complete profile info is retrieved. \n\nThat info is being sent to an AI Agent where a long description of the Ideal Customer Profile is written down. \n\nThe AI Agent will process all that data and will return with three values\n\n- ICP rating (between 0 - 100)\n- ICP reasoning. Where does the score come from\n- A 1st, 2nd and 3rd outreach message which you can use later on\n\nAfter that the original Google Sheet row will be updated with the data created by the AI Agent\n\n**How to use**\n- Populate a Google Sheet with LinkedIn Profile URLs which potentially can be your customers\n- Let the SourceGeek fetch all their data from LinkedIn and enrich it with soft skills and much more\n- Describe in detail your ICP and let the AI Agent determine the score of the profile\n- Update the initial Google Sheet with the ICP Score and the reasoning how this score came to be\n\n**Requirements**\n- A Google Sheet with LinkedIn profile urls\n- The verified SourceGeek node","workflow":{"id":"wkrkI9nTNTM7P4RbyfEbb","meta":{"instanceId":"68031be20818d8ed690374f50ade99a23ac29461f6224421d869334fc1dffc51","templateCredsSetupCompleted":true},"name":"LeadGen SourceGeek - Jan 26 - ICP Score","tags":[],"nodes":[{"id":"ea61a379-dfbe-4663-a68d-9a7ea6e14b36","name":"When clicking ‘Execute workflow’","type":"n8n-nodes-base.manualTrigger","position":[-176,-32],"parameters":{},"typeVersion":1},{"id":"d5681686-e10e-45d6-8a4a-8e1d53e8002c","name":"Google Gemini Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[512,192],"parameters":{"options":{},"modelName":"models/gemini-pro-latest"},"credentials":{"googlePalmApi":{"id":"BuudL9bjVzYi38oE","name":"AdGibbon account"}},"typeVersion":1},{"id":"5b8b6857-1407-4e0a-a735-49efb4f80136","name":"Simple Memory","type":"@n8n/n8n-nodes-langchain.memoryBufferWindow","position":[640,192],"parameters":{"sessionKey":"{}","sessionIdType":"customKey"},"typeVersion":1.3},{"id":"a477da3d-180b-406b-80c1-c82897699449","name":"Get data from a linkedin profile","type":"n8n-nodes-sourcegeek.sourcegeek","position":[272,-32],"parameters":{"linkedinUrl":"={{ $json['LinkedIn profile URL'] }}"},"credentials":{"sourcegeekCredentialsApi":{"id":"H7BUVmn1vtBBjK2s","name":"Sourcegeek Credentials account"}},"typeVersion":1},{"id":"efa36390-bbaf-4bfa-8680-92d4203f173d","name":"Loop Over Items","type":"n8n-nodes-base.splitInBatches","position":[1072,-32],"parameters":{"options":{}},"typeVersion":3},{"id":"bae13378-a846-4fcc-86dc-95f819e6936d","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-240,-176],"parameters":{"color":7,"width":1744,"height":512,"content":"## ICP score and Message generator\n"},"typeVersion":1},{"id":"b40fbaf3-5610-4bc5-b975-d850873deaf6","name":"Update row in sheet","type":"n8n-nodes-base.googleSheets","position":[1296,-32],"parameters":{"columns":{"value":{"ICP Score":"={{ $json.icp_score }}","First message":"={{ $json.message_1 }}","ICP reasoning":"={{ $json.icp_reasoning }}","Third message":"={{ $json.message_3 }}","Second message":"={{ $json.message_2 }}","LinkedIn profile URL":"={{ $json.linkedin_profile }}","LinkedIn profile image":"={{ $('Get data from a linkedin profile').item.json.data.profileImageUrl }}"},"schema":[{"id":"First name","type":"string","display":true,"removed":true,"required":false,"displayName":"First name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Last name","type":"string","display":true,"removed":true,"required":false,"displayName":"Last name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"LinkedIn profile URL","type":"string","display":true,"removed":false,"required":false,"displayName":"LinkedIn profile URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"LinkedIn profile image","type":"string","display":true,"removed":false,"required":false,"displayName":"LinkedIn profile image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Role","type":"string","display":true,"removed":true,"required":false,"displayName":"Role","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Company","type":"string","display":true,"removed":true,"required":false,"displayName":"Company","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Ready","type":"string","display":true,"removed":true,"required":false,"displayName":"Ready","defaultMatch":false,"canBeUsedToMatch":true},{"id":"ICP Score","type":"string","display":true,"required":false,"displayName":"ICP Score","defaultMatch":false,"canBeUsedToMatch":true},{"id":"ICP reasoning","type":"string","display":true,"required":false,"displayName":"ICP reasoning","defaultMatch":false,"canBeUsedToMatch":true},{"id":"First message","type":"string","display":true,"required":false,"displayName":"First message","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Second message","type":"string","display":true,"required":false,"displayName":"Second message","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Third message","type":"string","display":true,"required":false,"displayName":"Third message","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Start outreach","type":"string","display":true,"removed":false,"required":false,"displayName":"Start outreach","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Stop outreach","type":"string","display":true,"removed":false,"required":false,"displayName":"Stop outreach","defaultMatch":false,"canBeUsedToMatch":true},{"id":"1st message sent","type":"string","display":true,"removed":false,"required":false,"displayName":"1st message sent","defaultMatch":false,"canBeUsedToMatch":true},{"id":"2nd message sent","type":"string","display":true,"removed":false,"required":false,"displayName":"2nd message sent","defaultMatch":false,"canBeUsedToMatch":true},{"id":"3rd message sent","type":"string","display":true,"removed":false,"required":false,"displayName":"3rd message sent","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["LinkedIn profile URL"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1TrxzQGP5BetWRBcupPV1bBZrgNEQizmY5_TIolNg5Dw/edit#gid=0","cachedResultName":"Data"},"documentId":{"__rl":true,"mode":"list","value":"1TrxzQGP5BetWRBcupPV1bBZrgNEQizmY5_TIolNg5Dw","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1TrxzQGP5BetWRBcupPV1bBZrgNEQizmY5_TIolNg5Dw/edit?usp=drivesdk","cachedResultName":"Lead Get SourceGeek - Jan 26"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YzXnfc7u4TmZlPRH","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"09132e92-0ceb-42c6-a3ed-23d132f66a0b","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[16,144],"parameters":{"color":5,"width":160,"height":128,"content":"Retrieve the data from a Google Sheet. The only needed value is the LinkedIn profile url"},"typeVersion":1},{"id":"c52a0beb-0815-4e33-956c-1882c2c1accf","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[240,144],"parameters":{"color":5,"width":160,"height":128,"content":"Enrich the LinkedIn profile url with all the info from the profile and add soft skills on top"},"typeVersion":1},{"id":"26e96e75-68ac-4c4e-a7a6-de4770b0ef29","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[528,-160],"parameters":{"color":5,"width":160,"height":112,"content":"Describe in detail your Ideal Customer Profile (ICP) and let it match"},"typeVersion":1},{"id":"4edecfc5-d1e1-4569-9e9d-666d4e79b5ac","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[816,128],"parameters":{"color":5,"width":160,"height":112,"content":"Break up the data in a usable array"},"typeVersion":1},{"id":"94eee6ab-18ce-4cdb-8053-df0b538a6f83","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1264,-160],"parameters":{"color":5,"width":160,"height":112,"content":"Insert all the data back in the Google Sheet. All the profile data & the ICP Score"},"typeVersion":1},{"id":"1965ac60-53b9-41da-ae47-0c2d45df9f3a","name":"AI Agent creating the ICP score and reasoning","type":"@n8n/n8n-nodes-langchain.agent","position":[496,-32],"parameters":{"text":"=You are an AI Agent running inside an n8n workflow.\n\n=========================\nROLE\n=========================\n\nYour role is to be a sales person within a SaaS company called SourceGeek. \n\n=========================\nTASK\n=========================\n\nYou need to specify what the Ideal Customer Profile (ICP) score is for the profiles in the Google Sheet. You can use the SourceGeek node to extract all needed info from these profiles.\n\nAfter analyzing a profile, fill in the ICP score, between 0 and 100, where 100 is the best ICP and 0 the worst. Also explain the ICP Score in a few sentences so I understand the reasons.\n\nAlso create custom messages for these profiles following certain sales and marketing guidelines. Every profile needs a 1st message, a follow up and a final messages. These people are already in my network and already had a message with an intro of SourceGeek long time ago. This new message flow is about how they are doing and to give them a heads up about the latest features and updates of SourceGeek\n\n=========================\nCALCULATING THE ICP SCORE\n=========================\n\nIn order to calculate the ICP score it is important to look at the following rules:\n- Does the profile have authority to make decisions within the company\n- Is the profile senior enough and does it have enough experience in recruitment\n- Does the profile have enough technical know-how about using a SaaS product. Is he/she tech savvy\n\n=========================\nGENERATING MESSAGES\n=========================\n\nTo generate the message, it's important to look at these rules:\n- Use the DISC profile data of the user to understand their strong colors and write the message in their color-language\n- Keep it professional and clear in the communication\n- The first message can be open and not too much sales related. The 2nd message can be more sales-like\n- Use as much information as possible in the message which is found in the profile data to make it as personalized as possible\n- Do not use the — symbol in your texts\n- Keep it informal, not the Dutch 'u' but use the 'je' or 'jij'\n- Do not use [Uw Naam] at the end of the message. Use 'Niels Berkhout' instead\n\n=========================\nINPUT\n=========================\n\nAll data from the LinkedIn profile:\n\n{{ JSON.stringify($json.data) }}\n\n=========================\nOUTPUT\n=========================\n\nYour output must be valid JSON with the following structure:\n{\n  \"linkedin_profile\": \"https://www.linkedin.com/in/{{ $json.data.linkedinUsername }}\",\n  \"icp_score\": \"\",\n  \"icp_reasoning\": \"\",\n  \"message_1\": \"\",\n  \"message_2\": \"\",\n  \"message_3\": \"\"\n}\nReturn only this JSON. Do not include explanations.\n\n=========================\nIDEAL CUSTOMER PROFILE (ICP)\n=========================\n\nBased on the public information available about your company, I have defined your Ideal Customer Profile (ICP) below.SourceGeek effectively targets three distinct segments: Freelance Recruiters, Recruitment Agencies, and Internal HR/Talent Teams at SMEs. However, your primary sweet spot currently appears to be independent recruiters and small-to-mid-sized agencies who need to multiply their output without hiring more staff.\n\n1. The Core Ideal Customer Profile (ICP)\n\"The Efficiency-Focused Modern Recruiter\"\nAttribute\tDetails\t\nRole\t\tFreelance Recruiter, Agency Founder/Owner, or Talent Acquisition Manager.\nCompany Size\t1–50 employees (Agencies) or 50–500 employees (Corporate/SMEs).  Why? These sizes rarely have huge budgets for enterprise tools like Eightfold but possess high hiring volume and limited manpower.\nIndustry\tStaffing & Recruiting (Primary), Tech/SaaS, Marketing/Creative, and Consultancy.\nGeography\tPrimarily Benelux (Netherlands based) & Europe.\nBudget\t\tComfortable with €99/month per seat; values ROI over \"enterprise compliance\" features.\nTech Stack\tUses LinkedIn Recruiter/Sales Navigator, potentially an ATS like Recruitee, but likely uses spreadsheets or basic tools for sourcing.\n\n2. Detailed Segment Breakdown\n\nA. The Independent Recruiter (Solopreneur)\nWho they are: A one-person business running full-cycle recruitment.\nPain Point: They only eat what they kill. Sourcing 8 hours a day means they aren't selling or interviewing. They cannot afford to hire a sourcer.\nWhy SourceGeek: You act as their \"virtual sourcer\" for a fraction of the cost of a human employee.\nKey Goal: \"Clone myself\" to handle more clients simultaneously.\n\nB. The Boutique Recruitment Agency\nWho they are: Agencies with 2–15 recruiters.\nPain Point: High turnover of junior staff who burn out from manual sourcing. Need to maintain high margins and cannot afford expensive enterprise licenses for every junior recruiter.\nWhy SourceGeek: Standardizes the quality of outreach across the team (using your AI personalization) and increases billings per recruiter.\nKey Goal: \"Scale output without scaling headcount.\"\n\nC. The SME Talent Team (Internal HR)\nWho they are: A \"Head of People\" or \"Internal Recruiter\" at a company with 50-200 employees.\nPain Point: They are drowning in admin and open roles. They are often generalists doing HR admin + recruiting. They rely heavily on generic LinkedIn job posts which are getting expensive and yielding lower quality.\nWhy SourceGeek: Allows them to proactively headhunt candidates (like an agency would) without having the time expertise of a dedicated headhunter.\nKey Goal: \"Stop relying on expensive external agencies.\"\n\n3. The \"Anti-ICP\" (Who is NOT your customer yet)\nLarge Enterprises (1000+ employees): They likely have strict procurement cycles, require SOC2 compliance, and are locked into massive contracts with Workday, Eightfold, or similar legacy suites.\nBlue-Collar / High-Volume Staffing: If they need to hire 500 warehouse workers a month, they rely on job boards and rapid application forms, not the personalized LinkedIn outreach your AI specializes in.\n\n4. Buyer Personas & TriggersYou can use these \"trigger events\" to identify when a prospect is ready to buy SourceGeek:\nThe \"Agency Breakaway\": A senior recruiter leaves a big firm to start their own freelance practice. (Perfect time for your tool).\nRapid Growth: A tech startup just raised a Seed/Series A round and needs to hire 10 developers quickly.\nThe \"Burnout\" Signal: A recruiter posting about \"too many open roles\" or \"drowning in admin\" on LinkedIn.\n\n=========================\nLANGUAGE\n=========================\n\nThe output can be in Dutch\n\n=========================\nTONE OF VOICE\n=========================\n\nThe tone of voice should be both formal and professional. Is should be easy to listen to. ","options":{},"promptType":"define"},"typeVersion":3},{"id":"9a7a374b-f0cf-41b2-879a-ceda2e8af778","name":"JS code creating an array","type":"n8n-nodes-base.code","position":[848,-32],"parameters":{"jsCode":"// Input: items = [{ output: \"{ ...json string...}\" }, ...]\n// Output: items = [{ json: { linkedin_profile, icp_score, ... } }, ...]\n\nfunction safeJsonParse(str) {\n  if (typeof str !== 'string') return null;\n\n  // Remove possible ```json fences if your agent sometimes adds them\n  const cleaned = str\n    .replace(/^\\s*```json\\s*/i, '')\n    .replace(/^\\s*```\\s*/i, '')\n    .replace(/\\s*```\\s*$/i, '')\n    .trim();\n\n  try {\n    return JSON.parse(cleaned);\n  } catch (e) {\n    return {\n      _parse_error: true,\n      _error_message: e.message,\n      _raw_output: str,\n    };\n  }\n}\n\nreturn items.map((item) => {\n  const parsed = safeJsonParse(item.json?.output ?? item.output);\n\n  // Normalize + provide predictable keys for downstream nodes\n  return {\n    json: {\n      linkedin_profile: parsed?.linkedin_profile ?? null,\n      icp_score: parsed?.icp_score ?? null,\n      icp_reasoning: parsed?.icp_reasoning ?? null,\n      message_1: parsed?.message_1 ?? null,\n      message_2: parsed?.message_2 ?? null,\n      message_3: parsed?.message_3 ?? null,\n\n      // Keep the full parsed object too (handy for debugging/extra fields)\n      _parsed: parsed,\n    },\n  };\n});\n"},"typeVersion":2},{"id":"28522d09-2ec8-4724-835f-3ee15fd487ab","name":"Get LinkedIn profile urls from sheet","type":"n8n-nodes-base.googleSheets","position":[48,-32],"parameters":{"options":{},"filtersUI":{"values":[{"lookupValue":"=","lookupColumn":"ICP Score"},{"lookupValue":"y","lookupColumn":"Ready"}]},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1TrxzQGP5BetWRBcupPV1bBZrgNEQizmY5_TIolNg5Dw/edit#gid=0","cachedResultName":"Data"},"documentId":{"__rl":true,"mode":"list","value":"1TrxzQGP5BetWRBcupPV1bBZrgNEQizmY5_TIolNg5Dw","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1TrxzQGP5BetWRBcupPV1bBZrgNEQizmY5_TIolNg5Dw/edit?usp=drivesdk","cachedResultName":"Lead Get SourceGeek - Jan 26"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YzXnfc7u4TmZlPRH","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"252d04c8-15aa-4727-b413-72c2c7ff0df7","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-672,-208],"parameters":{"width":400,"height":592,"content":"## How it works\nThis template is using a LinkedIn User Profile in combination with your detailed Ideal Customer Profile (ICP) to create a score, including reasoning and outreach messages.\n\nIt is manually triggered and uses a Google Sheet as an entry point. Inside there are rows with only LinkedIn profile urls in it.\n\nThen the SourceGeek Node is being triggered and the complete profile info is retrieved. \n\nThat info is being sent to an AI Agent where a long description of the Ideal Customer Profile is written down. \n\nThe AI Agent will process all that data and will return with three values\n\n- ICP rating (between 0 - 100)\n- ICP reasoning. Where does the score come from\n- A 1st, 2nd and 3rd outreach message which you can use later on\n\nAfter that the original Google Sheet row will be updated with the data created by the AI Agent"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"accd8ec1-05a2-4170-aa30-860c1b388281","connections":{"Simple Memory":{"ai_memory":[[{"node":"AI Agent creating the ICP score and reasoning","type":"ai_memory","index":0}]]},"Loop Over Items":{"main":[[],[{"node":"Update row in sheet","type":"main","index":0}]]},"Update row in sheet":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"Google Gemini Chat Model":{"ai_languageModel":[[{"node":"AI Agent creating the ICP score and reasoning","type":"ai_languageModel","index":0}]]},"JS code creating an array":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"Get data from a linkedin profile":{"main":[[{"node":"AI Agent creating the ICP score and reasoning","type":"main","index":0}]]},"Get LinkedIn profile urls from sheet":{"main":[[{"node":"Get data from a linkedin profile","type":"main","index":0}]]},"When clicking ‘Execute workflow’":{"main":[[{"node":"Get LinkedIn profile urls from sheet","type":"main","index":0}]]},"AI Agent creating the ICP score and reasoning":{"main":[[{"node":"JS code creating an array","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":16,"nodeTypes":{"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.googleSheets":{"count":2},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.splitInBatches":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-sourcegeek.sourcegeek":{"count":1},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":1},"@n8n/n8n-nodes-langchain.memoryBufferWindow":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Niels Berkhout","username":"sourcegeek-niels","bio":"CEO and Co-founder of SourceGeek, a SaaS solution where you can safe time and work on efficient on outreach to potential talent and candidates. A Digital Marketeer with 10+ years of experience.","verified":true,"links":["https://www.linkedin.com/in/nielsberkhout/"],"avatar":"https://gravatar.com/avatar/c0fc108bcfb977a7de0a74b9f8efebf88430bc24a4c48c24da894d61947f4a0f?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1163,"icon":"fa:database","name":"@n8n/n8n-nodes-langchain.memoryBufferWindow","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Memory"],"Memory":["For beginners"]}}},"group":"[\"transform\"]","defaults":{"name":"Simple Memory"},"iconData":{"icon":"database","type":"icon"},"displayName":"Simple Memory","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1262,"icon":"file:google.svg","name":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"},"displayName":"Google Gemini Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":37,"name":"Lead Generation"},{"id":49,"name":"AI Summarization"}],"image":[]}}