{"workflow":{"id":13793,"name":"Enrich LinkedIn profiles with Apollo and display candidate pages in the browser","views":88,"recentViews":1,"totalViews":88,"createdAt":"2026-03-02T06:39:39.135Z","description":"## 📊 Description\nAutomate LinkedIn profile enrichment and transform raw URLs into beautifully formatted candidate profile pages using n8n and the Apollo.io API 🔍. This workflow receives a LinkedIn URL via webhook, fetches enriched person and company data, normalizes the response, and generates a fully styled HTML profile card in real time. Perfect for recruiters, sales teams, and automation builders who want instant profile intelligence without manual research. Deliver structured contact insights, company details, and tech stack data directly in the browser 🤖.\n\n## ⚙️ What This Template Does\n📥 Receives a LinkedIn profile URL via a Webhook trigger.\n🌐 Sends the URL to the Apollo People Match API to fetch enriched person and organization data.\n🧹 Cleans and normalizes the raw API response into structured fields.\n🖼️ Dynamically generates styled HTML profile cards with candidate and company details.\n🚀 Returns a fully rendered HTML page as the webhook response for instant viewing in a browser.\n\n## ✅ Key Benefits\n✅ Instantly enrich LinkedIn profiles with verified business data\n✅ Generate clean, structured candidate summaries automatically\n✅ Deliver zero-manual research workflow for recruiters & sales teams\n✅ Create branded HTML profile pages dynamically\n✅ Streamline lead qualification and prospect research\n✅ Reliable API-based enrichment with structured output\n\n## 🧩 Features\n- Webhook-triggered automation workflow\n- Integration with Apollo.io People Match API\n- Real-time LinkedIn profile enrichment\n- JavaScript-based data normalization\n- Dynamic HTML & CSS profile card generation\n- Browser-rendered webhook response\n- Graceful error handling when no profile data is found\n\n## 🔐 Requirements\n- Apollo.io API key\n- Active n8n instance (Cloud or Self-Hosted)\n- Webhook endpoint enabled\n- Basic understanding of POST requests\n\n## 🎯 Target Audience\n- Recruitment agencies & talent acquisition teams\n- B2B sales teams & SDRs\n- Lead generation agencies\n- Automation developers building AI-powered prospecting tools\n","workflow":{"id":"a2zGiFAlPVt1SNgz","meta":{"instanceId":"8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177","templateCredsSetupCompleted":true},"name":"Apollo LinkedIn Profile Viewer","tags":[],"nodes":[{"id":"694b75fc-cb9f-45d6-b1a7-6153ddb57bdd","name":"Receive LinkedIn URL via Webhook","type":"n8n-nodes-base.webhook","position":[-848,512],"webhookId":"3313929d-4e3d-41df-a495-bf9c0b9a301e","parameters":{"path":"compose-workflow","options":{},"httpMethod":"POST","responseMode":"lastNode"},"typeVersion":1},{"id":"24433e6b-4ac3-4848-90a8-5f3af0752e61","name":"Fetch Profile from Apollo API","type":"n8n-nodes-base.httpRequest","position":[-576,512],"parameters":{"url":"=https://api.apollo.io/api/v1/people/match?reveal_personal_emails=false&reveal_phone_number=false' \\","method":"POST","options":{},"sendQuery":true,"sendHeaders":true,"queryParameters":{"parameters":[{"name":"linkedin_url","value":"={{ $json.body.linkedin_url }}"}]},"headerParameters":{"parameters":[{"name":"x-api-key","value":"hGMCJPhktjuW1qIAxHQesw"},{"name":"accept","value":"application/json"},{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.3},{"id":"4781e833-0d78-410f-8f5c-d010933e7329","name":"Normalize & Extract Profile Fields","type":"n8n-nodes-base.code","onError":"continueRegularOutput","position":[-208,512],"parameters":{"jsCode":"const person = $json.person;\n\nif (!person) {\n  return [];\n}\n\n// Get current job\nconst currentJob = (person.employment_history || []).find(job => job.current === true) || {};\n\n// Build clean output\nreturn [\n  {\n    full_name: person.name || null,\n    first_name: person.first_name || null,\n    last_name: person.last_name || null,\n    linkedin_url: person.linkedin_url || null,\n    title: person.title || null,\n    headline: person.headline || null,\n    email: person.email || null,\n    email_status: person.email_status || null,\n    city: person.city || null,\n    state: person.state || null,\n    country: person.country || null,\n    seniority: person.seniority || null,\n\n    current_company: currentJob.organization_name || null,\n    current_role: currentJob.title || null,\n    current_role_start_date: currentJob.start_date || null,\n\n    total_experience_count: (person.employment_history || []).length,\n\n    organization_name: person.organization?.name || null,\n    organization_industry: person.organization?.industry || null,\n    organization_employee_count: person.organization?.estimated_num_employees || null,\n    organization_website: person.organization?.website_url || null,\n    organization_linkedin: person.organization?.linkedin_url || null,\n\n    organization_technologies: person.organization?.technology_names || []\n  }\n];"},"typeVersion":2},{"id":"40e8cb6b-ef61-4f22-87cc-4184ca9af63b","name":"Build HTML Profile Cards","type":"n8n-nodes-base.code","position":[128,512],"parameters":{"jsCode":"// Collect all profiles dynamically\nconst profiles = items.map(item => item.json);\n\n// Safe value helper\nconst safe = (val) => {\n  if (!val) return \"N/A\";\n  return val;\n};\n\n// Generate dynamic cards\nconst cards = profiles.map(profile => {\n\n  const techStack = (profile.organization_technologies || [])\n    .map(tech => `<span class=\"tech\">${tech}</span>`)\n    .join(\"\");\n\n  return `\n    <div class=\"card\">\n      <div class=\"header\">\n        <div class=\"name\">${safe(profile.full_name)}</div>\n        <div class=\"role\">${safe(profile.title)}</div>\n        <div class=\"headline\">${safe(profile.headline)}</div>\n      </div>\n\n      <div class=\"section\">\n        <div><strong>Email:</strong> ${safe(profile.email)} (${safe(profile.email_status)})</div>\n        <div><strong>Location:</strong> ${safe(profile.city)}, ${safe(profile.state)}, ${safe(profile.country)}</div>\n        <div><strong>Seniority:</strong> ${safe(profile.seniority)}</div>\n        <div><strong>Total Experience:</strong> ${safe(profile.total_experience_count)} roles</div>\n      </div>\n\n      <div class=\"section\">\n        <div><strong>Current Company:</strong> ${safe(profile.current_company)}</div>\n        <div><strong>Current Role:</strong> ${safe(profile.current_role)}</div>\n        <div><strong>Start Date:</strong> ${safe(profile.current_role_start_date)}</div>\n      </div>\n\n      <div class=\"section\">\n        <div><strong>Industry:</strong> ${safe(profile.organization_industry)}</div>\n        <div><strong>Employees:</strong> ${safe(profile.organization_employee_count)}</div>\n        <div><strong>Website:</strong> <a href=\"${safe(profile.organization_website)}\" target=\"_blank\">${safe(profile.organization_website)}</a></div>\n        <div><strong>LinkedIn:</strong> <a href=\"${safe(profile.linkedin_url)}\" target=\"_blank\">View Profile</a></div>\n      </div>\n\n      <div class=\"section\">\n        <strong>Technology Stack:</strong>\n        <div class=\"tech-container\">\n          ${techStack || \"N/A\"}\n        </div>\n      </div>\n    </div>\n  `;\n}).join(\"\");\n\n\n// Final HTML page\nconst html = `\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>Candidate Profiles</title>\n<style>\nbody {\n  font-family: 'Segoe UI', sans-serif;\n  background: #f4f6f9;\n  padding: 40px;\n}\n.card {\n  background: #ffffff;\n  padding: 25px;\n  margin-bottom: 30px;\n  border-radius: 14px;\n  box-shadow: 0 6px 18px rgba(0,0,0,0.08);\n}\n.header {\n  margin-bottom: 15px;\n}\n.name {\n  font-size: 22px;\n  font-weight: 600;\n}\n.role {\n  color: #444;\n  margin-top: 4px;\n}\n.headline {\n  font-size: 14px;\n  color: #777;\n  margin-top: 6px;\n}\n.section {\n  margin-top: 18px;\n  font-size: 14px;\n}\n.tech-container {\n  margin-top: 10px;\n}\n.tech {\n  display: inline-block;\n  background: #eef2ff;\n  padding: 6px 10px;\n  margin: 4px;\n  border-radius: 6px;\n  font-size: 12px;\n}\na {\n  color: #3b82f6;\n  text-decoration: none;\n}\na:hover {\n  text-decoration: underline;\n}\n</style>\n</head>\n<body>\n<h2>Candidate Profiles</h2>\n${cards}\n</body>\n</html>\n`;\n\nreturn [\n  {\n    json: {\n      html: html\n    }\n  }\n];"},"typeVersion":2},{"id":"3ad6eded-fcba-4305-bf5e-5f0ee789fb4c","name":"Return HTML Profile Page","type":"n8n-nodes-base.respondToWebhook","position":[336,512],"parameters":{"options":{},"respondWith":"text","responseBody":"={{$node['Build HTML Profile Cards'].json['html']}}"},"typeVersion":1.5},{"id":"30e3b485-ed0b-48e8-aebb-6886be7f4cae","name":"Overview","type":"n8n-nodes-base.stickyNote","position":[-1520,208],"parameters":{"color":3,"width":520,"height":804,"content":"## 🔍 Apollo LinkedIn Profile Viewer\n\n### How it works\nThis workflow accepts a LinkedIn profile URL via a POST webhook request and returns a fully rendered HTML page displaying enriched candidate profile data sourced from the Apollo.io API.\n\n1. **Receive LinkedIn URL via Webhook** — A POST request is sent to the webhook endpoint with a `linkedin_url` in the request body.\n2. **Fetch Profile from Apollo API** — The LinkedIn URL is passed to Apollo's `/people/match` endpoint to retrieve enriched person and organization data.\n3. **Normalize & Extract Profile Fields** — Raw Apollo response is cleaned and structured into flat, usable fields (name, title, email, company, tech stack, etc.).\n4. **Build HTML Profile Cards** — Structured profile data is rendered into a styled HTML card layout.\n5. **Return HTML Profile Page** — The final HTML is sent back as the webhook response, which can be rendered directly in a browser.\n\n### Setup steps\n1. Copy the webhook URL from the **Receive LinkedIn URL via Webhook** node and use it as your POST endpoint.\n2. Replace the hardcoded `x-api-key` value in **Fetch Profile from Apollo API** with your own Apollo.io API key.\n3. Activate the workflow.\n4. Send a POST request with body `{ \"linkedin_url\": \"https://linkedin.com/in/example\" }` to receive the HTML response.\n\n### Customization\n- Modify the HTML/CSS inside **Build HTML Profile Cards** to match your brand or layout preferences.\n- Add additional Apollo fields by extending the mapping in **Normalize & Extract Profile Fields**."},"typeVersion":1},{"id":"f334da27-2eed-40dd-a826-b52b46086fce","name":"Section – Webhook Entry","type":"n8n-nodes-base.stickyNote","position":[-944,288],"parameters":{"width":260,"height":200,"content":"## 📥 Webhook Entry Point\nReceives a POST request containing a `linkedin_url` in the body. This is the sole trigger for the workflow — no scheduler or manual trigger is used."},"typeVersion":1},{"id":"1a7cf214-3ba9-4866-9615-ae88544a2e12","name":"Warning – Apollo API Key","type":"n8n-nodes-base.stickyNote","position":[-656,736],"parameters":{"color":2,"width":280,"height":180,"content":"⚠️ **Apollo API Key Required**\nReplace the hardcoded `x-api-key` header value with your own Apollo.io API key. Using an invalid or expired key will cause this node to fail silently or return empty data. Monitor your Apollo plan's rate limits to avoid unexpected quota exhaustion."},"typeVersion":1},{"id":"b583ab77-39cf-4a8a-85b7-10cc0deb9cc5","name":"Section – Data Processing","type":"n8n-nodes-base.stickyNote","position":[-512,288],"parameters":{"width":420,"height":200,"content":"## 🔄 Data Processing\nNormalizes the raw Apollo API response and maps person and organization fields into a clean flat object. Errors are suppressed — if no `person` object is returned, the node outputs nothing and the workflow stops gracefully."},"typeVersion":1},{"id":"fd12f228-2c47-4a5b-b949-b15cbff81292","name":"Section – HTML Output","type":"n8n-nodes-base.stickyNote","position":[16,288],"parameters":{"width":420,"height":200,"content":"## 🖼️ HTML Rendering & Response\nGenerates a styled multi-card HTML page from the normalized profile data, then returns it directly as the webhook HTTP response. The output can be opened in any browser."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"568161c8-6d2d-4b61-a49b-cad70cd5da45","connections":{"Build HTML Profile Cards":{"main":[[{"node":"Return HTML Profile Page","type":"main","index":0}]]},"Fetch Profile from Apollo API":{"main":[[{"node":"Normalize & Extract Profile Fields","type":"main","index":0}]]},"Receive LinkedIn URL via Webhook":{"main":[[{"node":"Fetch Profile from Apollo API","type":"main","index":0}]]},"Normalize & Extract Profile Fields":{"main":[[{"node":"Build HTML Profile Cards","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":10,"nodeTypes":{"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.httpRequest":{"count":1},"n8n-nodes-base.respondToWebhook":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Rahul Joshi","username":"rahul08","bio":"Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n","verified":true,"links":["https://www.linkedin.com/in/callrahul/"],"avatar":"https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"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-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"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/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"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/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"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/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"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/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"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/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":535,"icon":"file:webhook.svg","name":"n8n-nodes-base.respondToWebhook","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"transform\"]","defaults":{"name":"Respond to Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Respond to Webhook","typeVersion":2,"nodeCategories":[{"id":7,"name":"Utility"},{"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"}]}],"categories":[{"id":37,"name":"Lead Generation"},{"id":49,"name":"AI Summarization"}],"image":[]}}