# templates

name: Dynamic AI Model Router for Query Optimization with OpenRouter
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-05-20T07:40:19.495Z
updated_at: 2025-05-20T07:40:19.495Z
url: https://n8n.io/workflows/4237
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-30 08:33:37
description:
  The Agent Decisioner is a dynamic, AI-powered routing system that automatically selects the most appropriate large language model (LLM) to respond to a user's query based on the query’s content and purpose.

  This workflow ensures dynamic, optimized AI responses by intelligently routing queries to the best-suited model.

  Advantages

  🔁 Automatic Model Routing:**
    Automatically selects the best model for the job, improving efficiency and relevance of responses.

  🎯 Optimized Use of Resources:**
    Avoids overuse of expensive models like GPT-4 by routing simpler queries to lightweight models.

  📚 Model-Aware Reasoning:**
    Uses detailed metadata about model capabilities (e.g., reasoning, coding, web search) for intelligent selection.

  📥 Modular and Extendable:**
    Easy to integrate with other tools or expand by adding more models or custom decision logic.

  👨‍💻 Ideal for RAG and Multi-Agent Systems:**
    Can serve as the brain behind more complex agent frameworks or Retrieval-Augmented Generation pipelines.

  How It Works  

  Chat Trigger: The workflow starts when a user sends a message, triggering the Routing Agent.  
  Model Selection: The AI Agent analyzes the query and selects the best-suited model from the available options (e.g., Claude 3.7 Sonnet for coding, Perplexity/Sonar for web searches, GPT-4o Mini for reasoning).  
  Structured Output: The agent returns a JSON response with the user’s prompt and the chosen model.  
  Execution: The selected model processes the query and generates a response, ensuring optimal performance for the task.  

  Set Up Steps  

  Configure Nodes:  
     Chat Trigger: Set up the webhook to receive user messages.  
     Routing Agent (AI Agent): Define the system message with model strengths and JSON output rules.  
     OpenRouter Chat Model: Connect to OpenRouter for model access.  
     Structured Output Parser: Ensure it validates the JSON response format (prompt + model).  
     Execution Agent (AI Agent1): Configure it to forward the prompt to the selected model.  

  Connect Nodes:  
     Link the Chat Trigger to the Routing Agent.  
     Connect the OpenRouter Chat Model and Output Parser to the Routing Agent.  
     Route the parsed JSON to the Execution Agent, which uses the chosen model via OpenRouter Chat Model1.  

  Credentials:  
     Ensure OpenRouter API credentials are correctly set for both chat model nodes.  

  Test & Deploy:  
     Activate the workflow and test with sample queries to verify model selection logic.  
     Adjust the routing rules if needed for better accuracy.  

  Need help customizing?  
  Contact me for consulting and support or add me on Linkedin. 

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserAutofixing","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","AI/ML","integration","routing"],"complexity":"medium","use_cases":["Automatic LLM selection for user queries","Optimizing cost and latency by routing to appropriate models","Improving relevance of chatbot and virtual assistant responses","Multi-model orchestration for content generation and QA"],"estimated_setup_minutes":20,"required_services":["OpenRouter (API key)","n8n instance"],"key_features":["Dynamic AI model routing based on query content","Structured output parsing","Autofixing/parsing of model responses","Support for multiple LLMs via OpenRouter","Lightweight decisioning/agent component"],"target_audience":["Developers","AI/ML engineers","Product managers building conversational experiences or assistants"]}


name: Automate CSAT Surveys with Freshdesk & Store Responses in Google Sheets
author_name: PollupAI
author_username: zeerobug
categories: []
created_at: 2025-05-20T09:04:54.383Z
updated_at: 2025-05-20T09:04:54.383Z
url: https://n8n.io/workflows/4238
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Never forget to send a satisfaction survey again! This workflow helps you automatically send CSAT surveys when a Freshdesk ticket is marked “Resolved” – and logs every response in Google Sheets for easy analysis, reporting, and escalation workflows.
  💡 Built for CS and ops teams who care about real feedback
  This template is perfect for:
  Customer Support Teams who want timely, consistent survey delivery after every resolved ticket.
  Ops Leads & Admins tired of managing spreadsheets and survey tools manually.
  Businesses using Freshdesk looking for a no-code feedback loop.
  Automation fans who want to track, trigger, and take action — automatically.

  🧩 What problem does it solve?
  Manual survey processes are slow, inconsistent, and hard to scale. This automation ensures:
  Fast survey delivery when experiences are still fresh.
  No duplicate emails thanks to a built-in tracking system.
  Centralized feedback in a Google Sheet — no more digging through platforms.
  Data you can act on, like triggering Slack alerts for poor scores.

  ⚙️ How it works
  📨 Part 1: Auto-send the survey when a ticket is resolved
  Trigger: Workflow runs on a schedule (or manually via “Test”).
  Pull ticket status from Freshdesk.
  Compare ticket status to the last known status in Google Sheets.
  Detect resolution: If status = “Resolved” (ID 4), move forward.
  Update the Google Sheet to track that the survey was sent.
  Fetch the customer’s email from Freshdesk.
  Create & send the survey email, personalized with ticket info and your brand.
  Convert Markdown → HTML for a well-formatted email.

  📥 Part 2: Collect responses and store in Sheets
  Form Trigger: Customer clicks the survey link and fills in the form.
  Capture responses (e.g. rating + comments).
  Log feedback in a second Google Sheet for analysis.


  You can extend this by adding escalation steps (e.g. flagging 1–2 star ratings to managers).

  🚀 Setup Instructions
  🔐 Connect your tools
  Freshdesk**: Add your API credentials to the get tickets and get client nodes.
  Google Sheets**: Authenticate in the get existing tickets, update status, and save survey nodes.
  Email (SMTP)**: Add your SMTP details in the “Send Email” node, or swap in Gmail, SendGrid, etc.

  🛠 Set your data
  In the Set your data node, enter:
  	Your name, email, company, and position
  	Your survey form link (see below)

  🔗 Get the form link
  Activate the workflow (toggle it ON)
  Go to the “Survey” (Form Trigger) node
  Copy the Production URL
  Paste it into the survey link field in the Set your data node

  🧾 Prepare your Google Sheets
  Sheet 1: Freshdesk Tickets (status tracking)
  Used by:
  get existing tickets
  update status


  Create a new empty Google Sheet.

  Add the Spreadsheet ID + Sheet Name into the nodes.

  Sheet 2: Feedback freshdesk (survey responses)
  Used by:
  save survey to google sheet

  Create a new sheet or tab. It will auto-create columns based on your survey form field labels.

  Add the Spreadsheet ID + Sheet Name/GID to the save node.

  🔧 Customize the workflow
  📝 Survey Questions
  Modify them in the Survey (Form Trigger) node.
  Adjust the save survey to google sheet node as needed (or use auto-map).
  💬 Email Content
  Edit the subject and message in the Create the email text (Set) node.

  🏷 Freshdesk Status ID
  If your “Resolved” status ID isn’t 4, update the second condition in the If ticket resolved node.

  📉 Escalate poor feedback
  Add logic after the save survey to google sheet node:
  If rating is low:
  	Notify Slack
  	Create a new internal ticket
  	Email a team lead

  🔁 Schedule Trigger
  Adjust the Schedule Trigger node to your desired interval (e.g., hourly).
  🔄 Use a Webhook Instead (Optional)
  If Freshdesk supports ticket webhook events, swap the schedule trigger for a Webhook Trigger node to send surveys instantly on ticket resolution.

  🤖 Why Pollup AI is building this
  At Pollup AI, we help CS and support teams stop drowning in tools and manual tasks. This template is part of our growing AI agent library: plug-and-play automations that connect your tools, clean your data, and free up your time – without writing a line of code.
  Try this workflow and let Pollup AI handle the boring parts, so your team can focus on what customers are really saying. Learn more at Pollup AI 

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.if","n8n-nodes-base.emailSend","n8n-nodes-base.freshdesk","n8n-nodes-base.freshdesk","n8n-nodes-base.googleSheets","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.markdown","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5536 characters]

metadata_json:
  {"categories":["automation","integration","customer feedback","data logging","support operations"],"complexity":"medium","use_cases":["Automatically send CSAT surveys when Freshdesk tickets are resolved","Log survey responses into Google Sheets for reporting and analysis","Prevent duplicate survey sends by tracking ticket status","Escalate low ratings (Slack notifications, internal tickets, emails)","Switch between scheduled polling and webhook-based instant triggers"],"estimated_setup_minutes":25,"required_services":["Freshdesk (API access)","Google Sheets (Google account)","SMTP email provider (or Gmail/SendGrid)","n8n (workflow host)","Slack (optional, for escalations)"],"key_features":["Auto-send personalized CSAT email when ticket status = Resolved","Track sent surveys in a Google Sheet to avoid duplicates","Form Trigger to capture responses and automatically log them to Sheets","Markdown → HTML conversion for formatted emails","Configurable scheduling or webhook trigger for real-time behavior change-ready escalation steps for low scores"],"target_audience":["Customer support teams","Operations leads / admins","Businesses using Freshdesk wanting no-code feedback loops"]}


name: Copy Folder Structure Without Files in Google Drive
author_name: Builds.Cool
author_username: buildscool
categories: []
created_at: 2025-05-20T11:39:57.742Z
updated_at: 2025-05-20T11:39:57.742Z
url: https://n8n.io/workflows/4240
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:33
description:
  Why?

  Google Drive desktop lets you copy full folders—contents and all. But what if you only want to copy the folder names (not the files) from one drive location to another? Maybe you're reusing a folder structure or duplicating a template structure, but without this workflow each copy will hold different content. This n8n workflow helps you clone just the structure—no clutter, no file duplicates.

  How it works

  Load this workflow into your n8n instance
  Setup GDRIVE credentials if you have not already (see video below)
  Double-click "edit this node"
  Enter the SOURCE folder ID (into "EDIT_THIS_NODE") - see image on where to get folder ID
  Enter the DESTINATION folder ID
  Run the workflow

  What it does

  Creates all new folders in destination that were in the source folder
  Skips folders in destination that already exist

  What it doesn't do (yet)

  Does not copy over any nested folders
  Does not copy over any files

  Requirements
  n8n
  Google drive API must be setup in your n8n (https://www.youtube.com/watch?v=3Ai1EPznlAc)
  Future Updates

  If I get requests for these features I would build them:

  Copy nested folder structure within the destination drive.
  Flag (on/off) - to copy nested folder structure
  Better error handling
  Some kind of feedback output log on what was created

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.googleDrive","n8n-nodes-base.set","n8n-nodes-base.merge"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WW227bRhCGX4XYqxbgGns+6C61U1dAawOx6rYxDGMPQ5mxRKrkSrZhCEieob1or/JueYI8QkE5tRWViuz0fvjz2zn8M3eojGiATpsaFqPffwUIl/zwTY1yNIXk0OAOlVWbXBVg2MWxKLzVhWRca08IMcRHQT0JoJSPykjJI2dGMquFV57GwkbpjRfcamaiRTlKMJ1NXIL9BmJ7Amk+26+nswkkiGiQmjksc1S5KaAB+vj+j3cf3//5Ljs8aMoFZPv17Pb7ehKhOUnNPKR5A9k3lam+7WTduEWDs7v79xwuyt/Gp9fh+FS+eb04LNCDZqrrSebGUKUW5Sg04BLEF6l7G2ESE4mpHVE1IGog9Z6W/DXK0XwWd4ctz3NU1RHWMEihHVdRYO8gYkEIxV5zgpUQAoLhDJh6RPvlEqosTMpwVVbj7MPbv0bQpuy6bq6KSX394e3f3TNvZ11oZSq8+hf2roW9qavmbjJqyvEYGpSjWd2WqawrNDgjOTnP0cw1bgoJmhYN7pb3MqfQtKsYusw/8XJjhA5QYCMVw0I4ii2LBdZKamsMSFDikfcQ0sV9OdqLk+OfX+2/3Ao4ruvxBFZV/ByPEvUEQv5AKAwvhOeAKZMWC08ZtowbTL0jOjAbiJGPhCepDFe32VGdYCtau4r5FLJOJkiOufgPGwp1laDqWgFtzyTRjlFNGdbaAhZaR+y1t5hLZxR1MVoFvZz0q0DZ13IyIgWzUWIXicTCCsAeHMOGE15oxWU04ZHzx7qeZccLaLJhgmm7HXU2KdOw+s6lcAntBi4zz6p4oDYUIlAMwmssCk2wlxEwaAgkKm4UXyN8eTAcXYx+GJ5cHB0fbO/HFtLnVIw9BWpPPGBRUqgYDMFAuMGCeYEt8x5bcMJbUIHxtVHZX/lMdj8tXzElxpCcsmdMsomca8U1Bqk0FqbD04JiGoxmEIPXes0U9y8hXGVlkRUrwAxuyjZtL2+o4yagZCTfzcce+JTRQhphseY8YuEKhS3xCltfEC254JLYR75hsQupLDaANHkS0N4jEhcgCWEMS+I6pMCxc8Fjy6gqQBrJHe83v4OXJ6Ph0YvR8Pjo+bUVT+q8HLnJtbttj+dpNk8HrtvN98vy3zEBp6yTHCsnFBZeUmxIMFhJ4CYWFAq7boyQsgNoU1m5DiM7clP4wjhvTot5kmmvTYvznkLBGLbUcSyYctjaLstGOlUIQRmsLcKfoBnDp+xe7Hc2dpO2774u+HM8JZ6ER7uN7ULqSjIo3KSFHLWQUlmNVwYKNxDmneRx003tAC1o56SLe4XVPUQksxSCxkwWgAU3FFulODYuCOMK4qXrXCDUVQWhk1oJP7bz4A5NXdkxn53nZ3er+2G7XaxCc1RWEW7QgCzPz5f5Ruya4IPaVtfu1dtw0D7Bnb2/KZw/fPrl0vYCbeJvy9kOD+vV7jlh/n8Ge9/YJ7tjCnvF+7/ZVaXN86y/k/oz2KfdY8g787veKX2az2kNei+/+2Lu+9G2G6HnBcvlP2dcexAhDQAA

metadata_json:
  {"categories":["automation","integration","file management"],"complexity":"simple","use_cases":["Clone a folder template structure without copying files","Prepare empty project/onboarding folder layouts","Duplicate organizing structures across drives or team folders","Avoid duplicating files while reproducing folder hierarchy"],"estimated_setup_minutes":10,"required_services":["n8n instance","Google Drive (API access / Google account)"],"key_features":["Creates folders in destination matching source folder names only (no files)","Skips creating folders that already exist in destination","Configurable SOURCE and DESTINATION folder IDs","Non-destructive — does not modify or move files","Built with Google Drive nodes in n8n"],"target_audience":["n8n users","IT administrators","Operations/project managers setting up folder templates\",\"Content managers and team leads wanting consistent folder structures"]}


name: Generate Audio from Text Scripts using Self-Hosted Bark Model and Google Drive
author_name: Flavien
author_username: flavien
categories: []
created_at: 2025-05-20T11:40:14.482Z
updated_at: 2025-05-20T11:40:14.482Z
url: https://n8n.io/workflows/4241
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Audio Generator – Documentation

  🎯 Purpose:
  Generate audio files from text scripts stored in Google Drive.

  🔁 Flow:
  Receive repo IDs.
  Fetch text scripts.
  Generate .wav files using local Bark model.
  Upload back to Drive.

  📦 Dependencies:
  Python script: /scripts/generate_voice.py
  Bark (voice generation system)
  n8n instance with access to local shell
  Google Drive OAuth2 credentials

  ✏️ Notes:
  Script filenames must end with .txt
  Only works with plain text
  No external API used = 100% free

  📦 /scripts/generate_voice.py:
  import sys
  import torch
  import numpy
  import re
  from bark import SAMPLE_RATE, generate_audio, preload_models
  from scipy.io.wavfile import write as write_wav

  Patch to allow numpy._core.multiarray.scalar during loading
  torch.serialization.add_safe_globals([numpy._core.multiarray.scalar])

  Monkey patch torch.load to force weights_only=False
  _original_torch_load = torch.load
  def patched_torch_load(f, args, *kwargs):
      if 'weights_only' not in kwargs:
          kwargs['weights_only'] = False
      return _original_torch_load(f, args, *kwargs)
  torch.load = patched_torch_load

  Preload Bark models
  preload_models()

  def split_text(text, max_len=300):
  Split on punctuation to avoid mid-sentence cuts
      sentences = re.split(r'(?&lt;=[.?!])\s+', text)
      chunks = []
      current = ""
      for sentence in sentences:
          if len(current) + len(sentence) &lt; max_len:
              current += sentence + " "
          else:
              chunks.append(current.strip())
              current = sentence + " "
      if current:
          chunks.append(current.strip())
      return chunks

  Input text file and output path
  input_text_path = sys.argv[1]
  output_wav_path = sys.argv[2]

  with open(input_text_path, 'r', encoding='utf-8') as f:
      full_text = f.read()

  voice_preset = "v2/en_speaker_7"

  chunks = split_text(full_text)

  Generate and concatenate audio chunks
  audio_arrays = []
  for chunk in chunks:
      print(f"Generating audio for chunk: {chunk[:50]}...")
      audio = generate_audio(chunk, history_prompt=voice_preset)
      audio_arrays.append(audio)

  Merge all audio chunks
  final_audio = numpy.concatenate(audio_arrays)

  Write final .wav file
  write_wav(output_wav_path, SAMPLE_RATE, final_audio)

  print(f"Full audio generated at: {output_wav_path}")
  `

nodes_used:
  ["n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.aggregate","n8n-nodes-base.googleDrive","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleDrive","n8n-nodes-base.readWriteFile","n8n-nodes-base.executeCommand","n8n-nodes-base.readWriteFile","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE8VYbW/cNhL+KwRTICkgrimJelsgH5zkEjjX1L0mF18bGwZFDnd11pKqSK1tGPsr+rm4v3g/4UBJtndtrdOiOPTbSks+M/PM8JmhbnAl8Rybdz+/Eocn37Gks3lz+QsO8Aocx/MbXGnruBZw5NeVNElVUaY5p1EqgDPgqUyF5HEcSwY0jbMsz6SMylRwWgoaJzRRIYSpEHmcRTjADlZNzR28bkHaj+C65rVZNTU4kHju2g42AdZ8BXiODztZGbQADS13pvWb+cLi+ZezAGsjwf+8GQIoKGcZiwqSZQkQFsuEcKFKUmYqi1ScR3nB8B3wR8dbN0d/u3LQal6jT221WEBv4LrxC3SuSW+BlNzCDK5AdA5OTHuhanN5v7wxtnKV0Xj+JaY0yOlZgBve8hU4aK2n73Lcc6SbzvVv1rzuRtdHdyp53kJjzrmPF2+CR39Y0VaNw5uzzWZw8TO0tjcbzkK/vueAhYnikQxJEkeKMM5SkqcxIzktCpVHNA9TeMTBB647zwBYtzf8Vb9mMuqI0oCxR2E/cvPOyTTKFJeFIIxmkrAi5aSkSpGkTHKaJCJNU3HvpHcLfR4I2+edBbfrE4smfcKm8QtG97i11UKvQA9J2Xncl5k7D6xrK73AwZBLPMfhZauP7MXnk3+8//Fw/XdLWbn8F18v3qyjt+aCl++eyOoTqJE7ev++Oz5/oy7fl+64O86iVXMRnce2OGZXP4upiohn7I5soKBkHhdEigIIk7QkZUojwlPgsoBcpllxT/bhYtHCgjtAY7HuY5zfLtzlPUknT8AO7aqCWtpP5s6WX9G/3Hn3ZerlxDl5YtETZ+aOHwU8kTFLCJNZRFgcSlKqoiQsTJOyKFOV0uSen3fg0McedT81C2MWNbxpq/UDcvJokhxV1Q7a/pepJbReZW/w+XlbD2IY4JWRQ1hbhfHy5gZ98+L5w4Q9/3ZWOVjN/m2Nnu3y8IWeoc0Gey528tGCNV0rPKiqanjbO4E3ARYtSNCu4nXv51Zcx4edW0aHTdV3B0/jKvvpp9cf7MW6zUpbQbVFWb8N9fsQF8J02uHHJXuXEKqEUJLlRHAWEZYAJwWUlGSJYoViSRap9B79O2Oar2bENnXljvQr7sSyV5GtpIQh+1rJ7ve19KeIqoLIUGaEqSgiPA8zkqUsjpMwjni4pWRvzKWuDZejv3+8gMKE0iCkkyUEf6BsxuLoq+FBMZjGN9reHJajv39dLSiqiiSjEWFpnBKWh5QU4KuijLlKRBjLgm+1M76Gr3HbApcnbeXgbVU/ZDfLp9l9oF41fD/YO3Cr5mA4WzN35W1us3fpreAAS+74D63/x12PG1/6d/iJBhmLMoUyJmlaxD5YRnImCsJUWsZFnkVZEm1rUj8cATo5/Py18eW1Wa24lo8a+HTgYlw9xy8PTOMO1qDXB2WlD5prtzQajcHbg3E+g/O1qQTMmmv0gJvh2XSu6dz5XQn6AGYtNDUX8OLg9NSv/OYgQM+ff4s2m9klXz9BEpVRobIkIQnIiDBKE1IASMJFKQqRK5XL8J6kH4FLdLjbwn9/aURR9DtL4yPUIPyg6jl7EPOL59tqtaPUe5nwJPRsPMFEXDDpmzlhBVeEhXlGeJIXJFQqS0Ioilzl90z8s+k16Gku9kpQxNg0EyP6vb7cHhTve4Clh9orUXXVj563IvXhepCIR+r0/2qQ/TSx1R//GrUrEpWVFCgpcqoIK6EkXHJBwiIrWZlQnjN1j/7f//z6G7q9jqAjbV3biYGrvX3QVeLi+nvzcGpLGQ2idOLiUkm3xPOU0gAvoVosHZ4z/yCMdqAdnuNnz4ZKQqMKVUbfOXWqT3U4Q5+WlUW3dyDEO2dW3IFFbglIGL0eiEBGIQdXDo2agirtDOoTg3wpWdTZSi8QRz8M4tNLDbLX2i3BVnbcNzvV0QwdOdSCaytYg70DVK1Zoe2cBLf3SrCjocvKLdEr3l4Q665rQJq3Q0wB4lqiFrr+8Ay+t2C72huMZ+OZ7h316bFo1VmHSkD+IM/Qsa6vkaiBa9TUvNJDpN7prmlM60DOPFnPnj0bq3R+qgnaHd/mO76j4SgMHo8Rbu/p45ne4gwawthm15v/wC8A2a6FPryR5gHb+yqhqc01SMTdU8rviVpy6wserPXWPKHItMi4JbSohV+6qgWJ/KGt7WxC2M4CzIXzAjBXvLYQYAvOVXrRV+XQyiqjj1s/qM7xOvQYYx313yhiGoe54JSI3N8wY1mSvMwYiUGEYZRBSFPfG4TRGsStvmz3iPkNXvHKnw1/ERzUZVo4+2UBrrSEKzynm7OzTbBzTZiCmp5aJ6G2h5opqOnuPwm1fZOegtp/+dsT5JblKbypnjuJtEPHFtJZcA+2d3ieRNzJ1Z/MwEPLU3CTo+ck2iOSp5M6cc2cLo/Hn3CmACc/ojwF+Oi72J8umM3mf3sZCD9pFAAA

metadata_json:
  {"categories":["automation","integration","audio generation","self-hosted ML"],"complexity":"medium","use_cases":["Batch Text-to-Speech (TTS) for scripts stored on Google Drive","Create podcast/audiobook segments from text files","Accessibility — generate audio for documentation or content","Automated voice-over generation for videos or e-learning"],"estimated_setup_minutes":45,"required_services":["Google Drive (OAuth2 credentials)","n8n instance with access to local shell/executeCommand","Self-hosted Bark model and model weights on the same machine","Python environment with dependencies (torch, numpy, scipy)","Machine with sufficient CPU/GPU and disk for model inference"],"key_features":["Fetch .txt scripts from Google Drive","Split long text into sentence-aware chunks to avoid mid-sentence cuts","Run local Python script to generate .wav using Bark (no external APIs)","Concatenate chunk audio and write final .wav","Upload generated .wav back to Google Drive from n8n workflow (batch-capable)`,`Works 100% self-hosted and free of external TTS APIs`,`Requires script filenames ending with .txt and plain text input only`],"],"target_audience":["Developers/DevOps who run self-hosted ML","Content creators and podcasters","Localization and accessibility teams wanting automated TTS"]}


name: Enrich Pipedrive CRM Contact Data with LinkedIn Profiles using GPT & Multi-CRM Support
author_name: Andrey
author_username: kulia
categories: []
created_at: 2025-05-20T12:36:25.517Z
updated_at: 2025-05-20T12:36:25.517Z
url: https://n8n.io/workflows/4242
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  ⚠️ DISCLAIMER: This workflow uses the HDW LinkedIn community node, which is only available on self-hosted n8n instances. It will not work on n8n.cloud.

  Overview
  This n8n workflow automates the enrichment of CRM contact data with professional insights from LinkedIn profiles. The workflow integrates with both Pipedrive and HubSpot CRMs, finding LinkedIn profiles that match your contacts and updating your CRM with valuable information about their professional background and recent activities.

  Key Features
  Multi-CRM Support**: Works with both Pipedrive and HubSpot
  AI-Powered Data Enrichment**: Uses an advanced AI agent to analyze and summarize professional information
  Automated Triggers**: Activates when new contacts are added or when enrichment is requested
  Comprehensive Profile Analysis**: Captures LinkedIn profile summaries and post activity

  How It Works

  Triggers
  The workflow activates in three scenarios:
  When a new contact is created in CRM
  When a contact is updated in CRM with an enrichment flag

  LinkedIn Data Collection Process
  Email Lookup: First tries to find the LinkedIn profile using the contact's email
  Advanced Search: If email lookup fails, uses name and company details to find potential matches
  Profile Analysis: Collects comprehensive profile information
  Post Analysis: Gathers and analyzes the contact's recent LinkedIn activity

  CRM Updates
  The workflow updates your CRM with:
  LinkedIn profile URL
  Professional summary (skills, experience, background)
  Analysis of recent LinkedIn posts and activity

  Setup Instructions

  Requirements
  Self-hosted n8n instance with the HDW LinkedIn community node installed
  API access to OpenAI (for GPT-4o)
  Pipedrive and/or HubSpot account
  HDW API key https://app.horizondatawave.ai

  Installation Steps
  Install the HDW LinkedIn Node:
        npm install n8n-nodes-hdw
        Follow the detailed instructions at: https://www.npmjs.com/package/n8n-nodes-hdw

  Configure Credentials:
     OpenAI: Add your OpenAI API key
     Pipedrive: Connect your Pipedrive account (if using)
     HubSpot: Connect your HubSpot account (if using)
     HDW LinkedIn: Add your API key from https://app.horizondatawave.ai

  CRM Custom Fields Setup:
     
     For Pipedrive:
     Go to Settings → Data Fields → Contact Fields → + Add Field
     Create the following custom fields:
       LinkedIn Profile: Field type - Large text
       Profile Summary: Field type - Large text  
       LinkedIn Posts Summary: Field type - Large text
       Need Enrichment: Field type - Single option (Yes/No)
     
     Detailed instructions for creating custom fields in Pipedrive: 
     https://support.pipedrive.com/en/article/custom-fields
     
     For HubSpot:
     Go to Settings → Properties → Create property
     Create the following properties for Contact object:
       linkedin_url: Field type - Single-line text
       profile_summary: Field type - Multi-line text
       linkedin_posts_summary: Field type - Multi-line text
       need_enrichment: Field type - Checkbox (Boolean)
     
     Detailed instructions for creating properties in HubSpot:
     https://knowledge.hubspot.com/properties/create-and-edit-properties

  Import the Workflow:
     Import the "HDW_CRM_Enrichment.json" file into your n8n instance

  Activate Webhooks:
     Enable the webhook triggers for your CRM to ensure the workflow activates correctly

  Customization Options

  AI Agent Prompts
  You can modify the system prompts in the "Data Enrichment AI Agent" nodes to:
  Change the focus of profile analysis
  Adjust the tone and detail level of summaries
  Customize what information is extracted from posts

  CRM Field Mapping
  The workflow is pre-configured to update specific custom fields in Pipedrive and HubSpot. Update the field/property mappings in:
  "Update data in Pipedrive" nodes
  "Update data in HubSpot" node

  Troubleshooting

  Common Issues
  LinkedIn Profile Not Found**: Check if the contact's email is their work email; consider adjusting the search parameters
  Webhook Not Triggering**: Verify webhook configuration in your CRM
  Missing Custom Fields**: Ensure all required custom fields are created in your CRM with correct names

  Rate Limits
  Be aware of LinkedIn API rate limits (managed by HDW LinkedIn node)
  Consider implementing delays if processing large batches of contacts

  Best Practices
  Use enrichment flags to selectively update contacts rather than enriching all contacts
  Review and clean contact data in your CRM before enrichment
  Periodically review the AI-generated summaries to ensure quality and relevance

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.pipedriveTool","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.pipedriveTool","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.hubspotTrigger","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.pipedriveTrigger","@n8n/n8n-nodes-langchain.agent","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-base.pipedriveTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-base.pipedriveTrigger","n8n-nodes-base.if","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-hdw.hdwLinkedinTool","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.pipedriveTool","n8n-nodes-base.hubspotTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-hdw.hdwLinkedinTool","n8n-nodes-base.hubspot","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 9524 characters]

metadata_json:
  {"categories":["automation","integration","data enrichment","CRM"],"complexity":"complex","use_cases":["Automated CRM contact enrichment","Lead intelligence and prospect research","Sales and marketing personalization","Maintaining contact data quality","Monitoring and summarizing LinkedIn activity"],"estimated_setup_minutes":45,"required_services":["n8n (self-hosted) with HDW LinkedIn community node installed","HDW (Horizon Data Wave) API / HDW API key","OpenAI API (GPT-4o)","Pipedrive API access (optional)","HubSpot API access (optional)"],"key_features":["Multi-CRM support (Pipedrive & HubSpot)","AI-powered profile summarization using GPT","LinkedIn profile discovery via email and advanced name+company search","Analysis and summarization of recent LinkedIn posts/activity","Automated triggers on contact create or enrichment flag update','CRM field/property updates with profile URL and summaries'"],"target_audience":["Sales teams","Marketing teams","CRM administrators/operations','Growth/BD teams','Developers or automation engineers responsible for n8n instances"]}


name: Gmail Attachment Backup to Google Drive
author_name: Akhil Varma Gadiraju
author_username: akhilv7
categories: []
created_at: 2025-05-20T12:56:59.720Z
updated_at: 2025-05-20T12:56:59.720Z
url: https://n8n.io/workflows/4243
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  📥 Gmail Attachment Backup to Google Drive — n8n Workflow

  This n8n workflow automatically backs up email attachments from a specific sender in Gmail to a designated folder in Google Drive. It polls Gmail every minute and uploads any new attachments from matching emails to the specified Google Drive folder with a timestamped filename.

  📌 Use Case

  Primary Purpose:
  Automatically archive and back up attachments from a specific sender (e.g., test@gmail.com) to Google Drive for safekeeping, audit, or processing.

  Ideal For:
  Automating invoice/receipt collection from a vendor
  Archiving reports from a monitored email address
  Creating a searchable historical log of attachments for compliance

  🧭 Workflow Overview

  Here’s how the workflow operates:

  🔔 Gmail Trigger  
     Polls Gmail every minute for new messages from a specific sender (test@gmail.com).

  📩 Gmail Get Message  
     Retrieves the full contents (including attachments) of the matched email.

  🧠 Code (JS)  
     Iterates over all binary attachments in the email and restructures them as individual binary items to upload separately.

  📤 Google Drive  
     Uploads each attachment to a target Google Drive folder (DOcs) with a timestamp and unique name.

  📍 Replace Me (NoOp)  
     Placeholder node to indicate workflow completion. You can replace this with Slack notifications, logs, or alerts.

  🔧 How to Use

  Prerequisites

  An n8n instance (self-hosted or cloud)
  A connected Gmail account with OAuth2 credentials
  A connected Google Drive account with OAuth2 credentials
  Permissions for n8n to access your Gmail and Google Drive

  Setup Instructions

  Import the Workflow  
     Copy and paste the workflow JSON into your n8n editor.

  Set Up Credentials  
     Ensure the following credentials exist and are authorized:
     `Gmail (for Gmail nodes)
     `Google Drive (for Google Drive node)

  Configure the Folder  
     Update the folderId in the Google Drive node if you want to use a different target folder.

  Activate the Workflow  
     Enable the workflow in n8n. It will start polling Gmail every minute.

  ✏️ How to Customize

  | Task | How to Customize |
  |------|------------------|
  | Change sender filter | Modify the sender field in the Gmail Trigger node |
  | Adjust polling frequency | Change the pollTimes configuration in the trigger node |
  | Change destination folder | Update folderId in the Google Drive node |
  | Modify filename format | Edit the name expression in the Google Drive node |
  | Add post-upload logic | Replace or extend the Replace Me node with notifications, logs, etc. |
  | Process only specific attachments | Add logic in the Code node to filter by filename or MIME type |

  📂 Filename Format Example

  [MessageID]_[Timestamp]_backup_attachment

  This naming convention ensures uniqueness and traceability back to the original message.

  ✅ Future Improvements

  Email subject filtering** to narrow down the match
  Slack/Email notifications** after upload
  Deduplication check** to avoid reuploading the same files
  Virus scan or file validation** before upload

  💬 Support

  For any issues using this workflow:
  Double-check your credential permissions
  Review n8n logs for Gmail or Google Drive errors
  Visit the n8n community forums

nodes_used:
  ["n8n-nodes-base.gmailTrigger","n8n-nodes-base.gmail","n8n-nodes-base.noOp","n8n-nodes-base.googleDrive","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE71WbW/bNhD+KwRboCkqOtT7S9FhWdpk7ZamSJMVWxwElHi0mUiUKtFJPEP/faDktzRyse7DPtkieQ/vnnvueAtcgGY4WWCpGs1UBu85TnDIIxoE3BF+wGhIKRUQ8tB3uQvAUkEh4yKIPNv1gkC4lNuUCaAxDQT1I88JsYU1FFXONBzWwJvPoGfVYVlUOWjgONH1DFoLq5JDg5PLBZbm1jil4GZ+RgLhhMSjrkdSJ7JJHNCUunEaRS7DFlasAJzg44LJHJ3XcjKB2lw4r8yyihTpcEnKGhhNzKnNoapspJalwskltYhDryxcsZoVoKFuDA1C5qu/DSgONU4wu53KfMK4rNnN7OcOcZSVBW4NXp6fywI6A6mh6KIpSm5cgTuo5ydSzTTg9qptLZzVwEFpyfLOoIM6PZjpqdPZGxLuvx5dHM2OqiMfzg4q7923AffHEUEHxitsUE3kf0DddHHZI6e1llhZEEGaipREgnHiCSclkRumRKQRy6gQ4HHxDf73iXzMoOOsOLyHdFqWt512nMD2gINDuJcB8byYkjiMHRLZfhhHNIUMXPwt7Y002sCJYHkDFi4rc0W3w8t7lZeMH2jNsmkBSje9fizMmWaf6rKCWs+3tj/VIOTDxz4otl6/NvkqoGnYpBf5m8UCPb9pSjWSHLUtNtdCzfrg8AQ0/n8y5ozsdcY8msah60YkEAKIlwlOoiAGwnwa2X5EIxbFG/wzqHKWATqBnWlT5Wn1OGsRHVT+Ex2tfaLcY+Azn/g294kX2yGJWBSRMHIi7ggKPmyXZVlOckBva3m326tJd2h1Zsu5wBkuyyV4l7K9F49K/8XLkSm80SqTr9AYX48xeoWeq/J+63OMU5bdzqrrjSbGuE88N54YUSzw9XWdrwS2rONcNhpb+I7lM/N5Ml9Hl7FsCvwMmlmuL4wdnmpdNcn+foe4jNM0i35hv5gTPmC7FOsaud0ugdbCosw51P/WQZv9Vbz/eh7fHJPjr1+uT98fn7u/frk7S4MPLD/Pf5H/xfPehWb/R8GXob09zRoTllTVTL9lmh1JyPly842p5KFq28ikL6KDSq7L7veHv08+fHm4n6Tqz98u8vmwBHeXnbsWuCuclPsOI2HghsRLA5+kDFzCGaSZL4LA47BBPyz5bmFn/eaWor0dir5pDvvk1aBntUKn6Q1kegRK1xKaPSPp5pJejVKpWD1/OSpYtbd3eQtzC3V5vnqJ3vyEFmOF0BKh+49Qb5CsPhEy5Ca9Ub/Ump/29Vi1L1/jJ91o83pQBgHjlITC6ereIXGachIGNgUR2DzI+IaWz1pmt3P0sdS72Wm6M8sjWxzZHrWIPUBSVuZljRPPwveS6ylOnIBaeApyMtU4iaiFs1JpUBon+NmzZ+hwytQEUP9yo/4tH6uTkksxR3q6tQM5R1J1a4+6CTLuPiFlqxn6vsN5xIjr2UA8FoSEcdshUcpSz3ZDO4j8QVLsH2bFD6hle98jZUWEvZMJDo2WqnvTUF/BaKwuKs40oFVTWfOwXTbGv7EaK4O15E/IHExcSJR1wfRYveNSd5bdKjxUNTSGr52A3+FV2HHmZUKQNPI58VjmkjjmIUlFSCGwBfhpOsir88O8hp3aBohd00mf0HnAOarKRpNZZYYRlJcTmY3V6gEuawQPGhTv4t48y13U6F7qKVKllkJmXSoaywA0FgKdjQZIuequV5Ctp6C+VyxwwaQJ4XLRzc47n9vumGm2HB5wQturq9ZazndDII9b2qDx1qixhdDjbrswBD80puz2cD3SD4b7eEYdQGnbfwCMg7Fi1AwAAA==

metadata_json:
  {"categories":["automation","integration","backup","file-management"],"complexity":"medium","use_cases":["Automatically archive invoices/receipts from a vendor","Collect and store report attachments from a monitored email","Create a searchable historical log of attachments for compliance","Centralize email attachments for downstream processing"],"estimated_setup_minutes":15,"required_services":["n8n (self-hosted or cloud)","Gmail (with OAuth2)","Google Drive (with OAuth2)"],"key_features":["Polls Gmail for messages from a specific sender","Retrieves full message contents including binary attachments","Splits multiple attachments into individual upload items via JS code","Uploads attachments to a specified Google Drive folder with timestamped filenames","Placeholder node for post-upload actions (notifications, logs) and easy customization"],"target_audience":["Developers/automation engineers","IT/Operations teams","Finance / Accounting teams processing invoices/receipts','Compliance officers and auditors','Small business owners or admins managing document backups'"]}


name: Receive Bitcoin, Etherium, Solana, Binance Data With Gecko Coin and Gmail
author_name: Ghufran Ridhawi
author_username: ghufran-ridhawi
categories: []
created_at: 2025-05-20T16:07:34.725Z
updated_at: 2025-05-20T16:07:34.725Z
url: https://n8n.io/workflows/4244
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Who is this for?
  This workflow is intended for Traders for trading, Crypto Investors, Professionals in Web 3, Web 3 Developers, Crypto Marketers, Web 3 Programmers, especially in the world of Crypto Currency, Blockchain, and all professionals working in the world of Web 3, including agencies or companies that use Web 3 data. Here you can read Bitcoin, Etherium, Solana and Binance data. And this is specifically for those who want and need to automate workflows involving data in Web 3 and Market Crypto, facilitating access to Web 3 and Crypto data without manual coding, improving decision-making performance for buy or sell so that it can be integrated with other tools. In fact, to read market patterns on web 3 and crypto requires precise data on Dex Market. In particular, you have to analyze and research extensively and precisely in a traditional way, which will take time. This is also a form of dedication to the community at n8n and the n8n company, as well as dedication to Traders, Investors, Web 3 Companies, Programmers, Developers, including professionals in Web 3 and Crypto so that reality no longer experiences failure and is able to answer existing reality problems.

  How it works?
  Easy explanation:

  The First Schedule Trigger is used to position the right and wise time, and organize the get data to the next Node. It's like the right execution must be at the right time.

  After that an HTTP Request will be received from Gecko Coin to work together with the Function, in this case I chose manual coding because it is detailed and specific.

  After that, the Function will carry out its task, namely changing the raw data into data that is ready to be read by humans.

  Then after everything is sent and received by Gmail, it produces results in the form of ready-to-read data.

  You can immediately see the data thoroughly, because the data has been processed. If you want to process it again, just direct the AI ​​system to process it again.

  And all duties and responsibilities have been completed

  Very practical and easy, plus its automatic nature. I'm sure you can understand it wisely.

  Set up instructions
  Complete what is in the nodes as stated in the notes column.

  First, you have to connect or create a Gmail “Credentials Account”. Because all nodes have been setup neatly and cleanly.

  Second, next in Gmail, write your email address to receive the data. 

  Here, just follow the module instructions that n8n has provided, making it very easy. This will honor you of course.

  Everything is organized wisely, so you just follow the notes or setup instructions provided, or you can add other things according to your specific purpose and congratulations you are ready to use it.

  Requirements
  As a reminder:

  Everything according to the conditions of your destination.
  There must be (if not, make sure it is registered) in each "Credential Account" by following the guide on how to do it n8n the guide is very complete
  Don't forget to save, and make sure the workflow is active.

  How to customize this workflow to your needs
  You can immediately add another node to save it again in the advanced node layer. Prepare the coins you want for your needs in additional nodes, so that your specific coins are also high when carrying out tasks and answering them, and according to your goals.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.gmail","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WXS2/bOBDHv4rAUxfVLPh++BYb2aRAmgC1u3sociA5w9RoLGdtpegiyHdfyA1a25GNKLkJ0PCvn+bFmQc2RzZi48ka1xdnHz5/Hn88p0CsZgtqIxs9sHmzbmOT6UNnF5NwknvHS/eUrOaaSkpcGK7JSWOLQJ6pYPE6OdQCg1UxaF2sNEo7VrOWFne3saXJinA9pfb+brJc3N1SS8hG7eqeHmvWxAWxETujtro6v5hU49mkrk5n53U1vbqoq/HluPpn3n6tzih/W1aT5bypYoPVlBrsvhBv1mz05bpmzRKpe3z4+ZempFKkLSCi56BRKohRERhJQVrtI9ru/NbXxx9mk6sPlxuKTvm/u+5N4xvYSEOKa/rza9vefaJ/72ndsprdLdfzdr5s2OiLEpzXIC2/rtldXMUFtbRas9HD40+pv2m13liKx/oJUaTiFWYOJloLmriBKBOCpRysJ6fQ0S7i6ez89NPp549vYhyCyL1MUQoHnhcJmmQEbyUCypIjWi9EKLuI06uLk8uTtwCKIYBGEFmVCHw0HrSMBYKUFlT0xueUuU1hP8yXJ5eT07eGWg2h1AnJ8ODBF5lAlyghclMgoHJCk/fSbkW6S+3qbBHntwfZbp7eblM5zWvHB1DFrDgmz6GYbECrlCCWSKDRc+FyVlZtlchHWt1QJap349mket+l4h8H8Rad7T6e5TX4AXg5OB9tEVB4QNBZZIgWOaiStc9WimL4Pp6s3r2fXl0MJxN6SFUkQyST7yJpQTsvICidgLKwylmDntI+marevR9fjoeTqSFklNDmQAgolAONCSGUnCGLIlGiTzpt+WyavxLe39JBpvWTwWw1v7mh1S6d9JLXQ6qAchRdTwZO3oA2WUHyJkKKqZBKVhXcaibTdp6//VddLlsShwE3Rp3Nnue45DUY+YyO5WXTUtOyEWOHSWUppAURxOQyaEcaPGoPzuiitOYUqZ90OKjibwEtSqEmTOBL1KC9kF2n5kBUROE+ZGf7QeVwUuPfQmoimhxlgOAVB22VgeR9AFGCkuS9IFS9pOp1pOZ52bwMVGWFJScL0lABnYqHIGQEXbzz0gfnMu8F1YNBZdeyX+9SisVGLATZWwm6WAXeIwcTTMo2xOSM7q8nPhzVvClPUUSKmRASGgUasUAoJYMhlMRFRoG+F9W8jjS8FpTHgJa87TLUgpZBQ5Iig0FTXJY+mE3pPIH+tVwtYtuNrAcx8xL301O/cFKUv29q4aRIAiEEbUAXYyDornPaxKPEpLjUz6hOZ+eDqYZABVlC9sWBstaBLiJC8Jog+kxaOVNESc+gplcXQ6FeMA/KrUlLWumlAF6U6OKXwZdsQCkRcpFSKmeex+9yPBTqBePfbygfJToUDrQrDrRFBynYrq8kz6Py2cQtqMlykeYNVSe3t5t1Zz2U7QVDoHy8rlnM7fw7sVGJt2uq2Zradt7cbGqFflC+7zSvVkgrNmLfRVc033+e36yHQlhtOXXh1wiasobAUwAulSlCZc1ld2/nZdNQ7qQ2wr9GjtEDW8R5x/zlYbO7Hd3CNqY1mzdIP9iId57dOnNgLTp+qHdROX7k8Oqwf+76+rHezq6+vz00F+5qiV2t2eSI1oHh/Bhc1yTeKLhL2BX4YcHn83mv1p7x673Ht/V+GffpHam6Xsn9FOrT7Ot5B8V2Ev+I2s5l06v2/Ff65Pq2zINwuxV2hG7n0jkSi93Men3C7DhwrzqPOXG74/coPj7+D3EGEPUtEwAA

metadata_json:
  {"categories":["automation","integration","data processing","notifications","crypto"],"complexity":"medium","use_cases":["Scheduled market summaries for BTC/ETH/SOL/BNB","Automated email alerts for crypto price updates","Portfolio / market monitoring for traders and investors","Feeding processed crypto data into other tools or workflows","Rapid research and market-data collection for Web3 teams"],"estimated_setup_minutes":15,"required_services":["n8n instance","CoinGecko API (HTTP requests)","Gmail account (OAuth / SMTP credentials)"],"key_features":["Scheduled trigger to run data pulls at defined times","Fetches price/market data from CoinGecko for Bitcoin, Ethereum, Solana, Binance Coin","Function node transforms raw API responses into human-readable summaries","Sends formatted results via Gmail email","Easily customizable to add more coins or downstream nodes"],"target_audience":["Crypto traders","Crypto investors","Web3 developers and programmers"]}


name: Gmail to Telegram: Email Summaries with OpenAI GPT-4o
author_name: Lucía Maio Brioso
author_username: luciamb
categories: []
created_at: 2025-05-20T17:07:15.274Z
updated_at: 2025-05-20T17:07:15.274Z
url: https://n8n.io/workflows/4245
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  🧑‍💼 Who is this for?

  This workflow is for anyone who receives too many emails and wants to stay informed without drowning in their inbox.

  If you're constantly checking your Gmail and wish you had someone summarizing messages and sending just the important parts to your phone, this is for you. Especially useful for solopreneurs, customer support, busy professionals, or newsletter addicts.

  🧠 What problem is this workflow solving?

  Email is powerful, but also overwhelming. Important info gets buried in threads, and staying on top of things can mean hours wasted scanning messages.

  This workflow turns that chaos into clarity: as soon as a new email arrives, you get a concise AI-generated summary in Telegram — straight to your pocket.

  No more checking Gmail constantly. No more missing key updates. Just a clean, human-style summary, written in the language you choose.

  ⚙️ What this workflow does

  Watches your Gmail inbox for new messages
  Prepares the content, including sender, subject, and message body
  Sends it to OpenAI to generate a friendly, casual summary
  Delivers that summary to your Telegram chat

  All in seconds, completely automated.

  🛠️ Setup

  Connect your accounts: Gmail, Telegram, and OpenAI credentials must be added to the respective nodes.
  Set your Telegram chat ID: Use a bot like @userinfobot to get it.
  Customize the language in the Set summary language node (default is English).
  Activate the workflow — and watch it go.

  🧩 How to customize this workflow to your needs

  You can make this workflow your own in a few easy ways:

  Summarize only some emails**: Add a Filter node after the Gmail trigger (e.g., only messages from certain senders).
  Change the tone or detail of summaries**: Tweak the system prompt in the Summary generation agent.
  Use a different model**: Swap OpenAI’s GPT-4o for another provider like Claude or DeepSeek.
  Translate to your preferred language**: Just change "english" to "español", "français", etc.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.gmailTrigger","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","integration","notifications","AI"],"complexity":"simple","use_cases":["Email summarization and notification","Reduce inbox overload / email triage","Send concise updates to mobile via Telegram","Summarize newsletters or high-volume senders","Customer support alerting and quick context delivery"],"estimated_setup_minutes":10,"required_services":["Gmail","Telegram","OpenAI (GPT-4o)"],"key_features":["Watches Gmail inbox for new messages","Extracts sender, subject, and message body","Generates friendly, casual AI summaries via OpenAI","Delivers summaries to a Telegram chat","Configurable summary language and tone via prompt edits or node settings','Easily filter which emails get summarized (add Filter node)"],"target_audience":["Solopreneurs","Customer support teams","Busy professionals/executives','Newsletter readers / information overload sufferers"]}


name: Get Colombian Peso to USD Exchange Rate with Telegram Bot and AI Date Recognition
author_name: Juan Sanchez
author_username: juansave
categories: []
created_at: 2025-05-20T18:45:39.599Z
updated_at: 2025-05-20T18:45:39.599Z
url: https://n8n.io/workflows/4246
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  📌 Request TRM (Colombian Peso to US Dollar exchange rate)

  🎯 Objective

  Retrieve the TRM (Colombian Peso to US Dollar exchange rate) for a specific date provided by the user via Telegram.

  🔄 Summary Flow

  📨 Telegram Message  
     The user sends a text or audio message  to the Telegram Bot.

  🧠 Date Extraction  
     AI (OpenAI) is used to identify the date in YYYY-MM-DD format.

  📅 Validation  
     If the date is in the future, the user is notified that it is not valid.

  📡 TRM Query  
     The bot queries the open data API from the Colombian government.

  📥 Result  
     ✅ If TRM data exists for that date → The bot replies to the user.  
     ❌ If not → It searches up to 10 previous days for available data.

  📤 Final Response  
     The most recent available value is sent, or a message indicating no information is available.

  🔗 Data Source

  datos.gov.co – TRM

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.telegramTrigger","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.code","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.filter","n8n-nodes-base.sort","n8n-nodes-base.limit","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.switch","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6616 characters]

metadata_json:
  {"categories":["automation","integration","data retrieval","chatbot","finance"],"complexity":"complex","use_cases":["Retrieve historical TRM (COP → USD) for a user-specified date","Provide currency reference via Telegram bot for customers or staff","Automate financial reporting or bookkeeping lookups","Create conversational bots that accept text or audio date inputs"],"estimated_setup_minutes":30,"required_services":["Telegram Bot API (Telegram)","OpenAI (chat model for date extraction / NLP)","datos.gov.co TRM open data API (Colombian government)","n8n (webhooks/HTTP integration)"],"key_features":["Accepts text or audio messages from Telegram users","AI-powered date recognition and normalization to YYYY-MM-DD","Validates and rejects future dates","Queries Colombian government TRM API for the requested date","Fallback lookup: searches up to 10 previous days for available TRM data if none on requested date"],"target_audience":["developers","finance professionals","small business owners using Telegram bots"]}


name: Invoice Processor & Validator with OCR, AI & Google Sheets
author_name: Dhrumil Patel
author_username: itechdp
categories: []
created_at: 2025-05-20T19:58:32.680Z
updated_at: 2025-05-20T19:58:32.680Z
url: https://n8n.io/workflows/4247
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  📝 Say goodbye to manual invoice checking! 
  This smart workflow automates your entire invoice processing pipeline using AI, OCR, and Google Sheets.

  ⚙️ What This Workflow Does:

  📥 1. Reads an invoice PDF
  — Select a local PDF invoice from your machine.

  🔍 2. Extracts raw text using OCR
  — Converts scanned or digital PDFs into readable text.

  🧠 3. AI Agent processes the text
  — Transforms messy raw text into clean JSON using natural language understanding.

  🧱 4. Structures and refines the JSON
  — Converts AI output into a structured, usable format.

  🔄 5. Splits item-wise data
  — Extracts individual invoice line items with all details.

  🆔 6. Generates unique keys
  — Creates a unique identifier for each item for tracking.

  📊 7. Updates Google Sheet
  — Adds extracted items to your designated sheet automatically.

  📂 8. Fetches master item data
  — Loads your internal product master to validate against.

  ✅ 9. Validates item name & cost
  — Compares extracted items with your official records to verify accuracy.

  📌 10. Updates results per item
  — Marks each item as Valid or Invalid in the sheet based on matching.

  💼 Use Case:

  Perfect for businesses, freelancers, or operations teams who receive invoices and want to automate validation, detect billing errors, and log everything seamlessly in Google Sheets — all using the power of AI + n8n.

  &gt; 🔁 Fast. Accurate. Zero manual work.

  #OCR #AI #Invoices #Automation.

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.splitOut","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.readWriteFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8784 characters]

metadata_json:
  {"categories":["document processing","automation","data validation","AI integration"],"complexity":"complex","use_cases":["Automated invoice data extraction","Accounts payable automation","Invoice validation against master data","Error and fraud detection in billing","Logging invoice line items to Google Sheets"],"estimated_setup_minutes":60,"required_services":["Google Sheets (Google API)","LLM provider (OpenAI, OpenRouter or similar) for AI Agent","OCR engine (Tesseract or external OCR API)","Local or cloud file storage for PDFs"],"key_features":["PDF OCR to extract raw text (scanned or digital)","AI agent transforms messy text into clean JSON","Splits invoice into individual line items","Generates unique identifiers per item","Validates item name and cost against master data sheet','Writes and updates results in Google Sheets"],"target_audience":["Accounts payable teams","Operations or finance teams","Small businesses and freelancers handling invoices manually that want automation','Developers/automation engineers building document workflows"]}


name: Auto-Triage GitHub Issues with GPT-4o, Pinecone
author_name: David Ashby
author_username: cfomodz
categories: []
created_at: 2025-05-20T22:24:00.107Z
updated_at: 2025-05-20T22:24:00.107Z
url: https://n8n.io/workflows/4248
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:33
description:
  Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?

  Join the community

  🚀 GitHub MCP Webhook Tool Sub-workflow: AI-Powered Repo Assistant

  &gt; Transform your GitHub workflows with a customizable AI agent that integrates seamlessly via a single webhook. Think "Copilot for repos," but you own the code, prompts, and data.

  👀 Key Features

      🔧 Fully Customizable: Tweak system prompts, swap AI models (GPT-4o, 4o-mini), or add tools like spam detection.

      📦 Single Webhook Integration: Add AI to any existing workflow with 1 HTTP node.

      🤖 Auto-Triage & Action: Sort issues by severity, auto-comment, flag spam (e.g., NSFW content), and ping teams via Discord/Slack.

      🔍 Codebase-Aware: Queries your repo’s docs and code for context-aware responses (Pinecone vector stores optional).

      💸 Cost-Friendly: Starts at $1 – cheaper than a coffee, infinitely more useful.

  🛠️ Getting Started

      🚀 Deploy the Template: Clone the "GitHub MCP Server" workflow.

      🔑 Set Variables: Update repoOwner, repoName, and Discord/Slack IDs in the "CHANGE THESE!!!" node.

      🌲 Pinecone Setup: Pre-index your docs/code for lightning-fast queries using the vector nodes.

      🌍 Go Live: Trigger via webhook – use it for issue replies, triage, or even automated PR drafts!

  💡 Use Cases

      🚨 Auto-Alert Teams: Flag critical bugs to senior devs, route FAQs to interns.

      🗑️ Spam Shield: Delete explicit issues instantly, quarantine self-promo for review.

      📝 Docs Bot: Answer contributor questions using your repo’s documentation.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE62W204bSRCGX2Xo6ym2D9UnXy3KIoi0m10Bm1wgtOpDNYyCZ5Bn2CSy/O6RTcAGD8SWct1Vf339T1X1zNmUhsAmc9a0/RDaRO8zmzDnlSCbo/YySW94IqmV44KC9DyJnIwhRGsVJlLZG6cEV0YboxOV5Dhb1KztMvVscjlnzVIyhcDRCATMUgN6NBCzFWBlLgGl1KIYVrM2TIlNGHZ1hR1Mm7apKxqSYDUbvt0tj35vXftb61pYFYDb0F6nm9C0h7fTdzdh+PuO2qOG1eyu65uh6Vo2uQTkNTh+VbO7MAtTGmjWs8l88aD5kWb9Kk4cykX9A1dqUjGjBiFUAtSpQEQewfPkk5AkpZRr3POhSZ+/VR+6gTZI15Ax9HTYr4KWMS/opOM1yC08lrp2oHZgE8a2UJ9ArU2GQkIIPFtASQUcqgLaCB+IR0Qf1qCfKN503edXGb88nT8DXPonVgb+CFh1SVBIylGAoosGlMWB54hggiw22UxKLEu/6fnacZUllsQJiAoHdMkuL2LBY5TeBReds+uLnFF/17W5GrrqZ3eaPYRedJ/GLrcyX5i9mgNl8dFIDwKlA8QcwElVALWU0dmgSec16rvTow8nx9XF6fH58cHBwev9QcOY79uN8RJNHeITWsjcC3QBiqQIiKaAT4IDGkxFy4KB8zXaSTPc3Mfqfd/fU3XatEO/w5yF62VTbg+Y2GXC/BNpcsl4Hwi85REwRANRaw+RW7KWx+SC2DCxy1R9pDR0s+qMQt6B8/9V9PnQzeifpqXUtS8Gj9e4A/F61EhEI7VIYJP3gCZwCDopKDlJDDxF5TeI/+hS/+uJd+rUNXIWIWjHLRSjAqALGnziCqInF0XBYLNbI//bU3VBX4fqeBop56a9rlT159HZyfEO8PSY04+tYCV5LfheU6aizd4kBTFYDWhSguB9BCSVlA3KaLcxZRc31FM1dF3VlOpbd199Casu3WfWdjB3c9ZiiOhc1mCdJUBHDhy6DKlIFS0lh4WPvhFy7zdirFV3fB9IJCvJQS4KAWOyELlzkJMJWLh3zpdRSLU3JJrVutoT9KpenreUliqr8Mc9PZmzaWiWypfz1e/EW8t0FVmzps30lU344upqUW9Fjyn+pHHGdV9uo8mchea/oetun2m/tV8f419qb+2NX6i9/Vv1IL6c4vtwTX91mfaq8jzxZbmR5LEv8NZbPmr/+Ccbk34Lf1T6jRX4YNXTmntW5/Vl/yxlo1q9bulXn7bXcq+uFovFdzMc7b27CwAA

metadata_json:
  {"categories":["automation","integration","developer tools","AI-assistant"],"complexity":"complex","use_cases":["Auto-triage GitHub issues by severity","Auto-commenting and automated PR/issue responses","Spam/NSFW detection and quarantine","Context-aware answers using repo docs/code (searchable via vector DB)","Alerting teams via Discord/Slack for critical issues"],"estimated_setup_minutes":45,"required_services":["GitHub API","OpenAI (GPT-4o / GPT-4o-mini)","Pinecone (vector database)","Discord or Slack (optional for notifications)","n8n instance (hosted or cloud)"],"key_features":["Single-webhook integration to add AI agent to repo workflows","Customizable system prompts and swap-able models","Auto-triage, auto-commenting, and actionable responses","Spam/NSFW detection and automated handling","Codebase-aware retrieval using Pinecone embeddings/vector store for context-aware replies"],"target_audience":["repository maintainers and open-source project owners","Developer teams and engineering managers","Community managers and support triage teams"]}


name: Extract & Summarize B2B Leads from Crunchbase with Bright Data, GPT-4o & Google Sheets
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-05-20T23:51:39.434Z
updated_at: 2025-05-20T23:51:39.434Z
url: https://n8n.io/workflows/4250
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who this is for
  The Crunchbase B2B Lead Discovery Pipeline is designed for sales teams, B2B marketers, business analysts, and data operations teams who need a reliable way to extract, structure, and summarize company information from Crunchbase to fuel lead generation and market intelligence.

  This workflow is ideal for:

  Sales Development Reps (SDRs) - Needing structured leads from Crunchbase

  Marketing Analysts - Generating segmented outreach lists

  Growth Teams - Identifying trending B2B startups

  RevOps Teams - Automating company research pipelines

  Data Teams - Consolidating insights into Google Sheets for dashboards

  What problem is this workflow solving?

  Manual extraction of company data from Crunchbase is time-consuming, inconsistent, and often lacks the contextual summary required for sales enablement or growth targeting. 

  This workflow automates the extraction, transformation, summarization, and delivery of Crunchbase company data into structured formats, making it instantly usable for B2B targeting and analysis.

  It solves:

  The difficulty of scaling lead discovery from Crunchbase

  The need to summarize raw textual content for quick insights

  The lack of integration between web scraping, LLM processing, and storage

  What this workflow does
  Markdown to Textual Data Extractor**: Takes raw scraped markdown from Crunchbase and converts it into readable plain text using a basic LLM chain

  Structured Data Extraction**: Applies a parsing model (OpenAI) to extract structured fields such as company name, funding rounds, industry tags, location, and founding year

  Summarization Chain**: Generates an executive summary from the raw Crunchbase text using a summarization prompt template

  Send to Google Sheets**: Adds the structured data and summary into a Google Sheet for team access and further processing

  Persist to Disk**: Saves both raw and structured data files locally for archiving or further use

  Webhook Notification**: Sends a structured payload to a webhook endpoint (e.g., Slack, CRM, internal tools) with lead insights

  Pre-conditions

  You need to have a Bright Data account and do the necessary setup as mentioned in the "Setup" section below.
  You need to have an OpenAI Account.

  Setup
  Sign up at Bright Data.
  Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions.
  In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication).

  The Value field should be set with the
  Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token.
  In n8n, Configure the Google Sheet Credentials with your own account. Follow this documentation - Set Google Sheet Credential
  In n8n, configure the OpenAi account credentials.
  Ensure the URL and Bright Data zone name are correctly set in the Set URL, Filename and Bright Data Zone node.
  Set the desired local path in the Write a file to disk node to save the responses.

  How to customize this workflow to your needs

  LLM Prompt Customization : 
  Modify the extraction prompt to include additional fields like revenue, social links, leadership team

  Adjust summarization tone (e.g., executive summary, sales-focused snapshot or marketing digest)

  File Persistence

  Store raw markdown, extracted JSON, and summary text separately for audit/debug

  Webhook Notification

  Connect to CRM (e.g., HubSpot, Salesforce) via webhook to automatically create leads

  Send Slack notifications to alert sales reps when a new high-potential company is discovered

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.function","n8n-nodes-base.function","n8n-nodes-base.readWriteFile","n8n-nodes-base.readWriteFile","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainSummarization","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  [encoded data, 4836 characters]

metadata_json:
  {"categories":["automation","web scraping","data extraction","integration","lead generation"],"complexity":"medium","use_cases":["Automated B2B lead discovery from Crunchbase","Extracting and structuring company data (funding, industry, location)","Generating executive summaries of company profiles","Populating Google Sheets for sales/marketing workflows","Triggering webhooks to CRM/Slack and archiving raw data"],"estimated_setup_minutes":45,"required_services":["Bright Data (Web Unlocker / proxies)","OpenAI (GPT-4o or compatible LLM)","Google Sheets (Google account/credentials)","Webhook endpoint (Slack, CRM, or internal endpoint)"],"key_features":["Converts scraped Markdown into readable text via LLM","Parses structured fields (company name, funding rounds, industry, location, founding year)","Generates executive summaries with a summarization chain","Writes structured data and summaries into Google Sheets","Persists raw and structured output to local disk for audit/archive purposes','Sends structured lead payloads to webhooks for automated downstream actions"],"target_audience":["Sales Development Reps (SDRs)","B2B Marketers","Growth teams and analysts`,`RevOps teams`,`Data and operations teams"]}


name: Extract LinkedIn Post Engagement Data with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T00:14:46.031Z
updated_at: 2025-05-21T00:14:46.031Z
url: https://n8n.io/workflows/4251
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  LinkedIn Post Engagement Data Extractor

  Use Case
  This automation is designed to extract key engagement metrics and audience data from a LinkedIn post. It's useful for analyzing the impact of content and identifying engaged users for lead generation, marketing, or research purposes.

  What It Does
  Given a LinkedIn post URL and an Airtop profile, this automation extracts:

  Total number of reactions
  Total number of comments
  Total number of reposts
  A list of users who reacted or commented, including:
    Their full name
    Their job title
    A link to their LinkedIn profile

  Input Parameters

  | Name             | Description                                                | Required |
  |------------------|------------------------------------------------------------|----------|
  | airtop_profile   | The name of an Airtop Profile that's logged into LinkedIn | Yes      |
  | linkedin_post_url| The full URL of the LinkedIn post you want to analyze     | Yes      |

  How It Works

  The workflow starts when triggered manually or from another workflow/form.
  It maps input fields for Airtop profile and post URL.
  Airtop opens a browser session and loads the LinkedIn post.
  An AI agent is instructed to extract engagement data via prompt-based analysis.
  The response is parsed and output in a structured format.

  Output Format

  The output will be a structured JSON object with the following fields:

  {
    "interactors": [
      {
        "name": "Jane Doe",
        "job_title": "Marketing Director at ExampleCorp",
        "profile_url": "https://linkedin.com/in/janedoe"
      }
      // ... more interactors
    ],
    "reactions_count": 153,
    "comments_count": 21,
    "reposts_count": 8
  }

  Read more about how to extract Linkedin post comments and reactions.

nodes_used:
  ["n8n-nodes-base.airtop","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.formTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE7VZbY/bNhL+KwOmQFNA0kqyLMsG7kOQpHfbS5ogSS8o4kVKSSObWZl0SWo3exv/98OQkt/WzqW4nL/smi/D4fCZmWfG90zUbMZGi9fVrW0/xfk/L+8Wb16xgK3Qcja7Z0Iay2WFl7QuLfg0m5TTtEymk6ZKx2mGvORJjuPJOI9HoyIfT8q0jMvxZJqP4rhMm6TCukrquB6NxyxgFlfrllt8qrE2b9F266dqtW7RYs1mVne4CZjkK2Qz9kLIa6wvJbxWxsJzueALXKG08IxbDs8/W80rqzSE8K4XSvL5wrDZh6uASVUj/Xvv75iXeT3OsAnThNdhNsImLDHnYZI1VZZOx+PJpGbbs58IbdWa5N2t6bssZOgEhiU3GPFheq2MsEJJNvuQ5HGQpvFVwNZc8xVa1IYs2OmWzdjf7u/hh09GyWitjP3Y6RY2GxKg1Wpt2Yz9rjrgGqFV6lrIBXALHLYmoE3RXP6uOg2fVAnCgFWA3gaAO9vUZJtGqxXYJQ7b5rK3lhsUslF6xUltUI1fh2rdItglt7DkNwiVWpE4rIHLGjTyiv63CuxSGC8WLuGWSydSaCC7Bf3/pKAVtkW32Y+ttWpEi3Rxp9Al8NaorQSwyvIWZLcqUZNW7kihpAkGXUyvCh1uIvhZaUBeLfsrGIQb3nZoAhAN3PXG7CQv6V4KGiFrEDYAgxaEBW4gTCIWMI1GdbqiR+7NSc8ZMLVGzf3Tsj871Hf+segSv3qM7J7Uw+FjP+0f1qAxQsmXqnb4wVsWMF7XDi28/VlgWzt4qM6uO/u2WuKKsxm7n0uAuYPdnM1gzlT5CSs7Z4GfWGtSzAo0NO1W07CQFr077I8fSuJa87teUL/L4upw/VfOHqZPajBMEgweDB8KNVYLuTgQ6pfUaCot1mQgv/LdEh2udijVRkm4Xao9fCo9wDOas32Rm+BQtU+q/OhQ+V3122H9uyi55ybfVU2KN17BnS8eabL7sjl4b41/dkJjTcI+nHrt83beTVwdiNz5wesDMDW8NTgs7BUalCFF+pDwsVKdtGdx7oPIAdAf2IRe6kSw2QZN0FihuKFbH6sxhKPvrsU2zm2VWHLz8Pw+Av4fjODknj6d/mz6EHQCEEcB6PyTnbXiuevR8FV/8Fdh06/5wbhI6i+4tHY9u7igGB368UjpxUWteWPDeHLhxx7RKRu22QSs0lijtIK3FJs3Pv3/C7VxeSDZBD2ZyPJRk6VpEyKOR2FWF1lYTuMsnOQZz6c8j5uE78jEa64N7idpLnl7Z4QBjWatpMGzRKOi9HFAM0bFaZrxyTz1qaZS0uHXdK2Fv8Evb1/9Gq1Jg8c/CLnubNQIbezjnyKXuogvRCtVY/um1+WnudRoOy3hwz0tmcF9FEVe3mZzxY6tkm6tMkpHxSgpJmGTNmmYlXEclpOqCLNyUudFhnlTJTurvLWiur6DX5XF5Oz9jVtEaw6tEI7yOAizh2aoVKs0m40Dditqu2SzaRwHbIlisbRsNs7igAxkURLnevRooJH+dVYo0VOouXwv7BJ8YnfEg4MRRFTBMzbHdYAv6DmFgYFmDIxsn2M5NnbE5aAV1zibyxCerAjoB/6v5NYJD1fs4tRXljj3cYPQCrMvGbUJ4Jbutc/ZDtnawGGItZ7Hf1rkU2x4EiYVT8Is43nIp0UcpvU0Tpq84nXV7F76/RIlPP+MVUe5sLyDJ1LZJWp4r/R106rbs8+PftOw7p0WiwXqIyikRRyMTnjEbb/rklDvRjxDdDVBr9ohc2N0wX6mdc8l5MeBr7PN1eaBRaKdTZJqPB0lRRHmTdqEWVKkIZ+WTTgd1bzgVR1PpnvofyWBEAKmK1fCMcWzRqB152+euJvfYrlU6tpVafGkauJxFoejSZ2G2bRKQz5OMYxxWoxHeVYV2YgdG0u5vNBHPXciQeLbqzDmd+147Z6tGxp8wUtst5UVvO5x9viFWiywBiGt6l1EyJ8cL/dZxkkcSsMjWU6l3968OLP8qr/Ks13iIzR6BxAGnpD3BlQs/Ni2UOIDL6Y7uLGvuTMpEYDpqiUVFX0+HXw52PPZvfKF3h44LMQNSlh3ZSsqJzwgEbfYtvSXb/3XqB0J3vnyvitTIsHKihv0vmyOndk8jNvRLnJPsjqNyyILG0yrMKszKo55GY6m9TSOseRpHO+w+5KvofEPfTZuoz3C6pnq+AB33BixkM5wNHfwdajjq7iupglmYZ6VVZjFRRqWSTwNi9G4ifMEEbNqp+qRf2/V9eyZBR6mXyvmvnzx4x/m3wbdObuiAnBrWt5URTMu03AyKpswK+s4LKdFFWbjohqnSVXweK/vsA0236LpgxC1r+zgG4M+D4PXKMq2Wo6bybROppMwxywJs0mehtO6yMMmT3nNE4yrYnwydf/1zJ1kcRyE6YncfSpjJ2l+kLLfPH/y7OVz6iA8gm8MTW7xI/jNIDzlVF+8I+fnnVW9RwsDNRLUfItj8P5rvNsnbSu0WlTesXhXC5QV7rVbjps1cGl/NNAZbLrWuzuRvn9Ta8c1YVZrOsMlZ3c3J1c49tnc0Sp/dE0itA8YLfIaFij7xkQAK66v0Qq5CHyFaZDragnrTq+VQRP1N39PbZ1LC88Umrn8uws6x3zktzcv/M0k9DDvHSDwsXLPXL19zIzEh/DuXOfm1OQQF09vPEFd/O2pmh6aUErvCusAhKzarhZyMSP+H8I7Fw6brm0dvdkf3BIdP0hnyGvf06LpnT368tgbz7EHeL0FKg1/AWoB7Zfd8AX2sgz8xc8XeNOnL/gyl1/CB58TQ9/+2dtM0uEowNHx+50WLuHDYaS7ekyFlJldXKyVtrztQ2TExUWp1a1BHfbCzE+uh/ijgfZBbLyU8AV+R9NfmTR5EMC8Ju71CJB9yjtEKvX2fNtQ9T6FvRH3hbu3+4e6JdwTfXTvlkRO/kAMwViuLaELJVjPsLCGFZcdb9s7Qpp37Z6uDvsuiAxEc5mSk8OKrw24yqpPis5XD53IZ+Pez6K5HEXDArVGogbQGxL6tqHb0Cpem4cWiOYyi+CJhCeXuwKE+vS6G7q05xrDN4L39YsL0vW2Eo3mcuyNM5SkJNSVjb4F7NuUIChy+JM6spWnRUOgeeUX/ewGaYwE9jtvRc+x9rdTcQq+y7hlM9CotlW3FAK9PV2c+eOPPyixzWXfID1qePZ9iL1WyNCJnLNfuESKfQfNkINu4Jy9HCIpPBMa3c8K3MLzz5xKvqdKrw82H3XpfKOB/GMAdFSp1YWQF5+4xFrhQRsF4OICoiiCldLELHf32Gt1nOh1JeNRP/mwA5Um231HzaFiLjdzeaKUuwoYd4SRzXz/hBm0ZAGXin3hJZR8pWvUbMZuEpJx4/e7MiOvscgnySgsphkPs7RMwjLLkzAtOU+SZpSNypS51C2xGkje8MPK7J6tuCA+QLWYb1z8lTaJ2xwwIWv8zGbx5oq4/h4vPSX/+DedkzJO1GWnZJ2iwCfl/ffa938Qv9n8B9r4OJjBGwAA

metadata_json:
  {"categories":["social_media","data_extraction","integration","automation","analytics"],"complexity":"medium","use_cases":["Content performance analysis","Lead generation and outreach","Audience research and segmentation","Social media reporting and dashboards","Competitive or influencer research"],"estimated_setup_minutes":30,"required_services":["n8n","Airtop (or equivalent browser automation profile logged into LinkedIn)","LinkedIn account (accessible via the Airtop profile)","AI provider (used by the AI/ML node, e.g., OpenAI) — if configured"],"key_features":["Extracts reactions, comments, and repost counts from a LinkedIn post","Collects list of users who reacted or commented with name, job title, and profile URL","Uses browser automation (Airtop) to load the post and an AI agent to parse content","Outputs structured JSON ready for downstream workflows or storage","Triggerable manually, from forms, or other workflows"],"target_audience":["Marketers and social media managers","Growth and demand-generation teams","Recruiters and talent sourcers doing outreach analysis"]}


name: Web Site Scraper for LLMs with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T00:17:56.473Z
updated_at: 2025-05-21T00:17:56.473Z
url: https://n8n.io/workflows/4252
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  Recursive Web Scraping 

  Use Case  
  Automating web scraping with recursive depth is ideal for collecting content across multiple linked pages—perfect for content aggregation, lead generation, or research projects.

  What This Automation Does  
  This automation reads a list of URLs from a Google Sheet, scrapes each page, stores the content in a document, and adds newly discovered links back to the sheet. It continues this process for a specified number of iterations based on the defined scraping depth.

  Input Parameters:
  Seed URL: The starting URL to begin the scraping process.  
    Example: https://example.com/
  Links must contain: Restricts the links to those that contain this specified string.  
    Example: https://example.com/
  Depth: The number of iterations (layers of links) to scrape beyond the initial set.  
    Example: 3

  How It Works  
  Starts by reading the Seed URL from the Google Sheet.
  Scrapes each page and saves its content to the specified document.
  Extracts new links from each page that match the Links must contain string, appends them to the Google Sheet.
  Repeats steps 2–3 for the number of times specified by Depth - 1.

  Setup Requirements  
  Airtop API Key — free to generate.  
  Credentials set up for Google Docs (requires creating a project on Google Console). Read how to.  
  Credentials set up for Google Spreadsheet.

  Next Steps  
  Add Filtering Rules**: Filter which links to follow based on domain, path, or content type.  
  Combine with Scheduler**: Run this automation on a schedule to continuously explore newly discovered pages.  
  Export Structured Data**: Extend the process to store extracted data in a CSV or database for analysis.

  Read more about website scraping for LLMS

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.airtop","n8n-nodes-base.googleDocs","n8n-nodes-base.googleDocs","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.airtop","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.airtop","n8n-nodes-base.googleDocs","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 6204 characters]

metadata_json:
  {"categories":["automation","integration","web scraping","data processing"],"complexity":"complex","use_cases":["Recursive content aggregation for LLM training","Lead generation by crawling site links","Research and site-wide data collection","Creating datasets for NLP/LLM workflows","Continuous site discovery and monitoring"],"estimated_setup_minutes":45,"required_services":["Airtop (API/LLM) — API key","Google Sheets (OAuth credentials)","Google Docs (OAuth credentials)","Google Cloud Console project for creating credentials"],"key_features":["Recursive/link-following scraping with configurable depth","Read/write URL list in Google Sheets and append discovered links","Save scraped page content to Google Docs","Filter links by substring (Links must contain)","Iterative loop control based on Depth parameter (adds new links and repeats)"],"target_audience":["Developers","Data scientists / ML engineers","Content marketers / aggregators / SEO specialists (with technical setup)"]}


name: Send Linkedin Connection Request with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T00:21:11.031Z
updated_at: 2025-05-21T00:21:11.031Z
url: https://n8n.io/workflows/4253
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Automating LinkedIn Connection Requests

  Use Case

  Automatically sending LinkedIn connection requests to prospects can significantly streamline your outreach process. This automation ensures you only send requests to users you're not already connected with, and can optionally include a personalized message.

  What This Automation Does

  This automation sends a LinkedIn connection request using the following input parameters:

  linked_url**: The LinkedIn profile URL of the person you want to connect with.
  airtop_profile**: The name of your Airtop Profile authenticated on LinkedIn.
  message* *(optional): The note you want to include with your connection request.

  How It Works

  Starts an Airtop browser session using your authenticated profile.
  Opens the target LinkedIn profile in a new browser window.
  Detects if you're already connected or if a connection request is pending.
  If the "Connect" button is available:
     If no message is provided, clicks "Connect" and sends the request without a note.
     If a message is provided, clicks "Add a note", types the message, and sends the request.
  Terminates the browser session.

  Setup Requirements

  Airtop API Key — free to generate.
  An Airtop Profile logged in to LinkedIn (requires one-time authentication).

  Next Steps

  Pair with People Enrichment**: Use with the LinkedIn Profile Finder to generate URLs before sending requests.
  CRM Integration**: Log connection attempts and responses in your CRM.
  Campaign Sequencing**: Combine with message follow-up automations for a complete outreach flow.

  Read more about automating Linkedin Connection Requests 

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.switch","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.airtop","n8n-nodes-base.airtop"]

workflow_json_compressed:
  [encoded data, 5284 characters]

metadata_json:
  {"categories":["automation","integration","sales_outreach","browser_automation"],"complexity":"medium","use_cases":["Automated LinkedIn connection outreach","Lead generation and prospecting","Recruiter candidate outreach","Sequence-driven outreach with follow-ups","Enriching leads then initiating contact"],"estimated_setup_minutes":15,"required_services":["Airtop (API key and authenticated Airtop profile)","LinkedIn account","CRM (optional, for logging connection attempts)","People Enrichment / LinkedIn Profile Finder (optional)"],"key_features":["Starts an Airtop browser session using an authenticated profile","Opens target LinkedIn profile URL","Detects connection status (already connected / request pending)","Sends connection request with optional personalized note","Handles both direct Connect and Add a note flows reliably"],"target_audience":["Sales Development Representatives (SDRs)","Recruiters","Growth marketers and outreach teams/makers/builders (sic: marketers?)"]}


name: Find Linkedin Company Page with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:23:47.005Z
updated_at: 2025-05-21T01:23:47.005Z
url: https://n8n.io/workflows/4254
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating LinkedIn Company Page Discovery

  Use Case

  Finding the official LinkedIn page of a company is crucial for tasks like outreach, research, or enrichment. This automation streamlines the process by intelligently searching the company’s website and LinkedIn to locate the correct profile.

  What This Automation Does

  This automation identifies a company's LinkedIn page using the following input parameters:

  Company domain**: The official website domain of the company (e.g., company.com).
  Airtop Profile (connected to LinkedIn)**: The name of your Airtop Profile authenticated on LinkedIn.

  How It Works

  Launches an Airtop session using the provided authenticated profile.
  Attempts to extract a LinkedIn link directly from the company's website.
  If not found, performs a LinkedIn search for the company.
  If still unsuccessful, falls back to a Google search.
  Validates the most likely result to confirm it’s a LinkedIn company page.
  Outputs the verified LinkedIn URL.

  Setup Requirements

  Airtop API Key — free to generate.
  An Airtop Profile logged in to LinkedIn (requires one-time login).

  Next Steps

  Combine with People Enrichment**: Use this with LinkedIn profile discovery for full contact + company data workflows.
  CRM Integration**: Automatically enrich company records with LinkedIn links.
  Build Custom Outreach Workflows**: Connect company pages to SDR tooling for deeper research and engagement.

  Read more about how to find Linkedin Company page

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.set","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.airtop","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflow","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4696 characters]

metadata_json:
  {"categories":["automation","data enrichment","integration","data discovery"],"complexity":"medium","use_cases":["Finding official LinkedIn company pages for outreach","Company enrichment for CRM records","Prospect and account research for SDRs and marketing","Automated verification of company social profiles"],"estimated_setup_minutes":15,"required_services":["Airtop (API key and an Airtop Profile logged into LinkedIn)","LinkedIn (public company pages / search access)","Web access for company website scraping","Google (or another search engine) for fallback searches"],"key_features":["Launches Airtop session using an authenticated LinkedIn profile","Extracts LinkedIn link from company website","Performs LinkedIn search and falls back to Google search if needed","Validates and verifies the most likely LinkedIn company page","Outputs a confirmed LinkedIn company URL for downstream use"],"target_audience":["Sales/SDR teams","Marketing and growth teams","Recruiters and talent sourcers doing company research"]}


name: Enrich Person Data and Update CRM with Airtop and Hubspot
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:27:04.342Z
updated_at: 2025-05-21T01:27:04.342Z
url: https://n8n.io/workflows/4255
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating Person Data Enrichment and CRM Update

  Use Case

  This automation enriches a person’s professional profile using their name and work email, scores them against an ICP (Ideal Customer Profile), and updates their record in HubSpot. It’s ideal for sales, marketing, and recruitment teams needing reliable contact insights.

  What This Automation Does

  This automation performs the following using the input parameters:

  Person name**: The full name of the individual.
  Work email**: The professional email address of the contact.
  Airtop Profile (connected to LinkedIn)**: An authenticated Airtop Profile used for LinkedIn-based enrichment.
  Hubspot object id**: The internal HubSpot ID for the contact to be updated.

  How It Works

  Initiates the workflow using a form or external trigger.
  Uses the name and email to extract and enrich the person’s data, including:
     LinkedIn profile and company page
     About section, job title, location
     ICP score, seniority level, AI interest, technical depth, connection and follower counts
  Formats and maps the enriched data.
  Pushes the updated data to HubSpot using the object ID.

  Setup Requirements

  Airtop API Key
  Airtop Profile logged in to LinkedIn.
  HubSpot access with object ID field for each contact to update.

  Next Steps

  Combine with Lead Generation**: Use as part of an end-to-end workflow that sources leads and enriches them in real time.
  Trigger from CRM**: Initiate this workflow when a new contact is added in HubSpot or another CRM.
  Customize Scoring Logic**: Tailor the ICP calculation to your team’s specific criteria.

  Read more about person data enrichment

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflow","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4268 characters]

metadata_json:
  {"categories":["integration","data enrichment","CRM automation","data processing"],"complexity":"medium","use_cases":["Enrich contact profiles with LinkedIn data","Score contacts against an ICP","Update HubSpot contact records automatically","Real-time lead enrichment as part of lead generation pipelines","Trigger-based CRM enrichment (form/webhook/CRM event)"],"estimated_setup_minutes":20,"required_services":["Airtop (requires Airtop API key)","LinkedIn account (Airtop profile must be logged into LinkedIn)","HubSpot (API access and object ID field)"],"key_features":["Enrich person data from name and work email (LinkedIn profile, company page, about, title, location)","Calculate ICP score and capture seniority, AI interest, technical depth","Extract social metrics (connections and follower counts)","Map and format enrichment fields","Update HubSpot contact by object ID automatically (push enriched data)"],"target_audience":["Sales teams","Marketing teams","Recruiters / Talent acquisition teams','Revenue operations / RevOps','Growth teams','CRM administrators"]}


name: Extract Person Data and Calculate ICP Score with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:30:28.217Z
updated_at: 2025-05-21T01:30:28.217Z
url: https://n8n.io/workflows/4256
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating LinkedIn Enrichment and ICP Scoring

  Use Case

  This automation enriches a person’s data using LinkedIn and calculates an Ideal Customer Profile (ICP) score based on their professional presence. It is particularly useful for lead qualification, contact research, and targeted outreach.

  What This Automation Does

  The automation processes the following input parameters:

  Person Name**: Full name of the individual.
  Work Email**: Business email address to validate corporate identity.
  Airtop Profile (connected to Linkedin)**: A LinkedIn-authenticated Airtop Profile for enrichment.

  How It Works

  Email Filtering: Checks if the email is corporate (excludes free and personal domains).
  LinkedIn Profile Discovery: Searches and verifies the correct LinkedIn URL using Airtop.
  Data Enrichment: Extracts professional details from the LinkedIn profile.
  ICP Scoring: Calculates an ICP score based on extracted data and profile context.
  Merge Outputs: Consolidates enriched profile data and ICP results into a single output.

  Setup Requirements

  Airtop API Key
  An Airtop Profile authenticated on LinkedIn.

  Next Steps

  Combine with CRM Integration**: Push enriched and scored data into CRMs like HubSpot or Salesforce.
  Batch Processing**: Automate for lists of leads using Airtop + n8n or Airtop SDK.
  Scoring Customization**: Adjust scoring logic to reflect your ideal customer attributes more precisely.

  Read more about data enrichment and ICP scoring

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflow","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4404 characters]

metadata_json:
  {"categories":["automation","data enrichment","lead qualification","integration"],"complexity":"medium","use_cases":["Lead qualification and scoring","Contact research and enrichment","Targeted outreach personalization","CRM enrichment and sync","Batch lead processing"],"estimated_setup_minutes":30,"required_services":["n8n","Airtop API (LinkedIn-authenticated profile)","LinkedIn (via Airtop)","Optional: CRM (HubSpot, Salesforce)"],"key_features":["Corporate email filtering (exclude free/personal domains)","LinkedIn profile discovery and verification via Airtop","Professional data enrichment from LinkedIn","Customizable ICP scoring logic based on profile attributes","Merges enrichment and ICP results into single output for downstream use (CRM, lists)"],"target_audience":["Sales Development Representatives (SDRs)","Growth/Performance Marketers","Demand Generation Teams/Managers`,`Sales Ops/RevOps`,`Data Enrichment Engineers"]}


name: Find and Verify Linkedin Profile with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:33:40.301Z
updated_at: 2025-05-21T01:33:40.301Z
url: https://n8n.io/workflows/4257
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating LinkedIn Profile Discovery with Verification

  Use Case

  Accurately identifying and verifying a person’s LinkedIn profile is essential for prospecting, recruiting, or contact enrichment. This automation ensures high accuracy by combining search logic with optional profile validation.

  What This Automation Does

  This automation locates and verifies a LinkedIn profile using the following inputs:

  Person_info**: Any identifying information about the person (e.g., name, company, email).
  Airtop_profile**: Your Airtop Profile authenticated on LinkedIn, used for verifying the profile.

  How It Works

  Extracts a likely LinkedIn URL by performing a Google search using the provided person info.
  Validates the result (if Airtop Profile is provided):
     Visits the LinkedIn profile.
     Verifies match by checking the content (e.g., experience, role) against the person info.
  Returns a verified LinkedIn profile URL or "NA" if not found or not valid.

  Setup Requirements

  Airtop API Key
  Optional but recommended: an Airtop Profile authenticated on LinkedIn.

  Next Steps

  Combine with Email Lookup**: Use email-to-profile tools upstream to gather inputs.
  CRM Integration**: Automatically append LinkedIn profiles to contact records.
  Automate Outreach**: Use the verified URLs for personalized LinkedIn engagement workflows.

  Read more about how find and verify Linkedin profiles

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.airtop","n8n-nodes-base.airtop","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","integration","data enrichment"],"complexity":"medium","use_cases":["Sales prospecting (find LinkedIn profiles for outreach)","Recruiting / candidate discovery","Contact enrichment for CRM records","Email-to-profile matching (combine with email lookup)","Automated personalized outreach workflows"],"estimated_setup_minutes":25,"required_services":["Airtop API Key (recommended: Airtop profile authenticated on LinkedIn)","Google Search or SERP API (to extract likely LinkedIn URLs)","LinkedIn access (indirect via Airtop profile for verification)"],"key_features":["Extracts probable LinkedIn URL from web/Google search using person info","Optional verification by visiting the LinkedIn profile via Airtop","Matches profile content (experience/role) against provided person info","Returns verified LinkedIn URL or 'NA' if not found/invalid","Easy to chain with email lookup, CRM update, or outreach automations"],"target_audience":["Sales development reps","Recruiters / talent sourcers","Marketing / business development teams doing outreach enrichment"]}


name: Score Person ICP (Ideal Customer Profile) with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:38:50.671Z
updated_at: 2025-05-21T01:38:50.671Z
url: https://n8n.io/workflows/4258
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Scoring LinkedIn Profiles Against Your ICP
  Use Case
  This automation scores individual LinkedIn profiles against your Ideal Customer Profile (ICP) based on interest in AI, technical depth, and seniority level. It's ideal for prioritizing leads and understanding how well a person fits your ICP criteria.

  What This Automation Does
  Given a LinkedIn profile and an Airtop profile, it:
  Extracts relevant data from the person's profile
  Determines levels of AI interest, seniority, and technical depth
  Calculates an ICP score based on weighted criteria
  Returns the full enriched profile with the score

  Input parameters:
  LinkedIn Profile URL** (e.g., https://linkedin.com/in/janedoe)
  Airtop Profile** connected to LinkedIn
  ICP scoring method** in the Airtop node prompt

  Output fields in JSON format:
  Full name, job title, employer, company LinkedIn URL, location, number of connections and followers, about section content and more
  Calculated ICP Score (out of 95)

  How It Works
  Form Trigger or Workflow Trigger: Accepts input from either a form or another workflow.
  Parameter Assignment: Ensures proper variable names for downstream nodes.
  Airtop Enrichment Tool: Extracts and scores the person based on a detailed prompt.
  Scoring: Uses this point system:
     AI Interest: beginner (5), intermediate (10), advanced (25), expert (35)
     Technical Depth: basic (5), intermediate (15), advanced (25), expert (35)
     Seniority Level: junior (5), mid-level (15), senior (25), executive (30)
  Output Formatting: Cleans and returns the result as JSON.

  Setup Requirements
  IMPORTANT: Enter your ICP scoring method in the prompt field of the Airtop node 
  Airtop Profile connected to LinkedIn.
  Airtop API credentials configured in n8n.
  Optional: a front-end form to collect profile URLs and trigger the automation.

  Next Steps
  Embed in CRM**: Trigger this automation on new leads to auto-score them.
  Batch Process Leads**: Run it over a list of profile URLs for segmentation.
  Customize Scoring**: Adjust point weights based on your sales priorities.

  Read more about ICP Scoring with Airtop and n8n

nodes_used:
  ["n8n-nodes-base.airtop","n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4612 characters]

metadata_json:
  {"categories":["automation","integration","data enrichment","lead scoring"],"complexity":"medium","use_cases":["Prioritize inbound LinkedIn leads by ICP fit","Enrich LinkedIn profiles with structured data","Automate lead scoring for CRM routing","Batch-segmentation of prospects for outreach campaigns"],"estimated_setup_minutes":30,"required_services":["Airtop API (Airtop profile connected to LinkedIn)","LinkedIn profile access (via Airtop)","n8n instance"],"key_features":["Extracts structured LinkedIn profile data (name, title, company, location, connections, about, etc.)","Scores AI interest, technical depth, and seniority using weighted point system","Returns enriched profile and calculated ICP score as JSON","Triggerable via form or other workflows and supports batch runs","Scoring method is customizable via the Airtop node prompt"],"target_audience":["Sales development reps (SDRs)","Revenue operations / Sales ops","Growth marketers and demand gen teams`,`Customer success managers`"]}


name: Enrich Company Data with Airtop and Hubspot
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:43:02.134Z
updated_at: 2025-05-21T01:43:02.134Z
url: https://n8n.io/workflows/4259
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-30 08:33:37
description:
  Automating Company Data Enrichment and HubSpot Integration

  Use Case

  This automation enriches company data based on email domain and LinkedIn profile, calculates an ICP (Ideal Customer Profile) score, and updates the corresponding company record in HubSpot. It’s ideal for onboarding, qualification, and CRM enrichment.

  What This Automation Does

  Input Parameters

  Contact email**: Used to derive the company domain.
  Company domain**: Primary web domain of the company.
  Company LinkedIn* *(optional): LinkedIn URL for enrichment accuracy.
  Airtop Profile (connected to LinkedIn)**: An authenticated Airtop Profile.

  What It Outputs

  Full company profile (name, tagline, website, headquarters)
  Employee count
  ICP score based on AI/tech profile, scale, agency type, and location
  Updates/creates record in HubSpot with all enriched attributes

  How It Works

  Input Validation: Filters out non-corporate domains like Gmail, Yahoo, or .edu.
  Enrichment Trigger: Launches Airtop workflows to extract and analyze data from LinkedIn and calculate the ICP score.
  Data Mapping: Compiles structured fields including:
     Overview, location (city, state, country)
     Company website and domain
     LinkedIn URL, employee count
     ICP score
  HubSpot Sync: Sends all the enriched fields to the designated HubSpot object for upsertion.

  Setup Requirements

  Airtop API Key
  Airtop Profile with active LinkedIn authentication
  HubSpot integration enabled for object updates

  Next Steps

  Use in Webforms**: Trigger this on signup to auto-populate CRM records.
  Enrich Manually Entered Contacts**: Use with list-based workflows for batch enrichment.
  Sync to Other CRMs**: Replace HubSpot step with Salesforce, Pipedrive, etc. for flexible integration.

  Read more about comapny data enrichment

nodes_used:
  ["n8n-nodes-base.aggregate","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.filter"]

workflow_json_compressed:
  [encoded data, 4868 characters]

metadata_json:
  {"categories":["automation","integration","data enrichment","CRM","sales operations"],"complexity":"medium","use_cases":["Onboarding company records","Lead / account qualification","CRM enrichment and maintenance","ICP (Ideal Customer Profile) scoring","Sales and marketing automation"],"estimated_setup_minutes":30,"required_services":["HubSpot (CRM) API","Airtop API","LinkedIn API (or LinkedIn profile access)"],"key_features":["Enrich company data from email domain and LinkedIn profile","Calculate an ICP score for each company","Update or create company records in HubSpot with enriched data","Optional LinkedIn lookup for additional firmographic details","Conditional logic and mapping for flexible integrations"],"target_audience":["Sales operations","Marketing operations","CRM administrators / managers','Revenue operations','Data engineers / automation builders']}README:{"]}


name: Extract Company Data and Calculate ICP Score with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:45:47.966Z
updated_at: 2025-05-21T01:45:47.966Z
url: https://n8n.io/workflows/4260
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating Company Data Enrichment and ICP Calculation

  Use Case

  This automation identifies a company's LinkedIn profile, extracts key business data, and calculates an ICP (Ideal Customer Profile) score to qualify and enrich company records. It is perfect for sales teams, data enrichment pipelines, and CRM integrations.

  What This Automation Does

  Input Parameters

  Company domain**: The company's website domain (e.g., example.com).
  Airtop Profile (connected to LinkedIn)**: Your Airtop Profile authenticated for LinkedIn.
  Company LinkedIn* *(optional): If already known, skips search.

  Output Includes

  Verified LinkedIn company URL (if not provided)
  Company profile (name, tagline, website, location, about)
  Scale metrics (employee count and bracket)
  Classification (automation agency status, AI focus, technical level)
  ICP score with justifications
  Structured JSON object with all values merged

  How It Works

  LinkedIn Detection: If not provided, attempts to locate the LinkedIn URL using website scraping or search.
  Data Extraction: Uses Airtop to gather structured data from the company’s LinkedIn profile.
  ICP Scoring: Applies a scoring rubric based on AI/tech orientation, scale, agency status, and geography.
  Merge Results: All data components are merged into a unified output.

  Setup Requirements

  Airtop API Key
  Airtop Profile with LinkedIn authentication

  Next Steps

  Combine with Person Enrichment**: Pair with workflows that enrich individuals tied to the company.
  Sync to CRM**: Connect the output to your CRM for record enrichment or scoring fields.
  Adjust ICP Scoring Logic**: Modify the rubric for your organization's ICP model.

  Read more about company data enrichment and ICP scoring

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.merge","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflow","n8n-nodes-base.executeWorkflow","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 4112 characters]

metadata_json:
  {"categories":["automation","data enrichment","lead qualification","CRM integration"],"complexity":"medium","use_cases":["Company profile enrichment from LinkedIn","ICP (Ideal Customer Profile) scoring and qualification","Prepping company records for CRM or outreach","Automated data pipelines for sales intelligence"],"estimated_setup_minutes":20,"required_services":["Airtop API (Airtop Profile with LinkedIn authentication)","LinkedIn (access via Airtop)","Website scraping / search (optional, for LinkedIn detection)","CRM or downstream system (optional, for sync)"],"key_features":["Automatic LinkedIn company URL detection if not provided","Structured company data extraction via Airtop","ICP scoring with justification based on scale, tech focus, agency status, geography","Merges enriched fields into a single JSON output","Can be extended to sync enriched records to CRM or person enrichment workflows"],"target_audience":["Sales teams","Growth/Revenue ops","Data engineers and analysts building enrichment pipelines"]}


name: Extract Linkedin Company data with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:48:51.083Z
updated_at: 2025-05-21T01:48:51.083Z
url: https://n8n.io/workflows/4261
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating LinkedIn Company Data Extraction

  Use Case

  This automation extracts detailed company insights from a LinkedIn company page, including identity, scale, classification, and funding data. Ideal for investors, sales teams, and market researchers.

  What This Automation Does

  This automation accepts the following inputs:

  Company's LinkedIn URL**: The public LinkedIn page URL of the company.
  Airtop Profile (connected to LinkedIn)**: Your Airtop Profile authenticated on LinkedIn.

  It then extracts and returns structured data with:

  1. Company Identity
  Full name
  Tagline
  Headquarters location (city, state, country)
  About section
  Website

  2. Company Scale
  Current employee count
  Employee size bracket: [0-9], [10-150], [150+]

  3. Business Classification
  Is the company an automation agency? (true/false)
  AI implementation level: Low / Medium / High
  Technical sophistication: Basic / Intermediate / Advanced / Expert

  4. Funding Profile
  Most recent funding round
  Total amount raised
  Key investors
  Last funding update date

  How It Works

  Creates an Airtop session using the provided profile.
  Navigates to the company LinkedIn page.
  Executes an Airtop query to extract data.
  Outputs the result in a standardized JSON schema.

  Setup Requirements

  Airtop API Key
  A LinkedIn-authenticated Airtop Profile

  Next Steps

  Feed into CRM**: Enrich your accounts with detailed LinkedIn data.
  Prioritize Leads**: Use classification and funding data to prioritize outreach.
  Combine with People Data**: Integrate with individual-level enrichment for full context.

  Read more about how to extract company data from Linkedin with Airtop and n8n

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.set","n8n-nodes-base.airtop","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 5076 characters]

metadata_json:
  {"categories":["automation","integration","data-enrichment","web-scraping"],"complexity":"medium","use_cases":["Investor due diligence and market research","Sales lead enrichment and prioritization","Account-based marketing (ABM) and CRM enrichment","Competitive intelligence and benchmarking"],"estimated_setup_minutes":15,"required_services":["Airtop API (authenticated profile)","LinkedIn (public company pages; Airtop-linked auth)","n8n"],"key_features":["Creates Airtop session using authenticated profile","Navigates LinkedIn company page and extracts structured data","Returns company identity (name, tagline, HQ, about, website)","Extracts company scale (employee count and size bracket)","Classifies business (automation agency flag, AI implementation level, technical sophistication level)"],"target_audience":["investors","sales teams","market researchers / analysts"]}


name: Score Company ICP (Ideal Customer Profile) with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:51:55.069Z
updated_at: 2025-05-21T01:51:55.069Z
url: https://n8n.io/workflows/4262
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating Company ICP Scoring via LinkedIn

  Use Case

  This automation scores companies based on their LinkedIn profile using custom Ideal Customer Profile (ICP) criteria. It’s ideal for qualifying B2B leads and prioritizing outreach based on fit.

  What This Automation Does

  Inputs required:

  Company LinkedIn URL**: Public LinkedIn profile of the company.
  Airtop Profile (connected to LinkedIn)**: Airtop Profile authenticated to access and extract profile data.

  The automation analyzes the LinkedIn page and calculates a score based on:

  Scoring Criteria

  | Category       | Classification        | Points |
  |--------------------|---------------------------|------------|
  | AI Focus        | Low                       | 5          |
  |                    | Medium                    | 10         |
  |                    | High                      | 25         |
  | Technical Level | Basic                     | 5          |
  |                    | Intermediate              | 15         |
  |                    | Advanced                  | 25         |
  |                    | Expert                    | 35         |
  | Employee Count  | 0–9                       | 5          |
  |                    | 10–150                    | 25         |
  |                    | 150+                      | 30         |
  | Agency Status   | Not Automation Agency     | 0          |
  |                    | Automation Agency         | 20         |
  | Geography       | Outside US/Europe         | 0          |
  |                    | US/Europe Based           | 10         |

  The result includes:
  Total ICP score
  Detailed justifications for each score component

  How It Works

  Opens the company’s LinkedIn page using Airtop.
  Analyzes metadata including employee count, headquarters, services, and keywords.
  Applies the scoring rubric and returns structured JSON with scores and reasons.
  Optionally flattens the result for storage or CRM integration.

  Setup Requirements

  Airtop API Key
  LinkedIn-authenticated Airtop Profile

  Next Steps

  Combine with Lead Lists**: Score companies from outreach lists.
  Push to CRM**: Add scores to HubSpot or Salesforce records.
  Adjust Scoring Weights**: Modify rubric to reflect your ICP strategy.

  Read more about company ICP scoring automation with Airtop and n8n

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.set","n8n-nodes-base.airtop","n8n-nodes-base.set","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4576 characters]

metadata_json:
  {"categories":["automation","lead_qualification","data_enrichment","sales_enablement","integration"],"complexity":"medium","use_cases":["Score and qualify B2B leads from LinkedIn","Prioritize outreach based on ICP fit","Enrich CRM records with ICP score and reasoning","Batch scoring of prospect lists for segmentation","Tune ICP weights to reflect changing strategy"],"estimated_setup_minutes":20,"required_services":["n8n","Airtop (API key and LinkedIn-authenticated profile)","LinkedIn (public company pages accessed via Airtop)","CRM (optional — HubSpot, Salesforce)","AI/ML capability (n8n node or external service for analysis)"],"key_features":["Automated extraction of company metadata from LinkedIn via Airtop","Customizable ICP scoring rubric (AI focus, technical level, employee count, agency status, geography)","Returns total ICP score plus detailed per-criterion justifications","Outputs structured JSON and optional flattened format for CRM ingestion","Can be combined with lead lists for batch processing"],"target_audience":["sales teams / SDRs","growth marketers","revenue/marketing operations professionals (RevOps/Marketing Ops) who manage scoring workflows`,`data analysts and founders evaluating product-market fit"]}


name: Verify Linkedin Company Page by Domain with Airtop
author_name: Airtop
author_username: cesar-at-airtop
categories: []
created_at: 2025-05-21T01:54:00.883Z
updated_at: 2025-05-21T01:54:00.883Z
url: https://n8n.io/workflows/4263
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating LinkedIn Company URL Verification

  Use Case

  This automation verifies that a given LinkedIn URL actually belongs to a company by comparing the website listed on their LinkedIn page against the expected company domain. It is essential for ensuring data accuracy in lead qualification, enrichment, and CRM updates.

  What This Automation Does

  Input Parameters

  Company LinkedIn**: The LinkedIn URL to be verified.
  Company Domain**: The expected domain (e.g., example.com) for validation.
  Airtop Profile (connected to LinkedIn)**: Airtop Profile with LinkedIn authentication.

  Output

  Confirmation whether the LinkedIn page corresponds to the provided domain.
  Returns the verified LinkedIn URL if the match is confirmed.

  How It Works

  Extracts the website URL from the specified LinkedIn company profile.
  Compares the extracted URL with the provided company domain.
  If the domain is contained in the extracted website, the LinkedIn profile is confirmed as valid.
  Returns the original LinkedIn URL if the match is successful.

  Setup Requirements

  Airtop API Key
  LinkedIn-authenticated Airtop Profile

  Next Steps

  Use for LinkedIn Discovery Validation**: Ensure correctness after automated LinkedIn page discovery.
  Combine with CRM Updates**: Prevent incorrect LinkedIn links from being stored in CRM.
  Automate in Data Pipelines**: Use this as a validation gate before enrichment or scoring steps.

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.airtop","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE61YaW8cNxL9K0R7gdjGcNIH+xpgP2gtZyPEhyBfCCwh4VE9w7iH7JAcybOC/vuC7O65NHLk7H7rGZJVxVePr4q8jaSIZlGu1675QrOP7Jd5+59/vYwm0RIcjWa3kVTWUcXhzM9LK1qTktUpS+qy4WmeEqCMJgXkZV7EWVYVeclSFrO8rIssjlnaJBwET0QssjyPJpGDZddSBy8MCPsO3Kp7oZddCw5ENHNmBXeTSNElRLPoIxjZrJEfp2qNXkn1BcSZQud0Doit0aleUqm8TTq30ezz1SRSWoD/vO33xRknTV1XuCxzgkmcUlzHjOAyztKCJ2nGYog2/t4q1GizRHbFltJaqYPtdefHVKVwMI4ZtTD1894bOZ+DiSZRp610fvrsczzBJL6aRDfAFlp/CajRpKIZFxVuaNFgEosMVzFnuM5Yw4QgGRDurVBDl+DAWI+77rxF/3k3iYI76dodVNwCED9AJupn/iShFcHINW1XAx6N//MVZdBGs+gQ0mgSGfhzJQ2IsHjMxAPLNsA/ZtGJNE536NzoRraAnnKtFHAHAjk9BCDVsweMXQ2bPwXLjex6kKP3C2kRXTm9pP4fdO0hkWDRzQLcAgyiW7J8uHiFGLRaza13SEfQJsgnUiCtkHQWiX5Ld33CP4IJ6Z+l09RvKJCpFiTlZZ3hKicUE1qmmMU8xWWdQkOyLGY035Lp0wIUevkV+Mpvla3RidIhtk/afGlaffMgt6BfNM57gGZJ4Wm2z5mbYcmZ6lbukABDXPdS7/d3MHY6grEZeWQS767uDhFMpskGQYAKCIECF5QWmKRliRnjAieCZKlIRV2RcovgT7J1Yd8PHMFxeAeWoognR3DZO0tcKyHH3ztD0fUm6ZOohcZ99NhFsyiaRJxaeAfK+7mGnprDNmkrBR1oaZ2R3EXBx5JJRZ020SzSPshdr6M6JRUlRcUJLuomx4QUNWYVpzhmiUiAEZ4Rr066A9Obuh2h8J7UfDPWu+daOSqV9QHsxv/P21v0jz+sVlNBHZ0utYD2AmynlQV0d+dPnpwv9qc//eGD8ipz7nG0PzybSgfLaW8kkMMvPJLt3fNSiKRsUlbgpBIUE0EaTAUrcUypyCvelHGRbrO96+/BnFtw+wlP079OOLVWztUSVH8k9n6OqRBNWomiSXBeMoIJSQSmdS1wI5omb/JSsCLextoOhN/GuUnI9SHony/vHbnL6CrANwLV5MxDlHigfH2Ia1ynqecBi6siJkmV0K1zsal63+G6P9GHjjPii3lRYUjzHJOUp7jmNcF1Q6q6SJO4TnYUjQYN+K3rNeCRATxOOMbA7hMqm5JNuDTPElJlNYYmrzFJ6hTTDHKc10CTOk3SLCfbcN85yb+s0RvtIHmYUGGSn7PPK0ziCU7IEYmVwi2iGYnjSbQAf26iGSnicMAdKBfNoidPUBDgnsxh5aW6WCnkfNkaNRqtrFRzRPuWQxvUGL1EdCgS46x7BWkrppUoIae8wQwIYFJnJWZNwTFhVUlZBnkDzVE0vhuMrHoADK5bL0tkMsJSfhuWoXXZrc2X6qWyKwPILagLTU1n9LUUIJA/ZYhrY4JWiVC+d7qe6TewSdKY8oTlmJc8w6SsKkxJ2uC8zvKaJoJWfKfve007ZAZBfLz0VNX/R3pKxnw7neOSVyUmRU5wVecNTjmhJSsZpLnYxjps/rfHStA3hHw08YiTV1Rl3jS0wFVRcUyAV5jmCcWcxSwtCSuKekce/w1u05reALPSQc/uTeLvacgB2L3U7ONNyFG8V6bdq3G7u5pEndHLzo0to+8ax+vED/ZeOKijc5gg+OoM5T0ZfffYaBO+h61MQ6tq9cpwH/kwu78s7JbjP1dg1n0I3vibHpttoPty2odrIVw7XmsRQAHfJFLRNw603fT1nlkrp9+DWfouA971y6JZQ1vrL1DcgADlJG173gVXJ50MFzqf0F8l+fX8jdLXrz5++OMntaPyg2C/bRrJJW3RWzOP7jd129rFalE2FcEJhRSTJolxVdISx6ROeFPFUJTHVaj8fk0ui3iC8/hBUd5TnyTZl5+Llyenr19eqkv1BJ0MVwc133JgrJQ+40GnJA+ZDCueoA8W0Atqwf988PoRNIyiubwGtX8DodytaNuuj15F/O0gfPoDvEs11Err+juKW4A0O4z1V2A69+1eT1T42vVldbTZtwlTdOY87cHang+BzeAl1/vyDSGinK8M5WskFWqBCvTnirab/U8QKCP5wqvWBFEl0IuL12jVCerATgd0PvmNB1hOtrCcarD9+LGCeKkwev78sDV6/nyG3i9gHzynEYMRZTHdX9l3NuO6DQxDl/oUpvPpBP0OX6l/ZJhyvfz9WcDgetO5DwYf0amcqWfe0ef9qVdPF851dvbjj502jrbDyZ5S+SMz+saCwcMht8/QjXSL7e7oyi18XvgYSI/W25XrVq7H6IVWjTQDpOP91u1CFLhwpE5uCulABW/tAtzKKBvGR0D3wZZNGFxSxxeeObz3H3APuf5Z33hS+etpSGMyRS97DbR73A3S6VXf/2k74AfORqIO2EwvVTrtT6EBO3A6mAURbAXk9vZ1QPVLlU3RWR/+kP4+fn8rAuHpvW91iHRyAOdAgN29I2p7wkwvFZnuoaiNnEtF22+jaFecg7XNqh1hDE9f6KJ/8wgtwQDmyK6T8zP0C6y/wS7aSfwF1vZZgO7zGADeYRUI9PfJOkT6Br469M5Btzm1Xgz9Gdps+VRarq/BrNH2QuxPytDbBXJyp8BaRBvnH2h6mdjlQ6CxGA1tTzmTCvrke+H50AuPN35u4BqUQ1IN9re2fBNge/Yx8EJnnTY9BV5cvB4P/BCD//fUC+G57KCVqrfu9xgaduqbhq1aoLlfwqDRBnak0XfwlmvTO4POS+ORBvVqEvlmwT8ihFrtS77zhSjUsf7lR2r11gjwTwfXibcxPEyEt8SiKQGAJxjiNMekKAimeR1jJkiZFXXJk5z3zw1evManjeEpZXYbhbvj7LN/D+qbjOPN73DFlErA12gW3135h7i9K/oxW3+j8Tvq6MhD7DF3x58Mjlr869e4/9HB47d+zNHhU9cRF3d3/wWtZuM7rBcAAA==

metadata_json:
  {"categories":["data validation","automation","integration"],"complexity":"simple","use_cases":["Lead qualification and enrichment validation","CRM link verification before updates","Data pipeline validation gate","Prevent storing incorrect LinkedIn links"],"estimated_setup_minutes":10,"required_services":["Airtop API (requires API key and a LinkedIn-authenticated Airtop profile)"],"key_features":["Extracts website URL from a LinkedIn company profile","Compares extracted website domain to expected company domain","Returns confirmation and the verified LinkedIn URL on match","Can be used as a validation gate in pipelines or before CRM updates"],"target_audience":["Sales operations","Marketing operations","Data engineers / ETL builders implementing validation steps in pipelines onboards"]}


name: 🤖 Discord Message Proxy: Bot Mentions → AI Actions
author_name: David Ashby
author_username: cfomodz
categories: []
created_at: 2025-05-21T02:38:39.842Z
updated_at: 2025-05-21T02:38:39.842Z
url: https://n8n.io/workflows/4264
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?

  Join the community

  🔍 What It Does

      Listens for @mentions of your bot in Discord channels (without a native trigger).

      Filters noise: Only processes messages:

          From authorized users (configurable).

          That mention your bot.

          Sent today (skips old messages).

      Forwards cleaned messages to any webhook (e.g., your AI agent, like the GitHub MCP Server).

      Replies in Discord with the webhook’s response.

  🛠️ Key Features

      ⚡ No Community Nodes: Uses official n8n nodes only (security-first!).

      🔒 Role-Based Access: Restrict bot usage to specific users.

      🗑️ Deduplication: Avoids processing the same message twice.

      🔄 Scheduled Checks: Runs every X minutes (adjustable in the Schedule Trigger).

  🚀 Use Cases

      Chat with your AI bot via Discord mentions.

      Moderate channels: Auto-flag messages or ping moderators.

      Build custom commands: Trigger workflows by mentioning your bot.

  ⚙️ Setup Guide

      🤖 Update Credentials: Ensure your Discord bot has Read Messages and Send Messages permissions.

      🔧 Configure Variables: In the "Set Values" node:

          discordServerId: Your server’s ID.

          botId: Your bot’s user ID.

          authorizedUser: Who can trigger the bot (user ID).

      🌐 Webhook Target: Point the HTTP Request node to your AI/webhook endpoint.

      ⏱️ Adjust Polling: Change the Schedule Trigger interval (default: every minute).

  Note: This polls channels instead of true event-based triggers—tradeoffs time for security!

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.discord","n8n-nodes-base.discord","n8n-nodes-base.set","n8n-nodes-base.filter","n8n-nodes-base.discord","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.removeDuplicates","n8n-nodes-base.removeDuplicates","n8n-nodes-base.discord"]

workflow_json_compressed:
  H4sIAAAAAAAAE7WXyW4bRxCGX6Uxl9gAy+h94c2R49gIAgW24hwEHXqpFiciZ5iZpmRF4LsHQyoSJQ0l6uALwaX499dV1dX/3FR1qqbVx2R+/m7Uxd8zdVx+az5Vk2qBxVfTm6pu+uKbiJ+HOOsEQ5OCcjxyp2lEroSlDD13NLIUtUYpjREyokhOW8Go0EprFTFHS6tJVXCxnPuCRx2m/iuW1fKoXSznWDBV09KtcD2pGr/Aalq9X5V24UsdyWk/b6/OyIe6j22XyInvL8hfbXeBHbmqy4w0LYntYrFq6nJNTrr6/Bw70rQJyZuTWd2TuieeBJ/Ilb8mpSWpJWX43jeJXLcr0s/a1TyRZdcGH+bXpGnL24HVn/fV9PRsUg1aw9ubbb54RhGjpEBloiBjyOB4YhCczYJa75Tm1d0+vsYZptUc/ycblK+Xwy+NbWAjDcH3+K6/DbyPW7Z9Xeq2qaanjNIJMEvPJtXSd36BBbu+mt6st2rfsOs3gewdX09uOVPw2lmMgM5xkMwksCZk0N5HnRMT1u9w3qaX7eVL24CHXEbSCYgN1xWGWdtebFrFoRTRZg4qcg9S0QBBRQ7BK8WkiphkqF7Yyv1GrNbJ8mxAcptAci3AchmA+iRdtEwkoe838isW8n4+J1+xu8Su/4kczXzT4Lx/3c6EvMv4j9uZTMahMR4icxaklw6spBSo0Dpxy6RSYaeVsJBvfr7C/VvpsYw0jni5ccQ7eUflYjTWmAzUSQNS+ww+WQvcKeUtasrdDtXHel6wI2++4KK9RIKLZbl+uxcwb6JHUn0AI99tbho1M5yDpUKD1JjBpWAhRW9ckExw7x/2xNz3hSyw7/05HtAKbfNL17VdNa1i25S6WeHm8/GqLFePcqw2h1P/2FbJiJzqpEHHJEEyJSBgpqCsVAa59dqxvUU5nqfXlUTrw+bNbkmiwqylCMBlUCCzDOBVUOCzl4FhNoGZp4S/byvSb2f5ApuBoH8drdvQ0tfRBhtyUAaCxzwcPQleaoQglfZOZEOVfEr7flVmbVf/i4n82WP3OkzGOZ2A1K9rdM6k9tqDz8yCRJshOI4DsRGcJsWsfiartwmtm3MSbu+1w3m3t87r8hoEYyFmAZolBjLTBMElCdpzo40Zbp58z/vp5OQP8gX/WWFf9rLNSlnex+wCigGQv9ymcgdQJWqMDhmsFW5IYwabogCBiBFVtFTuTLejOfqG/P7C2Ihtwsdoh9b6DsxE5pPlFrTRDGRwCYIJEaQ3KdiQvN0Fuz3ZH1bLeR19eeZO6DaRDwJ3h5c+cPjeX1qaUsG4BuOsBJlCgmAFB5micpRGZTM+w7nfYTwPag+9Je4TanmmQiVwbsCz0YB1kYIPUvHsaORhZ2R+3t+AowZh23xPDEKOkStlDVijPcgcEjirM7ggAgplBDL98tQ/m1Q+lvoSt7Z4UvVYSt0MjvSmwu8YVwPFcZdwuKEuWbWeVJfbv28oBHKatNNgBTUgMVnwygowSjiaPMvKDN4vtk2DcTNxB+HPZXhd+HrY3+nZ2Xpybwt3frjZOOIXarsJnlR1k/B7NaXrjdqOgxnTO8C6jco+mCJjwru1HVV4eMzHJMYn1ajYE7dxUO5eSt3j54gx0TGHOKr2dPUxuWddxGG6441z8OU/usgY1tgqTx9pDpG7NbD7+nPcRj4r/MQ0jGnvuWj2Ntj4OTmgio8N+rPo+wp0UFH3eo/Dlnz89+fW3O/LRtZar/8DPjKbRPoQAAA=

metadata_json:
  {"categories":["automation","integration","chatbot","moderation"],"complexity":"medium","use_cases":["Chat with an AI bot via Discord mentions","Automated moderation or flagging of messages","Trigger custom commands/workflows from mentions","Forward mentions to AI/webhook services for processing"],"estimated_setup_minutes":15,"required_services":["Discord (bot with Read/Send permissions)","n8n instance","Webhook/AI endpoint (e.g., custom AI agent, GitHub MCP Server, or other HTTP webhook)"],"key_features":["Polls Discord channels for bot mentions (no community nodes)","Filters by authorized users and today’s messages only","Deduplication to avoid re-processing messages","Scheduled trigger with adjustable interval","Forwards cleaned message text to any webhook and posts webhook responses back to Discord"],"target_audience":["Developers","Community moderators","Automation engineers / DevOps practitioners who manage bots and workflows"]}


name: Send AI-Generated Emails via Telegram Using GPT-4o-mini and Gmail
author_name: Automate With Marc
author_username: marconi
categories: []
created_at: 2025-05-21T02:38:56.750Z
updated_at: 2025-05-21T02:38:56.750Z
url: https://n8n.io/workflows/4265
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  ✉️ Telegram Email Agent with GPT + Gmail
  Category: Messaging / AI Agent
  Level: Beginner-Friendly
  Tags: Telegram, Email Automation, AI Agent, Gmail, GPT Model

  Watch Step-by-step video guide here:
  https://www.youtube.com/watch?v=nyI40s9QOuw&t=420s&pp=0gcJCb4JAYcqIYzv

  🤖 What This Workflow Does
  This workflow turns your Telegram bot into a personal email assistant powered by AI.

  With just a message on Telegram, users can:

  Send an email via Gmail

  Automatically generate the email content using OpenAI Models.

  Get confirmation or responses directly in Telegram

  It's like ChatGPT meets Gmail, inside your Telegram chat.

  🔧 How It Works
  Telegram Trigger – Listens for incoming messages from your bot.

  AI Agent – Processes the input using OpenAI Model and converts it into structured email content (To, Subject, Body).

  Memory Node – Stores short-term context per user (via chat ID), so the agent can hold simple conversations.

  Gmail Node – Sends the generated email using your Gmail account.

  Telegram Node – Replies to the user confirming the output or status.

  🧠 Why This is Useful
  Ever wanted to send an email while on the go, without typing the whole thing out in Gmail?

  This is a fast, intuitive, and AI-powered way to:

  Dictate or draft emails from anywhere

  Create an AI-powered virtual assistant via Telegram

  Integrate n8n's Langchain Agent with real-world productivity use cases

  🪜 Setup Instructions
  Connect your Telegram bot via BotFather and add the credentials in n8n.

  Set up your OpenAI API key (GPT-4o-mini recommended).

  Add your Gmail OAuth credentials.

  Activate the workflow and start messaging your bot!

nodes_used:
  ["n8n-nodes-base.telegramTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.gmailTool","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE5VWa4vbOBT9K0IU0oLidR4NWcPCpmV3CctMoRPaDzNhqrFubLWyZCR5HgT/9yJZeTh25vEtsY6Ozrm6D22xpAXgBK9AQKZpgf4pKBdokYG06LvSvzZCPWCCLc0MTq7XBEvFwP3cdrauNM8y0A79VLoVOZdDDx/eUQORDcADrlSGW64kTq6H85jEa4JLqmkBFrTByRZXJaPWH4cLMIZmgNcEU8b8Nir+5SCYQ9Z1c+o30MYTjqJxTfYaF8vG0kHb33Iu/zgIFFRmaU65jGjAHWkbj/u0WXi0OMF/bbfo3U+jZBQURm4B1TUmWJWOwesjuNSqKO2qOZ7BhkvAXdV/Hqn+UoJcLNHnnFp0oRiIV8gXhYP7nbztYjSPyWjW9VF45mSLb2+1wInVFRD/ESdYcONicU9F5f5mpR1O1bDg0nGnNM2BfQVTCXvZKD4G1C3/z9/PFS9KAegCCqWfXuGy8MBP1WYD+juXzOfokdfJuN+rAeOO/x+eem8uzamNOGsuL2CXLFxZWhmrCre162Vy5OU/V0FniyBzqyulRFvwdHZOsGQrFcSidxutisXy/WClBgT9+EHQwFjNZTb40GjeFckp/qL53r+plaWmuvsJqe0wXDXf+xnAm2r8+rI4jdA4Gh1FaNcxXuwU7RjNeltEpwxVZcsqFKC70CXbLb8fnPaqwYeIWyii81nQ02swLUuQbGGt5ndVI25DhYGXktzy9NcTulQWzjo3HhMgx+1xNIvJcN61nyqhNE4mBD9wZnOcjGcxwTnwLLc4mcxjglMlretpR6065AP6Cinwe2C7eKBLV/cdG/0mRm92MRr3mwjSp89I33Vw9MBtHqaUL6NXih2/WewsfjbiH/cRn8SviPgVSLYP+yJ1Z7wp2JO3p8x0HpPh6LyDab+D6YmDnBvEDaLINE36IbwK0EZpRGXrxZAqKSG1wJBVaO9dSRRqC9kmz6IbeSOHyLdKR37YR82B08VMZv6aHXrP55rinjGUOzcIJL0TzdFUOIH7nLEKcWlB0zTkT2VAOwk3sif+7oWRWn4PoazdKLCWy8wHDx4h9UX/RTPQOMH3I8cRHIRGGoaA6xX81ro0Ta7di6mZqt3XyA5FMJcMHnES1+t1TQ5IN6cply2abhv1kFOO9mxtJBXhz0uiit1AblN2nnx98rqEvfK6j5xGohv2Fc0gfHtJaRvePqSufwM7wcZ36AoAAA==

metadata_json:
  {"categories":["messaging","automation","ai/agent","email integration"],"complexity":"simple","use_cases":["Send emails from Telegram using AI-generated content","Draft email subject/body via natural language","Create a conversational email assistant for mobile use","Automate routine outbound email tasks through chat"],"estimated_setup_minutes":20,"required_services":["Telegram Bot API (BotFather)","OpenAI API (GPT-4o-mini recommended)","Google/Gmail account with OAuth credentials","n8n platform (workflow runtime)"],"key_features":["Telegram trigger to receive user prompts","OpenAI (GPT) agent to generate structured email: To, Subject, Body","Short-term per-user memory buffer for conversational context","Gmail node to send generated emails via OAuth","Telegram node to confirm/send status back to user (two-way feedback)"],"target_audience":["developers building chat-driven automations","non-technical users who want quick email drafting","productivity-focused users and business owners looking to send emails on the go, via chat"]}


name: Reddit API Hub: Manage Posts, Comments & Subreddits via Server-Sent Events
author_name: Simeon
author_username: simealdana
categories: []
created_at: 2025-05-21T03:13:04.971Z
updated_at: 2025-05-21T03:13:04.971Z
url: https://n8n.io/workflows/4266
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:33
description:
  🔄 Reddit Content Operations via MCP Server

  🧑‍💼 Who is this for?

  This workflow is built for content creators, marketers, Reddit automation enthusiasts, and AI agent developers who want structured, programmable access to Reddit content. If you're researching niche communities, tracking trends, or automating Reddit engagement — this is for you.

  💡 What problem is this workflow solving?

  Reddit has valuable content scattered across subreddits, but manual analysis or engagement is inefficient. This workflow acts as a centralized API interface to:

  Query and manage Reddit posts
  Create, fetch, delete, and reply to comments
  Analyze subreddit metadata and behavior
  Enable AI agents to autonomously operate on Reddit data

  It does this using an MCP (Model Context Protocol) Server over Server-Sent Events (SSE).

  ⚙️ What this workflow does

  This template sets up a custom MCP Server that listens for JSON-based operation commands sent via SSE. Based on the operation, it routes the request to one of the following branches:

  🟥 Post CRUD

  Create a new Reddit post
  Search posts across subreddits
  Fetch posts by ID
  Delete existing posts

  🟩 Comment CRUD

  Create or reply to comments
  Fetch multiple comments from posts
  Delete specific comments

  🟦 Subreddit Read Operations

  Get information about subreddits
  List subreddit posts
  Retrieve subreddit rules

  🛠 Setup

  Import this workflow into your self-hosted n8n instance.
  Configure Reddit credentials (OAuth2).
  Connect your input system to the MCP Server Trigger node via SSE.
  Send operation payloads to the server like this:

  {
    "operation": "post_search",
    "params": {
      "query": "AI agents",
      "subreddit": "machinelearning"
    }
  }
  The workflow will route to the appropriate node based on operation type.

  🧩 Supported Operations
  post_create

  post_get_many

  post_search

  post_delete

  post_get_by_id

  comment_create

  comment_reply

  comment_get_many

  comment_delete

  subreddit_get_about

  subreddit_get_many

  subreddit_get_rules

  🧠 How to customize this workflow to your needs
  Add new operations to the operation_switch node for additional API functionality.

  Chain results into Notion, Slack, Airtable, or external APIs.

  Integrate with OpenAI/GPT to summarize posts or filter content.

  Add logic to score and sort content by engagement, sentiment, or keywords.

  🟨 Sticky Notes
  Each operation group is color-coded (Posts, Comments, Subreddits).

  Sticky Notes explain the purpose and dependencies of each section.

  Easy to maintain and extend with clear logical separation.

  ⚠️ This template uses a custom MCP Server node and only works in self-hosted n8n.

  🖼 Workflow Preview

nodes_used:
  ["@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.reddit","n8n-nodes-base.reddit","n8n-nodes-base.reddit","n8n-nodes-base.reddit","n8n-nodes-base.switch","n8n-nodes-base.reddit","n8n-nodes-base.reddit","n8n-nodes-base.reddit","n8n-nodes-base.reddit","n8n-nodes-base.switch","n8n-nodes-base.switch","n8n-nodes-base.reddit","n8n-nodes-base.reddit","n8n-nodes-base.switch","n8n-nodes-base.reddit","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.reddit","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5900 characters]

metadata_json:
  {"categories":["automation","integration","social media"],"complexity":"complex","use_cases":["Automate Reddit content CRUD (posts & comments)","Research and monitor subreddit trends and metadata","Enable AI agents to interact with Reddit programmatically","Route and process Reddit operations via SSE/MCP for downstream systems"],"estimated_setup_minutes":30,"required_services":["Self-hosted n8n instance","Reddit API (OAuth2 credentials)","MCP Server / Server-Sent Events (SSE) source or client","Internet access to external APIs"],"key_features":["SSE-based MCP Server trigger to receive JSON operation commands","Routing/switching to Post, Comment, and Subreddit operation branches","Full CRUD for posts and comments (create, fetch, delete, reply)","Subreddit read operations (about, posts list, rules)","Extensible operation_switch for adding new commands or integrations (OpenAI, Notion, Slack, Airtable)"],"target_audience":["Content creators and marketers","Reddit automation enthusiasts","AI agent developers and integrators」「Community managers and researchers"]}


name: AAVE Portfolio Professional AI Agent | Telegram + Email + GPT-4o + Moralis
author_name: Don Jayamaha Jr
author_username: don-the-gem-dealer
categories: []
created_at: 2025-05-21T07:37:35.433Z
updated_at: 2025-05-21T07:37:35.433Z
url: https://n8n.io/workflows/4267
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  A next-generation AI-powered DeFi health monitor that tracks wallet positions across Aave V3 using GPT-4o and LangChain. It delivers human-readable reports via Telegram and Gmail, triggered on schedule or manually. Built for professionals monitoring multiple DeFi wallets.

  🧩 System Components

  | Component                         | Role                                                          |
  | --------------------------------- | ------------------------------------------------------------- |
  | ✅ Scheduler                       | Triggers the workflow periodically                            |
  | ✅ Google Sheets Wallet Loader     | Loads all monitored wallet addresses                          |
  | ✅ Set Variables                   | Injects dynamic wallet + date                                 |
  | ✅ AAVE Portfolio AI Agent         | GPT-4o + LangChain AI that generates human-readable summaries |
  | ✅ Moralis API Nodes (3)           | Collect Aave V3 supply/borrow/collateral data                 |
  | ✅ OpenAI Chat Model (gpt-4o-mini) | Interprets on-chain data and explains it                      |
  | ✅ Telegram Delivery               | Sends summary to Telegram chat                                |
  | ✅ Gmail Email Sender              | Sends full HTML report to email                               |
  | ✅ HTML Formatter                  | Beautifies AI output into email structure                     |

  ⚙️ How It Works

  Scheduled or manual trigger
  Pulls wallet addresses from Google Sheets
  For each wallet:

     Pulls Aave data from Moralis
     GPT-4o AI generates report
     Sends summary to Telegram
     Sends full HTML report via Gmail

  🛠 Installation Steps

  1. Import the Workflow

  Upload AAVE_Portfolio_Professional_AI_Agent.json to your n8n instance.

  2. Connect These Credentials

  | Service  | Required Credential Type     |
  | -------- | ---------------------------- |
  | Moralis  | HTTP Header Auth (X-API-Key) |
  | OpenAI   | GPT-4o via OpenAI API Key    |
  | Telegram | Telegram Bot API Token       |
  | Gmail    | Gmail OAuth2 Credential      |

  3. Create Google Sheet

  Column name must be: wallet_address
  Add wallet addresses you want monitored

  📬 Output Format

  Telegram Message Example

  📊 Aave DeFi Health Report  
  Wallet: 0xABC...123  
  Date: 2025-05-21

  ▪️ Pool: Aave Ethereum USDC  
  • Supply: $10,040  
  • Borrowed: $5,500  
  • Health Factor: 3.43  
  • Liquidation Risk: No  

  Email Report

  Full HTML + plain text versions
  Auto-generated date + styled per wallet
  Includes notes and threshold warnings

  🧠 Smart Features

  GPT-4o generates clear human summaries
  Monitors multiple wallets in one run
  Flags liquidation risk dynamically
  Logs daily performance snapshots

  💡 Customization Ideas

  Add Telegram slash command /aave &lt;wallet&gt;
  Expand to monitor Compound, Lido, or Uniswap
  Export to Notion, Slack, or Data Studio

  🧾 Licensing & Attribution

  © 2025 Treasurium Capital Limited Company

  Architecture, prompts, and report formatting are intellectual property protected.
  No unauthorized rebranding, redistribution, or resale permitted.

  🔗 For support or licensing inquiries: LinkedIn – Don Jayamaha

  🚀 Track all your Aave DeFi positions using AI—delivered via Telegram + Gmail.
  Perfect for funds, traders, and DeFi power users.

  🎥 Watch the Live Demo:

nodes_used:
  ["n8n-nodes-base.telegram","n8n-nodes-base.scheduleTrigger","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.gmail","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8868 characters]

metadata_json:
  {"categories":["automation","integration","monitoring","DeFi","AI"],"complexity":"complex","use_cases":["Monitor Aave V3 wallet positions across multiple addresses","Auto-generate human-readable DeFi health reports","Alert on liquidation risk and health-factor changes","Deliver summaries via Telegram and full reports via Gmail","Scheduled daily snapshots and on-demand checks"],"estimated_setup_minutes":30,"required_services":["Moralis (Aave V3 data / API key)","OpenAI (GPT-4o / API key)","Google Sheets (sheet with wallet_address column)","Telegram (bot token / chat)","Gmail (OAuth2 credential)"],"key_features":["Scheduled or manual run to process multiple wallets","Loads wallets from Google Sheets","Uses Moralis to fetch supply/borrow/collateral data","GPT-4o + LangChain agent produces human-readable summaries","Telegram summary messages and full HTML email reports via Gmail"],"target_audience":["DeFi funds and portfolio managers","Crypto traders and risk analysts","Developers building DeFi monitoring tools"]}


name: Evaluation metric example: Check if tool was called
author_name: David Roberts
author_username: davidn8n
categories: []
created_at: 2025-05-21T08:06:35.412Z
updated_at: 2025-05-21T08:06:35.412Z
url: https://n8n.io/workflows/4268
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  AI evaluation in n8n

  This is a template for n8n's evaluation feature. 

  Evaluation is a technique for getting confidence that your AI workflow performs reliably, by running a test dataset containing different inputs through the workflow.

  By calculating a metric (score) for each input, you can see where the workflow is performing well and where it isn't.

  How it works

  This template shows how to calculate a workflow evaluation metric: whether a specific tool was called by an agent.

  We use an evaluation trigger to read in our dataset 
  It is wired up in parallel with the regular trigger so that the workflow can be started from either one. More info
  We make sure that the agent outputs the list of tools that it used
  We then check whether the expected tool (from the dataset) is in that list
  Finally we pass this information back to n8n as a metric

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolCalculator","n8n-nodes-base.set","n8n-nodes-base.httpRequestTool","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.evaluationTrigger","n8n-nodes-base.evaluation","n8n-nodes-base.evaluation"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["ai-evaluation","testing","automation"],"complexity":"medium","use_cases":["Validate agent behavior against a test dataset","Measure whether a specific tool was invoked by an agent","Automated regression testing for AI workflows","Generate per-input metrics for monitoring and debugging"],"estimated_setup_minutes":15,"required_services":["n8n (cloud or self-hosted)","OpenAI (lmChatOpenAi) or compatible LLM provider","Webhook endpoint (optional)"],"key_features":["Evaluation trigger to run a dataset through the workflow","Parallel regular trigger so workflow can be run normally or via evaluation","Agent outputs parsed to extract list of tools used","Metric calculation: checks if expected tool appears in agent output","Reporting metric back to n8n for analysis"],"target_audience":["AI/ML engineers","MLOps engineers","Developers building agent workflows', 'QA testers"]}


name: Evaluation metric example: Categorization
author_name: David Roberts
author_username: davidn8n
categories: []
created_at: 2025-05-21T08:09:51.869Z
updated_at: 2025-05-21T08:09:51.869Z
url: https://n8n.io/workflows/4269
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  AI evaluation in n8n

  This is a template for n8n's evaluation feature. 

  Evaluation is a technique for getting confidence that your AI workflow performs reliably, by running a test dataset containing different inputs through the workflow.

  By calculating a metric (score) for each input, you can see where the workflow is performing well and where it isn't.

  How it works

  This template shows how to calculate a workflow evaluation metric: whether a category matches the expected one.

  The workflow takes support tickets and generates a category and priority, which is then compared with the correct answers in the dataset.

  We use an evaluation trigger to read in our dataset 
  It is wired up in parallel with the regular trigger so that the workflow can be started from either one. More info
  Once the category is generated by the agent, we check whether it matches the expected one in the dataset
  Finally we pass this information back to n8n as a metric

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.webhook","n8n-nodes-base.evaluationTrigger","n8n-nodes-base.respondToWebhook","n8n-nodes-base.evaluation","n8n-nodes-base.evaluation"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","AI evaluation","model testing","data processing"],"complexity":"medium","use_cases":["Evaluate classification/categorization accuracy of an AI workflow","Monitor model performance on support tickets","Automated regression testing of agent-driven workflows","Generate metrics for dashboards or reporting","Validate output parsing and label mapping for production workflows"],"estimated_setup_minutes":15,"required_services":["n8n (with Evaluation trigger enabled)","OpenAI (lmChat / Chat completions) or another LLM provider","Webhook/HTTP endpoint (optional, for regular trigger integration)","Dataset storage (CSV, Google Sheets, S3 or similar) containing expected labels"],"key_features":["Runs dataset-driven evaluations through the workflow","Compares generated category with expected category to compute a metric","Evaluation trigger wired in parallel with regular trigger for flexible starts","Integrates with an agent + OpenAI chat model and structured output parser","Sends computed metrics back into n8n for reporting or further processing"],"target_audience":["developers","data scientists","ML engineers / AI engineers implementing model ops (MLOps) tests"]}


name: WebhookDocs: generate swagger preview of your active workflows
author_name: Danger
author_username: dangerblack
categories: []
created_at: 2025-05-21T08:13:31.499Z
updated_at: 2025-05-21T08:13:31.499Z
url: https://n8n.io/workflows/4270
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  How it Works

  This meta-workflow is designed to intelligently scan all your active workflows in n8n, identify those that contain Webhook nodes, and automatically generate a Swagger (OpenAPI) specification based on them.

  The output Swagger document reflects all accessible endpoints from your Webhook nodes, making it easier to:

  Visualize your API structure
  Share your endpoints
  Integrate with tools like Postman or Swagger UI

  Enhanced Parameter Support

  If you want the Swagger to reflect request parameters (e.g., query or body fields), you can annotate your Webhook nodes using the Note section. When configured properly, these annotations enrich your Swagger documentation with parameter names, types, and descriptions.

  Setup Steps

  Add the WebhookDocs to n8n
     Import the WebhookDocs JSON file into your n8n instance.
  Activate the WebhookDocs (you can also use the test-endpoint)
     Annotate Webhook Nodes (Optional but Recommended)
     To enable parameter documentation, open the Note section of each Webhook node and add annotations in the following format:

  //@body field_name string description
  //@query field_name string description

  Open the page https://n8n.youristance.com/webhook/swagger

nodes_used:
  ["n8n-nodes-base.n8n","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.webhook","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","integration","documentation","developer tools"],"complexity":"medium","use_cases":["Automatically generate OpenAPI/Swagger documentation for n8n webhook endpoints","Discover and visualize available webhook endpoints across workflows","Share API specs with teammates or external tools (Postman, Swagger UI)","Improve developer handoff and QA by documenting request parameters and payloads"],"estimated_setup_minutes":15,"required_services":["n8n instance (self-hosted or cloud)","Optional: Swagger UI or Postman for viewing/importing the generated OpenAPI spec"],"key_features":["Scans active workflows to find Webhook nodes and their endpoints","Generates an OpenAPI/Swagger document representing accessible endpoints","Preview endpoint to view the Swagger spec (e.g., /webhook/swagger)","Optional parameter extraction via annotated notes (//@body, //@query)","Outputs a shareable API spec usable in Swagger UI or Postman"],"target_audience":["Developers building APIs with n8n","Integration engineers","Automation architects and implementers"]}


name: Evaluation metric example: Correctness (judged by AI)
author_name: David Roberts
author_username: davidn8n
categories: []
created_at: 2025-05-21T08:13:34.368Z
updated_at: 2025-05-21T08:13:34.368Z
url: https://n8n.io/workflows/4271
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  AI evaluation in n8n

  This is a template for n8n's evaluation feature. 

  Evaluation is a technique for getting confidence that your AI workflow performs reliably, by running a test dataset containing different inputs through the workflow.

  By calculating a metric (score) for each input, you can see where the workflow is performing well and where it isn't.

  How it works

  This template shows how to calculate a workflow evaluation metric: whether an output matches an expected output (i.e. has the same meaning).

  The workflow takes questions about the causes of historical events and compares them with the reference answers in the dataset.

  We use an evaluation trigger to read in our dataset 
  It is wired up in parallel with the regular chat trigger so that the workflow can be started from either one. More info
  If we're evaluating (i.e. the execution started from the evaluation trigger), we calculate the correctness metric using AI
  We pass this information back to n8n as a metric
  If we're not evaluating we avoid calculating the metric, to reduce cost 

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.evaluationTrigger","n8n-nodes-base.evaluation","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.evaluation"]

workflow_json_compressed:
  [encoded data, 5244 characters]

metadata_json:
  {"categories":["automation","AI/ML","testing/QA","data processing"],"complexity":"medium","use_cases":["Automated evaluation of AI workflow outputs","Regression testing for conversational agents","Measuring correctness against a labeled dataset","Monitoring model performance during development"],"estimated_setup_minutes":20,"required_services":["OpenAI (or other LLM API)","n8n evaluation trigger / dataset storage (built-in n8n feature)"],"key_features":["Runs a test dataset through the workflow using the evaluation trigger","Calculates a correctness metric by comparing outputs to reference answers with an AI model","Parallel wiring to allow normal chat trigger or evaluation trigger starts","Sends calculated metric back to n8n for reporting","Skips metric calculation when not in evaluation mode to reduce cost"],"target_audience":["Developers","ML engineers","Data scientists evaluating model outputs」「QA engineers / Testers"]}


name: Generate a Personal Newsfeed Using Bright Data Web Scraping and GPT-4.1
author_name: Daniel Shashko
author_username: tomax
categories: []
created_at: 2025-05-21T08:13:35.560Z
updated_at: 2025-05-21T08:13:35.560Z
url: https://n8n.io/workflows/4272
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  How it Works

  Disclaimer: This template is for self-hosted n8n instances only.

  This workflow is designed for developers, data analysts, and automation enthusiasts seeking to automate personalized news collection and delivery. It seamlessly combines n8n, OpenAI (e.g., GPT-4.1), and Bright Data’s Model Context Protocol (MCP) to collect, extract, and email the latest global news headlines.  
  On a schedule or via a manual trigger, the workflow prompts an AI agent to gather fresh news. The agent leverages context-aware memory and integrated MCP tools to conduct both search engine queries and direct web page scraping in real time, delivering more than just meta search results—it extracts actual on-page headlines and trusted links. Results are formatted and delivered automatically by email via your SMTP provider, requiring zero manual effort once configured.

  Who is this for?

  Developers, data engineers, or automation pros wanting an AI-powered, fully automated newsfeed
  Teams needing up-to-date news digests from trusted global sources
  Anyone self-hosting n8n who wishes to combine advanced LLMs with real-time web data

  Setup Steps

  Setup time: Approx. 15–30 minutes (n8n install, API configuration, node setup)
  Requirements:
      Self-hosted n8n instance
      OpenAI API key
      Bright Data MCP account credentials
      SMTP/email provider details
  Install the community MCP node (n8n-nodes-mcp) for n8n and set up Bright Data MCP access.
  Configure these nodes:
      Schedule Trigger: For automated delivery at your chosen interval.
      Edit Fields: To inject your AI news collection prompt.
      AI Agent: Connects to OpenAI and MCP, enabled with memory for context.
      OpenAI Chat Model: Connects via your OpenAI credentials.
      MCP Clients: Configure at least two—one for search (e.g. search_engine) and one for scraping (e.g. scrape_as_markdown).
      Send Email: Set up with recipient and SMTP information.
  Credentials must be entered into their respective nodes for successful execution.

  Customization Guidance

  Prompt Tweaks:** Refine your AI news prompt to target specific genres, regions, or sources, or broaden/narrow the coverage as needed.
  Tool Configuration:** Carefully define tool descriptions and parameters in MCP client nodes so the agent can pick the best tool for each step (e.g., only scrape real news sites).
  Delivery Settings:** Adjust email recipient(s) and SMTP details as needed.
  Workflow Enhancements:** Use sticky notes in n8n for extended documentation, alternate prompts, or troubleshooting tips.
  Run Frequency:** Set schedule as needed—from hourly to daily updates.

  Once configured, this workflow will automatically gather, extract, and email curated news headlines and links—no manual curation required!

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-mcp.mcpClientTool","n8n-nodes-mcp.mcpClientTool","n8n-nodes-mcp.mcpClientTool","n8n-nodes-base.emailSend","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","integration","data collection","web scraping","AI/LLM"],"complexity":"medium","use_cases":["Automated personalized news digests","Real-time web scraping for headlines and links","Team news monitoring and delivery","Research and trend monitoring"],"estimated_setup_minutes":20,"required_services":["Self-hosted n8n instance","OpenAI API (e.g., GPT-4.1)","Bright Data MCP (Model Context Protocol) account","SMTP/email provider"],"key_features":["Scheduled or manual trigger for automated collection","AI agent using OpenAI + MCP tools with context-aware memory","Real-time search and on-page scraping (extracts headlines and trusted links)","Configurable MCP clients (search and scrape tools)","Automated email delivery of formatted digests via SMTP (Send Email node)"],"target_audience":["Developers","Data engineers","Automation enthusiasts/prospects using n8n self-hosted instances」「Product/communication teams needing news digests"]}


name: Evaluation metric example: RAG document relevance
author_name: David Roberts
author_username: davidn8n
categories: []
created_at: 2025-05-21T08:19:43.930Z
updated_at: 2025-05-21T08:19:43.930Z
url: https://n8n.io/workflows/4273
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:32
description:
  AI evaluation in n8n

  This is a template for n8n's evaluation feature. 

  Evaluation is a technique for getting confidence that your AI workflow performs reliably, by running a test dataset containing different inputs through the workflow.

  By calculating a metric (score) for each input, you can see where the workflow is performing well and where it isn't.

  How it works

  This template shows how to calculate a workflow evaluation metric: retrieved document relevance (i.e. whether the information retrieved from a vector store is relevant to the question).

  The workflow takes a question and checks whether the information retrieved to answer it is relevant.

  To run this workflow, you need to insert documents into a vector data store, so that they can be retrieved by the agent to answer questions. You can do this by running the top part of the workflow once.

  The main workflow works as follows:

  We use an evaluation trigger to read in our dataset 
  It is wired up in parallel with the regular trigger so that the workflow can be started from either one. More info
  We make sure that the agent outputs the list data from the tools that it used
  If we’re evaluating (i.e. the execution started from the evaluation trigger), we calculate the relevance metric using AI to compare the retrieved documents with the question
  We pass this information back to n8n as a metric
  If we’re not evaluating we avoid calculating the metric, to reduce cost

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.evaluationTrigger","n8n-nodes-base.evaluation","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.evaluation","n8n-nodes-base.googleSheets","n8n-nodes-base.removeDuplicates","@n8n/n8n-nodes-langchain.vectorStoreInMemory","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.vectorStoreInMemory","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5536 characters]

metadata_json:
  {"categories":["automation","AI evaluation","data processing","integration"],"complexity":"medium","use_cases":["Evaluate RAG (retrieval-augmented generation) document relevance","Benchmark and validate AI/agent retrieval performance","Automated testing of AI workflows with a dataset","Monitor and report QA metrics for document retrieval"],"estimated_setup_minutes":30,"required_services":["n8n (evaluation trigger feature)","Vector store (in-memory or external)","OpenAI embeddings (embeddingsOpenAi) or compatible embeddings provider","Optional: Google Sheets (for dataset input/storage)"],"key_features":["Calculates retrieved-document relevance metric per input","Evaluation trigger to run test datasets vs regular trigger","Uses agent/tool outputs and AI comparison to score relevance","Supports inserting documents into a vector store for retrieval","Cost-saving branch to skip metric calculation when not evaluating"],"target_audience":["AI/ML engineers","Developers building RAG systems","MLOps / QA engineers validating AI workflows"]}


name: Evaluation metric example: String similarity
author_name: David Roberts
author_username: davidn8n
categories: []
created_at: 2025-05-21T08:23:13.742Z
updated_at: 2025-05-21T08:23:13.742Z
url: https://n8n.io/workflows/4274
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  AI evaluation in n8n

  This is a template for n8n's evaluation feature. 

  Evaluation is a technique for getting confidence that your AI workflow performs reliably, by running a test dataset containing different inputs through the workflow.

  By calculating a metric (score) for each input, you can see where the workflow is performing well and where it isn't.

  How it works

  This template shows how to calculate a workflow evaluation metric: text similarity, measured character-by-character.

  The workflow takes images of hand-written codes, extracts the code and compares it with the expected answer from the dataset.

  The images look like this:



  The workflow works as follows:

  We use an evaluation trigger to read in our dataset 
  It is wired up in parallel with the regular trigger so that the workflow can be started from either one. More info
  We download the image and use AI to extract the code
  If we’re evaluating (i.e. the execution started from the evaluation trigger), we calculate the string distance metric
  We pass this information back to n8n as a metric

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.webhook","n8n-nodes-base.evaluationTrigger","n8n-nodes-base.respondToWebhook","n8n-nodes-base.evaluation","n8n-nodes-base.evaluation","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.code","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","AI evaluation","data processing"],"complexity":"medium","use_cases":["Evaluate OCR / text-extraction accuracy","Automated regression testing for AI workflows","Measure and monitor model/workflow performance","Validate extracted codes against expected answers"],"estimated_setup_minutes":20,"required_services":["OpenAI API (or other AI OCR service)","n8n (with Evaluation trigger enabled)","Publicly accessible image hosting or HTTP(S) endpoints for dataset images"],"key_features":["Uses Evaluation trigger to run a test dataset through the workflow","Extracts text from images via an AI (OpenAI) node","Calculates character-by-character string similarity (distance) as the metric","Supports running alongside regular trigger (parallel wiring) so workflow can be started normally or in evaluation mode","Downloads images via HTTP/Webhook nodes and processes them programmatically (code node)"],"target_audience":["Developers building n8n AI workflows","Data scientists and ML engineers validating model outputs","QA engineers testing automation accuracy"]}


name: Convert boring images to stunning photos and videos
author_name: Rish
author_username: b2brish
categories: []
created_at: 2025-05-21T08:28:17.337Z
updated_at: 2025-05-21T08:28:17.337Z
url: https://n8n.io/workflows/4275
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:31
description:
  Tutorial Video

  ✨ Transform ordinary photos into AI masterpieces
  This powerful workflow creates a complete AI image editing system that your Telegram contacts can use with a simple message. Let users send images with creative instructions and watch as cutting-edge AI transforms their ideas into reality.

  🤖 What This Workflow Does
  Connect your Telegram bot to OpenAI and Replicate's advanced image models to:

  Edit photos based on text descriptions
  Generate creative variations of original images
  Deliver professional-quality results in seconds
  Handle the entire process automatically

  🎨 Perfect For

  Digital creators seeking quick design iterations
  Photography enthusiasts wanting AI enhancements
  Product marketers creating concept visualizations
  Community managers offering image editing services
  Anyone looking to explore AI image capabilities

  🔧 Easy Setup
  Just configure your API credentials, customize a few prompts, and your Telegram bot becomes a powerful AI image editor. The workflow handles all the technical complexity including file conversions, API communications, and asynchronous processing.

  💡 Expandable Design
  Built with flexibility in mind, you can easily:

  Add additional AI models
  Implement image moderation
  Create branching paths based on user requests
  Integrate with other services like cloud storage

  Elevate your image editing capabilities with this seamless blend of messaging and AI technology!

nodes_used:
  ["n8n-nodes-base.telegramTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.telegram","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","AI image editing","messaging integration","content creation"],"complexity":"medium","use_cases":["Transform user-submitted photos with text-based edits","Generate creative image variations from originals","Provide AI-powered image editing via Telegram bot","Rapid prototyping of visual concepts for marketing or design","Offer image-editing services in communities or marketplaces"],"estimated_setup_minutes":30,"required_services":["Telegram Bot API","OpenAI API","Replicate API","Optional: cloud storage (S3, Google Cloud Storage, etc.)"],"key_features":["Telegram bot interface for receiving images and instructions","Text-guided image editing and variation generation via AI models","Automated file conversion and asynchronous processing","Configurable prompts and easy model swapping","Expandable with moderation, branching logic, and extra integrations"],"target_audience":["developers building chat-based AI tools","digital creators and designers","photography enthusiasts experimenting with AI edits/maps of enhancements (typo? no) (remove extra content?)"]}


name: Automated SEO Keyword & SERP Analysis with DataForSEO for High-Converting Content
author_name: Sam Yassine
author_username: samyassine
categories: []
created_at: 2025-05-21T12:23:41.329Z
updated_at: 2025-05-21T12:23:41.329Z
url: https://n8n.io/workflows/4277
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Overall Purpose:
  The workflow automates the process of gathering extensive keyword data for a "Main Keyword." It starts by reading initial parameters from a Google Sheets template, creates a new dedicated Google Sheet for the research, queries multiple DataForSEO API endpoints for different types of keyword information (related, suggestions, ideas, autocomplete, subtopics, SERP, and PAA), and populates the newly created Google Sheet with this data across various tabs. A "Master All KW Variations" sheet is also populated to consolidate various keyword types.
  Tools & Services Used:
  Google Sheets:
  As an input source for the main keyword and initial parameters (from a template).
  As the output destination for all collected keyword data, organized into multiple sheets within a new spreadsheet file.
  Google Drive:
  To create a new folder for each keyword research session.
  To copy the Google Sheets template into this new folder.
  DataForSEO API: 
  The primary source for all keyword research data. Specific endpoints utilized:
  v3/dataforseo_labs/google/related_keywords/live
  v3/dataforseo_labs/google/keyword_suggestions/live (used for both "suggestions" and "ideas")
  v3/serp/google/autocomplete/live/advanced
  v3/content_generation/generate_sub_topics/live
  v3/serp/google/organic/live/advanced (for SERP and People Also Ask data)

  Implementation Steps for Businesses:
  Define Core Business Keywords: 
  Start with the primary products, services, or solutions the business offers.
  Regularly Run the Workflow: 
  Schedule the workflow to run for new keywords or to refresh data on existing important keywords.
  Collaborative Review: 
  Marketing, sales, and even product teams should review the generated Google Sheets.
  Marketing focuses on content ideas, SEO opportunities, and competitor SERP positions.
  Sales focuses on understanding customer questions (PAA, Autocomplete) to refine pitches.
  Integrate into Content Calendar: 
  Use the insights to plan blog posts, articles, FAQs, and social media content.
  Update Sales Training: Share common customer questions and keyword insights with the sales team.
  Track & Measure: 
  Monitor rankings for targeted keywords and the performance of content created based on this research to demonstrate ROI.
  **
  By leveraging this automated workflow, businesses can save significant time on manual keyword research, gain deeper insights into their market and competitors, and ultimately create more effective sales and marketing strategies that drive growth.**

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","integration","data_processing","seo","marketing"],"complexity":"complex","use_cases":["Comprehensive keyword research","SERP & competitor analysis","Content ideation and subtopic generation","People Also Ask (PAA) and autocomplete insights","Populating shareable research spreadsheets for teams"],"estimated_setup_minutes":60,"required_services":["Google Sheets","Google Drive","DataForSEO API (v3 endpoints)","n8n (workflow runner)"],"key_features":["Automated queries to multiple DataForSEO endpoints (related, suggestions, ideas, autocomplete, subtopics, SERP, PAA)","Creates a new Google Drive folder and copies a Google Sheets template per session","Populates multiple tabs plus a consolidated \"Master All KW Variations\" sheet","Supports scheduling to refresh or run for new keywords","Outputs structured, shareable research for marketing and sales teams"],"target_audience":["SEO specialists","Content marketers","Digital marketing teams/agencies`,`Growth teams and product managers`"]}


name: Extract and Structure Hacker News Job Posts with Gemini AI and Save to Airtable
author_name: Puspak
author_username: dpreddy
categories: []
created_at: 2025-05-21T12:24:04.322Z
updated_at: 2025-05-21T12:24:04.322Z
url: https://n8n.io/workflows/4278
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:33
description:
  Workflow Overview

  This workflow automatically fetches the latest "Ask HN: Who is hiring?" posts from Hacker News, extracts individual job listings, cleans the raw text, converts them into structured job listings using Google Gemini AI, and saves them into Airtable.

  Components

  It’s a full end-to-end automation system combining:

  Algolia API** for HN data
  Text cleaning**
  Gemini AI (via LangChain)** for parsing job descriptions
  Structured JSON extraction**
  Airtable integration** to store the final data

  🎯 Use Cases

  Automatically build a job board from HN posts
  Track startup hiring trends
  Feed remote job alerts into a CRM or Slack
  Enrich a hiring intelligence database

  🔧 Nodes & Services Used

  HTTP Request (Algolia + Firebase API)
  SplitOut, Set, Filter, Function, Limit
  Google Gemini (via LangChain integration)
  Output Parser Structured
  Airtable (API token required)

  📌 Credentials Required

  Google Gemini (PaLM/Gemini API)
  Airtable Personal Access Token
  Algolia Application ID & API Key (via Header Auth)

  📦 Tags

  hacker-news, jobs, airtable, ai, gemini, automation, hn, langchain, workflow

  Screenshots

nodes_used:
  ["n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.filter","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.limit","n8n-nodes-base.airtable","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.scheduleTrigger"]

workflow_json_compressed:
  [encoded data, 6432 characters]

metadata_json:
  {"categories":["automation","integration","data processing"],"complexity":"medium","use_cases":["Build an automated job board from Hacker News posts","Track hiring trends and startup recruiting activity","Feed parsed job listings into CRM/Slack/notification systems","Populate or enrich a hiring intelligence database or Airtable base"],"estimated_setup_minutes":30,"required_services":["Hacker News (Algolia API and/or Firebase API)","Google Gemini (PaLM/Gemini) via LangChain","Airtable (Personal Access Token)"],"key_features":["Fetch latest \"Ask HN: Who is hiring?\" posts via Algolia/Firebase","Split and clean raw post text into individual listings","Use Google Gemini (LangChain) to convert free text into structured JSON","Output-parser-enforced schema for consistent records","Save structured job records to Airtable and optionally schedule automated runs"],"target_audience":["Developers and automation engineers","Recruiters and hiring managers","Data engineers/analysts building job datasets or pipelines\",\"No-code/low-code operators who manage Airtable integrations"]}


name: ✉️ Automated Email Sorting & Drafting for Customer Support - with AI 🤖
author_name: Louis
author_username: louisdl
categories: []
created_at: 2025-05-21T13:03:03.852Z
updated_at: 2025-05-21T13:03:03.852Z
url: https://n8n.io/workflows/4279
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:33
description:
  🤖 Automated Email Sorting & FAQ Reply Assistant (n8n + Gemini AI)

  🔍 Overview

  This n8n workflow automates email triage and FAQ responses using Google Sheets and Gemini AI. It’s designed to:

  Automatically sort incoming emails into categories (e.g., FAQ, Billing, Tech Support).
  Draft polite, relevant replies* for FAQ emails using *AI**, grounded in your pre-approved content.
  Maintain a human-in-the-loop process by saving responses as Gmail drafts for manual review.

  Perfect for startups or teams seeking to reduce support workload while ensuring consistent, helpful responses.

  ⚙️ Pre-conditions / Requirements

  Before using this workflow, make sure you have:

  ✅ A Google account with access to:
    Gmail (with custom labels like FAQ-Waiting, FAQ-Draft)
    Google Sheets (used as your FAQ source)
  ✅ A Gemini API key (to generate AI replies)
  ✅ A dedicated Gmail label to collect emails needing draft replies (e.g., FAQ-Waiting)
  ✅ A dedicated Gmail label to store drafted replies for manual sending (e.g., FAQ-Draft)
  ✅ A Google Sheet with two columns:
    Question — common user inquiries
    Answer — the matching, approved reply text

  🧠 How It Works

  Trigger  
     Scheduled workflow run (e.g., every 15 minutes)

  Fetch Emails  
     Grabs Gmail messages under a specific label like FAQ-Waiting

  Process & Clean  
     Loops through each email  
     Cleans content (removes signatures/HTML)  
     Sends it to Gemini AI

  AI Reply Drafting  
     AI matches email intent against your FAQ from Google Sheets  
     Generates a friendly, accurate draft reply, grounded only in your predefined Q&A

  Update Gmail  
     Removes FAQ-Waiting label  
     Adds FAQ-Draft label  
     Saves draft reply in Gmail for manual review and sending

  Fallback Routing  
     If email doesn’t match FAQ criteria, it follows a FALSE path  
     You can implement further logic here (e.g., route to Billing, escalate to a human agent, log as feedback)

  🛠️ Setup Instructions

  Connect Gmail + Google Sheets + Gemini AI
     Set up credentials in n8n for Gmail, Google Sheets, and Gemini AI

  Prepare Labels in Gmail
     Create: FAQ-Waiting (input folder), FAQ-Draft (drafts ready to send)  
     Optionally, create other labels (e.g., Billing, Tech Support)

  Build your FAQ Sheet
     Create a new Google Sheet with:
       Column A: Question
       Column B: Answer
     Add rows with typical user questions and the matching replies

  Configure AI Agent
     In the AI agent node, edit the prompt to fit your tone of voice (friendly, professional, concise, etc.)
     Ensure the AI is instructed to only use answers from the sheet, and not hallucinate

  Adjust Schedule
     Modify the trigger interval to match your needs (e.g., every X minutes)

  🧩 Customization Tips

  Custom Prompts**: Tailor the Gemini AI prompt in the node to change tone, length, or structure of replies
  Add New Categories**: Use the FALSE path in the IF node to handle non-FAQ emails (e.g., route to Billing, escalate to human agent, log feedback)
  Multiple Sheets**: You can expand the system by using different sheets for different topics
  Tone Matching**: Adjust AI output by providing sample reply templates or tone instructions directly in the AI node

  ✅ Use Cases

  SaaS startups triaging customer support  
  Solo founders who want consistent replies with minimal effort  
  Teams managing growing inbox volumes while maintaining quality support

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.markdown","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","n8n-nodes-base.markdown","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.gmail","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.set","n8n-nodes-base.gmail","n8n-nodes-base.googleSheetsTool","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","customer support","email management","AI-assisted workflows","knowledge base integration"],"complexity":"medium","use_cases":["Automated triage of incoming support emails","Drafting FAQ replies grounded in a curated knowledge base","Saving AI-generated replies as Gmail drafts for human review","Routing non-FAQ messages to other teams or escalation paths","Maintaining consistent, approved messaging for support"],"estimated_setup_minutes":45,"required_services":["n8n instance","Gmail account (with custom labels)","Google Sheets (FAQ spreadsheet)","Gemini AI API key (Google Gemini)"],"key_features":["Scheduled inbox polling for labeled emails","Content cleaning (remove signatures/HTML)","Intent matching against Google Sheets FAQ","AI-generated reply drafting constrained to approved answers","Save replies as Gmail drafts and manage labels (FAQ-Waiting → FAQ-Draft) for human-in-the-loop review and sending"],"target_audience":["SaaS startups","Customer support teams","Solo founders / small teams handling support alone\",\"Customer success managers\",\"Operations/automation engineers"]}


name: TrustPilot SaaS Product Review Tracker with Bright Data & OpenAI
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-05-21T13:08:26.837Z
updated_at: 2025-05-21T13:08:26.837Z
url: https://n8n.io/workflows/4280
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who this is for
  The TrustPilot SaaS Product Review Tracker is designed for product managers, SaaS growth teams, customer experience analysts, and marketing teams who need to extract, summarize, and analyze customer feedback at scale from TrustPilot.

  This workflow is tailored for:

  Product Managers** - Monitoring feedback to drive feature improvements

  Customer Support & CX Teams** - Identifying sentiment trends or recurring issues

  Marketing & Growth Teams** - Leveraging testimonials and market perception

  Data Analysts** - Tracking competitor reviews and benchmarking

  Founders & Executives** - Wanting aggregated insights into customer satisfaction

  What problem is this workflow solving?
  Manually monitoring, extracting, and summarizing TrustPilot reviews is time-consuming, fragmented, and hard to scale across multiple SaaS products. 

  This workflow automates that process from unlocking the data behind anti-bot layers to summarizing and storing customer insights enabling teams to respond faster, spot trends, and make data-backed product decisions.

  This workflow solves:

  The challenge of scraping protected review data (using Bright Data Web Unlocker)

  The need for structured insights from unstructured review content

  The lack of automated delivery to storage and alerting systems like Google Sheets or webhooks

  What this workflow does
  Extract TrustPilot Reviews: Uses Bright Data Web Unlocker to bypass anti-bot protections and pull markdown-based content from product review pages

  Convert Markdown to Text: Leverages a basic LLM chain to clean and convert scraped markdown into plain text

  Structured Information Extraction: Uses OpenAI GPT-4o via the Information Extractor node to extract fields like product name, review date, rating, and reviewer sentiment

  Summarization Chain: Generates concise summaries of overall review sentiment and themes using OpenAI

  Merge & Aggregate Output: Consolidates individual extracted records into a structured batch output

  Outbound Data Delivery:

  Google Sheets – Appends summary and structured review data

  Write to Disk – Persists raw and processed content locally

  Webhook Notification – Sends a real-time alert with summarized insights

  Pre-conditions

  You need to have a Bright Data account and do the necessary setup as mentioned in the "Setup" section below.
  You need to have an OpenAI Account.

  Setup
  Sign up at Bright Data.
  Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions.
  In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication).

  The Value field should be set with the
  Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token.
  In n8n, Configure the Google Sheet Credentials with your own account. Follow this documentation - Set Google Sheet Credential
  In n8n, configure the OpenAi account credentials.
  Ensure the URL and Bright Data zone name are correctly set in the Set URL, Filename and Bright Data Zone node.
  Set the desired local path in the Write a file to disk node to save the responses.

  How to customize this workflow to your needs

  Target Multiple Products : 

  Configure the Bright Data input URL dynamically for different SaaS product TrustPilot URLs

  Loop through a product list and run parallel jobs for each

  Customize Extraction Fields : 

  Update the prompt in the Information Extractor to include:

  Review title
  Response from company
  Specific feature mentions
  Competitor references

  Tune Summarization Style

  Change tone**: executive summary, customer pain-point focus, or marketing quote extract

  Enable sentiment aggregation** (e.g., 30% negative, 50% neutral, 20% positive)

  Expand Output Destinations

  Push to Notion, Airtable, or CRM tools using additional webhook nodes

  Generate and send PDF reports (via PDFKit or HTML-to-PDF nodes)

  Schedule summary digests via Gmail or Slack

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.googleSheets","n8n-nodes-base.function","n8n-nodes-base.readWriteFile","@n8n/n8n-nodes-langchain.chainSummarization","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.aggregate","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  [encoded data, 5556 characters]

metadata_json:
  {"categories":["automation","data extraction","data processing","integration"],"complexity":"complex","use_cases":["Scrape protected TrustPilot reviews at scale","Extract structured fields (date, rating, sentiment) from unstructured review text","Generate concise summaries and sentiment themes","Append insights to Google Sheets and send real-time webhook alerts","Persist raw and processed data to disk for auditing or downstream analysis"],"estimated_setup_minutes":45,"required_services":["Bright Data (Web Unlocker)","OpenAI (GPT-4o / API)","Google Sheets account/credentials","Webhook endpoint (for notifications)","Local filesystem access (for write-to-disk node)"],"key_features":["Bypass anti-bot protections with Bright Data Web Unlocker","Convert markdown review content to cleaned plain text","Information extraction via OpenAI to produce structured fields (product, date, rating, sentiment)","LLM-based summarization of themes and overall sentiment","Aggregate and merge individual records into batch output for storage/analysis and alerts to webhooks or Google Sheets"],"target_audience":["Product managers","SaaS growth & marketing teams","Customer support / CX analysts / teams /data analysts"]}


name: Real Estate Intelligence Tracker with Bright Data & OpenAI
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-05-21T13:33:31.376Z
updated_at: 2025-05-21T13:33:31.376Z
url: https://n8n.io/workflows/4281
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  Who this is for
  The Real Estate Intelligence Tracker is a powerful automated workflow designed for real estate analysts, investors, proptech startups, and market researchers who need to collect and analyze structured data from real estate listings across the web at scale.

  This workflow is tailored for:

  Real Estate Analysts** - Tracking property prices, locations, and market trends

  Investment Firms** - Sourcing high-opportunity listings for portfolio decisions

  PropTech Developers** - Automating listing insights for SaaS platforms

  Market Researchers** - Extracting insights from competitive housing data

  Growth Teams** - Monitoring geographic property trends and pricing fluctuations

  What problem is this workflow solving?
  Collecting structured real estate listing data from property websites is difficult due to bot protections and unstructured HTML content. Manual data collection is slow and error-prone, and traditional scrapers often get blocked or miss context.

  This workflow solves:

  Automated bypass of anti-bot protection using Bright Data Web Unlocker

  Conversion of unstructured HTML content into clean text using a Markdown-to-text LLM pipeline

  Structured extraction of key listing data like price, location, property type, and features using OpenAI

  Aggregation and delivery of insights to Google Sheets, local storage, and webhook-based alerts

  What this workflow does

  Convert to Text: Transforms scraped HTML/markdown into clean text using a Basic LLM Chain

  Structured Data Extraction: Uses OpenAI GPT-4o with the Information Extractor node to parse property attributes (price, address, area, type, etc.)

  Aggregate & Merge: Combines data from multiple pages or listings into a cohesive structure

  Outbound Data Handling:

  Google Sheets** – Appends the structured real estate data for further analysis

  Save to Disk** – Persists structured JSON/text data locally

  Webhook Notification** – Sends data alerts or summaries to any third-party platform

  Pre-conditions

  You need to have a Bright Data account and do the necessary setup as mentioned in the "Setup" section below.
  You need to have an OpenAI Account.

  Setup
  Sign up at Bright Data.
  Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions.
  In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication).

  The Value field should be set with the
  Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token.
  In n8n, Configure the Google Sheet Credentials with your own account. Follow this documentation - Set Google Sheet Credential
  In n8n, configure the OpenAi account credentials.
  Ensure the URL and Bright Data zone name are correctly set in the Set URL, Filename and Bright Data Zone node.
  Set the desired local path in the Write a file to disk node to save the responses.

  How to customize this workflow to your needs

  Target Multiple Sites or Locations

  Update the Bright Data URL node dynamically with a list of regional real estate websites

  Loop through different city/state filter URLs

  Customize Extracted Fields

  Modify the Information Extractor prompt to extract fields like:

  Property size, number of bedrooms/bathrooms

  Days on market

  Nearby amenities or schools

  Agent contact details

  Integrate with More Destinations

  Add nodes to export data to Notion, Airtable, HubSpot, or your custom database

  Generate automated reports using PDF generators and email them

  Data Quality and Logging

  Add validation checks (e.g., missing price or address)

  Save intermediate files (markdown, raw HTML, JSON output) to disk for audit purposes

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.googleSheets","n8n-nodes-base.function","n8n-nodes-base.readWriteFile","n8n-nodes-base.merge","n8n-nodes-base.aggregate","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5412 characters]

metadata_json:
  {"categories":["automation","integration","data processing","web scraping","data extraction"],"complexity":"complex","use_cases":["Large-scale collection of real estate listing data","Market research and trend monitoring","Sourcing investment opportunities","Feeding PropTech platforms with structured listing data","Automated alerts and reporting for growth teams"],"estimated_setup_minutes":45,"required_services":["Bright Data (Web Unlocker)","OpenAI (GPT-4o / Information Extractor)","Google Sheets","Webhook endpoint (optional third-party integrations)","Local disk/storage for file output"],"key_features":["Anti-bot bypass using Bright Data Web Unlocker","HTML/Markdown to clean text conversion via LLM chain","Structured field extraction (price, address, type, features) using OpenAI","Aggregation and merging of multiple listings/pages","Export to Google Sheets, save to disk, and webhook notifications"],"target_audience":["Real estate analysts","Investment firms","PropTech developers / SaaS teams building listing features"]}


name: Automatically Delete Spam Emails in Gmail on Schedule
author_name: Bao Duy Nguyen
author_username: duynb
categories: []
created_at: 2025-05-21T14:19:52.816Z
updated_at: 2025-05-21T14:19:52.816Z
url: https://n8n.io/workflows/4285
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who is this for?
  If you hate SPAM emails or don't want to clean them up frequently.

  What problem is this workflow solving?
  It automatically deletes SPAM emails for you, so you don't have to. Save a bit of your time.

  What this workflow does
  You can specify when to execute the workflow: daily, weekly, or monthly.

  Setup
  Select the preferred execution time
  Configure credentials for Gmail OAuth2

  How to customize this workflow to your needs
  There's no need. It just works!

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE71VXW/cNhD8KwTTR9EQJYoiBfTBsNMgBZIYsVM0tY2CH6s7xjzqIlG+XAz994I6fyW+Om0f+iZAy9mZ4e7wBjuLG3z89e2ZoWeWMhFd/f4DzvAKosLNDXZhiCoYeJ3qoOZSUCGY5KWlpZYWdK1NpbimlVUtF6WQZQ3U2qqQbVG0haGMW6FraRQwnOEIq7VXEY56sMMpxHF91K3WHiJY3MR+hCnDQa0AN/hwjN1KRWeU91tkIRWh05PDNwhWyvkhoanFgJvzm52M7afjj7Ftf1En21/9R3OE76HuuuIMmx5UBHsYcYOLvKhIXpGCnlHWUNqUxYGg5R84w+Pa/rhsusxw6Cw84qBYq0qoclJpXhIGXBJZgyZVyTSldQ5a6QdeZ71bLKBHKqLTMVi1RStng1ssYxK3XaeaIAKZmxCtBjgYzBLs6OH2KM7wuhtcdF3AzTkpeJ6RIr/M8Fr1agUR+iFdYz962F1nhP5a+Zlw68AnzhuAqwFPl9O0a/ob9MOMRw+KKbsVVggOlSkZoUJpwrhVRFPBiGmVbmvJdUHtg7Djvbe1V9Ai/f5WBr1XsQG97LqrefoY13kLeUuMyXPCpGRElJwRmTNhhBAgocXfC1/BMKjFbnx/vrlBP30aunDgLJomnOFuDb3aNcW7AcPTPCIWQnTKzxAzwXeHY1wWs4XzqH1l7rN5Vf1Oh2rjF6cPyl+laqSM6cYQ8RNLiwN6b6muq4pVFEjdmpIwU2qiOZeES1vnuSlFq9gjYIhIef9fPSV7PTWsZlRaIEUtDGG5pURVVhEjGWW2bIU0/ImnrfN3n15p8K9tWgCciOHL6VtXFxAPfaLSQxz7kL7v1vz/stmY0khbcqIKDoTVRhOta0ZKRfOi1lJy82hyT6MzV1v0tpvT4m92cK65LXnscSWSyfzp/pnOdz1u6gxvnI1L3JQsz/AS5lVvijzPsOlChJDy5sULtDf7tt3YP75+1AXU9vB5hBCRVoMbLsJFOFu6Aanb811AG+c96seAeljP0ee3KW8UWqs+OjN61aPoVoBid9cojdn3zRI0fhIQ9yYLXjOpdEsoN4IwlnMiS8mILgpVCqYZCLnXZPrvXS5EnlH2D0ym1bMmN+vOhfjnuG7Qh5Pjw7OX6M3Li3AKHkxEmyWEZEm8jei4BLTp+qvWd5s9PlxmWJnorgE3rfIDZHiAGF1YzMzgC5gx0X/XW+hxg69pwrjenZ83sWW1LdpCEiFtTlhNJVGs1qSqNCtBMMZ5ejhMFwKYBDUD7wuFlHrKJafOb+bn6Qd5PBdn2AULX3CTT5dph595mfbhPxtOexpM01/NYjEzewgAAA==

metadata_json:
  {"categories":["automation","email management","productivity"],"complexity":"simple","use_cases":["Automatic spam deletion","Scheduled inbox maintenance","Reduce manual email cleanup"],"estimated_setup_minutes":5,"required_services":["Gmail (OAuth2)"],"key_features":["Run on a schedule (daily/weekly/monthly)","Automatically delete messages in Gmail Spam folder","Minimal configuration required","Unattended operation"],"target_audience":["General users","Busy professionals","Non-technical users who want automated email cleanup"]}


name: Automate SAP Business Partner Analysis with OpenAI GPT-4o & Gmail Reporting
author_name: Ghufran Ridhawi
author_username: ghufran-ridhawi
categories: []
created_at: 2025-05-21T16:26:23.739Z
updated_at: 2025-05-21T16:26:23.739Z
url: https://n8n.io/workflows/4287
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who is this for?
  This workflow is intended for micro businesses, SAP users, companies, users or owners who need system simplicity in SAP. In micro businesses, SAP users or individuals, there must be the task of manually inputting a lot of data or here in partner businesses in SAP, the reality is that it is very time consuming and tiring, especially since we have to arrange it first or click one by one and send it. This is also a form of community service in n8n and n8n companies, as well as dedication to small businesses using SAP, SAP users, companies or owners who use SAP so that reality is no longer tiring and is able to answer existing reality problems automatically.

  How it works?
  Easy explanation:

  The First Manual Trigger Node is used when clicking to start the program running. It's like starting by clicking the button first.

  After that the HTTP Request will be sent to the next node, here containing SAP.

  After that, each function will program and process it into clean data.

  Then after that it will be sent to Gmail via the Gmail node. The AI ​​Agent will carry out the task of reporting, analyzing and sending it via Gmail, here using model Open AI.

  You can immediately see the data thoroughly, because the data has been processed. If you want to process it again, just direct the AI ​​system to process it again.

  And all duties and responsibilities have been completed

  Very practical and easy, plus its automatic nature. I'm sure you can understand it wisely. 

  Set up instructions
  Complete what is in the nodes as stated in the notes column.

  Because the other nodes have been set up neatly, what you have to set up is, first, you have to connect the Gmail and Open AI "Credential Accounts" only.

  After that, enter the email address you want to send or receive in the Gmail node parameters.

  Well, it's very simple.

  Everything is organized wisely, so you just follow the notes or setup instructions provided, or you can add other things according to your specific purpose and congratulations you are ready to use it.

  Requirements
  As a reminder:

  It must be arranged in nodes, what your business description looks like, also according to the conditions of your small business, so that the AI ​​Agent matches your business knowledge base. Must have (if not, make sure you are registered) in each "Credential Account" by following the guide on how to do it n8n the guide is very complete. Don't forget to save, and make sure the workflow is active and don't forget about "Account Credentials".

  How to customize this workflow to your needs

  You can directly organize your business knowledge base in these nodes, so that according to your business in its field and what services it sells or has or here is your business partner, you can then carry out tasks and answer them.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.gmail"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WX224bNxCGX0XgVQtoUh6GJ13VCZIiRdMESREECIxiSA6VRaWVql0FCQy9e7GKa9nR2rHsu5V2+O/HGf7k8EI0RcxEVFHVV/OzvPjw/P3T9e9iKpbck5hdiKbtemozvxziKCmvZfCyDk/JoUSuKUllJbLX1lVVZOZaasDkC6oSnaGIWJ22Br2Yip6X6wX1/GzDpXvH/Xb9bLVcL7jnImb9Zsu7qWhpyWIm3p29mTzddk3LXTd5Q5u+5c3kpzP94efJi9Xm6tUgSvNOzD6eT0W7Kjw8XnybmM9KRpkRjLIM6I2DVFIFMi6pbLXxlsXhgz1t+kHu63r42YYW9nqQqOMnS2q3tPhr08znvBFTsV51Td+sWjH7CEbLaXDyfCrWtKEl97zpxOxi903rPW+6faDaTS/BciKdq/NgE2fAQAmo2AyYSykxDbh0DYzbMvltSc1i8m67XNLm662U8yHqJp0/FS4FF5wxAZIKOCBFiNI5MFnZ7JTXNqgD3NnLydmc22uJ+7UN7S8HrgW18/yJmvYJXcZdg3Mop0rjj+mexCs+VxRLkhFYywRYKAI5T6ACuVxKKqmYA9/rNbdnLyfPPlE/ebUqvLgH6GI5hO9HNiO8eB9efcUbMhvJliFmUoClEEQbFFhnkw9W2uTkgff5l35DuZ+85W676LtbK51XhW+yqXCvQh/AfK2ch8w5igpQqgghyAyGg0SjYioRD2AvVpsl9ZPn+3X4dFVuX4QjaO5+ZT6wxSSTsd5DTU4Bsh2Wo/YQjYzJ2WK41OOk/cgex2R4P3ccwCiRC7EaKFllwEgIFDGAVWiy41qR7PU9pcn/fJ38uer5VqhuH3MZcmNbCXLq5RGbyKu2H5w0E+J2F9cUTHXGA1sqgNJFiOgdkNEBteeqtRzlVKeDKnwEKBfJrhoEydkBktKQbClAJmhJ2pEpOAqqTwZV8hGcVH3CGBCqTgZQk4EUcgW05KXP1jo3nlBzMqd5TD5tqpFtrhCV1YCIBkIJBjDKGKxSJmga5cQHcSp5bOv7gXodtObqQXKtwyHoIeTBWEzV51A1FzUKak8GtY9xEppSKpUAyiUFGJyHRJ5BkpE21ZAypVFO9yDOhycUSyZCqYD90EvYmoGcdMDJYfImIKUwbvnTl+h+c1LuwTkNLGtMGnSwEVBrhiCVg+BJ1xSpVJ3HUU93PbjH2MkjR0a2wDYXQCclDDUHV2x1MuToynXbn725le9T36/f8r9b7vrvAU89uGOxzDUCMpchexGSUQhYKmJWRUkuo+3jH013e4c70jsOp+O92rPd+VRQ7pvPLGaVFh1PRcd937Tzfab5C+ftoPl6U3gjZuKzGlL++dv4/eWicmDSCUE74wCtJwiD35ypXFAalDWK6VCzlvMgtRce8j27EEtqBtyPF/sbwF1d1D5yKpq28Bcxk7vz8930svMf07lRz9GxV/3vXRhHfcmo1PfQY4p3dGF3av5PMDrJO+4X4/n6bkWNiR7fC0aljufzA8KbS3hU87jln10Iav4eGvwtzfnyvzthj8JvfmS3+w+Zmv71PA8AAA==

metadata_json:
  {"categories":["automation","integration","data processing","reporting","ai"],"complexity":"medium","use_cases":["Automatically extract and clean SAP Business Partner data","Generate analysis and insights with OpenAI (GPT-4o)","Send formatted reports via Gmail (on-demand/manual trigger)","Reduce manual data-entry and partner-reporting tasks","Customize business knowledge base for tailored analyses"],"estimated_setup_minutes":20,"required_services":["SAP (HTTP API / endpoint access)","OpenAI (GPT-4o)","Google / Gmail account (Gmail API)","n8n instance with node access"],"key_features":["Manual trigger to start workflow","HTTP request to pull SAP partner data","Data cleaning/processing via code nodes","AI-driven analysis and reporting using OpenAI (lmChatOpenAi / agent)","Email delivery of reports through Gmail node','Easy customization of business knowledge base and node parameters"],"target_audience":["Micro businesses using SAP","SAP users and administrators","Small business owners wanting automation and reporting shortcuts (non-technical)  | operations/finance teams seeking faster partner analysis and reporting"]}


name: Convert RSS News to AI Avatar Videos with Heygen & GPT-4o
author_name: David Olusola
author_username: dae221
categories: []
created_at: 2025-05-21T17:52:54.270Z
updated_at: 2025-05-21T17:52:54.270Z
url: https://n8n.io/workflows/4288
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:32
description:
  🎬 Automated News-to-Video Workflow (n8n + Heygen + GPT-4o)

  📄 Overview:

  This n8n workflow turns news from an RSS feed (e.g., CNN) into short, AI-generated avatar videos using Heygen. It:

  Fetches news from an RSS feed.
  Logs headlines to Google Sheets.
  Uses GPT-4o or Google Gemini to generate a 30–60 sec script.
  Sends the script to Heygen to create an avatar video.
  Monitors and retrieves the final video.
  Logs video metadata (title, link, etc.) to Google Sheets.

  🎯 Ideal for content creators, marketers, or media pages repurposing written news into video content at scale.

  ⚙️ Setup Guide (No Sensitive Info)

  🔑 1. Heygen API

  Paid Heygen plan required.
  Add your API key in the Setup Heygen node:

      "heygen_api_key": "your_key_here"
    Optional: Set "avatar_id" and "voice_id" as desired.

  💡 2. AI Model: GPT-4o or Gemini

  GPT-4o**: Use OpenAI’s node or HTTP request with your API key.
  Gemini**: Link your Google Cloud project and connect the Gemini node using OAuth2 credentials.

  📥 3. RSS Feed

  Add an RSS node (e.g., CNN).
  Extract title, link, and content.

  📊 4. Google Sheets + Drive

  Connect via OAuth2:

    "Google Sheets account 2"
    "Google Drive account 2"
  Replace sheet IDs in:

    Log news to sheets
    Log video URL and title to sheets

  📹 5. Create Video (Heygen)

  Send a POST request to Heygen's API using the generated script, avatar, and voice ID.

  ⏳ 6. Monitor Status

  Poll the status endpoint until video is ready.
  Capture the download link.

  🧾 7. Log Final Output

  Save video metadata to a Google Sheet for publishing or archiving.

  Set up video: Link in Workflow 

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.rssFeedRead","n8n-nodes-base.manualTrigger","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.limit","n8n-nodes-base.googleDrive","n8n-nodes-base.code","n8n-nodes-base.limit","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WX3W7bRhbHX4XgxV7xeOf7Q1dNE2y2QLdu46B7ERjFmZkzMhGK1JK01cAw0MfYfb0+yYKyY8kWFSvNnSAe/Oc353tuyzqVi7I5b/Mv3//Cz+33P77jF7qsyhWNWC5uy7odRmwj/TDZCcZYNIpZHgVzShpmgtfRSOt1CMx6GxVn0jBlmdZotDPKO3JaB28ox7IqR1qtGxzpdU9puKDxev26W60bGimVi7G/pruqbHFF5aJ89QP83G2op1T8RJuhGLvi1zpRV7yllnocu77Y1ONV8U/6tKS2+Fvx9uf3qpvOwOVQLj5cVmXbJZp+3t7f0zIuUqYMNkgNKoYIwVsGXsiUkGRM1pd75xevltSOk+Kn9fTPd61r/966Fra60GC7jFdYt2f4YLfuhnqsu7ZcfADuGau0Y5dVucYeVzRSP5SL27t7uV+pH7aW/MzdVQ+AlLnIkgVwMntQwmvwGT0E52NSJjqW0g7wYqzjx0/FT91IO8YdXsCBzoatzYPJPp5gilWgDvDK2LXjdJtFWR6gPoIyZaV2XkKKKYPy2YJnmIFxLpjLKK1ns6D860k5Z99AGkJgmpgAky0H5ZQCZEqAzoGM4sJZEWZJ5V8gZYZV/jDkJ/qUZ2WYcGCl4qCMI3DWOfA6oWc6YbB2R/ru4qJ4R5iOUvbD8A+i9GDzBNMaVglzQmbu4LwV3CmdgAKPU2Z6cCgtRIwmZ8coot7B/fuK2iI2dfxYt8vizz/++56Gsdh0/cfcdJs///jfUeoVttfYvO/r5ZL6g4pSp3E/UnNHMmCQwMgTqIgBXCYLLhsbkAfpKe9RYz0eBdvcf9zn0eZzgW8oXHXdx22TTF4xZYQAhsyAQqPBa08QMCWVk7PKTJ56yfNVic0GPw3n1+P6enyDUzvO2Az0eDlrRdZOK+ApGVCCLITsEwThlUMjvaK9GnxLY/HqBkfs77vo0YtejeP6Hf3nmobn95WnNTR1Jh4ZkwpJM87Be2dAJZchcIYQPPckjTWc047xdU840rdiuq/HJCucdj6CdSqCij4C2sBB2oQqpYRMyb0mMY2th7FzvEnQwUCYOu4JYPJMPYJFDJZhimBlyKBIB3AoImCmLJx3MoW9BH7Tbdqmw1Tc/EXXia/2XExRM68ckM4ICpOBwLIBTNbjNAfIux3gj/XqCyXWPHx94jRxYq96JNJKykBCgWSGg0pegU8kQSarEXkgxXCvLLpu2VDxpq9vjg/R5dbos02qBwzN533lCa5wp0V411aDZhKDAuWkAiWTBh9EAuuEtFxHzWivPtbYD1REXG+PO0Ybu3QwmPRpqbeLa5Ao0FKGyLQGlZSHYH0ET4Q2kvMBw7O4Hh/ts4E17CsDy6TjKmoORgo5FSmD4EIClVFnwsyd3UNqumXRPqyNwxXROLwQ3ovPRk8olTiJUp3pvSUOEw+Wg5Q5gmKWQRBRQdLemhh8Stbsua5b3pdrcd03BbapGOuxoW/FZpU9pZB31EYSScwZVHABFAoDwRGD5JJTSluRzF6n2fT1SMUQ+3p9yn7crF5f4Xi+pvZV/RzVOVY5dsIyIu4uqxLjOFXh/SisyoHGsW6X2yWLfqd4Pcme94n6clHe8GnburlX2M5mloyySTkQDhMo5gJ4HwwwbZLxTKaI0wMgdm1LcZLaCm/3gsVtucJ6Qv5wu31XfHGmbk2rsm4T/V4u2N3l5V310P3mhA6fGscF+KzCl9J9VuvxyDm1I41mVuhxEZ0Tet4YZhWezNM5lS/uBbOST/JzcVti/duUjde4pH91iZoXvH9g/lz/qYPmmOeXhFnYZ2N7NtNmx9Ss2kFSzukd2xSeK1a7SJ7ep2axZhL0aMK8IDWXDnNaT/f5WamXHypzwodvrxnxu7v/A1cdbIheEQAA

metadata_json:
  {"categories":["automation","content-creation","AI/ML","media-integration"],"complexity":"medium","use_cases":["Automatically convert news articles into short videos","Scale social media/video content repurposing","Automated publishing & archiving of video summaries","Rapid prototyping of avatar-led news clips"],"estimated_setup_minutes":45,"required_services":["Heygen (paid plan)","OpenAI GPT-4o or Google Gemini (Google Cloud)","Google Sheets (OAuth2)","Google Drive (OAuth2)","RSS feed provider (e.g., CNN)","n8n automation platform"],"key_features":["Fetches items from an RSS feed","Generates 30–60s video scripts with an LLM","Creates avatar videos via Heygen API (avatar/voice selection)","Polls Heygen for processing status and retrieves final video","Logs headlines and video metadata to Google Sheets/Drive for tracking"],"target_audience":["Content creators","Social media managers","Digital marketers/media teams repurposing content at scale\",\"Automation engineers/tech-savvy creators"]}


name: Automate Business Lead Scraping from Apify to Google Sheets with Data Cleaning
author_name: David Olusola
author_username: dae221
categories: []
created_at: 2025-05-21T18:47:26.249Z
updated_at: 2025-05-21T18:47:26.249Z
url: https://n8n.io/workflows/4295
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:31
description:
  🚀 Automated Lead Scraper Workflow (Apify + n8n + Google Sheets)

  🧠 What It Does

  This n8n workflow automates the process of scraping leads using Apify, cleaning the extracted data, and exporting it to Google Sheets—ready for use in outreach, prospecting, or CRM pipelines.

  🔄 Workflow Steps

  ✅ Start – Manually triggers the workflow.
  🧩 Set Variables – Stores required Apify credentials:

     APIFY_TOKEN: Your Apify token.
     APIFY_TASK_ID: The Apify task to run.
  🕸️ Run Apify Scraper – Launches the scraper and fetches the dataset.
  🧹 Clean Data – Processes scraped results to:

     ✂️ Strip non-numeric characters from phone numbers.
     ✉️ Format emails (lowercase + trimmed).
  📊 Export to Google Sheets – Appends clean data to your spreadsheet:

     🏢 company name → from title
     📞 phone → cleaned number
     📍 address → from scraped info

  🛠️ Requirements

  🕷️ Apify Account

    A valid APIFY_TOKEN
    An existing Apify task (APIFY_TASK_ID)

  📗 Google Sheets Access

    OAuth2 credentials set up in n8n (e.g., "Google Sheets account 2")

  🚦 How to Use

  ⚙️ Open the Variables node and plug in your Apify credentials.
  📄 Confirm the Google Sheets node points to your desired spreadsheet.
  ▶️ Run the workflow manually from the Start node.

  📥 Output

  A ready-to-use sheet of cleaned lead data containing:

  Company names
  Phone numbers
  Addresses

  💼 Perfect For:

  Sales teams doing outbound prospecting
  Marketers building lead lists
  Agencies running data aggregation tasks

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","integration","data processing"],"complexity":"medium","use_cases":["Outbound sales prospecting","Building/maintaining lead lists","CRM enrichment and import","Agency data aggregation for clients","Marketing contact list generation"],"estimated_setup_minutes":15,"required_services":["n8n (cloud or self-hosted instance)","Apify (account with APIFY_TOKEN and an existing APIFY_TASK_ID)","Google account with Google Sheets access and OAuth2 credentials","Destination Google Spreadsheet"],"key_features":["Runs Apify scraper task and retrieves dataset","Cleans and normalizes scraped fields (phones, emails)","Maps scraped fields to columns (company, phone, address)","Appends cleaned records to Google Sheets","Configurable via Set/Variables node for tokens and task ID"],"target_audience":["Sales teams","Marketers","Agencies and data aggregation teams"]}


name: Extract and Structure Thai Documents to Google Sheets using Typhoon OCR and Llama 3.1
author_name: Jaruphat J.
author_username: jaruphatj
categories: []
created_at: 2025-05-22T02:34:50.107Z
updated_at: 2025-05-22T02:34:50.107Z
url: https://n8n.io/workflows/4300
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:32
description:
  ⚠️ Note: This template requires a community node and works only on self-hosted n8n installations. It uses the Typhoon OCR Python package and custom command execution. Make sure to install required dependencies locally.

  Who is this for?

  This template is for developers, operations teams, and automation builders in Thailand (or any Thai-speaking environment) who regularly process PDFs or scanned documents in Thai and want to extract structured text into a Google Sheet.

  It is ideal for:
  Local government document processing
  Thai-language enterprise paperwork
  AI automation pipelines requiring Thai OCR

  What problem does this solve?

  Typhoon OCR is one of the most accurate OCR tools for Thai text. However, integrating it into an end-to-end workflow usually requires manual scripting and data wrangling.

  This template solves that by:
  Running Typhoon OCR on PDF files
  Using AI to extract structured data fields
  Automatically storing results in Google Sheets

  What this workflow does

  Trigger: Run manually or from any automation source
  Read Files: Load local PDF files from a doc/ folder
  Execute Command: Run Typhoon OCR on each file using a Python command
  LLM Extraction: Send the OCR markdown to an AI model (e.g., GPT-4 or OpenRouter) to extract fields
  Code Node: Parse the LLM output as JSON
  Google Sheets: Append structured data into a spreadsheet

  Setup

  1. Install Requirements

  Python 3.10+
  typhoon-ocr: pip install typhoon-ocr
  Install Poppler and add to system PATH (needed for pdftoppm, pdfinfo)

  2. Create folders

  Create a folder called doc in the same directory where n8n runs (or mount it via Docker)

  3. Google Sheet

  Create a Google Sheet with the following column headers:

  | book\_id | date | subject | detail | signed\_by | signed\_by2 | contact | download\_url |
  | -------- | ---- | ------- | ------ | ---------- | ----------- | ------- | ------------- |

  You can use this example Google Sheet as a reference.

  4. API Key

  Export your TYPHOON_OCR_API_KEY and OPENAI_API_KEY in your environment (or set inside the command string in Execute Command node).

  How to customize this workflow

  Replace the LLM provider in the Basic LLM Chain node (currently supports OpenRouter)
  Change output fields to match your data structure (adjust the prompt and Google Sheet headers)
  Add trigger nodes (e.g., Dropbox Upload, Webhook) to automate input

  About Typhoon OCR

  Typhoon is a multilingual LLM and toolkit optimized for Thai NLP. It includes typhoon-ocr, a Python OCR library designed for Thai-centric documents. It is open-source, highly accurate, and works well in automation pipelines. Perfect for government paperwork, PDF reports, and multilingual documents in Southeast Asia.

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.executeCommand","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.readWriteFile","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["automation","integration","data processing","OCR","AI"],"complexity":"complex","use_cases":["Automated extraction of structured fields from Thai PDFs/scanned documents","Local government paperwork digitization","Enterprise Thai-language document processing","Feeding parsed document data into reporting or downstream automation"],"estimated_setup_minutes":45,"required_services":["n8n (self-hosted) with community node support","Typhoon OCR (typhoon-ocr Python package)","Python 3.10+ and ability to run local commands","Poppler (pdftoppm, pdfinfo) installed and on PATH","LLM provider (OpenAI / OpenRouter or compatible model)","Google Sheets API / Google account"],"key_features":["Run Typhoon OCR on local PDF files","Use an LLM to extract structured fields from OCR markdown","Execute custom Python/command-line OCR steps from n8n","Parse LLM output as JSON and map fields","Append structured results to Google Sheets automatically"],"target_audience":["Developers","Operations / DevOps teams","Automation builders / RPA engineers"]}


name: Monitor SEO Keyword Rankings with LLaMA AI & Apify Google SERP Scraping
author_name: Gegenfeld
author_username: gegenfeld
categories: []
created_at: 2025-05-22T03:27:43.959Z
updated_at: 2025-05-22T03:27:43.959Z
url: https://n8n.io/workflows/4301
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:32
description:
  Who is this template for?

  This SEO Keyword Monitoring workflow template is perfect for SEO professionals, digital marketing agencies, website owners, and content strategists who need to track their search rankings and get actionable insights when they're not performing well. Whether you're managing multiple client sites, monitoring your own brand's visibility, or conducting competitive analysis, this automation provides comprehensive rank tracking with AI-powered recommendations.

  What problem does this workflow solve?

  Manual keyword rank tracking is time-consuming and often provides limited actionable insights. SEO professionals typically struggle with:

  Manually checking search rankings across different countries and languages
  Identifying why a website isn't ranking for target keywords
  Getting specific, actionable recommendations for SEO improvements
  Tracking competitor performance and market positioning
  Scaling rank monitoring across multiple keywords and domains
  Generating professional reports for clients or stakeholders

  What this workflow does

  This n8n workflow automates comprehensive SEO keyword monitoring with intelligent analysis and reporting. It tracks your rankings in Google search results and provides AI-powered insights when your site isn't performing as expected.

  Here's what it includes:

  Multi-language web form** that accepts keyword, domain, country (24 options), and language (12 options)
  Intelligent localization** that converts country/language selections into proper API codes
  Real-time Google SERP scraping** using Apify's Google Search API (up to 100 results per query)
  Automated rank detection** that checks if your domain appears in the search results
  Dual email reporting system:**
    Success reports: Beautiful HTML tables showing your rankings, competitor positions, titles, URLs, and descriptions
    AI-powered improvement reports: When your site doesn't rank, an AI agent (LLaMA 70B) analyzes the search results and provides specific, actionable SEO recommendations
  Professional email formatting** with HTML markup for easy sharing with clients or teams

  Setup

  Getting started is straightforward:

  Connect your Apify account

  Sign up for a free Apify account 🡥
  Get your Personal API Token from Settings → API & Integrations
  Replace YOUR_API_TOKEN in the HTTP Request node with your actual token

  Configure the AI model

  The workflow uses Groq AI with LLaMA 70B by default
  Connect your Groq account or replace with OpenAI, Claude, or another LLM
  The AI agent analyzes search results and provides tailored SEO recommendations

  Set up email delivery / data export

  Configure the Mailjet nodes with your email credentials
  Or replace with Gmail, Outlook, SMTP, or other email providers
  Or replace with/add Google Sheets, Airtable, Notion or similar service, for data storage
  Set your sender and recipient email addresses

  Test the workflow

  Click "Test workflow" to access the web form
  Enter a keyword, domain, country, and language
  Check your email for either ranking results or AI-powered recommendations

  Activate the workflow

  Turn on the trigger so you can access the form anytime
  Share the form URL with team members or clients

  How to customize this workflow

  This template is highly flexible and can be adapted for various SEO monitoring needs:

  Scale up monitoring:** Add loops to track multiple keywords simultaneously
  Alternative outputs:* Replace email nodes with *Google Sheets, **Airtable, or Notion for data storage
  Team notifications:* Connect to *Slack, **Discord, or Microsoft Teams for instant alerts
  Scheduled monitoring:* Add *cron triggers** for daily, weekly, or monthly automated checks
  Enhanced analysis:** Integrate additional AI models for deeper competitive analysis
  Custom reporting:** Modify the HTML templates to match your brand or client requirements
  Data persistence:* Add *database connections** to store historical ranking data
  Competitor tracking:** Expand the logic to monitor multiple domains for the same keywords

  Key features

  24 country support:** Track rankings in major markets worldwide
  12 language options:** Monitor multilingual SEO performance
  AI-powered insights:** Get specific recommendations when rankings are low
  Professional reporting:** HTML-formatted emails ready for client delivery
  Competitor analysis:** See who's ranking above you with full SERP data
  Scalable architecture:** Easy to extend for enterprise-level monitoring

  This workflow transforms manual rank checking into an intelligent, automated system that not only tracks your performance but actively helps you improve it with AI-driven recommendations. Developed by Gegenfeld 🡥 and codecope 🡥 in Berlin, Germany.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.formTrigger","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatGroq","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.mailjet","n8n-nodes-base.mailjet","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE52W227bRhCGX4XgNcfdw+xJV3UDJzXaNEFktCgCo9jDrMxaIhWSjpMYfveCsmvJNpXYvhEEafbfb2Z2DldlncpZGRfzt68j/2se/n5fn5u+rMoVDb6cXZV10w++iXQ82qFJwilvpHBJKjTESAelEzlC6VLknnl0UScrTBBSMC1cVigZi2gIeVmVA63WSz/Qq45SP6fhYv2qXa2XNFAqZ0N3QddV2fgVlbPybdvUQ9sV86N3xW/09bLtUvHBN+d1s+iLy3o4Kw6PYd1eUkepeNO2iyUVc/JdPCsO3x8X89j5dd0sxkv9oi9nH0+rsmkTjV+vbhzPjJmIpMEowwClEBAij6CSUtmaEIQaoW+Bfj05eV98oE8X1A+j6tf1+GtjG9jIQvA9HZwNw3prs277eqjbppx9BMlYBUKx06pc+86vaKCuL2dX1zdSf1LXbyzxQFxXt4BOceJGcNBOc0AlBDibEmBwRhiWOOqwBZwPvttPlttuddLViwV1D8gM3pFdUjhr2/ObdGvDJKKFlIQF1NaDJaMhKJUsYshmc/l3nRE7zmQpgmFGQs4bPSbAe1IQPLMyKIVB4taZ39vol/U32utPbBM9cESJp4V4hwlNUkkhOC4NYPRhfAEKiLGQ0AufldwyHee9NHW+z8LxiSi7AUqOpyg5kNEaMFoFLiUPObJsbPA2aruFOUr1ULyuaZn6vVQ9PXyF9mlY8gDvsJIlyol5cBQFYEoZnI0eUtJ8rBDphdhivenaT8Xh8Rbp58Y2P225lr5ZxDNfNwfL1aszP4z29xkRbcXFDxH5HWDQZCSXCuKYOkxZgg2IQBhsUqhIGrVTJUfvisMFNcMTEP2t3Q6d1KwCzn6Md2DvAJkk4lFoINQWUHAOwekMGFKIpJySWe8AUpOK10Qp+HheHK18vdyb4PHPfx8meVPPT0G8AyTHlVJag5HKAGbJIDDuIOssnBGCcsgPAD9Qf7EcihMflvQiSKkrwOdAWm6Y8ImDlDGO/YOBV2iAGE/WCqtp0xBuIX+5qJfpBu8ZLQSlfRLVtmgpkJdOO1A6R0DjFHgTMxiNwaRILIV7LbqO51+LP9qBcH/VboxGm/twbpPXx5VRxrYZxoc6K8v94dM6Ja4TQhZJAKLnYIO0gEYrHQ3XGdMkqHwZKL4UNFnjjEAJInsJGDKB5TyARp1QG0cOcRJUPRsU7NgPjX4haTbBZK0QdPJ8dDiBZS6C5VZYg17ea9g7pOKFpC9OfkBymxZpkDKgMBYChgTcBGmc986H6eTz55NupvBLQ5ocKu91BieUBmQpQ8CsIWrrDIs5ekmToM/mlMgqgc/EPK1KH4f6M5Wz7Jc9VWVPwzCupONR+kLxYpR/1yXqyln5mY8an2/Ob5Yq7XV0OTHAxDkgIw4+ughSkTHBOyH9OApi2zQUR6mN8HEeP1e+HsE/Xm322H09bmNVlXWT6Es5Y9en1fbAxOx7ZH56Xd1uklNXPl7LJgX+3wJmV6Wv/xkH6oVf0Ns20fKe3ATQI/uH2ncIU3zTS/q0k3d3Twl9dwpP6u1mY6/i98bmpOrumjeluruTTgrci8iUwuQiOSF1ff0fo+tewzAOAAA=

metadata_json:
  {"categories":["automation","integration","seo","analytics","ai"],"complexity":"medium","use_cases":["Automated keyword rank monitoring","AI-powered SEO improvement recommendations","Competitive SERP analysis","Multilingual/multi-country rank tracking","Client-ready reporting and alerts"],"estimated_setup_minutes":30,"required_services":["Apify Google Search API (SERP scraping)","Groq with LLaMA 70B or alternative LLM (OpenAI, Claude)","Email provider for delivery (Mailjet, Gmail/SMTP/Outlook)"],"key_features":["Multi-language web form (keyword, domain, country, language)","Country/language localization to API codes","Real-time Google SERP scraping (Apify) up to 100 results","Automated rank detection for target domain","AI agent analysis providing actionable SEO recommendations (LLaMA) when rankings are low"],"target_audience":["SEO professionals","Digital marketing agencies","Website owners / webmasters / content strategists\",\"Growth/analytics teams"]}


name: Airtable Base Backups to S3
author_name: Autonomous Work
author_username: autonomouswork
categories: []
created_at: 2025-05-22T04:33:58.776Z
updated_at: 2025-05-22T04:33:58.776Z
url: https://n8n.io/workflows/4302
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  This workflow exports every table in a base as its own CSV, saves the files in a time-stamped folder in Amazon S3, pings you on Slack, and optionally prunes older copies. You get an automated weekly backup that is easy to inspect or re-import as needed. You can easily swap the S3 node for the storage provider of your choice.

  ++How it works++

  Weekly Backup
  Schedule trigger fires weekly
  Sets and formats the week ex. [2025-W12]
  Create a folder in S3 bucket with the week
  Loops through all tables in Airtable base creating CSVs and uploading to the new path
  Slack message is sent on completion

  Monthly Prune
  Schedule trigger fires weekly
  Sets a cut-off date 4 weeks in the past
  Lists folders in S3
  Deletes all folders &gt; 4 weeks old

  ++Setup Steps++

  Clone workflow
  Swap credentials for Airtable, AWS, and Slack
  	Ensure AWS credential has appropriate IAM policy to manage bucket & objects
  Set workflow to "Active" 

nodes_used:
  ["n8n-nodes-base.airtable","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.airtable","n8n-nodes-base.convertToFile","n8n-nodes-base.awsS3","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.awsS3","n8n-nodes-base.awsS3","n8n-nodes-base.awsS3","n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.slack","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["backup","integration","automation","data export"],"complexity":"medium","use_cases":["Automated scheduled backups of Airtable bases","Disaster recovery and archival of table data","Auditing or periodic snapshots for compliance","Easily re-importable CSV exports for data migration","Team notifications on backup completion"],"estimated_setup_minutes":20,"required_services":["Airtable","Amazon S3 (AWS)","Slack","AWS IAM (appropriate bucket/object permissions)"],"key_features":["Exports each Airtable table to its own CSV","Creates time-stamped folders in S3 (e.g., 2025-W12)","Weekly scheduled backup trigger","Optional pruning routine to delete folders older than 4 weeks","Slack notification on completion or errors (configurable alerting/communication channelable to other providers)"],"target_audience":["IT administrators","DevOps","Data engineers/analysts who manage Airtable data backups and exports"]}


name: Track Google Search Rankings with Bright Data, Google Sheets & Gmail
author_name: Daniel Shashko
author_username: tomax
categories: []
created_at: 2025-05-22T10:43:11.946Z
updated_at: 2025-05-22T10:43:11.946Z
url: https://n8n.io/workflows/4310
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  This workflow automates daily or manual keyword rank tracking on Google Search for your target domain. Results are logged in Google Sheets and sent via email using Bright Data's SERP API.

  Requirements:  
  n8n (local or cloud) with Google Sheets and Gmail nodes enabled  
  Bright Data API credentials  

  Main Use Cases

  Track Google search rankings for multiple keywords and domains automatically
  Maintain historical rank logs in Google Sheets for SEO analysis
  Receive scheduled or on-demand HTML email reports with ranking summaries
  Customize or extend for advanced SEO monitoring and reporting

  How it works

  The workflow is divided into several logical steps:

  1. Workflow Triggers
  Manual:** Start by clicking 'Test workflow' in n8n.
  Scheduled:** Automatically triggers every 24 hours via Schedule Trigger.

  2. Read Keywords and Target Domains
  Fetches keywords and domains from a specified Google Sheets document.
  The sheet must have columns: Keyword and Domain.

  3. Transform Keywords
  Formats each keyword for URL querying (spaces become +, e.g., seo expert → seo+expert).

  4. Batch Processing
  Processes keywords in batches so each is checked individually.

  5. Get Google Search Results via Bright Data
  Sends a request to Bright Data's SERP API for each keyword with location (default: US).
  Receives the raw HTML of the search results.

  6. Parse and Find Ranking
  Extracts all non-Google links from HTML.
  Searches for the target domain among the results.
  Captures the rank (position), URL, and total number of results checked. Saves timestamp.

  7. Save Results to Google Sheets
  Appends the findings (keyword, domain, rank, found URL, check time) to a “Results” sheet for history.

  8. Generate HTML Report and Send Email
  Builds an HTML table with current rankings.
  Emails the formatted table to the specified recipient(s) with Gmail.

  Setup Steps

  Google Sheets:
     Create a sheet named “Results”, and another with Keyword and Domain columns.
     Update document ID and sheet names in the workflow’s config.

  Bright Data API:
     Acquire your Bright Data API token.
     Enter it in the Authorization header of the 'Getting Ranks' HTTP Request node.

  Gmail:
     Connect your Gmail account via OAuth2 in n8n.
     Set your destination email in the 'Sending Email Message' node.

  Location Customization:
     Modify the gl= parameter in the SERP API URL to change country/location (e.g., gl=GB for the UK).

  Notes

  This workflow is designed for n8n local or cloud environments with suitable connector credentials.
  Customize batch size, recipient list, or ranking extraction logic per your needs.
  Use sticky notes in n8n for further setup guidance and workflow tips.

  With this workflow, you have an automated, repeatable process to monitor, log, and report Google search rankings for your domains—ideal for SEO, digital marketing, and reporting to clients or stakeholders.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4988 characters]

metadata_json:
  {"categories":["automation","integration","data processing","SEO"],"complexity":"medium","use_cases":["Automated daily or on-demand Google keyword rank tracking","Maintain historical ranking logs in Google Sheets for SEO analysis","Send scheduled HTML email ranking reports to clients or stakeholders","Monitor multiple keywords and domains with location-specific SERP checks","Extendable workflow for advanced SEO monitoring and alerts"],"estimated_setup_minutes":20,"required_services":["n8n (cloud or self-hosted)","Bright Data SERP API (API token)","Google Sheets (Google account)","Gmail (Google OAuth2 for sending email)"],"key_features":["Scheduled (daily) and manual triggers","Reads keywords/domains from Google Sheets","Formats keywords for SERP queries and processes in batches","Requests Google SERP HTML via Bright Data and parses results","Identifies domain rank, result URL, and timestamp; records total checked results"],"target_audience":["SEO specialists","Digital marketers","Agencies reporting to clients or stakeholders」「Developers/automation engineers setting up SEO workflows"]}


