# templates

name: Automate WordPress Category Mapping with GPT-5 Mini (Azure OpenAI)
author_name: Khairul Muhtadin
author_username: khmuhtadin
categories: []
created_at: 2025-08-10T04:00:36.681Z
updated_at: 2025-08-10T04:00:36.681Z
url: https://n8n.io/workflows/7207
scraped_at: 2025-12-24 13:02:46
description:
  WP Category Toolkit automates mapping content topics to your WordPress category IDs using your WordPress REST API and a GPT-5mini model.  



  It replaces manual copy-paste and guesswork when assigning categories, speeds up publishing, and reduces tagging errors so your site stays organized and search friendly without you learning new dev magic (just a bit of prompt craft).

  💡 Why Use WP Category Toolkit?

  Saves time:** Cuts hours of manual category lookup and mapping—deploy batches of posts in minutes, not coffee breaks.  
  Stops messy tagging:** Eliminates inconsistent category assignments so your archive and SEO behave themselves.  
  Measurable improvement:** Expect faster publish cycles and fewer category fixes (reduce manual mapping errors by ~90%).  
  Competitive edge:** Uses an LLM to interpret topic intent, so your categories align with content meaning, not guesswork—like having a librarian who understands your jokes.

  ⚡ Perfect For

  Content Managers:** Keep large WordPress catalogs neat without the spreadsheet gymnastics.  
  Agencies:** Onboard client sites faster by automating taxonomy mapping across projects.  
  Developers & Automators:** Add an LLM-powered mapping step to content pipelines without building custom classifiers.

  🔧 How It Works

  ⏱ Trigger: Manual start (kick it off when you’re ready to map categories).  
  📎 Process: Pull all site categories from your WordPress REST endpoint, aggregate the list, and feed the source content + current topic into the mapping step.  
  🤖 Smart Logic: A Chain LLM node (Category-Mapping) uses a small prompt to decide which WordPress category IDs match the content topic (GPT5-mini handles the reasoning).  
  💌 Output: A clean category ID mapping you can paste into your Body Post WordPress node or use to patch posts automatically.  

  🔐 Quick Setup

  Import JSON file to your n8n instances → n8n Import Link  
  Add credentials: WordPress API credential & Azure OpenAI (GPT5-mini) credential or you can use usual open AI node 
  Update: Replace the WP endpoint URLand any post-body endpoints you’ll write back to  
  Test: Run with a sample post and copy the output mapping into your Body Post WordPress node to confirm IDs match expected categories

  🧩 You'll Need

  Active n8n instances → n8n Partner Link  
  WordPress REST API access and credentials (wp-json access)  
  Azure OpenAI account with access to GPT5-mini  
  Integrations: WordPress API node, Chain LLM / Azure OpenAI node  
  (Optional) Staging WordPress site to test mappings safely

  🛠️ Level Up Ideas

  Auto-write category descriptions based on mapped content using the LLM. (It’ll sound smarter than your coffee.)  
  Patch posts automatically after mapping so mapping becomes truly zero-touch.  
  Add fallback heuristics: if the LLM is uncertain, route to a Slack/Microsoft Teams approval step.

  Made by: Khairul  
  Tags: WordPress, Categories, AI, n8n  
  Category: WordPress  
  Need custom work? Contact me
   

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatAzureOpenAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE61X627bNhR+FU4t0MQwHV2om4Gg8xw0y7C2WWO06BKjoUTK5iyJmkQ10QIDe4kBw/7s3fYEe4Qd2ortxHZ3q3/EMkV+5/ad7zB3RsYVNfp3hsgrRfOYnzGjb8S255p+6CQeIWZosTgwkyg0zYR7DiEBZVZCIt8nphkwHnpmYHqEeb4dkiRwTD82uobiWZFSxYclZ9UFV3UxlLDCFQcDqqz5vGvkkvHK6F+CdW3V5IHDbTPGnDgME892cRixGLsssCMnCrlDLEDOacZh94US8axBr6TiRNtrCr2aBzlewOKIVrxXLTbpPbClkJVQQuZg0bLsruMFY1ikJeApXlY6C7FMZWn0na5xI5iawpNvdo0pF5OpMvqWCT9imSuewy/jyRP0x6+/oEFRlDwWECsaTUWF3slylqTy5vlVfpVf1EUhS4XUlKO45FTJEkUNqnjORD5BsUwSzvt6Z6dzTptzmvY7HXRZ0KagaS/jR7NpVk8Vhd3jg6lSRdU/Otr19lBjjKY0n6FG1l+gP3//7WdjvszLW4huEbc177a5jmM75onrYJ8lDiah5WMaBDYOPJO5rpO4lkk2c01LtTfJGc1rmo5KMZnwcjvPtrmV5/1+mZ5LTM/xcWCHFiauG4NLiY257SdhktDICf2dHHD/NQewTcyuZe8lAVmTwN4ggePaj0hwXsqYVxVUEaMYKjDh6Eaoqa5Dieoy1etneVGr5cq7c80EBscFTSv9ciiLBl1fx0ChiSwb9EMl8+trlJQyQ53OV5I16FxWSjOLAdeqqtPRx85pBZwTOaoaeMhQAfsLhWQOh4b3WC9pUQDTlicWhjQVAaROFYpoPENK7jPyCf4Q6ltB5HuYm2YE/LFDDKrgYFAMFpHA4iHd6NVTrtAgTVHrlYCu31ctzfE3/MeaV+phuRyT7KKSAQkGlPvWiIGoIpW9rOkJdnRTYJ1L+D76aB/FK+vPC15+KOiEH0NLgxlZaCMtM2kNGYLiwPaFZaPQ1UpEztlwVbeRdn6pYI8W+8bNfQYHhdAp3Ki2dvjB636bz8lp8qacDRWVZxdvspNynTugCxRuGRY6OKG3aHB2aMwfl4b07HVz+yR0Xd/HDvOgiXzTw9T3TUwtL4wSO4gCc6M4g8mk5BMtX8CElst7y0PvNz8sDgm9ncV5mNjV2f76GWhxBuQ9oTCGPiFX1CJBFBIchB7QLSAODn3LxHYAEsFdZgdevI7onvy4Jf86mi8hnKN1SCk0K3SsyHuLv9+m2cOwYKTtDEvxW937x3d331y8fgUKU4IVkTQHTzXdDudzgImoiqfa+CL2DJIKfFucbp/f0rRux1+7ApDvZY1oyRHNEb8Flird1ROwnfGyh7TGtwqj9KjJlvGB8qC7O/T04NlIFiJGw6mUFS8BhKGRUCkHFZjx8tlhT0Cqe9rHnqwVKFJvpTnHx+jKGPF4moP6TZorAz1Hl84YaWz4/H/sATA4ETAnUxBDxdNUTDjcN9AB0HlpjXxGazoS9ILGagntf27or0UFo7xNU/C50UeiqJbQIUCjS2uM5nNdfN2DTCt8rcGFHiq9q1zmaXM/eVZo2rKWesF6KOcftS+MgYErwDH01NAvly4Y8zFQdDk+Wg1bCt52R/b8VU9y27UjxgLse36Cie2FOCRhCDeKmPkW8X3mb1whTguFXZyJXPyDbkyz4ZSqwU91yV8XPB+I7bbcdXvLAEYPg0mh3NbShgBtKzFdG9jU4sRuLOfFVyf0u+/fn+bBaCOI81Ebw5b+rrXKtq2EQfA4igloFegtqBaorxM4cM0KLJP57s4rzH+4wUAiyN4LjLu6wFiOHaxvMCR4fI2FGbO6MCgp05lQO8R4vDiV8/g+pe29UGceqgYOgZRpt/9m4i82d+E/DsZvjb45H2v2bfBDV0Z80GyoQRRfLou6gb1f3reObVnZdmuX958eiTv933lkF/Z+73fgzud/Aerc+mWiDQAA


name: Smartlead Email Campaign Analytics Dashboard with Google Sheets Integration
author_name: Rahi Uppal
author_username: rahiuppal
categories: []
created_at: 2025-08-10T06:11:14.159Z
updated_at: 2025-08-10T06:11:14.159Z
url: https://n8n.io/workflows/7210
scraped_at: 2025-12-24 13:02:44
description:
  Workflow 1: Domain and Email Health 🩺
  This part of the workflow is triggered every 5 hours by the Schedule Trigger1 node. Its purpose is to pull health metrics for both email domains and individual email addresses.

  How it Works:
  ++Schedule Trigger:++ The Schedule Trigger1 node initiates the workflow every 5 hours.

  ++API Requests:++ Two separate HTTP Request nodes, HTTP Request5 and HTTP Request6, make API calls to Smartlead.

  ++HTTP Request5 calls++ the endpoint for domain-wise health metrics.

  ++HTTP Request6 calls++ the endpoint for email-wise health metrics.

  Both requests use the same api_key and a date range from 2025-07-04 to the current day.

  ++Data Splitting:++ The Split Out5 and Split Out6 nodes take the JSON response from the API calls and split the data into individual items. This is necessary so each row of data can be processed and added to Google Sheets separately.

  ++Google Sheets Integration:++ Finally, the Append or update row in sheet5 and Append or update row in sheet6 nodes update two different Google Sheets:

  ++Append or update row in sheet5 adds++ or updates rows in the DomainHealth sheet, matching on the domain column.

  ++Append or update row in sheet6 adds++ or updates rows in the EmailHealth sheet, matching on the from_email column.

  Workflow 2: Global and Campaign-Specific Analytics 📊
  This second part of the workflow is triggered every 2 hours by the Schedule Trigger node. Its goal is to get a day-by-day overview of email engagement and campaign-specific performance.

  How it Works:
  Schedule Trigger: The Schedule Trigger node starts this workflow every 2 hours.

  ++API Requests:++ Two HTTP Request nodes, HTTP Request and HTTP Request1, call different Smartlead API endpoints.

  ++HTTP Request++ retrieves day-wise overall stats for email engagement.

  ++HTTP Request1 ++retrieves overall stats for each campaign.

  ++Data Splitting:++ The Split Out and Split Out1 nodes separate the JSON responses into individual data items for processing.

  ++Google Sheets Integration:++ The Append or update row in sheet and Append or update row in sheet1 nodes then write the data to Google Sheets.

  ++Append or update row in sheet++ updates the Sheet1 sheet with day-wise metrics, using the date as a matching column.

  ++Append or update row in sheet1++ updates the CampaignWise sheet with campaign performance metrics, using the campaign id to match rows.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.splitOut","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.splitOut","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE6WXTW/jRgyG/4qhs7mYT81Mbj21vewumnQPLXLgzHAcYxPZtZV0F4H/eynHiJ1dyZbSi2HB1KtH5Ety/Fwtc3VVffnra84ffzU315/zn6snrObVA7VYXT1Xy2bbYpPo9y7OC5esj0G7opOzxUdlVEwGky3GWrTSa5UwZhdTjpRyKDnpiLV0AX0K1W5eNfhALNX45voBN+09YebHtbjYVld/3/Lvq0zd1+cXNGuFylYaELl4MGg0REcEOquoddA2FF29qv52c/N59gf980jb1nay39eHh8FeFyJu6cNd264PQRyzXm2X7XLV8DOtEnOQSjDGGjcs2dKGWZ53L0pf+GofaD6o3fwAaIQXqJ0BWacCJqkEHtGCkMoJafndvTkC/rJeU5Nnq83scZ2xpdlm9e9s2cy2d0RniBer1eKerrug7VvkMBq5fkVGna0KzjFjcWAoF/AUEIJTwcqQYsET5Ov1/bKdfXo8g7ftQjjiLZoz49DkK1giTl2OCkwkzmUMHqKNEsgKRI/CeTFQ7Pp9xZZmUq3Z6ahU0GCUSWB8bSEUH0DVZEt2TlhVRtZ6GPh8rUcRH0tdW8kVdQlEjAFMrQm85stSPOkQKCWjeko9TDdc6hFkx0orJ2NWXkLxnQW15UojXypVB6SQpEB3wpXuKD/e0+xms1wsaCOH8Q6Rh8C3lOzF+QjIk4IL7a3QCsHFbMDwJ6AUFmyxkoo1OYh4gtku09fvs4+rloYB9zGHkBO2ro3Vz71SpVXTUtOyUDWczZBtzmQipEI8JI3hbArNvqTsM0/inGzq75vpbSNdPX1ICkVCGlmYKCEDFg1Beg85ySSEs7xR/MjGeUffKDka+dg50gtedbxpDFp2aCwJQsweKFjNPeWyUrqncyY2jgx+6pDkgci+8xqyLp0nteSW5kveuo6ho0bjh1vnnZ3TDcsRkCcljzqGonziknsuebCJZzki8EKveWhiyjr0e3K4u8+bkqs8xZPZKN4pUYALIYORXFte1hpcrlXJ0UnUYz05THzBlKOQj57UKgiHwkNQxDl1RUAwKoOOEnNKOpHMPZ48My6HTTkC7ehJraWLUvDEMaLmNcNgqJOGuk7BWqNScaF3Tp5BGxiUvGb+z6jkSYRB+QLR1N3icZzCHDVI6ynZ2ktnbC+pmk6qOlIzlZSjMbXLJ35Swfstzastte2yWexvpW+UHrsHfNpk7tKr6kl2Gk8v9+9P6bZWRlrL28AWPkXx/AIUe5/rok3tU40dKUM0lDqpvfBxgvHFAy67N+BDePee40fy/r45/2nI9K26ErvbW2Y78eFkaTlW207XtmO16+na9QXtNzu4T71noVwU6s9v3xi4KNWfzr6/Ahel+rPXd9Tsr8KPC6xPrf9I86PevDf+osV+OnxeIjiTnX6E8znY7f4Dwzl7rqcPAAA=


name: Personal Knowledgebase AI Agent
author_name: Rakin Jakaria
author_username: rakinjakaria
categories: []
created_at: 2025-08-10T10:37:58.968Z
updated_at: 2025-08-10T10:37:58.968Z
url: https://n8n.io/workflows/7215
scraped_at: 2025-12-24 13:02:41
description:
  How it works:

  This project creates a personal AI knowledge assistant that operates through Telegram. The assistant can extract summaries from YouTube videos or online articles, store them in Google Sheets for later reference, and retrieve stored summaries when requested by the user.

  Step-by-step:

  Google Sheets Trigger:* The workflow starts by detecting a new YouTube or article URL added to a dedicated sheet (Sheet2*). It checks whether the link is already processed.

  Link Type Detection:** The system identifies if the URL is from YouTube or a standard article.

  Data Retrieval:**

    If it’s YouTube: Uses Apify to fetch the transcript.
    If it’s an article: Uses an HTTP Request node to fetch the webpage content.

  AI Summarization:* The transcript or article content is passed to *Google Gemini** for refined summarization.

  Google Sheets Storage:* The summary and title are appended to another sheet (Sheet1*) for long-term storage, along with a “Stored” status update in Sheet2.

  Telegram Assistant:**

    A Telegram Trigger listens for messages from the user.
    The assistant searches stored summaries in Google Sheets.
    If a match is found, it returns the result to the user on Telegram; otherwise, it politely apologizes.

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.httpRequest","n8n-nodes-base.markdown","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.telegramTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.telegram","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheetsTrigger","n8n-nodes-base.filter","n8n-nodes-base.googleSheets","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, 5472 characters]


name: Auto-Comment on Reddit Posts with AI Brand Mentions & Baserow Tracking
author_name: Arunava
author_username: arunava
categories: []
created_at: 2025-08-10T12:57:41.947Z
updated_at: 2025-08-10T12:57:41.947Z
url: https://n8n.io/workflows/7217
scraped_at: 2025-12-24 13:02:44
description:
  This workflow finds fresh Reddit posts that match your keywords, decides if they’re actually relevant to your brand, writes a short human-style reply using AI, posts it, and logs everything to Baserow.

  💡Perfect for

  Lead gen without spam: drop helpful replies where your audience hangs out.

  Get discovered by AI surfaces (AI Overviews / SGE, AISEO/GSEO) via high-quality brand mentions.

  Customer support in the wild: answer troubleshooting threads fast.

  Community presence: steady, non-salesy contributions in niche subreddits.

  🧠 What it does

  Searches Reddit for your keyword query on a schedule (e.g., every 30 min)

  Checks Baserow first so you don’t reply twice to the same post

  Uses an AI prompt tuned for short, no-fluff, subreddit-friendly comments

  Softly mentions your brand only when it’s clearly relevant

  Posts the comment via Reddit’s API

  Saves post_id, comment_id, reply, permalink, status to Baserow

  Processes posts one-by-one with an optional short wait to be nice to Reddit

  ⚡ Requirements

  Reddit developer API

  Baserow account, table, and API token

  AI provider API (OpenAI / Anthropic / Gemini)

  ⚙️ Setup Instructions

  Create Baserow table
     Fields (user-field names exactly):
     post_id (unique), permalink, subreddit, title, created_utc, reply (long text), replied (boolean), created_on (datetime).

  Add credentials in n8n

  Reddit OAuth2* (scopes: read, submit, identity) and set a proper *User-Agent** string (Reddit requires it).
  LLM**: Google Gemini and/or Anthropic (both can be added; one can be fallback in the AI Agent).
  Baserow**: API token.

  Set the Schedule Trigger (Cron)
     Start hourly (or every 2–3h). Pacing is mainly enforced by the Wait nodes.

  Update “Check duplicate row” (HTTP Request)

  URL**:
    https://api.baserow.io/api/database/rows/table/{TABLE_ID}/?user_field_names=true&filter__post_id__equal={{$json.post_id}}
  Header**: Authorization: Token YOUR_BASEROW_TOKEN
    (Use your own Baserow domain if self-hosted.)

  Configure “Filter Replied Posts”
     Ensure it skips items where your Baserow record shows replied === true (so you don’t comment twice).

  Configure “Fetch Posts from Reddit”
     Set your keyword/search query (and time/sort). Keep User-Agent header present.


  Configure “Write Reddit Comment (AI)”

  Update your brand name** (and optional link).
  Edit the prompt/tone** to your voice; ensure it outputs a short reply field (≤80 words, helpful, non-salesy).

  Configure “Post Reddit Comment” (HTTP Request)

  Endpoint: POST https://oauth.reddit.com/api/comment
  Body: thing_id: "t3_{{$json.post_id}}", text: "{{$json.reply}}"
  Uses your Reddit OAuth credential and User-Agent header. 
  Update user_agent value in header by your username n8n:reddit-autoreply:1.0 (by /u/{reddit-username})

  Store Comment Data on Baserow (HTTP Request)

  POST https://api.baserow.io/api/database/rows/table/{TABLE_ID}/?user_field_names=true
  Header: Authorization: Token YOUR_BASEROW_TOKEN
  Map: post_id, permalink, subreddit, title, created_utc, reply, replied, created_on={{$now}}.

  Keep default pacing
      Leave Wait 5m (cool-off) and Wait 6h (global pace) → \~4 comments/day. Reduce waits gradually as account health allows.

  Test & enable
      Run once manually, verify a Baserow row and one test comment, then enable the schedule.

  🤝 Need a hand?

  I’m happy to help you get this running smoothly—or tailor it to your brand.

  Reach out to me via email: imarunavadas@gmail.com

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.reddit","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","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/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.baserow","n8n-nodes-base.wait","n8n-nodes-base.set"]

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


name: Automate Real-Time QuickBooks Invoice Sync to Google Sheets
author_name: Intuz
author_username: intuz
categories: []
created_at: 2025-08-11T05:03:57.053Z
updated_at: 2025-08-11T05:03:57.053Z
url: https://n8n.io/workflows/7229
scraped_at: 2025-12-24 13:02:42
description:
  This n8n template from Intuz provides a complete and automated solution for real-time financial reporting. 

  It instantly syncs new QuickBooks invoices to Google Sheets, using specific invoice data or keywords as triggers to ensure your financial records are always accurate and up-to-date.

  It uses a webhook to capture every new or updated invoice and logs the essential details into a designated Google Sheet. Perfect for creating custom reports, data backups, or a real-time dashboard of your accounts receivable.

  Use Cases

  Financial Reporting:** Create a simple, shareable Google Sheet for team members who don't have QuickBooks access.
  Data Backup:** Maintain a secure, independent log of all your invoices outside of the QuickBooks ecosystem.
  Custom Dashboards:** Use the Google Sheet as a data source for tools like Google Data Studio or Grafana to build custom financial dashboards.
  Auditing:** Easily track the history and status of all invoices in a simple, searchable spreadsheet format.

  How it Works

  1. Instant Webhook Trigger: The workflow activates the moment an invoice is created or updated in QuickBooks. The QuickBooks webhook sends a notification to n8n, kicking off the process in real time.

  2. Fetch Full Invoice Details: The initial webhook notification only contains the invoice ID. This node uses that ID to make a call back to the QuickBooks API and retrieve the complete invoice data, including customer name, due date, and more.

  3. Format Key Data: A simple Code node cleans up the data fetched from QuickBooks. It extracts only the fields you need—ID, Domain, Customer Name, and Due Date—and structures them perfectly for the next step.

  4. Append or Update in Google Sheets: The final node connects to your Google Sheet and uses the powerful "Append or Update" operation.
  If the ID of the invoice doesn't exist in the sheet, it adds a new row.
  If the ID already exists, it updates the existing row with the latest information.

  This ensures your Google Sheet is always a perfect mirror of your QuickBooks invoice data, preventing duplicates and keeping everything current.

  Setup Instructions

  For this workflow to run successfully, follow these setup steps:

  1. Credentials:
  QuickBooks: Connect your QuickBooks account credentials to n8n.
  Google: Connect your Google account using OAuth2 credentials. Ensure the Google Sheets and Google Drive APIs are enabled.

  2. QuickBooks Webhook Configuration:
  Activate the workflow. Copy the Production URL from the Webhook node.
  In your Intuit Developer Portal, go to the webhooks section for your app.
  Paste the URL and subscribe to Invoice events (e.g., Create, Update).

  3. Google Sheet Setup:
  Create a Google Sheet for your invoice data.
  Crucially, create the following headers in the first row of your sheet:
  -ID
  -Domain
  -Customer Name
  -Due Date

  4. Node Configuration:
  In the Append or update row in sheet node, select your Google Sheet document and the specific sheet name from the dropdown lists. The columns should map automatically if you've set up the headers correctly.

  Connect with us
  Website: https://www.intuz.com/services
  Email: getstarted@intuz.com
  LinkedIn: https://www.linkedin.com/company/intuz
  Get Started: https://n8n.partnerlinks.io/intuz

  For Custom Worflow Automation
  Click here- Get Started

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.quickbooks","n8n-nodes-base.googleSheets","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:
  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


name: Automatically Save QuickBooks Invoice PDFs to Google Drive
author_name: Intuz
author_username: intuz
categories: []
created_at: 2025-08-11T06:50:10.662Z
updated_at: 2025-08-11T06:50:10.662Z
url: https://n8n.io/workflows/7232
scraped_at: 2025-12-24 13:02:43
description:
  This n8n template from Intuz provides a complete and automated solution for secure document archiving.

  It automatically saves new QuickBooks invoice PDFs directly into Google Drive, creating a reliable backup system. For perfect organization, the workflow uses keywords from the invoice, like the client name or invoice number, to dynamically name the PDF files, ensuring you have a complete and easily searchable financial record.

  Use Cases
  1. Automated Document Archiving: Eliminate the manual work of downloading and saving invoices. Set it up once and let it run.

  2. Compliance & Auditing: Maintain a clean, chronological, and separate record of all issued invoices for easy access during audits.

  3. Secure Backup: Create a redundant, secure backup of your critical financial documents in your own cloud storage.

  4. Enhanced Team Access: Share the Google Drive folder with accountants, bookkeepers, or team members who need access to invoices but not to your full QuickBooks account.

  How It Works:
  1. Real-Time Invoice Trigger: The workflow starts the instant a new invoice is created in your QuickBooks account. A configured webhook sends a notification to n8n, kicking off the automation immediately.

  2. Fetch Invoice Metadata: The workflow uses the invoice ID from the webhook to retrieve the full invoice details, such as the customer's name and the transaction date. This information is used in the next steps.

  3. Generate the Invoice PDF: A crucial HTTP Request node makes a direct API call to QuickBooks, requesting a PDF version of the invoice. This ensures the archived document is the official, formatted PDF, exactly as it appears in QuickBooks.

  4. Upload and Archive in Google Drive: The final node takes the binary PDF data and uploads it to your specified Google Drive folder. It dynamically names the file for easy identification (e.g., CustomerName_TransactionDate.pdf), creating a perfectly organized and searchable archive.

  Setup Instructions
  To get this workflow running, follow these key setup steps:

  1. Credentials:
  QuickBooks: Connect your QuickBooks account credentials to n8n.
  Google: Connect your Google account using OAuth2 credentials and ensure the Google Drive API is enabled.

  2. QuickBooks Webhook Configuration:
  First, activate this n8n workflow to make the webhook URL live.
  Copy the Production URL from the QuickBooks Webhook node.
  In your Intuit Developer Portal, go to the webhooks section for your app, paste the URL, and subscribe to Invoice creation events.

  3. Node Configuration:
  Get an invoice & Generate PDF File: These nodes will use your configured QuickBooks credentials automatically.
  Upload file (Google Drive): In the parameters for this node, you must select the Folder ID where you want your invoices to be saved.

  Support
  If you need help setting up this workflow or require a custom version tailored to your specific use case, please feel free to reach out to the template author:

  Website: https://www.intuz.com/services
  Email: getstarted@intuz.com
  LinkedIn: https://www.linkedin.com/company/intuz
  Get Started: https://n8n.partnerlinks.io/intuz

  For Custom Worflow Automation
  Click here- Get Started

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.quickbooks","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Detect Cannibalized Keywords and Competing Pages with Google Search Console
author_name: Mohammadreza azari
author_username: mrazari
categories: []
created_at: 2025-08-11T09:09:32.394Z
updated_at: 2025-08-11T09:09:32.394Z
url: https://n8n.io/workflows/7237
scraped_at: 2025-12-24 13:02:46
description:
  Find Cannibalized Pages (Google Search Console)

  This n8n template helps you detect page cannibalization in Google Search Console (GSC): situations where multiple pages on your site rank for the same query and more than one page gets clicks. Use it to spot competing URLs, consolidate content, improve internal linking, and protect your CTR/rankings.

  Good to know
  Data source:** Google Search Console Search Analytics (Dimensions: query, page).
  Scope:* Defaults to *last 12 months* and up to *10,000 rows** per run (adjustable).
  Logic:* Keeps only queries with *&gt;1 page* and where the *second page has clicks &gt; 0** → higher confidence of true cannibalization.
  Privacy:** Template ships with a placeholder property (sc-domain:example.com) and a neutral credential name; replace both after import.
  Cost:** n8n nodes used here are free. GSC usage is also free (subject to Google limits).

  How it works
  Manual Start — run the workflow on demand.  
  Google Search Console — fetch last 12 months of query–page rows.  
  Summarize — group by query, building two arrays:  
     appended_page[] → all pages seen for that query  
     appended_clicks[] → clicks for each page-query row (aligned with appended_page)
  Filter — pass only queries where:  
     count_query &gt; 1 (more than one page involved), and  
     appended_clicks[1] &gt; 0 (the second page also received clicks)
  Output — list of cannibalized queries with the competing pages and their click counts.

  Example output
  {
    "query": "best running shoes",
    "appended_page": [
      "https://example.com/blog/best-running-shoes",
      "https://example.com/guide/running-shoes-2025"
    ],
    "appended_clicks": [124, 37],
    "count_query": 3
  }
  How to use
  Import the JSON into n8n.  
  Open the Google Search Console node and:  
     Connect your Google Search Console OAuth2 credential.  
     Replace siteUrl with your property (sc-domain:your-domain.com).  
  Press Execute Workflow on Manual Start.  
  Review the output — focus on queries where the second page has meaningful clicks.  

  💡 Tip: If your site is large, start with a shorter date range (e.g., 90 days) or raise rowLimit.

  Requirements
  Access to the target property in Google Search Console.  
  One Google Search Console OAuth2 credential in n8n.

  Customising this workflow
  More robust detection:* In the *Summarize* node, change clicks aggregation from append to sum. Then filter for “at least 2 pages with sum_clicks &gt; 0*” to avoid any dependency on row order.  
  Scoring & sorting:* Add a *Code/Function** node to sort competing pages by clicks or impressions and compute click-share per page.  
  Deeper analysis:** Include impressions and position in the GSC node and extend the summary to prioritize fixes (e.g., high impressions + split clicks).  
  Reporting:* Send results to *Google Sheets* or export a *CSV**; create a dashboard of top cannibalized queries.  
  Thresholds:* Expose minimum click thresholds as *workflow variables** (e.g., second page clicks ≥ 3) to reduce noise.

  Troubleshooting
  Empty results:** Widen date range, increase rowLimit, or temporarily relax the filter (remove the second-page click condition to validate data flow).  
  No property data:** Ensure you used sc-domain: vs. https:// property format correctly and that your user has GSC access.  
  Credential issues:** Reconnect the OAuth2 credential and reauthorize if needed.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.start","n8n-nodes-google-search-console.googleSearchConsole","n8n-nodes-base.summarize","n8n-nodes-base.filter"]

workflow_json_compressed:
  H4sIAAAAAAAAE61Wy27bRhT9lQHTha2KAjkkRUpAAzhO8wCal+UkLRwjHpKX1NQUh5kZ2pENAV0V6KZAi+676o/lC/oJvTOULMmRk029Mudx77nn3HtG184MNHPG1w6vlWZ1Bk9zZ+wMQ1qweBR5RcTSJIr9ME8jmuYppF5UhAHzGYBX0JilRTRiFLKApmxIWUDjOAwKp+9omDUV03AoIVcT0G1zKHAFNGACLVtY9J1a5KCc8QlmN1njbMQ8ludu6IWxG8bguUlOYzcK0gJ30mAU+Ri5ZjPA02+FPC8qcUkegsokbzQXtck7b8xundSuDe+mTMFAaZ6dz58LDXikEYrb0+MTr++d4gKTGFODVIaJS57rqTOOh17fmQIvp9oZh+YjE7WGGr+ce/fIv3//9Tt5xOucvGpBzskhq2uesopfMROb7D0WoqyATIDJbEoORa1EBfvv6nd1r/eylQgCer139UPMm2nyAYNwUORyChJIrzdrK82RLtKwElSvRzDkXLSSIHQgGVKJ9wjD9KnQUyIhA36BGxXWqcieIZhk25D2B13yJ8gZ1+QS+VMGgb9PHoFGjBVTmviUzLDOqSKFFDPyeHJILjlmyPkMaoVhFKIzaOcI6lv83wDs9TA23SeTdjZjkl8BSecbxz79+idJW17lhEnJ5oqIoqvLFrDE3IC0LMwxVICQeIWC2KvnAM2aIAOm17vvky4xOXj+EL8VoDq5XSNTplZB7xPPYjN1P4BCILeyRVbq0lTuGllqQz/DEDsFIy8OWj2lmCfDRkb1OauIFkRPwXJjemxgIh0BtnsG5Exlbi5mjNdj+MhMxw9QrbMOt1WwkQJr1XOyB4Ny0N+8YfaX/9tbK8mOeaM6wI+ERH1MGSJtUS4JCjtF9bElUJ0cGVOoAda3SatlZa9VBl2LWMysA8uNDGesaaDOz/atFFhVTYqOeSQLSfn02z+ELsWyJdwi1iU/idZ0muGVsPzTL39MRUYuuGH0GatbpGuimdSmhSVhrcbqsHO7A28Bzqs5OZa8LEHeKPWi1U2rEQhU+bLuM9saZ/0VYMjfG1Anp1tLHbhuMRNtrd9310zYY1aqMZl8/6JvhOvfHlhn0XnHG3QB6w3+or/0pQK8kRcl1KXxKHHDYTBykwASt8j9IAFaxF6Yr31ps+gv+FG3u2FFgRf2I5/etqO7YeUUmO9D7HpBSNEuh9RNgyBxcz+mUViwIfM2YHUutWzug5pVc7REtQtgaefAVfaom3VzMOhWu/vL2djGH9FkF37HGNZrWWGKnZOBQaS4/IHPOBqr7+Ff3zHz0YkydkrQL1Hop9jd6MQG8NqJMKtjBTZI8JCDyXPsriNWl/AMi8H7xtR8OhNG3/UIW2Q7Suqm/aDh9kk0LAv+4xM+Vw+evOblh6PHV2tGd/sFy2zjOYu7hQvCqIhZOHQzz2NuGDLfTeKCuUWSxl5W4LvLgnWaLU99taz2jq5aHd1WJo7oTmWEfTOXTdYN27GYNBXXD+YYfMXszc5NdLx7wap2+Xbb/ZvzpsrVitWk77CylFCuBO2GdetcN7Z3njz9nMvBmk0ae0Hi+Z7LEs9zQxYEbkopspkWeZHQNIIE1mwun5XV8FtC8Vm5k9LODLf5HMXDr/NpniO++t7Yci5WRVA8hCkmppk1Pt7dz6JlpehL+YoHpSXPtG1gMUt5zbSQhp7ajPdmnpPr5eiY/eubitpZakvYGisbr4JCvzFK4sp319fkm5+VMC/PjXOSxcIMqBm95TlL/P+R5bZp+6efJ/N2aE8HdHFq6zYv94rVLdfFb2MzSAgyUnc+8DX/sxf6+DM4h4828Skm3jF7u2J/tal2Br8D0a4EX/KAHbEXi/8Ah4a+49gLAAA=


name: Flag Bounced Emails in Google Sheets from Gmail Delivery Error Messages
author_name: Stéphane Heckel
author_username: stephaneheckel
categories: []
created_at: 2025-08-11T12:18:24.379Z
updated_at: 2025-08-11T12:18:24.379Z
url: https://n8n.io/workflows/7251
scraped_at: 2025-12-24 13:02:43
description:
  Scanning Email Inbox for Delivery Errors

  Prerequisite: Automate Personalized Email Campaigns with Google Docs, Sheets, and SMTP.

  How It Works

  After running your email campaign, some messages may fail to deliver. This workflow scans your email inbox for delivery errors (e.g., bounced messages), flags problematic email addresses in the Google Sheet and ensures future campaigns skip them.

  How to Use

  Ensure Prerequisite Workflow:  
     You should have the Email Campaign Workflow configured and running.

  Google Sheet Setup:  
     Use the Google Sheet Template.  
     Identify your document’s ID (the string after /d/ and before /edit in the URL).

  Configure Workflow:  
     Enter your Google Sheet ID in the settings node.  
     Connect your Google credentials to n8n.

  Email Inbox:  
     Set up the readspamfolder node to search for bounce/error messages in your mail (e.g., in the Spam or Inbox folders—adjust label/folder if emails land elsewhere).  

  Google Sheet Update:  
     Configure the lookupemail and update_err nodes

  Requirements

  Google Credentials** to access Gmail and sheets.
  Gmail Account** (bounce/error messages must be accessible here).
  n8n Version:** Tested with 1.105.2 (Ubuntu).

  Need Help?

  Comment this post or contact me on LinkedIn
  Ask in the n8n Community Forum!

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.gmail","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.stickyNote","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, 4548 characters]


name: Smart Knowledge Base Builder — Auto-Convert Websites into AI Training Data
author_name: Aayushman Sharma
author_username: ajstyle0411
categories: []
created_at: 2025-08-11T17:51:52.453Z
updated_at: 2025-08-11T17:51:52.453Z
url: https://n8n.io/workflows/7260
scraped_at: 2025-12-24 13:02:44
description:
  AI-Powered Knowledge Base Builder — Turn Any Website into LLM-Optimized Markdown & TXT Files

  Automate the entire process of converting any website or domain into clean, structured, AI-ready knowledge bases for Large Language Models (LLMs), semantic search, and chatbot development.

  Key Workflow Highlights
  URL Input via Simple Form** – Paste a single link or a full domain.
  Automated Link Discovery** – Crawl and map all related pages with Firecrawl API.
  Clean Markdown Extraction** – Use Parsera API for accurate, clutter-free content.
  LLM-Optimized Formatting** – Standardize with OpenAI GPT-4.1-mini for llms.txt.
  Cloud Storage Integration** – Save directly to Google Drive for instant access.
  Batch Processing at Scale** – Handle single pages or hundreds of URLs effortlessly.

  Perfect For:
  AI engineers building domain-specific training datasets
  Data scientists running semantic search & vector database pipelines
  Researchers collecting website archives for AI or analytics
  Automation specialists creating chatbot-ready content libraries

  Why This Workflow Outperforms Manual Processes
  100% Automated** — From link input to Google Drive-ready .txt file
  Flexible Scope** — Choose between single-page extraction or full-site crawling
  Clean, AI-Friendly Output** — Markdown converted to standardized LLM format
  Scalable & Reliable** — Handles bulk data ingestion without formatting issues
  Cloud-First** — Centralized storage for team-wide accessibility

  Problems Solved
  No more manual copy-paste from dozens of web pages
  Eliminate formatting inconsistencies across datasets
  Avoid scattered files — all output stored in one central folder

  Instead, you get:
  Automated URL mapping for deep data coverage
  Proxy-enabled scraping for accurate extraction
  Ready-to-use llms.txt files for chatbots, fine-tuning, and AI pipelines

  How It Works — Step-by-Step

  Form Submission  
     Input your URL and choose “Single Page” or “Full Domain Crawl.”

  URL Mapping with Firecrawl API  
     Automatically discovers all internal links related to the starting URL.

  Content Extraction with Parsera API  
     Removes ads, navigation clutter, and irrelevant elements to produce clean Markdown.

  LLM-Optimized Formatting with OpenAI GPT-4.1-mini  
     Generates structured files including:
     Site title & meta description
     Page sections with summaries & full text

  Cloud Upload to Google Drive  
     Final .txt or .md files stored in your specified folder.

  Business & AI Advantages
  Save 90%+ time preparing AI training datasets
  Improve AI accuracy with high-quality, consistent input
  Maintain centralized, cloud-based storage
  Scale globally with proxy-based content collection

  Setup in Under 10 Minutes
  Import the workflow into n8n.
  Add credentials for:
     Firecrawl API
     Parsera API
     OpenAI API Key
     Google Drive (Service Account or OAuth)
  Update your Google Drive folder ID.
  Run a test job with a sample URL.
  Deploy and connect to your AI pipeline.

  Tools & Integrations Used
  n8n Form Trigger** – For user-friendly input
  Firecrawl API** – Comprehensive internal link mapping
  Parsera API** – Clean, structured content extraction
  OpenAI GPT-4.1-mini** – LLM-optimized formatting
  Google Drive API** – Secure cloud storage
  Batch & Switch Logic** – Efficient multi-page processing

  Advanced Customization Options
  Change output format: .md, .json, .csv
  Swap storage to Dropbox, AWS S3, Notion, Airtable
  Modify AI prompts for alternative formatting
  Filter by keywords or metadata before saving
  Automate runs via Google Sheets, email triggers, or cron schedules
  Add AI-powered translation for multilingual datasets
  Enrich with SEO metadata or author information
  Push directly to vector databases like Pinecone, Weaviate, Qdrant

  SEO-Optimized Keywords for Maximum Reach
  AI data extraction workflow
  Automated LLM training dataset builder
  Web to Markdown converter for AI
  Firecrawl Parsera OpenAI n8n integration
  llms.txt file generator for chatbots
  Automated website content scraper for AI
  Knowledge base creation automation
  AI-ready data pipeline for semantic search
  Batch website-to-dataset conversion

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.formTrigger","n8n-nodes-base.switch","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.convertToFile","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.convertToFile","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Automate QuickBooks Customer & Estimate Creation from Google Sheets
author_name: Intuz
author_username: intuz
categories: []
created_at: 2025-08-12T07:39:12.878Z
updated_at: 2025-08-12T07:39:12.878Z
url: https://n8n.io/workflows/7273
scraped_at: 2025-12-24 13:02:43
description:
  This n8n template from Intuz provides a complete and automated solution to accelerate your sales and quoting process into Quickbooks.

  This workflow creates a seamless data pipeline from a Google Sheet directly into QuickBooks, automating the creation of new customers and their initial sales estimates. It’s designed to save time, reduce human error, and ensure your financial records are always up-to-date.

  How it works

  1. Trigger on New Sheet Row: The workflow starts automatically when you add a new row containing customer and estimate details to your designated Google Sheet.

  2. Check for Duplicates: Before doing anything else, it takes the customer's name from the sheet and searches your QuickBooks account to see if a customer with that exact name already exists.

  3. Route Based on Existence (If/Else Logic):
  If the Customer is NEW: The workflow proceeds down the "true" path, first creating a new customer record in QuickBooks with the details from the sheet (Name, Email, Phone, Company). Immediately after, it creates a new sales estimate linked to that newly created customer.
  If the Customer ALREADY EXISTS: The workflow follows the "false" path and stops. This is a built-in safety measure to prevent creating duplicate customer records.

  4. End of Process: The workflow concludes, having either created a new customer and estimate or having intelligently stopped to avoid duplication.

  Step by Step Instructions
  Follow these steps carefully to get the workflow running.

  1. Connect Your Credentials
  Google: Connect your Google account using OAuth2. Ensure you have enabled permissions for both Google Sheets and Google Drive.
  QuickBooks: Connect your QuickBooks Online account using OAuth2 credentials.

  2. Prepare Your Google Sheet
  This is the most critical step. Create a Google Sheet and ensure the first row contains these exact column headers:
  CustomerName
  Email
  Phone
  Company Name
  Amount

  3. Configure the n8n Nodes

  Google Sheets Trigger:
  Select your Google Sheet from the Document ID dropdown.
  Select the specific sheet from the Sheet Name dropdown.

  Create an estimate (QuickBooks Node):
  This node has a default product/service (itemId) and tax code (TaxCodeRef) set. You must update these to match the items and tax codes in your QuickBooks account. See the Customization section for more details.

  4. Activate the Workflow
  Save the workflow and toggle the Active switch to "on". Now, every time you add a new row to your sheet, the automation will run.

  Connect with us
  Website: https://www.intuz.com/services
  Email: getstarted@intuz.com
  LinkedIn: https://www.linkedin.com/company/intuz
  Get Started: https://n8n.partnerlinks.io/intuz

  For Custom Worflow Automation
  Click here- Get Started

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.quickbooks","n8n-nodes-base.if","n8n-nodes-base.quickbooks","n8n-nodes-base.noOp","n8n-nodes-base.googleSheetsTrigger","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.quickbooks","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4576 characters]


name: SEO Writer: Content Generator (2500 keywords) with Perplexity & Auto Publish
author_name: Reddit Dev
author_username: harryhaz
categories: []
created_at: 2025-08-12T10:07:29.243Z
updated_at: 2025-08-12T10:07:29.243Z
url: https://n8n.io/workflows/7279
scraped_at: 2025-12-24 13:02:44
description:
  🔥 TLDR

    Automatically generate and publish 2000+ word SEO-optimized blog posts to GitHub every 8 hours - Complete with trending topic research, AI content generation, and automatic JSON formatting for your blog platform. Instant SEO traffic upcoming! 

    ---
    📌 Who's it for

    Content creators, marketers, and developers who want to:
    Maintain a consistent blog publishing schedule without manual effort
    Generate high-quality, SEO-optimized content automatically
    Keep up with trending topics in their industry
    Build content libraries for their websites or applications

    🚀 What it does

    This workflow is a complete content generation pipeline that runs
    automatically every 8 hours:

    Discovers trending topics using Perplexity Sonar to find what's hot in
     your chosen categories
    Conducts deep research with real statistics, expert opinions, and
    current data
    Generates comprehensive content - 2000-2500 word articles using GPT-5
    mini
    Formats for web - Converts to JSON with proper metadata (slug,
    keywords, reading time)
    Publishes automatically to your GitHub repository as blog-ready JSON
    files

    ✨ Key Features

    SEO Optimization

    Keyword-rich content with targeted keywords naturally integrated
    Proper heading structure (H1, H2, H3) for search engine crawling
    Meta descriptions automatically generated from content
    Reading time calculation for better user engagement metrics
    URL-friendly slugs with timestamps for uniqueness

    Content Quality

    2000+ words minimum ensuring comprehensive coverage
    Research-backed with current statistics and expert opinions
    Structured format with clear sections: Introduction, Analysis,
    Applications, Challenges, Future Outlook
    Markdown formatting for easy rendering on any platform

    🛠️ How to set up

    Requirements

    n8n instance (self-hosted or cloud)
    Perplexity API account
    OpenAI API account (GPT-5 mini access)
    GitHub repository for storing blog content

    Setup Steps

    Import the workflow into your n8n instance
    Configure credentials:
      Add your Perplexity API key
      Add your OpenAI API key
      Connect your GitHub account via OAuth2
    Customize the GitHub node:
      Set your repository owner and name
      Adjust the file path if needed (default: public/blog-data/)
    Adjust the schedule (optional):
      Default runs every 8 hours
      Modify the Schedule Trigger node for your preferred frequency
    Test the workflow with manual execution before enabling automatic
    scheduling

    🎨 How to customize

    Topic Categories

    Edit the "Find trending topics" node to focus on your niche:
    Technology & AI
    Social Media & Marketing
    Business & Finance
    Health & Wellness
    Education & Career

    Content Length

    Adjust word count requirements in the "Format Blog JSON" node validation

    Output Format

    Modify the JSON structure in "Format Blog JSON" to match your blog platform's requirements

    Publishing Destination

    Change the GitHub repository path or integrate with other platforms like WordPress, Contentful, or Strapi

    📊 Workflow Benefits

    Consistency: Never miss a publishing deadline
    Scale: Generate multiple articles daily without manual effort
    Quality: Research-backed content with real data and sources
    SEO-Ready: Optimized structure and metadata for search engines
    Cost-Effective: Uses efficient AI models for sustainable content
    generation

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.perplexity","n8n-nodes-base.code","n8n-nodes-base.github","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.perplexity","n8n-nodes-base.openAi","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:
  H4sIAAAAAAAAE62WS2/bMAzHv4rg66JCtmVb7q17dI/DBqzFdhiKQg8qEebKga2sC4p89zFu1qSpvCVFb7JE//UTSVG8S24gyOT0LnG+D9Jr+GiS08QLT2/b7qdt2lsqHVVNO6VT8NDJ0HbJapJ4eQNoePaRvMY18v7vGqHkbBFaOl+oxvUzcvHuC9GtD+ADCS1578KHhSLSGxJm4MmyXXTkFlTvAhCJP97I4LRsmmWCe7QG+uT0B8KtoUyVWa0Up4aZnPK8Tqk0haJZDUZwleo818kD2QUEctnOnSZvJZ5wkoTlHDZHG4Spkj2c9BBwbd4igGs9bkbTjIsJzTi7wnnZoVqADjHuVvca3/BrMM1P+GqyYcuqzBjQmorSijVbTYUBS2utSgtKGFHwLdtbgDn5Cj3ITs9G0ebQzRv47cJyn5Bl/CDC9IFPWFWBtSUVwBTlKXqxVsBpClIaW+qSZTu+O287jMN9ZD9dfPk8iqhxuAdXVOVBbNkDG08zZlRaUllZTjGQGY4qS8saClCpSiWrtmxvOpCYK+euAeL8JqFGAacuzIblXcS8yI50XyoLXdWppUwxTD2OdKrGQFe8NjzjWpS13SK++wXdkggyw+TuxzNPz8AsGrjs3HQK3X6My/owP6YnW09WULFciZSq9eXgJa8xymWOMpXUzJbKsB3Mc4e38LIDb5yf3t+VcdrxZOTVsd6syypXzAJi5pLyIgUqchBUqhKsFFanVmwxN6UFSMYYe0W+t50hZx1WiQZGads5+DO3RyoYO9CjW9Qe9/m5vPZtgOt0p7gM0+QzTo/Hd7DZmDzyWL0G4eIJSLIplKiVjHtvFymLIpHsGVBDGPOn3jkeKo9D5c+AGkrxi0DxOBR/BtRQfV8EqohDFcdDDbn9IkxlnKk8nml4CV6EqYozVcczDaX/aCa0xnUPei0zmD9+wXHiRrr1BtirrDEOLVvDXxPsvQz8Tk7Z6uoKN3/8fMS0/125o6J77VBMdaQrico96RBigv95quPCsaPFxMf6u6hqnGRHdrD6V8iiYRhtkyIQq9UfHAEzQ2wLAAA=


name: Generate and Share Professional PDFs with OpenAI, Google Docs, and Slack
author_name: Trung Tran
author_username: trungtran
categories: []
created_at: 2025-08-12T11:45:18.842Z
updated_at: 2025-08-12T11:45:18.842Z
url: https://n8n.io/workflows/7288
scraped_at: 2025-12-24 13:02:42
description:
  Free PDF Generator in n8n – No External Libraries or Paid Services
  &gt; A 100% free n8n workflow for generating professionally formatted PDFs without relying on external libraries or paid converters. It uses OpenAI to create Markdown content, Google Docs to format and convert to PDF, and integrates with Google Drive and Slack for archiving and sharing, ideal for reports, BRDs, proposals, or any document you need directly inside n8n.
  Watch the demo video below:

  Who’s it for
  Teams that need auto-generated documents (reports, guides, checklists) in PDF format.
  Operations or enablement teams who want files archived in Google Drive and shared in Slack automatically.
  Anyone experimenting with LLM-powered document generation integrated into business workflows.

  How it works / What it does
  Manual trigger starts the workflow.
  LLM generates a sample Markdown document (via OpenAI Chat Model).
  Google Drive folder is configured for storage.
  Google Doc is created from the generated Markdown content.
  Document is exported to PDF using Google Drive. (Sample PDF generated from comprehensive markdown)
  PDF is archived in a designated Drive folder.
  Archived PDF is downloaded for sharing.
  Slack message is sent with the PDF attached.

  How to set up
  Add nodes in sequence:
     Manual Trigger
     OpenAI Chat Model (prompt to generate sample Markdown)
     Set/Manual input for Google Drive folder ID(s)
     HTTP Request or Google Drive Upload (convert to Google Docs)
     Google Drive Download (PDF export)
     Google Drive Upload (archive PDF)
     Google Drive Download (fetch archived file)
     Slack Upload (send message with attachment)
  Configure credentials for OpenAI, Google Drive, and Slack.
  Map output fields:
     data.markdown → Google Docs creation
     docId → PDF export
     fileId → Slack upload
  Test run to ensure PDF is generated, archived, and posted to Slack.

  Requirements
  Credentials**:
    OpenAI API key (or compatible LLM provider)
    Google Drive (OAuth2) with read/write permissions
    Slack bot token with files:write permission
  Access**:
    Write access to target Google Drive folders
    Slack bot invited to the target channel

  How to customize the workflow
  Change the prompt** in the OpenAI Chat Model to generate different types of content (reports, meeting notes, checklists).
  Automate triggering**:
    Replace Manual Trigger with Cron for scheduled document generation.
    Use Webhook Trigger to run on-demand from external apps.
  Modify storage logic**:
    Save both .md and .pdf versions in Google Drive.
    Use separate folders for drafts vs. final versions.
  Enhance distribution**:
    Send PDFs to multiple Slack channels or via email.
    Integrate with project management tools for automated task creation.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.manualTrigger","n8n-nodes-base.slack","@n8n/n8n-nodes-langchain.agent","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"]

workflow_json_compressed:
  [encoded data, 6296 characters]


name: Full-Cycle Invoice Automation: Airtable, QuickBooks & Stripe
author_name: Intuz
author_username: intuz
categories: []
created_at: 2025-08-12T12:36:34.244Z
updated_at: 2025-08-12T12:36:34.244Z
url: https://n8n.io/workflows/7291
scraped_at: 2025-12-24 13:02:42
description:
  This n8n template from Intuz provides a complete and automated solution for full-cycle invoicing, orchestrating a seamless flow between Airtable, QuickBooks, and Stripe. 

  This is the ultimate sales-to-cash automation. When a deal in Airtable is marked "Approved for Invoicing," this workflow intelligently syncs customer data across QuickBooks and Stripe (creating them if they don't exist), generates an official QuickBooks invoice, creates a Stripe payment link, and then updates the original Airtable record with all the new IDs and links. Eliminate manual data entry and keep your systems perfectly in sync.

  Who's this workflow for? 

  Finance, Accounting, and Operations Teams
  SalesOps and RevOps Teams
  Small Business Owners and Founders
  Agencies and Freelancers

  How It Works:
  1. Airtable Trigger & Approval Gate: The workflow starts when a record in your Airtable base is updated. An If node immediately checks if the Status field is set to "Approved for Invoicing." If not, the workflow for that item stops.

  2. Customer Sync (QuickBooks & Stripe):
  The workflow searches for the customer in both QuickBooks and Stripe using the details from Airtable.
  Using If nodes, it intelligently checks if the customer exists. If a customer is not found in either platform, it creates a new one. This "find-or-create" logic prevents duplicate records.

  3. Update Airtable with IDs: Once the customer IDs from both QuickBooks and Stripe are secured (either found or newly created), the workflow updates the original Airtable record with these new IDs for future reference.

  4. Generate Financials:
  Stripe Payment Link: It sends an HTTP request to Stripe to create a unique, ready-to-use payment link for the specified amount.
  QuickBooks Invoice: It fetches your product list from QuickBooks, finds the matching item from the Airtable record, and generates a formal, detailed invoice.

  5. Close the Loop: In the final step, the workflow updates the Airtable record one last time to:
  Add the QuickBooks Invoice #.
  Add the Stripe Payment Link.
  Change the Status to "Invoiced."

  Step-by-Step Setup Instructions
  This is an advanced workflow. Follow these setup steps carefully.

  1. Connect Your Credentials
  Airtable: Create and connect a Personal Access Token with data.records:read and data.records:write scopes.
  QuickBooks: Connect your QuickBooks Online account using OAuth2 credentials.
  Stripe: Connect your Stripe account using your Secret Key.

  2. Airtable Base Setup (Crucial)
  Your Airtable base must have a table with the following columns. The names must match exactly:

  Deal Name (Text)
  Client Name (Text)
  Client Email (Email)
  Status (Single-select with options: Draft,
  Approved for Invoicing, Invoiced)
  QuickBooks Customer ID (Text)
  Stripe Customer ID (Text)
  Stripe Payment Link (URL)
  QuickBooks Invoice # (Text)
  Stripe Price Id (Text - The API ID of your price in Stripe, e.g., price_123...)
  Quantity (Number)
  Quickbooks Product Name (Text)
  Created (Created Time) - This is used by the trigger.

  3. Configure the n8n Nodes
  All Airtable Nodes: In each Airtable node, select your Base and Table from the dropdown lists.
  Get all Quickbook products (HTTP Request Node):
  You must replace {YOUR_QUICKBOOKS_COMPANY_ID} in the URL with your actual QuickBooks Company ID (also known as a Realm ID).

  4. Activate the Workflow
  Save the workflow and toggle the Active switch to "on". The workflow will now trigger whenever the Created field is updated for a record in your Airtable base.

  Customization Guidance
  Changing the Trigger Status: If you use a different status than "Approved for Invoicing," simply update the value in the "IF - Status Check" node.
  Modifying Invoice Details: You can customize the Description or other line item details in the "Create an invoice" (QuickBooks) node by pulling more fields from your Airtable record.
  Adding Email Notifications: To notify a customer when their invoice is ready, add a Gmail or SendGrid node after the last Airtable Update node. You can include the Stripe Payment Link and a PDF of the QuickBooks invoice directly in the email.
  Advanced Error Handling: For a production environment, consider connecting the false output of the various IF nodes or using the .onError() workflow setting to send a Slack or email alert if a customer can't be found or an API call fails.

  Support
  For further support, or to develop a custom workflow, reach out to:

  Website: https://www.intuz.com/services
  Email: getstarted@intuz.com
  LinkedIn: https://www.linkedin.com/company/intuz
  Get Started: https://n8n.partnerlinks.io/intuz

  For Custom Worflow Automation
  Click here- Get Started

nodes_used:
  ["n8n-nodes-base.airtableTrigger","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.merge","n8n-nodes-base.stripe","n8n-nodes-base.if","n8n-nodes-base.stripe","n8n-nodes-base.merge","n8n-nodes-base.quickbooks","n8n-nodes-base.quickbooks","n8n-nodes-base.quickbooks","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 11272 characters]


name: Classify Emails and Send Replies with GPT-4o and gotoHuman for Supervision
author_name: gotoHuman
author_username: gotohuman
categories: []
created_at: 2025-08-12T16:58:54.311Z
updated_at: 2025-08-12T16:58:54.311Z
url: https://n8n.io/workflows/7301
scraped_at: 2025-12-24 13:02:44
description:
  Let AI classify your incoming emails and draft replies.
  Use gotoHuman to approve emails before they are sent out. It also lets you manually edit the draft or even ask for a retry.

  How it works
  The workflow is triggered for each new email which gets passed to an AI classification agent.
  It assigns the email to one of the categories defined in the prompt (Customer Support, Sales opportunity, Promo, Personal,...). The agent also determines whether a reply is needed and if it is important.
  If a reply is needed, we ask the AI Email Writer to draft a response. Even if it is missing context it can help us draft an outline for the response.
  The email draft is sent to gotoHuman where the reviewer can manually edit it or ask to regenerate it with the option to even edit the prompt (Retries loop back to the AI Email Writer node)


  Approved email replies are automatically sent from the workflow

  How to set up

  Most importantly, install the gotoHuman node before importing this template!
  (Just add the node to a blank canvas before importing)
  Set up your credentials for gotoHuman, OpenAI, and Gmail
  In gotoHuman, select and create the pre-built review template "Email agent" or import the ID: v81wzxwYoFYvWpmuIBgX
  Select this template in the gotoHuman node

  Requirements

  You need accounts for
  gotoHuman (human supervision)
  OpenAI (classification, drafting)
  Gmail

  How to customize

  Change the predefined categories in the prompt of the AI classification agent
  Provide the AI Email Writer with more context to create replies. Consider adding tools that allow the agent to fetch more infos about clients, your calendar, FAQs for your product,...

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.gmailTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.noOp","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.switch","n8n-nodes-base.noOp","@gotohuman/n8n-nodes-gotohuman.gotoHuman","n8n-nodes-base.switch","n8n-nodes-base.gmail","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, 5768 characters]


name: Scrape Blog Articles into AI-Generated LinkedIn Posts with GPT-4o & Human Review
author_name: gotoHuman
author_username: gotohuman
categories: []
created_at: 2025-08-12T22:59:51.218Z
updated_at: 2025-08-12T22:59:51.218Z
url: https://n8n.io/workflows/7310
scraped_at: 2025-12-24 13:02:43
description:
  Auto-detect news from n8n and turn into a human-approved LinkedIn post.
  gotoHuman is used to keep a human in the loop. There you can manually edit the AI draft of the post or request to regenerate it.

  How it works
  The workflow is triggered each day to fetch the latest version of https://blog.n8n.io.
  It then fetches each article, checks if it was published in the last 24 hours and uses an LLM to summarize it.
  An LLM then drafts a related LinkedIn post which is sent to gotoHuman for approval. In gotoHuman, the reviewer can manually edit it or ask to regenerate it with the option to even edit the prompt (Retries loop back to the AI Draft LinkedIn Post node)


  Approved Posts are automatically published to LinkedIn

  How to set up

  Most importantly, install the gotoHuman node before importing this template!
  (Just add the node to a blank canvas before importing)
  Set up your credentials for gotoHuman, OpenAI, and LinkedIn
  In gotoHuman, select and create the pre-built review template "Blog scraper agent" or import the ID: sMxevC9tSAgdfWsr6XIW
  Select this template in the gotoHuman node

  Requirements

  You need accounts for
  gotoHuman (human supervision)
  OpenAI (summary, draft)
  LinkedIn

  How to customize

  Change the blog URL to monitor. Adapt to its' HTML structure
  Provide the AI Draft LinkedIn Post with examples of previous posts so it picks up your writing style (consider adding gotoHuman's dataset of approved examples)
  Use the workflow to target other publications, like your newsletter, blog or other socials

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.splitOut","n8n-nodes-base.html","n8n-nodes-base.httpRequest","n8n-nodes-base.html","n8n-nodes-base.httpRequest","n8n-nodes-base.html","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.linkedIn","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.splitInBatches","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@gotohuman/n8n-nodes-gotohuman.gotoHuman","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6484 characters]


name: Automated LinkedIn Lead Generation & DM Outreach with Airtable, and Unipile.
author_name: Ruben AI
author_username: rubenai
categories: []
created_at: 2025-08-13T04:56:51.552Z
updated_at: 2025-08-13T04:56:51.552Z
url: https://n8n.io/workflows/7311
scraped_at: 2025-12-24 13:02:45
description:
  LinkedIn DM Automation

  Overview
  Effortlessly scale personalized LinkedIn outreach using a no-code automation stack. This template provides a powerful, user-friendly system for harvesting leads from LinkedIn posts and managing outreach—all within Airtable and n8n.

  Features & Highlights

  Actionable Input:** Simply enter a LinkedIn post URL to kickstart the engine—no browser scraping or manual work needed.

  Lead Harvesting:** Automatically scrape commenters, likers, and profile data using Unipile’s API access.

  Qualification Hub:** Easily review and qualify leads right inside Airtable using custom filters and statuses.

  Automated Campaign Flow:** n8n handles the sequence—from sending connection requests (adhering to LinkedIn limits) to delivering personalized DMs upon acceptance.

  Unified Dashboard:** Monitor campaign progress, connection status, and messaging performance in real time.

  Flexible & Reusable:** Fully customizable for your own messaging, filters, or UD campaigns—clone, adapt, and deploy.

  Why Use This Template?

  ++Zero-code friendly:++ Ideal for entrepreneurs, sales professionals, and growth teams looking for streamlined, scalable outreach.

  ++Transparent and compliant:++ Built with Airtable UI and compliant API integration—no reliance on browser automation or unofficial methods.

  ++Rapid Deployment:++ Clone and launch your automation in under 30 minutes—no dev setup required.

  Setup Instructions

  Import the template into your n8n workspace.

  Connect your Airtable and Unipile credentials.

  Configure LinkedIn post input, filters, and DM templates in Airtable.

  Run the workflow and monitor results directly from Airtable or n8n.

  Use Cases

  Capture inbound leads from your viral LinkedIn posts.

  Qualify and nurture prospects seamlessly without manual follow-ups.

  Scale outreach with precision and personalization.

  YouTube Explanation

  You can access the video explanation of how to use the workflow: Explanation Video

nodes_used:
  ["n8n-nodes-base.switch","n8n-nodes-base.webhook","n8n-nodes-base.airtable","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.limit","n8n-nodes-base.set","n8n-nodes-base.airtable","n8n-nodes-base.limit","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.airtable","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.merge","n8n-nodes-base.limit","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.noOp","n8n-nodes-base.filter","n8n-nodes-base.limit","n8n-nodes-base.limit","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.airtable","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.filter","n8n-nodes-base.limit","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.airtable","n8n-nodes-base.splitInBatches","n8n-nodes-base.noOp","n8n-nodes-base.noOp","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.merge","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.aggregate","n8n-nodes-base.airtable","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.limit","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","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.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.set","n8n-nodes-base.splitOut","n8n-nodes-base.airtable","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.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.airtable","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.limit","n8n-nodes-base.filter","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.airtable","n8n-nodes-base.filter","n8n-nodes-base.noOp","n8n-nodes-base.limit","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","n8n-nodes-base.airtable","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.airtable","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.airtable","n8n-nodes-base.limit","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.wait"]

workflow_json_compressed:
  [encoded data, 10808 characters]


name: Automate Marketing Campaigns with Airtable CRM & Brevo Email Tracking
author_name: Guy
author_username: guy
categories: []
created_at: 2025-08-13T08:54:45.509Z
updated_at: 2025-08-13T08:54:45.509Z
url: https://n8n.io/workflows/7318
scraped_at: 2025-12-24 13:02:46
description:
  🎯 General principles

  This template automates the management of marketing campaign from a CRM based on Airtable, using Brevo for sending and tracking emails.

  🧩 It is based on two main steps:
  Sending emails to targeted companies in Airtable, creating an interaction record for each sent email.

  Real-time tracking of events (email delivered / opened / clicked, unsubscribe request) via a n8n webhook, updating the corresponding interaction or company record.

  This workflow provides precise tracking of marketing actions and facilitates the history of interactions with prospects or clients.

  Prerequisites
  Airtable with at least 3 tables:
  Company: Contains information about your clients or prospects.
  Interaction: Log of exchanges and events.
  Campaign: Information about the ongoing campaign.

  Brevo:
  A predefined email template, which can include a link to a form.
  API access for sending and tracking emails.

  ⚙️ Step-by-step description
  1️⃣ Sending Emails
  Selecting targeted companies
  The workflow queries the Company table in Airtable, filtering on a tag or a specific field related to the campaign (e.g., Campaign = "1").
  Preparing data for Brevo
  For each company, retrieves the necessary information: email address.
  Sending the email via Brevo
  Uses a Brevo Send Template node with a predefined template.
  Brevo returns a unique identifier for each email sent.
  Creating an interaction in Airtable
  A record is added to the Interaction table containing:
  Company
  Date and time of interaction
  Media = email
  Brevo email identifier
  2️⃣ Tracking Events
  Receiving Brevo events
  Brevo triggers a webhook to n8n for each event:
  Delivered
  Opened
  Clicked
  Unsubscribed
  Matching with the interaction
  Based on the Brevo identifier received, the workflow finds the corresponding Interaction in Airtable.
  Updating the interaction
  The interaction status is updated based on the event (e.g., "Opened" with date and time).
  Managing unsubscribes
  In case of an unsubscribe:
  The workflow finds the Company associated via the interaction.
  A specific field in the Company table (e.g., Opt-in) is updated to "No" in order to exclude this company from future campaigns.
  ✅ Benefits of this template
  Automated sending and real-time tracking.
  Interaction history stored in the CRM.
  RGPD (European regulations) compliance through automatic unsubscribe management.
  Clear view of campaign effectiveness (open rates, clicks, etc.).

  📬 Contact
  Need help customizing this (e.g., expanding Data Tables, connecting multiple surveys, or automating follow-ups)?

  📧 smarthome.smartelec@gmail.com
  🔗 guy.salvatore
  🌐 smarthome-smartelec.fr

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.sendInBlue","n8n-nodes-base.set","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4852 characters]


name: CYBERPULSE AI GRC: Automate Security Questionnaire Responses
author_name: Adnan Tariq
author_username: adnantariq
categories: []
created_at: 2025-08-14T03:29:59.817Z
updated_at: 2025-08-14T03:29:59.817Z
url: https://n8n.io/workflows/7349
scraped_at: 2025-12-24 13:02:44
description:
  Description

  Automates vendor/customer security questionnaire responses. It ingests a questionnaire (Sheet/CSV/XLSX), matches each question to your approved answers and evidence, and writes a clean “Auto-Fill” sheet ready to review and send back. Optional alerts nudge reviewers and track progress to completion.

  Who’s It For

  GRC / Compliance teams responding to customer security reviews

  Security engineers and sales engineers supporting questionnaires

  Startups that need fast, consistent, audit-ready answers

  How It Works

  Trigger

  Run manually, on a schedule, or when a questionnaire file/row is added.

  Ingest & Normalize

  Reads questions from Google Sheets/CSV/XLSX.

  Normalizes columns (e.g., question, category, customer_notes) and de-duplicates.

  Classify

  Detects question type (Yes/No, multi-select, free text).

  Tags topics (encryption, access control, incident response, privacy, HR, etc.).

  Answer Retrieval

  Looks up approved answers from your Answer Library sheet (mapped by keywords/category/control).

  Falls back to templates (short form/long form) when no exact match exists.

  Evidence Linking

  Inserts Drive links for policies, diagrams, SOC2/ISO docs (from your evidence folder).

  Adds version/date so reviewers can verify what was sent.

  Auto-Fill Output

  Writes a new sheet with columns like:
  question, proposed_answer, rationale/notes, evidence_link, control_ref, owner, status, confidence, last_updated.

  Review & Notifications

  Emails the reviewer/owner with a link to the output sheet for quick approval edits.

  Status can move from draft → reviewed → ready to send.

  Export

  Optional export to CSV/XLSX to match customer’s template.

  Optional PDF of responses for audit trail.

  Requirements

  Google Sheets & Drive credentials

  Destination Sheet & Evidence folder (env vars used in the template):

  GSHEET_ID, GSHEET_SHEET

  DRIVE_FOLDER_ID (or keep SANITIZED and set after import)

  Alert email: GRC_ALERT_EMAIL

  File Templates

  GRC_SQ_AutoFill_Template.xlsx – target sheet with the output columns above

  Answer_Library.xlsx / Sheet tab – key-value pairs: keywords/category → approved answers

  Control_Mapping.xlsx / Sheet tab – optional mapping to ISO 27001, SOC2, NIST CSF

  Output

  A populated Auto-Fill sheet ready to review/share

  Evidence links with versioning

  Email notification to the reviewer with next steps

  Customization Tips

  Add your framework tags (ISO/SOC2/NIST) to enable quick mapping in the output.

  Set owners per topic (e.g., “Encryption → Security Eng”, “Privacy → Legal”).

  Add a confidence score threshold to flag answers needing human review.

  Enable “strict mode” to prevent sending answers without evidence links.

  Schedule a weekly run to pre-fill common questionnaires and keep answers fresh.

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.googleSheets","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.gmail","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE52W3W4bNxCFX0XYa1HlP7m6qpHWrgskRuM2BVL4YkgO5YXlXXW1dmIYAvoOfcM+SUlJ1kqKZLm9EWBzeOab4fBwn4sqFONi/nD+xZ3fmg9X/u63i/anYljcYwfF+Lmo6nkHtcfLHKcjxigZQEBnJS2NMMi1NDqWgYJUsVSIXkPpmYYYo8VoDWjNpVJOh1gshkUN95ikLj6+G/zz19+Da/QPbdU9DX55wHlXNXUNVYuDs4euOa+m00TSwWRejP94XqFOfr5u1Z/vv3x+tJ+qu/as2Ci+a+5n0yqzDj7ifNbUAdu06luEDsNZl0I45YpQS6j8lbIxN2PFRtKqzynsYRZOhy1uUrYm4BYP48KlBljCS9RESpTEqWiJxBiMUSp6gz3j7+hum+YuV/U0y/+obU2WisTBHEdfNuuzZl7ldqRMhGlJh8zSlH0dsDwNYEIGERVhpgxEgpQEtBPESCtloBKQq6wEbUreYZuonxerzJ/SX0txvhiuC0GkpVZBE+qDJ1JHTcByIBRAiFKDp2j7Qi6aZjLFwfUtYjc/Ws5kGbUJ2qmJb2p6FVCO9AaRowMa0RKXq5YgAgGFglAaDAWmnZSmR/wxVN3gvMJpOA44x26Py/CExU9iiZHcYBkBApXlJFCeziFQShyThjBEYFanppaxx7qaYX122RN9n5C+67GmUE/8LVT1qMmB1R6etG/CYyO7wWM8MHBBEWN5mlAuFHGm5ASkpw50jID6yMGy/3GydPifzpQhN55FTlxkZSoPMIFFQYSjUTvvPQre013Go0RV3J8wyt80YXzUXwJROpVmC0m2LSKZSbOG0hLBnOMGI5Z8q1fvsZ3gUaD79epOb7h+w2j1PMwztAIDQQhptFI3iBUOCaYbryxYq7nYdsBwHMevFrdoZL6B8nR/NjTJyA0LuSceJJHJ9wigoUR575SN4EvwW5N0D9X0+ACtV7d4tH7h2Xa50ipgGGKqHpMvgbPEonPph6XRVZZF6U663IhtighKKU+pJpwpl4qAJOUCEhOi4U4oo7cNe30dfmirx+OtXV2Gl5idGZRvcznRm4m3lmM6bGZ9ekVENhOqIkGPClDEEG3Z4113lb97GnxouuN082XMOmQbLvdbfjuPhW/qDuv8EBbf+Ep+AcF3udJxhOkch0Xy0K6qJ8ut+DU951n/qs2v77h4ZFnjcbV/eZ4ufSwYzx1JVaXzRCNygZIYb1SwXCVDzwUmiBp9lloKp4ufftPMZPL09ub6jnn8MmqYvlwCfi3GdHFzkxCWd+OQxN6YHty8uuiHdu9euYOb14Z/MPcRs93XGW527FnObiBbJXz5yHgl4948H+Te7u0hqf2H7KDITr6TLXib2Dr2kNr2+3Bagh3UeLXFS5nF4l9YlJN8OAsAAA==


name: Create a Self-Hosted Blockchain Payment Processor with x402 and 1Shot API
author_name: 1Shot API
author_username: oneshotapi
categories: []
created_at: 2025-08-14T05:17:29.215Z
updated_at: 2025-08-14T05:17:29.215Z
url: https://n8n.io/workflows/7364
scraped_at: 2025-12-24 13:02:43
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  Self-Hosted x402 Facilitator

  In the x402 payment protocol, a facilitator is a role which helps sellers settle stablecoin payments onchain without dealing with blockchain complexities. This workflow allows you to run your own fully-featured, specification-compliant facilitator in n8n. You might want to do this if you want to accept payments in tokens not supported by existing facilitators or as your own business!

  Details

  A facilitator supports three routes: /verify, /settle, and /supported. These routes are all created for you in this workflow with proper error handling and responses. 

  A seller will first hit /verify with their payment details to ensure the payment information is correct. Next they will hit the /settle endpoint with the same payment information to settle the paymet on the blockchain. The /supported endpoint is used to indicate to sellers which blockchains you choose to support in a programatic fashion.

  Setup

  Create a 1Shot API account
  Create 1Shot API wallets for the networks where you wish to facilitate token payments and load them with sufficient gas tokens.
  Using 1Shot Prompts, import the transferWithAuthorization functions for the tokens you will settle payments for.
  Import this workflow into n8n and create a credential to link the 1Shot API community node to your 1Shot API business account.
  Enter the token and network information into the payment token and network configuration nodes indicated by the sticky nodes.
  Turn on your workflow and settle payments!

nodes_used:
  ["n8n-nodes-1shot.oneShot","n8n-nodes-base.webhook","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-1shot.oneShotSynch","n8n-nodes-base.if","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","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.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7816 characters]


name: Automated Content Strategy with Google Trends, News, Firecrawl & Claude AI
author_name: Growth AI
author_username: growthai
categories: []
created_at: 2025-08-14T09:22:16.685Z
updated_at: 2025-08-14T09:22:16.685Z
url: https://n8n.io/workflows/7372
scraped_at: 2025-12-24 13:02:42
description:
  Automated trend monitoring for content strategy

  Who's it for
  Content creators, marketers, and social media managers who want to stay ahead of emerging trends and generate relevant content ideas based on data-driven insights.

  What it does
  This workflow automatically identifies trending topics related to your industry, collects recent news articles about these trends, and generates content suggestions. It transforms raw trend data into actionable editorial opportunities by analyzing search volume growth and current news coverage.

  How it works
  The workflow follows a three-step automation process:
  Trend Analysis: Examines searches related to your topics and identifies those with the strongest recent growth
  Article Collection: Searches Google News for current articles about emerging trends and scrapes their full content
  Content Generation: Creates personalized content suggestions based on collected articles and trend data
  The system automatically excludes geo-localized searches to provide a global perspective on trends, though this can be customized.

  Requirements
  SerpAPI account (for trend and news data)
  Firecrawl API key (for scraping article content from Google News results)
  Google Sheets access
  AI model API key (for content analysis and recommendations - you can use any LLM provider you prefer)

  How to set up

  Step 1: Prepare your tracking sheet
  Duplicate this Google Sheets template 
  Rename your copy and ensure it's accessible

  Step 2: Configure API credentials
  Before running the workflow, set up the following credentials in n8n:
  SerpAPI: For trend analysis and Google News search
  Firecrawl API: For scraping article content
  AI Model API: For content analysis and recommendations (Anthropic Claude, OpenAI GPT, or any other LLM provider)
  Google Sheets OAuth2: For accessing and updating your tracking spreadsheet

  Step 3: Configure your monitoring topics
  In your Google Sheet "Query" tab:

  Query column: Enter the main topics/keywords you want to monitor for trending queries (e.g., "digital marketing", "artificial intelligence", "sustainable fashion")
  Query to avoid column: Optionally add specific queries you want to exclude from trend analysis (e.g., brand names, irrelevant terms, or overly specific searches that don't match your content strategy)

  This step is crucial as these queries will be the foundation for discovering related trending topics.

  Step 4: Configure the workflow
  In the "Get Query" node, paste your duplicated Google Sheets URL in the "Document" field
  Ensure your Google Sheet contains your monitoring topics in the Query column

  Step 5: Customize language and location settings

  The workflow is currently configured for French content and France location. You can modify these settings in the SerpAPI nodes:
  Language (hl): Change from "fr" to your preferred language code
  Geographic location (geo/gl): Change from "FR" to your target country code
  Date range: Currently set to "today 1-m" (last month) but can be adjusted

  Step 6: Adjust filtering (optional)
  The "Sorting Queries" node excludes geo-localized queries by default. You can modify the AI agent's instructions to include location-specific queries or change filtering criteria based on your requirements. The system will also automatically exclude any queries you've listed in the "Query to avoid" column.

  Step 7: Configure scheduling (optional)
  The workflow includes an automated scheduler that runs monthly (1st day of each month at 8 AM). You can modify the cron expression 0 8 1 * * in the Schedule Trigger node to change:
  Frequency (daily, weekly, monthly)
  Time of execution
  Day of the month

  How to customize the workflow
  Change trend count: The workflow processes up to 10 related queries per topic but filters them through AI to select the most relevant non-geolocalized ones
  Adjust article collection: Currently collects exactly 3 news articles per query for analysis
  Content style: Customize the AI prompts in content generation nodes to match your brand voice
  Output format: Modify the Google Sheets structure to include additional data points
  AI model: Replace the Anthropic model with your preferred LLM provider
  Scraping options: Configure Firecrawl settings to extract specific content elements from articles

  Results interpretation
  For each monitored topic, the workflow generates a separate sheet named by month and topic (e.g., "January Digital Marketing") containing:
  Data structure (four columns):
  Query: The trending search term ranked by growth
  Évolution: Growth percentage over the last month
  News: Links to 3 relevant news articles
  Idée: AI-generated content suggestions based on comprehensive article analysis
  The workflow provides monthly retrospective analysis, helping you identify emerging topics before competitors and optimize your content calendar with high-potential subjects.

  Workflow limitations
  Processes up to 10 related queries per topic with AI filtering
  Collects exactly 3 news articles per query
  Results are automatically organized in monthly sheets
  Requires stable internet connection for API calls

nodes_used:
  ["n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-serpapi.serpApi","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-serpapi.serpApi","n8n-nodes-serpapi.serpApi","n8n-nodes-serpapi.serpApi","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","@mendable/n8n-nodes-firecrawl.firecrawl","@mendable/n8n-nodes-firecrawl.firecrawl","@mendable/n8n-nodes-firecrawl.firecrawl","@mendable/n8n-nodes-firecrawl.firecrawl","@mendable/n8n-nodes-firecrawl.firecrawl","@mendable/n8n-nodes-firecrawl.firecrawl","@mendable/n8n-nodes-firecrawl.firecrawl","@mendable/n8n-nodes-firecrawl.firecrawl","@mendable/n8n-nodes-firecrawl.firecrawl","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.merge","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, 10740 characters]


name: Generate Website Sitemaps & Visual Trees with Firecrawl and Google Sheets
author_name: Growth AI
author_username: growthai
categories: []
created_at: 2025-08-14T11:35:55.742Z
updated_at: 2025-08-14T11:35:55.742Z
url: https://n8n.io/workflows/7379
scraped_at: 2025-12-24 13:02:44
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  Website sitemap generator and visual tree creator
  Who's it for
  Web developers, SEO specialists, UX designers, and digital marketers who need to analyze website structure, create visual sitemaps, or audit site architecture for optimization purposes.
  What it does
  This workflow automatically generates a comprehensive sitemap from any website URL and creates an organized hierarchical structure in Google Sheets. It follows the website's sitemap to discover all pages, then organizes them by navigation levels (Level 1, Level 2, etc.) with proper parent-child relationships. The output can be further processed to create visual tree diagrams and mind maps.
  How it works
  The workflow follows a five-step automation process:

  URL Input: Accepts website URL via chat interface
  Site Crawling: Uses Firecrawl to discover all pages following the website's sitemap only
  Success Validation: Checks if crawling was successful (some sites block external crawlers)
  Hierarchical Organization: Processes URLs into a structured tree with proper level relationships
  Google Sheets Export: Creates a formatted spreadsheet with the complete site architecture

  The system respects robots.txt and follows only sitemap-declared pages to ensure ethical crawling.
  Requirements

  Firecrawl API key (for website crawling and sitemap discovery)
  Google Sheets access
  Google Drive access (for template duplication)

  How to set up
  Step 1: Prepare your template (recommended)
  It's recommended to create your own copy of the base template:

  Access the base Google Sheets template
  Make a copy for your personal use
  Update the workflow's "Copy template" node with your template's file ID (replace the default ID: 12lV4HwgudgzPPGXKNesIEExbFg09Tuu9gyC_jSS1HjI)
  This ensures you have control over the template formatting and can customize it as needed

  Step 2: Configure API credentials
  Set up the following credentials in n8n:

  Firecrawl API: For crawling websites and discovering sitemaps
  Google Sheets OAuth2: For creating and updating spreadsheets
  Google Drive OAuth2: For duplicating the template file

  Step 3: Configure Firecrawl settings (optional)
  The workflow uses optimized Firecrawl settings:

  ignoreSitemap: false - Respects the website's sitemap
  sitemapOnly: true - Only crawls URLs listed in sitemap files
  These settings ensure ethical crawling and faster processing

  Step 4: Access the workflow

  The workflow uses a chat trigger interface - no manual configuration needed
  Simply provide the website URL you want to analyze when prompted

  How to use the workflow
  Basic usage

  Start the chat: Access the workflow via the chat interface
  Provide URL: Enter the website URL you want to analyze (e.g., "https://example.com")
  Wait for processing: The system will crawl, organize, and export the data
  Receive your results: Get an automatic direct clickable link to your generated Google Sheets - no need to search for the file

  Error handling

  Invalid URLs: If the provided URL is invalid or the website blocks crawling, you'll receive an immediate error message
  Graceful failure: The workflow stops without creating unnecessary files when errors occur
  Common causes: Incorrect URL format, robots.txt restrictions, or site security settings

  File organization

  Automatic naming: Generated files follow the pattern "[Website URL] - n8n - Arborescence"
  Google Drive storage: Files are automatically organized in your Google Drive
  Instant access: Direct link provided immediately upon completion

  Advanced processing for visual diagrams
  Step 1: Copy sitemap data
  Once your Google Sheets is ready:

  Copy all the hierarchical data from the generated spreadsheet
  Prepare it for AI processing

  Step 2: Generate ASCII tree structure
  Use any AI model with this prompt:
  Create a hierarchical tree structure from the following website sitemap data. Return ONLY the tree structure using ASCII tree formatting with ├── and └── characters. Do not include any explanations, comments, or additional text - just the pure tree structure. The tree should start with the root domain and show all pages organized by their hierarchical levels. Use proper indentation to show parent-child relationships. Here is the sitemap data: [PASTE THE SITEMAP DATA HERE] 

  Requirements: 
  Use ASCII tree characters (├── └── │) 
  Show clear hierarchical relationships 
  Include all pages from the sitemap 
  Return ONLY the tree structure, no other text 
  Start with the root domain as the top level
  Step 3: Create visual mind map

  Visit the Whimsical Diagrams GPT
  Request a mind map creation using your ASCII tree structure
  Get a professional visual representation of your website architecture

  Results interpretation
  Google Sheets output structure
  The generated spreadsheet contains:

  Niv 0 to Niv 5: Hierarchical levels (0 = homepage, 1-5 = navigation depth)
  URL column: Complete URLs for reference
  Hyperlinked structure: Clickable links organized by hierarchy
  Multi-domain support: Handles subdomains and different domain structures

  Data organization features

  Automatic sorting: Pages organized by navigation depth and alphabetical order
  Parent-child relationships: Clear hierarchical structure maintained
  Domain separation: Main domains and subdomains processed separately
  Clean formatting: URLs decoded and formatted for readability

  Workflow limitations

  Sitemap dependency: Only discovers pages listed in the website's sitemap
  Crawling restrictions: Some websites may block external crawlers
  Level depth: Limited to 5 hierarchical levels for clarity
  Rate limits: Respects Firecrawl API limitations
  Template dependency: Requires access to the base template for duplication

  Use cases

  SEO audits: Analyze site structure for optimization opportunities
  UX research: Understand navigation patterns and user paths
  Content strategy: Identify content gaps and organizational issues
  Site migrations: Document existing structure before redesigns
  Competitive analysis: Study competitor site architectures
  Client presentations: Create visual site maps for stakeholder reviews

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.if","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","@mendable/n8n-nodes-firecrawl.firecrawl","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, 8720 characters]


name: Create a Knowledge-Powered Chatbot with Claude, Supabase & Postgres
author_name: Growth AI
author_username: growthai
categories: []
created_at: 2025-08-14T12:20:23.845Z
updated_at: 2025-08-14T12:20:23.845Z
url: https://n8n.io/workflows/7381
scraped_at: 2025-12-24 13:02:45
description:
  Intelligent chatbot with custom knowledge base
  Who's it for
  Businesses, developers, and organizations who need a customizable AI chatbot for internal documentation access, customer support, e-commerce assistance, or any use case requiring intelligent conversation with access to specific knowledge bases.
  What it does
  This workflow creates a fully customizable AI chatbot that can be deployed on any platform supporting webhook triggers (websites, Slack, Teams, etc.). The chatbot accesses a personalized knowledge base stored in Supabase and can perform advanced actions like sending emails, scheduling appointments, or updating databases beyond simple conversation.
  How it works
  The workflow combines several powerful components:

  Webhook Trigger: Accepts messages from any platform that supports webhooks
  AI Agent: Processes user queries with customizable personality and instructions
  Vector Database: Searches relevant information from your Supabase knowledge base
  Memory System: Maintains conversation history for context and traceability
  Action Tools: Performs additional tasks like email sending or calendar booking

  Technical architecture

  Chat trigger connects directly to AI Agent
  Language model, memory, and vector store all connect as tools/components to the AI Agent
  Embeddings connect specifically to the Supabase Vector Store for similarity search

  Requirements

  Supabase account and project
  AI model API key (any LLM provider of your choice)
  OpenAI API key (for embeddings - this is covered in Cole Medin's tutorial)
  n8n built-in PostgreSQL access (for conversation memory)
  Platform-specific webhook configuration (optional)

  How to set up
  Step 1: Configure your trigger

  The template uses n8n's default chat trigger
  For external platforms: Replace with webhook trigger and configure your platform's webhook URL
  Supported platforms: Any service with webhook capabilities (websites, Slack, Teams, Discord, etc.)

  Step 2: Set up your knowledge base
  For creating and managing your vector database, follow this comprehensive guide:

  Watch Cole Medin's tutorial on document vectorization
  This video shows how to build a complete knowledge base on Supabase
  The tutorial covers document processing, embedding creation, and database optimization
  Important: The video explains the OpenAI embeddings configuration required for vector search

  Step 3: Configure the AI agent

  Define your prompt: Customize the agent's personality and role

  Example: "You are the virtual assistant for example.com. Help users by answering their questions about our products and services."


  Select your language model: Choose any AI provider you prefer (OpenAI, Anthropic, Google, etc.)
  Set behavior parameters: Define response style, tone, and limitations

  Step 4: Connect Supabase Vector Store

  Add the "Supabase Vector Store" tool to your agent
  Configure your Supabase project credentials
  Mode: Set to "retrieve-as-tool" for automatic agent integration
  Tool Description: Customize description (default: "Database") to describe your knowledge base
  Table configuration:

  Specify the table containing your knowledge base (example shows "growth_ai_documents")
  Ensure your table name matches your actual knowledge base structure
  Multiple tables: You can connect several tables for organized data structure


  The agent will automatically decide when to search the knowledge base based on user queries

  Step 5: Set up conversation memory (recommended)

  Use "Postgres Chat Memory" with n8n's built-in PostgreSQL credentials
  Configure table name: Choose a name for your chat history table (will be auto-created)
  Context Window Length: Set to 20 messages by default (adjustable based on your needs)
  Benefits:

  Conversation traceability and analytics
  Context retention across messages
  Unique conversation IDs for user sessions
  Stored in n8n's database, not Supabase

  How to customize the workflow
  Basic conversation features

  Response style: Modify prompts to change personality and tone
  Knowledge scope: Update Supabase tables to expand or focus the knowledge base
  Language support: Configure for multiple languages
  Response length: Set limits for concise or detailed answers
  Memory retention: Adjust context window length for longer or shorter conversation memory

  Advanced action capabilities
  The chatbot can be extended with additional tools for:

  Email automation: Send support emails when users request assistance
  Calendar integration: Book appointments directly in Google Calendar
  Database updates: Modify Airtable or other databases based on user interactions
  API integrations: Connect to external services and systems
  File handling: Process and analyze uploaded documents

  Platform-specific deployments
  Website integration

  Replace chat trigger with webhook trigger
  Configure your website's chat widget to send messages to the n8n webhook URL
  Handle response formatting for your specific chat interface

  Slack/Teams deployment

  Set up webhook trigger with Slack/Teams webhook URL
  Configure response formatting for platform-specific message structures
  Add platform-specific features (mentions, channels, etc.)

  E-commerce integration

  Connect to product databases
  Add order tracking capabilities
  Integrate with payment systems
  Configure support ticket creation

  Results interpretation
  Conversation management

  Chat history: All conversations stored in n8n's PostgreSQL database with unique IDs
  Context tracking: Agent maintains conversation flow and references previous messages
  Analytics potential: Historical data available for analysis and improvement

  Knowledge retrieval

  Semantic search: Vector database returns most relevant information based on meaning, not just keywords
  Automatic decision: Agent automatically determines when to search the knowledge base
  Source tracking: Ability to trace answers back to source documents
  Accuracy improvement: Continuously refine knowledge base based on user queries

  Use cases
  Internal applications

  Developer documentation: Quick access to technical guides and APIs
  HR support: Employee handbook and policy questions
  IT helpdesk: Troubleshooting guides and system information
  Training assistant: Learning materials and procedure guidance

  External customer service

  E-commerce support: Product information and order assistance
  Technical support: User manuals and troubleshooting
  Sales assistance: Product recommendations and pricing
  FAQ automation: Common questions and instant responses

  Specialized implementations

  Lead qualification: Gather customer information and schedule sales calls
  Appointment booking: Healthcare, consulting, or service appointments
  Order processing: Take orders and update inventory systems
  Multi-language support: Global customer service with language detection

  Workflow limitations

  Knowledge base dependency: Quality depends on source documentation and embedding setup
  Memory storage: Requires active n8n PostgreSQL connection for conversation history
  Platform restrictions: Some platforms may have webhook limitations
  Response time: Vector search may add slight delay to responses
  Token limits: Large context windows may increase API costs
  Embedding costs: OpenAI embeddings required for vector search functionality

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.memoryPostgresChat","@n8n/n8n-nodes-langchain.vectorStoreSupabase","@n8n/n8n-nodes-langchain.embeddingsOpenAi","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","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","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5740 characters]


name: Complete Webflow to Pipedrive Integration with Smart Phone Formatting
author_name: Growth AI
author_username: growthai
categories: []
created_at: 2025-08-14T12:33:03.040Z
updated_at: 2025-08-14T12:33:03.040Z
url: https://n8n.io/workflows/7382
scraped_at: 2025-12-24 13:02:44
description:
  Advanced Form Submission to CRM Automation with International Phone Support
  Who's it for
  Sales teams, marketing professionals, and business owners who need sophisticated lead management with international phone number support, automated CRM record creation, intelligent duplicate detection, and multi-channel team notifications.
  What it does
  This advanced workflow automatically processes form submissions from your website and creates a complete, intelligent CRM structure in Pipedrive. It transforms raw form data into organized sales records including companies, contacts, deals, and relevant notes while handling international phone number formatting and providing real-time team notifications via Discord and WhatsApp messaging.
  How it works
  The workflow follows an intelligent automation process with four distinct scenarios:
  Form Trigger: Captures form submissions from your website (Webflow in this example)
  Advanced Phone Processing: Automatically detects and formats international phone numbers with proper country codes for 20+ countries including France, Belgium, Switzerland, Germany, Spain, Italy, Morocco, Algeria, Tunisia, and more
  Intelligent CRM Logic: Uses a sophisticated 4-scenario approach:

  Scenario A: Existing Organization + Existing Person - Links records and creates new deal
  Scenario B: Existing Organization + New Person - Creates person, links to organization, creates deal
  Scenario C: New Organization + Existing Person - Creates organization, links person, creates deal
  Scenario D: New Organization + New Person - Creates complete new structure from scratch

  Enhanced Data Management: Adds lead source tracking, custom properties, and conditional data enhancement
  Multi-Channel Communication: Sends formatted alerts to Discord and personalized WhatsApp messages to leads
  Requirements

  Webflow account (or any platform that supports webhook triggers)
  Pipedrive CRM account with proper API credentials
  Team notification service: Discord, Slack, Microsoft Teams, email service, or any webhook-compatible notification tool
  WhatsApp Business API access for lead messaging
  International phone number handling capability

  How to set up
  Step 1: Configure your form trigger
  Default setup: The template uses Webflow Form Trigger with site ID configuration
  Alternative platforms: Replace with webhook trigger for other platforms (WordPress, custom websites, etc.)
  Webhook configuration: Set up your website's form to send data to the n8n webhook URL
  Form fields: Ensure your form captures the necessary fields:

  Prénom (First Name)
  Nom (Last Name)
  Entreprise (Company)
  Mail professionnel (Professional Email)
  Téléphone pro (Professional Phone)
  URL du site internet (Website URL)
  Message

  Step 2: Configure API credentials
  Set up the following credentials in n8n:
  Webflow OAuth2: For form trigger authentication (or webhook authentication for other platforms)
  Pipedrive API: For CRM record creation and management - ensure proper permissions for organizations, persons, deals, and notes
  Discord Bot API: For team notifications with guild and channel access
  WhatsApp Business API: For automated lead messaging with phone number ID configuration
  Step 3: Customize international phone formatting
  The "international dialing code" node automatically handles:
  European countries: France (+33), Belgium (+32), Switzerland (+41), Germany (+49), Spain (+34), Italy (+39), Portugal (+351)
  North African countries: Morocco (+212), Algeria (+213), Tunisia (+216)
  Global coverage: US/Canada (+1), UK (+44), and many Asian countries
  Fallback handling: Defaults to French formatting for unrecognized patterns
  Error management: Uses +330000000000 as fallback for invalid numbers
  Step 4: Configure Pipedrive settings
  Adjust Pipedrive-specific settings in deal creation nodes:
  Deal pipeline stage: Currently set to default stage (customize for your pipeline)
  Deal ownership: Configure owner_id for appropriate team member assignment
  Currency settings: Adjust currency code for your business region
  Custom properties: Lead source automatically set to "Growth AI" (customize as needed)
  Step 5: Set up team notifications
  Configure your preferred notification system:
  Discord (default): Set guild ID: 1377297267014504520, channel ID: 1380469490139009106
  Alternative platforms: Replace Discord node with Slack, Teams, email, or custom webhook
  Message formatting: Customize notification content and structure
  Multi-channel setup: Add multiple notification nodes for different channels
  Step 6: Configure WhatsApp messaging
  Set up automated lead engagement:
  Phone number ID: Configure WhatsApp Business API phone number (currently: 752773604591912)
  Message personalization: Uses prospect's first name and customizable content
  International compatibility: Works with formatted international phone numbers
  Message templates: Customize welcome messages and follow-up content
  How to customize the workflow
  Form platform integration
  Webflow: Use the existing Webflow trigger with site ID configuration
  WordPress: Replace with webhook trigger and configure Contact Form 7, Gravity Forms, or WPForms
  Custom websites: Set up webhook trigger with your form's POST endpoint
  Landing page builders: Configure webhook integration (Unbounce, Leadpages, Instapage, etc.)
  Form field mapping: Adjust the "Data refinement" node for your specific form structure
  Advanced CRM customization
  Pipeline management: Configure different stage IDs for various lead sources
  Lead scoring: Add conditional logic for deal values based on form responses
  Custom fields: Map additional form fields to Pipedrive custom properties
  Multiple pipelines: Route different form types to different sales pipelines
  Ownership rules: Implement round-robin or territory-based assignment logic
  International phone number expansion
  The phone formatting system supports extensive customization:
  Additional countries: Add new country patterns to the JavaScript code
  Regional preferences: Modify default formatting rules for specific regions
  Validation rules: Implement stricter phone number validation
  Carrier detection: Add mobile vs. landline detection logic
  Notification enhancements
  Multi-platform notifications: Send to Discord, Slack, Teams, and email simultaneously
  Conditional notifications: Route different lead types to different channels
  Rich formatting: Add embeds, attachments, or rich text formatting
  Escalation rules: Implement priority-based notification routing
  Integration expansion: Connect to internal tools or third-party notification services
  Data validation and enrichment
  Email validation: Add email verification steps before CRM creation
  Company enrichment: Integrate with data enrichment services (Clearbit, ZoomInfo, Apollo)
  Duplicate detection: Enhanced logic to check for existing contacts across multiple fields
  Lead qualification: Implement sophisticated scoring based on form responses and external data
  Data cleaning: Add standardization for company names, job titles, and other fields
  Advanced conditional logic features
  Intelligent scenario routing
  The workflow uses sophisticated logic to determine the correct processing path:
  Organization detection: Exact matching search for existing companies
  Person identification: Full name matching within relevant organization contexts
  Relationship preservation: Maintains proper links between organizations, persons, and deals
  Data consistency: Ensures no duplicate records while preserving historical relationships
  Smart data handling
  Enhanced conditional processing includes:
  Phone number intelligence: Automatic international formatting with country detection
  Message processing: Creates deal notes only when message field contains meaningful content
  URL handling: Adds website URLs as separate notes when provided
  Empty field management: Gracefully handles incomplete form submissions
  Custom property management: Adds lead source tracking and other metadata
  Error handling and resilience
  Graceful failures: Workflow continues even if individual steps fail
  Data validation: Comprehensive checks for required fields before processing
  Notification reliability: Ensures team is notified even if some CRM operations fail
  Logging capabilities: Detailed error tracking for troubleshooting
  Rollback mechanisms: Ability to handle partial failures without data corruption
  Results interpretation
  CRM structure created
  For each form submission, the workflow creates:
  Organization record: Complete company information with proper formatting
  Person record: Contact information linked to correct organization with phone formatting
  Deal record: Sales opportunity with appropriate stage, owner, and metadata
  Enhanced notes: Separate notes for messages and website URLs when provided
  Proper relationships: Full linking between organization, person, and deal records
  Custom tracking: Lead source attribution and other custom properties
  Team notifications and engagement
  Comprehensive communication includes:
  Discord notifications: Formatted team alerts with complete prospect information
  WhatsApp engagement: Personalized messages to leads with international number support
  Immediate alerts: Real-time notifications for instant follow-up capability
  Formatted display: Clean, organized presentation of all prospect data
  Multi-channel flexibility: Easy adaptation to any notification platform
  Advanced use cases
  International lead generation
  Global forms: Handle submissions from multiple countries with proper phone formatting
  Multi-language support: Process forms in different languages with consistent data structure
  Regional routing: Route leads to appropriate regional sales teams based on phone country codes
  Currency handling: Automatic currency assignment based on detected country
  Sophisticated lead management
  Lead scoring: Advanced qualification based on company size, industry, and message content
  Progressive profiling: Build complete prospect profiles over multiple interactions
  Engagement tracking: Monitor response rates and optimize messaging
  Attribution analysis: Track lead sources and optimize marketing spend
  Enterprise integration
  Custom CRM fields: Map to complex Pipedrive custom field structures
  Multiple pipelines: Route leads to different sales processes based on criteria
  Team assignment: Intelligent routing based on territory, expertise, or workload
  Compliance handling: Ensure data processing meets regional privacy requirements
  Workflow architecture details
  Processing phases

  Form capture and data extraction: Webflow trigger processes submitted data
  International phone formatting: Advanced JavaScript processing for global numbers
  Organization discovery: Intelligent search and creation logic
  Person management: Sophisticated duplicate detection and relationship management
  Deal creation: Context-aware opportunity generation with proper associations
  Enhanced communication: Multi-channel notifications and lead engagement

  Performance characteristics
  Processing time: Typically completes within 10-15 seconds for complex scenarios
  Reliability: Built-in error handling ensures high success rates
  Scalability: Handles high-volume form submissions without performance degradation
  Flexibility: Easy customization for different business requirements and CRM configurations
  Limitations and considerations
  Platform dependencies: Currently optimized for Webflow and Pipedrive but adaptable
  Phone number coverage: Supports 20+ countries but may need expansion for specific regions
  CRM limitations: Requires proper Pipedrive API permissions and rate limit considerations
  Form structure: Field mapping requires customization for different form designs
  Language considerations: Currently configured for French field names but easily adaptable
  Notification dependencies: Requires proper configuration of Discord and WhatsApp APIs for full functionality

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.webflowTrigger","n8n-nodes-base.pipedrive","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.pipedrive","n8n-nodes-base.pipedrive","n8n-nodes-base.if","n8n-nodes-base.pipedrive","n8n-nodes-base.pipedrive","n8n-nodes-base.aggregate","n8n-nodes-base.aggregate","n8n-nodes-base.pipedrive","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, 8332 characters]


name: Automated Task Tracking & Notifications with Motion and Airtable
author_name: Growth AI
author_username: growthai
categories: []
created_at: 2025-08-14T12:49:34.783Z
updated_at: 2025-08-14T12:49:34.783Z
url: https://n8n.io/workflows/7383
scraped_at: 2025-12-24 13:02:46
description:
  Automated project status tracking with Airtable and Motion
  Who's it for
  Project managers, team leads, and agencies who need to automatically monitor project completion status across multiple clients and send notifications when specific milestones are reached.
  What it does
  This workflow automatically tracks project progress by connecting Airtable project databases with Motion task management. It monitors specific tasks within active projects and triggers email notifications when key milestones are completed. The system is designed to handle multiple projects simultaneously and can be customized for various notification triggers.
  How it works
  The workflow follows a structured monitoring process:

  Data Retrieval: Fetches project information from Airtable (project names and Motion workspace IDs)
  Motion Integration: Connects to Motion API using HTTP requests to retrieve project details
  Project Filtering: Identifies only active projects with "Todo" status containing "SEO" in the name
  Task Monitoring: Checks for specific completed tasks (e.g., "Intégrer les articles de blog")
  Conditional Notifications: Sends email alerts only when target tasks are marked as "Completed"
  Database Updates: Updates Airtable with last notification timestamps

  Requirements

  Airtable account with project database
  Motion account with API access
  Gmail account for email notifications
  HTTP request authentication for Motion API

  How to set up
  Step 1: Configure your Airtable database
  Ensure your Airtable contains the following fields:

  Project names: Names of projects to monitor
  Motion Workspace ID: Workspace identifiers for Motion API calls
  Status - Calendrier éditorial: Project status field (set to "Actif" for active projects)
  Last sent - Calendrier éditorial: Timestamp tracking for notification frequency
  Email addresses: Client and team member contact information

  Step 2: Set up API credentials
  Configure the following authentication in n8n:

  Airtable Personal Access Token: For database access
  Motion API: HTTP header authentication for Motion integration
  Gmail OAuth2: For email notification sending

  Step 3: Configure Motion API integration

  Base URL: Uses Motion API v1 endpoints
  Project retrieval: Fetches projects using workspace ID parameter
  Task monitoring: Searches for specific task names and completion status
  Custom filtering: Targets projects with "SEO" in name and "Todo" status

  Step 4: Customize scheduling

  Default schedule: Runs daily between 10th-31st of each month at 8 AM
  Cron expression: 0 8 10-31 * * (modify as needed)
  Frequency options: Can be adjusted for weekly, daily, or custom intervals

  Step 5: Set up email notifications
  Configure Gmail settings:

  Recipients: Project managers, clients, and collaborators
  Subject line: Dynamic formatting with project name and month
  Message template: HTML-formatted email with professional signature
  Sender name: Customizable organization name

  How to customize the workflow
  Single project, multiple tasks monitoring
  To adapt for monitoring one project with several different tasks:

  Modify the filter conditions to target your specific project
  Add multiple HTTP requests for different task names
  Create conditional branches for each task type
  Set up different notification templates per task

  Multi-project customization

  Database fields: Add custom fields in Airtable for different project types
  Filtering logic: Modify conditions to match your project categorization
  Motion workspace: Support multiple workspaces per client
  Notification rules: Set different notification frequencies per project

  Alternative notification methods
  Replace or complement Gmail with:

  Slack notifications: Send updates to team channels
  Discord integration: Alert development teams
  SMS notifications: Urgent milestone alerts
  Webhook integrations: Connect to custom internal systems
  Teams notifications: Enterprise communication

  Task monitoring variations

  Multiple task types: Monitor different milestones (design, development, testing)
  Task dependencies: Check completion of prerequisite tasks
  Progress tracking: Monitor task progress percentages
  Deadline monitoring: Alert on approaching deadlines

  Conditional logic features
  Smart filtering system

  Active project detection: Only processes projects marked as "Actif"
  Date-based filtering: Prevents duplicate notifications using timestamp comparison
  Status verification: Confirms task completion before sending notifications
  Project type filtering: Targets specific project categories (SEO projects in this example)

  Notification frequency control

  Monthly notifications: Prevents spam by tracking last sent dates
  Conditional execution: Only sends emails when tasks are actually completed
  Database updates: Automatically records notification timestamps
  Loop management: Processes multiple projects sequentially

  Results interpretation
  Automated monitoring outcomes

  Project status tracking: Real-time monitoring of active projects
  Milestone notifications: Immediate alerts when key tasks complete
  Database synchronization: Automatic updates of notification records
  Team coordination: Ensures all stakeholders are informed of progress

  Email notification content
  Each notification includes:

  Project identification: Clear project name and context
  Completion confirmation: Specific task that was completed
  Calendar reference: Links to editorial calendars or project resources
  Professional formatting: Branded email template with company signature
  Action items: Clear next steps for recipients

  Use cases
  Agency project management

  Client deliverable tracking: Monitor when content is ready for client review
  Milestone notifications: Alert teams when phases complete
  Quality assurance: Ensure all deliverables meet completion criteria
  Client communication: Automated updates on project progress

  Editorial workflow management

  Content publication: Track when articles are integrated into websites
  Editorial calendar: Monitor content creation and publication schedules
  Team coordination: Notify writers, editors, and publishers of status changes
  Client approval: Alert clients when content is ready for review

  Development project tracking

  Feature completion: Monitor when development milestones are reached
  Testing phases: Track QA completion and deployment readiness
  Client delivery: Automate notifications for UAT and launch phases
  Team synchronization: Keep all stakeholders informed of progress

  Workflow limitations

  Motion API dependency: Requires stable Motion API access and proper authentication
  Single task monitoring: Currently tracks one specific task type per execution
  Email-only notifications: Default setup uses Gmail (easily expandable)
  Monthly frequency: Designed for monthly notifications (customizable)
  Project naming dependency: Filters based on specific naming conventions
  Manual configuration: Requires setup for each new project type or workspace

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.filter","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","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.airtable","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.gmail","n8n-nodes-base.airtable","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8104 characters]


name: Batch Scrape Website URLs from Google Sheets to Google Docs with Firecrawl
author_name: Growth AI
author_username: growthai
categories: []
created_at: 2025-08-14T13:00:56.819Z
updated_at: 2025-08-14T13:00:56.819Z
url: https://n8n.io/workflows/7384
scraped_at: 2025-12-24 13:02:44
description:
  This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

  Firecrawl batch scraping to Google Docs
  Who's it for
  AI chatbot developers, content managers, and data analysts who need to extract and organize content from multiple web pages for knowledge base creation, competitive analysis, or content migration projects.
  What it does
  This workflow automatically scrapes content from a list of URLs and converts each page into a structured Google Doc in markdown format. It's designed for batch processing multiple pages efficiently, making it ideal for building AI knowledge bases, analyzing competitor content, or migrating website content to documentation systems.
  How it works
  The workflow follows a systematic scraping process:

  URL Input: Reads a list of URLs from a Google Sheets template
  Data Validation: Filters out empty rows and already-processed URLs
  Batch Processing: Loops through each URL sequentially
  Content Extraction: Uses Firecrawl to scrape and convert content to markdown
  Document Creation: Creates individual Google Docs for each scraped page
  Progress Tracking: Updates the spreadsheet to mark completed URLs
  Final Notification: Provides completion summary with access to scraped content

  Requirements

  Firecrawl API key (for web scraping)
  Google Sheets access
  Google Drive access (for document creation)
  Google Sheets template (provided)

  How to set up
  Step 1: Prepare your template

  Copy the Google Sheets template
  Create your own version for personal use
  Ensure the sheet has a tab named "Page to doc"
  List all URLs you want to scrape in the "URL" column

  Step 2: Configure API credentials
  Set up the following credentials in n8n:

  Firecrawl API: For web content scraping and markdown conversion
  Google Sheets OAuth2: For reading URLs and updating progress
  Google Drive OAuth2: For creating content documents

  Step 3: Set up your Google Drive folder

  The workflow saves scraped content to a specific Drive folder
  Default folder: "Contenu scrapé" (Content Scraped)
  Folder ID: 1ry3xvQ9UqM2Rf9C4-AoJdg1lfB9inh_5 (customize this to your own folder)
  Create your own folder and update the folder ID in the "Create file markdown scraping" node

  Step 4: Choose your trigger method
  Option A: Chat interface

  Use the default chat trigger
  Send your Google Sheets URL through the chat interface

  Option B: Manual trigger

  Replace chat trigger with manual trigger
  Set the Google Sheets URL as a variable in the "Get URL" node

  How to customize the workflow
  URL source customization

  Sheet name: Change "Page to doc" to your preferred tab name
  Column structure: Modify field mappings if using different column names
  URL validation: Adjust filtering criteria for URL format requirements
  Batch size: The workflow processes all URLs sequentially (no batch size limit)

  Scraping configuration

  Firecrawl options: Add specific scraping parameters (wait times, JavaScript rendering)
  Content format: Currently outputs markdown (can be modified for other formats)
  Error handling: The workflow continues processing even if individual URLs fail
  Retry logic: Add retry mechanisms for failed scraping attempts

  Output customization

  Document naming: Currently uses the URL as document name (customizable)
  Folder organization: Create subfolders for different content types
  File format: Switch from Google Docs to other formats (PDF, TXT, etc.)
  Content structure: Add headers, metadata, or formatting to scraped content

  Progress tracking enhancements

  Status columns: Add more detailed status tracking (failed, retrying, etc.)
  Metadata capture: Store scraping timestamps, content length, etc.
  Error logging: Track which URLs failed and why
  Completion statistics: Generate summary reports of scraping results

  Use cases
  AI knowledge base creation

  E-commerce product pages: Scrape product descriptions and specifications for chatbot training
  Documentation sites: Convert help articles into structured knowledge base content
  FAQ pages: Extract customer service information for automated support systems
  Company information: Gather about pages, services, and team information

  Content analysis and migration

  Competitor research: Analyze competitor website content and structure
  Content audits: Extract existing content for analysis and optimization
  Website migrations: Backup content before site redesigns or platform changes
  SEO analysis: Gather content for keyword and structure analysis

  Research and documentation

  Market research: Collect information from multiple industry sources
  Academic research: Gather content from relevant web sources
  Legal compliance: Document website terms, policies, and disclaimers
  Brand monitoring: Track content changes across multiple sites

  Workflow features
  Smart processing logic

  Duplicate prevention: Skips URLs already marked as "Scrapé" (scraped)
  Empty row filtering: Automatically ignores rows without URLs
  Sequential processing: Handles one URL at a time to avoid rate limiting
  Progress updates: Real-time status updates in the source spreadsheet

  Error handling and resilience

  Graceful failures: Continues processing remaining URLs if individual scrapes fail
  Status tracking: Clear indication of completed vs. pending URLs
  Completion notification: Summary message with link to scraped content folder
  Manual restart capability: Can resume processing from where it left off

  Results interpretation
  Organized content output
  Each scraped page creates:

  Individual Google Doc: Named with the source URL
  Markdown formatting: Clean, structured content extraction
  Metadata preservation: Original URL and scraping timestamp
  Organized storage: All documents in designated Google Drive folder

  Progress tracking
  The source spreadsheet shows:

  URL list: Original URLs to be processed
  Status column: "OK" for completed, empty for pending
  Real-time updates: Progress visible during workflow execution
  Completion summary: Final notification with access instructions

  Workflow limitations

  Sequential processing: Processes URLs one at a time (prevents rate limiting but slower for large lists)
  Google Drive dependency: Requires Google Drive for document storage
  Firecrawl rate limits: Subject to Firecrawl API limitations and quotas
  Single format output: Currently outputs only Google Docs (easily customizable)
  Manual setup: Requires Google Sheets template preparation before use
  No content deduplication: Creates separate documents even for similar content

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.chatTrigger","@mendable/n8n-nodes-firecrawl.firecrawl","n8n-nodes-base.googleSheets","n8n-nodes-base.filter","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","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","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, 5380 characters]


name: Automated Google Ads Campaign Reporting to Google Sheets with Airtable
author_name: Growth AI
author_username: growthai
categories: []
created_at: 2025-08-14T13:18:09.081Z
updated_at: 2025-08-14T13:18:09.081Z
url: https://n8n.io/workflows/7387
scraped_at: 2025-12-24 13:02:44
description:
  Google Ads automated reporting to spreadsheets with Airtable

  Who's it for
  Digital marketing agencies, PPC managers, and marketing teams who manage multiple Google Ads accounts and need automated monthly performance reporting organized by campaign types and conversion metrics.
  What it does
  This workflow automatically retrieves Google Ads performance data from multiple client accounts and populates organized spreadsheets with campaign metrics. It differentiates between e-commerce (conversion value) and lead generation (conversion count) campaigns, then organizes data by advertising channel (Performance Max, Search, Display, etc.) with monthly tracking for budget and performance analysis.
  How it works
  The workflow follows an automated data collection and reporting process:

  Account Retrieval: Fetches client information from Airtable (project names, Google Ads IDs, campaign types)
  Active Filter: Processes only accounts marked as "Actif" for budget reporting
  Campaign Classification: Routes accounts through e-commerce or lead generation workflows based on "Typologie ADS"
  Google Ads Queries: Executes different API calls depending on campaign type (conversion value vs. conversion count)
  Data Processing: Organizes metrics by advertising channel (Performance Max, Search, Display, Video, Shopping, Demand Gen)
  Dynamic Spreadsheet Updates: Automatically fills the correct monthly column in client spreadsheets
  Sequential Processing: Handles multiple accounts with wait periods to avoid API rate limits

  Requirements

  Airtable account with client database
  Google Ads API access with developer token
  Google Sheets API access
  Client-specific spreadsheet templates (provided)

  How to set up
  Step 1: Prepare your reporting template

  Copy the Google Sheets reporting template
  Create individual copies for each client
  Ensure proper column structure (months B-M for January-December)
  Link template URLs in your Airtable database

  Step 2: Configure your Airtable database
  Set up the following fields in your Airtable:

  Project names: Client project identifiers
  ID GADS: Google Ads customer IDs
  Typologie ADS: Campaign classification ("Ecommerce" or "Lead")
  Status - Prévisionnel budgétaire: Account status ("Actif" for active accounts)
  Automation budget: URLs to client-specific reporting spreadsheets

  Step 3: Set up API credentials
  Configure the following authentication:

  Airtable Personal Access Token: For client database access
  Google Ads OAuth2: For advertising data retrieval
  Google Sheets OAuth2: For spreadsheet updates
  Developer Token: Required for Google Ads API access
  Login Customer ID: Manager account identifier

  Step 4: Configure Google Ads API settings
  Update the HTTP request nodes with your credentials:

  Developer Token: Replace "[Your token]" with your actual developer token
  Login Customer ID: Replace "[Your customer id]" with your manager account ID
  API Version: Currently using v18 (update as needed)

  Step 5: Set up scheduling

  Default schedule: Runs on the 3rd of each month at 5 AM
  Cron expression: 0 5 3 * *
  Recommended timing: Early month execution for complete previous month data
  Processing delay: 1-minute waits between accounts to respect API limits

  How to customize the workflow
  Campaign type customization
  E-commerce campaigns:

  Tracks: Cost and conversion value metrics
  Query: metrics.conversions_value for revenue tracking
  Use case: Online stores, retail businesses

  Lead generation campaigns:

  Tracks: Cost and conversion count metrics
  Query: metrics.conversions for lead quantity
  Use case: Service businesses, B2B companies

  Advertising channel expansion
  Current channels tracked:

  Performance Max: Automated campaign type
  Search: Text ads on search results
  Display: Visual ads on partner sites
  Video: YouTube and video partner ads
  Shopping: Product listing ads
  Demand Gen: Audience-focused campaigns

  Add new channels by modifying the data processing code nodes.
  Reporting period adjustment

  Current setting: Last month data (DURING LAST_MONTH)
  Alternative periods: Last 30 days, specific date ranges, quarterly reports
  Custom timeframes: Modify the Google Ads query date parameters

  Multi-account management

  Sequential processing: Handles multiple accounts automatically
  Error handling: Continues processing if individual accounts fail
  Rate limiting: Built-in waits prevent API quota issues
  Batch size: No limit on number of accounts processed

  Data organization features
  Dynamic monthly columns

  Automatic detection: Determines previous month column (B-M)
  Column mapping: January=B, February=C, ..., December=M
  Data placement: Updates correct month automatically
  Multi-year support: Handles year transitions seamlessly

  Campaign performance breakdown
  Each account populates 10 rows of data:

  Performance Max Cost (Row 2)
  Performance Max Conversions/Value (Row 3)
  Demand Gen Cost (Row 4)
  Demand Gen Conversions/Value (Row 5)
  Search Cost (Row 6)
  Search Conversions/Value (Row 7)
  Video Cost (Row 8)
  Video Conversions/Value (Row 9)
  Shopping Cost (Row 10)
  Shopping Conversions/Value (Row 11)

  Data processing logic

  Cost conversion: Automatically converts micros to euros (÷1,000,000)
  Precision rounding: Rounds to 2 decimal places for clean presentation
  Zero handling: Shows 0 for campaign types with no activity
  Data validation: Handles missing or null values gracefully

  Results interpretation
  Monthly performance tracking

  Historical data: Year-over-year comparison across all channels
  Channel performance: Identify best-performing advertising types
  Budget allocation: Data-driven decisions for campaign investments
  Trend analysis: Month-over-month growth or decline patterns

  Account-level insights

  Multi-client view: Consolidated reporting across all managed accounts
  Campaign diversity: Understanding which channels clients use most
  Performance benchmarks: Compare similar account types and industries
  Resource allocation: Focus on high-performing accounts and channels

  Use cases
  Agency reporting automation

  Client dashboards: Automated population of monthly performance reports
  Budget planning: Historical data for next month's budget recommendations
  Performance reviews: Ready-to-present data for client meetings
  Trend identification: Spot patterns across multiple client accounts

  Internal performance tracking

  Team productivity: Track account management efficiency
  Campaign optimization: Identify underperforming channels for improvement
  Growth analysis: Monitor client account growth and expansion
  Forecasting: Use historical data for future performance predictions

  Strategic planning

  Budget allocation: Data-driven distribution across advertising channels
  Channel strategy: Determine which campaign types to emphasize
  Client retention: Proactive identification of declining accounts
  New business: Performance data to support proposals and pitches

  Workflow limitations

  Monthly execution: Designed for monthly reporting (not real-time)
  API dependencies: Requires stable Google Ads and Sheets API access
  Rate limiting: Sequential processing prevents parallel account handling
  Template dependency: Requires specific spreadsheet structure for proper data placement
  Previous month focus: Optimized for completed month data (run early in new month)
  Manual credential setup: Requires individual configuration of API tokens and customer IDs

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.if","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","@mendable/n8n-nodes-firecrawl.firecrawl","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","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 8912 characters]


name: LLM Usage Tracker & Cost Monitor with Node-Level Analytics (v2)
author_name: Amir Safavi-Naini
author_username: amirsafavi
categories: []
created_at: 2025-08-14T20:13:23.211Z
updated_at: 2025-08-14T20:13:23.211Z
url: https://n8n.io/workflows/7398
scraped_at: 2025-12-24 13:02:45
description:
  LLM Cost Monitor & Usage Tracker for n8n

  &gt; v2: Now it can read multiple types of LLM usages. Better dynamic approach for reading model usage. 

  🎯 What This Workflow Does

  This workflow provides comprehensive monitoring and cost tracking for all LLM/AI agent usage across your n8n workflows. It extracts detailed token usage data from any workflow execution and calculates precise costs based on current model pricing. 

  The Problem It Solves
  When running LLM nodes in n8n workflows, the token usage and intermediate data are not directly accessible within the same workflow. This monitoring workflow bridges that gap by:
  Retrieving execution data using the execution ID
  Extracting all LLM usage from any nested structure
  Calculating costs with customizable pricing
  Providing detailed analytics per node and model
  WARNING: it works after the full execution of the workflow (i.e. you can't get this data before completion of all tasks in the workflow)

  ⚙️ Setup Instructions

  Prerequisites
  Experience Required: Basic familiarity with n8n LLM nodes and AI agents
  Agent Configuration: In your monitored workflows, go to agent settings and enable "Return Intermediate Steps" 
  For getting execution data, you need to set upthe  n8n API in your instance (also available onthe  free version) 

  Installation Steps
  Import this monitoring workflow into your n8n instance
  Go to Settings &gt;&gt; select n8n API from left bar &gt;&gt; define an API. Now you can add this as the credential for your "Get an Execution" node
  Configure your model name mappings in the "Standardize Names" node
  Update model pricing in the "Model Prices" node (prices per 1M tokens)
  To monitor a workflow:
     Add an "Execute Workflow" node at the end of your target workflow
     Select this monitoring workflow
     Important: Turn OFF "Wait For Sub-Workflow Completion"
     Pass the execution ID as input

  🔧 Customization

  When You See Errors
  If the workflow enters the error path, it means an undefined model was detected. Simply:
  Add the model name to the standardize_names_dic 
  Add its pricing to the model_price_dic
  Re-run the workflow

  Configurable Elements
  Model Name Mapping**: Standardize different model name variations (e.g., "gpt-4-0613" → "gpt-4")
  Pricing Dictionary**: Set costs per million tokens for input/output
  Extraction Depth**: Captures tokens from any nesting level automatically

  📊 Output Data

  Per LLM Call
  Cost Breakdown**: Prompt, completion, and total costs in USD
  Token Metrics**: Prompt tokens, completion tokens, total tokens
  Performance**: Execution time, start time, finish reason
  Content Preview**: First 100 chars of input/output for debugging
  Model Parameters**: Temperature, max tokens, timeout, retry count
  Execution Context**: Workflow name, node name, execution status
  Flow Tracking**: Previous nodes chain

  Summary Statistics
  Total executions and costs
  Breakdown by model type
  Breakdown by node
  Average cost per call
  Total execution time

  ✨ Key Benefits

  No External Dependencies**: Everything runs within n8n
  Universal Compatibility**: Works with any workflow structure
  Automatic Detection**: Finds LLM usage regardless of nesting
  Real-time Monitoring**: Track costs as workflows execute
  Debugging Support**: Preview actual prompts and responses
  Scalable**: Handles multiple models and complex workflows

  📝 Example Use Cases

  Cost Optimization**: Identify expensive nodes and optimize prompts
  Usage Analytics**: Track token consumption across teams/projects
  Budget Monitoring**: Set alerts based on cost thresholds
  Performance Analysis**: Find slow-running LLM calls
  Debugging**: Review actual inputs/outputs without logs
  Compliance**: Audit AI usage across your organization

  🚀 Quick Start

  Import workflow
  Update model prices (if needed)
  Add monitoring to any workflow with the Execute Workflow node
  View detailed cost breakdowns instantly

  Note: Prices are configured per million tokens. Default includes GPT-4, GPT-3.5, Claude, and other popular models. Add custom models as needed.

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

workflow_json_compressed:
  [encoded data, 6376 characters]


name: Automated Phone Interview Evaluation with Vapi, GPT-4o & Google Sheets
author_name: Robert Breen
author_username: rbreen
categories: []
created_at: 2025-08-14T21:51:28.556Z
updated_at: 2025-08-14T21:51:28.556Z
url: https://n8n.io/workflows/7401
scraped_at: 2025-12-24 13:02:42
description:
  This n8n workflow template automatically processes phone interview transcripts using AI to evaluate candidates against specific criteria and saves the results to Google Sheets. Perfect for HR departments, recruitment agencies, or any business conducting phone screenings.

  What This Workflow Does

  This automated workflow:
  Receives phone interview transcripts via webhook
  Uses OpenAI GPT models to analyze candidate responses against predefined qualification criteria
  Extracts key information (name, phone, location, qualification status)
  Automatically saves structured results to a Google Sheet for easy review and follow-up

  The workflow is specifically designed for driving job interviews but can be easily adapted for any position with custom evaluation criteria.

  Tools & Services Used

  N8N** - Workflow automation platform
  OpenAI API** - AI-powered transcript analysis (GPT-4o-mini)
  Google Sheets** - Data storage and management
  Webhook** - Receiving transcript data

  Prerequisites

  Before implementing this workflow, you'll need:

  N8N Instance - Self-hosted or cloud version
  OpenAI API Account - For AI transcript processing
  Google Account - For Google Sheets integration
  Phone Interview System - That can send webhooks (like Vapi.ai)

  Step-by-Step Setup Instructions

  Step 1: Set Up OpenAI API Access

  Visit OpenAI's API platform
  Create an account or log in
  Navigate to API Keys section
  Generate a new API key
  Copy and securely store your API key

  Step 2: Create Your Google Sheet

  Option 1: Use Our Pre-Made Template (Recommended)
  Copy our template: Driver Interview Results Template
  Click "File" → "Make a copy" to create your own version
  Rename it as desired
  Copy your new sheet's URL - you'll need this for the workflow

  Option 2: Create From Scratch
  Go to Google Sheets
  Create a new spreadsheet
  Name it "Driver Interview Results" (or your preferred name)
  Set up the following column headers in row 1:
     A1: name
     B1: phone
     C1: cityState
     D1: qualifies
     E1: reasoning
  Copy the Google Sheet URL - you'll need this for the workflow

  Step 3: Import and Configure the N8N Workflow

  Import the Workflow
     Copy the workflow JSON from the template
     In your N8N instance, go to Workflows → Import from JSON
     Paste the JSON and import

  Configure OpenAI Credentials
     Click on either "OpenAI Chat Model" node
     Set up credentials using your OpenAI API key
     Test the connection to ensure it works

  Configure Google Sheets Integration
     Click on the "Save to Google Sheets" node
     Set up Google Sheets OAuth2 credentials
     Select your spreadsheet from the dropdown
     Choose the correct sheet (usually "Sheet1")

  Update the Webhook
     Click on the "Webhook" node
     Note the webhook URL that n8n generates
     This URL will receive your transcript data

  Step 4: Customize Evaluation Criteria

  The workflow includes predefined criteria for a Massachusetts driving job. To customize for your needs:

  Click on the "Evaluate Candidate" node
  Modify the system message to include your specific requirements
  Update the evaluation criteria checklist
  Adjust the JSON output format if needed

  Current Evaluation Criteria:
  Valid Massachusetts driver's license
  No felony convictions
  Clean driving record (no recent tickets/accidents)
  Willing to complete background check
  Can pass drug test (including marijuana)
  Available full-time Monday-Friday
  Lives in Massachusetts

  Step 5: Connect to Vapi.ai (Phone Interview System)

  This workflow is specifically designed to work with Vapi.ai's phone interview system. Here's how to connect it:

  Setting Up the Vapi Integration

  Copy Your N8N Webhook URL
     In your n8n workflow, click on the "Webhook" node
     Copy the webhook URL (it should look like: https://your-n8n-instance.com/webhook-test/351ffe7c-69f2-4657-b593-c848d59205c0)

  Configure Your Vapi Assistant
     Log into your Vapi.ai dashboard
     Create or edit your phone interview assistant
     In the assistant settings, find the "Server" section
     Set the Server URL to your n8n webhook URL
     Set timeout to 20 seconds (as configured in the workflow)

  Configure Server Messages
     In your Vapi assistant settings, enable these server messages:
       end-of-call-report
       transcript[transcriptType="final"]

  Set Up the Interview Script
     Use the provided interview script in your Vapi assistant (found in the workflow's system message)
     This ensures consistent data collection for the AI evaluation

  Expected Data Format from Vapi

  The workflow expects Vapi to send data in this specific format:

  {
    "body": {
      "message": {
        "artifact": {
          "transcript": "AI: Hi. Are you interested in driving for Bank of Transport?\nUser: Yes.\nAI: Great. Before we go further..."
        }
      }
    }
  }

  Vapi Configuration Checklist

  ✅ Webhook URL set in Vapi assistant server settings
  ✅ Server messages enabled: end-of-call-report, transcript[transcriptType="final"]
  ✅ Interview script configured in assistant
  ✅ Assistant set to send webhooks on call completion

  Alternative Phone Systems

  If you're not using Vapi.ai, you can adapt this workflow for other phone systems by:
  Modifying the "Edit Fields2" node to extract transcripts from your system's data format
  Updating the webhook data structure expectations
  Ensuring your phone system sends the complete interview transcript

  Step 6: Test the Workflow

  Test with Sample Data
     Use the "Execute Workflow" button with test data
     Verify that data appears correctly in your Google Sheet
     Check that the AI evaluation logic works as expected

  End-to-End Testing
     Send a test webhook with a real transcript
     Monitor each step of the workflow
     Confirm the final result is saved to Google Sheets

  Workflow Node Breakdown

  Webhook - Receives transcript data from your phone system
  Edit Fields2 - Extracts the transcript from the incoming data
  Evaluate Candidate - AI analysis using GPT-4o-mini to assess qualification
  Convert to JSON - Ensures proper JSON formatting with structured output parser
  Save to Google Sheets - Automatically logs results to your spreadsheet

  Customization Options

  Modify Evaluation Criteria
  Edit the system prompt in the "Evaluate Candidate" node
  Add or remove qualification requirements
  Adjust the scoring logic

  Change Output Format
  Modify the JSON schema in the "Structured Output Parser" node
  Update Google Sheets column mapping accordingly

  Add Additional Processing
  Insert nodes for email notifications
  Add Slack/Discord alerts for qualified candidates
  Integrate with your CRM or ATS system

  Troubleshooting

  Common Issues:
  OpenAI API Errors**: Check API key validity and billing status
  Google Sheets Not Updating**: Verify OAuth permissions and sheet access
  Webhook Not Receiving Data**: Confirm URL and POST format from your phone system
  AI Evaluation Inconsistencies**: Refine the system prompt with more specific criteria

  Usage Tips

  Monitor Token Usage**: OpenAI charges per token, so monitor your usage
  Regular Review**: Periodically review AI evaluations for accuracy
  Backup Data**: Export Google Sheets data regularly for backup
  Privacy Compliance**: Ensure transcript handling complies with local privacy laws

  Need Help with Implementation?

  For professional setup, customization, or troubleshooting of this workflow, contact:

  Robert - Ynteractive Solutions
  Email**: rbreen@ynteractive.com
  Website**: www.ynteractive.com
  LinkedIn**: linkedin.com/in/robert-interactive

  Specializing in AI-powered workflow automation, business process optimization, and custom integration solutions.

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.googleSheets","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.outputParserStructured"]

workflow_json_compressed:
  [encoded data, 5152 characters]


name: Scheduled Daily Affirmations via Email and Telegram using Cron
author_name: Shelly-Ann Davy
author_username: SheCodesFlow
categories: []
created_at: 2025-08-15T09:26:15.639Z
updated_at: 2025-08-15T09:26:15.639Z
url: https://n8n.io/workflows/7421
scraped_at: 2025-12-24 13:02:45
description:
  Description

  Wake up gently. This elegant workflow runs every morning at 7 AM, picks one uplifting affirmation from a curated list, and delivers it to your inbox (with optional Telegram). Zero code, zero secrets—just drop in your SMTP and Telegram credentials, edit the affirmations, and activate. Perfect for creators, homemakers, and entrepreneurs who crave intention and beauty before the day begins.

  How it works (high-level steps)
  Cron wakes the flow daily at 7 AM.
  Set: Configuration stores your email, Telegram chat ID, and affirmations.
  Code node randomly selects one affirmation.
  Email node sends the message via SMTP.
  IF node decides whether to forward it to Telegram as well.
  Set-up time
  2 – 3 minutes
  30 s: add SMTP credential
  30 s: add Telegram Bot credential (optional)
  1 min: edit affirmations & email addresses
  30 s: activate

  Detailed instructions

  All deep-dive steps live inside the yellow and white sticky notes on the canvas—no extra docs needed.

  Requirements

  SMTP account (SendGrid, Gmail, etc.)
  Telegram Bot account (optional)
  Customisation tips
  Change Cron time or frequency
  Swap affirmation list for quotes, verses, or mantras
  Add Notion logger branch for journaling

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.cron","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.emailSend","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE51VSW/bVhD+Kw88JYBe8PZFl8KQXSCHpEXs9hL48JZ5CmGJVEnKtWHov3dIt/ISyVF6I8iZ+ZZZ+FDVuZpXf3zWbffXzaK1i81K9ryaVWsYQjV/qOqmH0KT4OMY55KLgoWSveIhGGM8c5JFXXhh0WcblOE8CB2ZdCI5Y3UQJWCKMKVIwbDuAOvNKgyw6CD3lzBsN4sW38AACDB0W9jNqiasAdEu0zfI2xWQHOrVPQml1N06DHXb9GRoyX277UjdxPaObPu6WZJF1zbkXbsZI8KKXMEKll1Yvx9Rw7Kv5l+vsXabYXx8eFTOk41eQKFJRkeVNpF6KwUVUWhuY2ZZymrP6MvF2fmnC0Kx9qMKcg596uoJcoS534xhjWvohENj6OFDP9Tp5v5zOwCGbNq+nqLnXynXgs0oNwx5bQJSRRe6fnQ9tc0AzYC1qt1j2T/xy5TGd7M99xQC14aC85IqJgr1IlnKmNGsyKyZgCfuoztzctXVyyV05PzR0oFYcvbpKPPUTbKec5bGzYQVrxkfZwmgIFiBLK2NVAUdaQQRqGTBS1midio8scSJmJNF25R6ue2mXpN3kOuBrOH9cYNheMVSnURS7Eky0DJ6rmkxjFOVtachIUmlGE4Dz0xb/8xKhJ6T37Gr5EtocrsmZ0+zedxMfHxJU2jzczRz8SIUoaiRRVBVmKFBRE2T11CStSypZ9P68df5fgnIRRPiCvIvR+nV5SU5rdRMOnV6oxlYnkM0VLNo0UODHspiaeHgtC+gmeVP5C7WOIFzcglNPsk9GOPH6Jcs3b7Tf0P81rY3051KyQflracSTxFudZHUOZlpDlmbAJx5ZqqTXQ/CauZLotomrFa4pU5bdJ3rmANnUfBnwv5z/Ce0Df+mfC9N89fSuIxSacHxYDmFc54VdTDSctEFr4oTzP1IGv/wJE5EC8wooBELYtecpzFroAX3wWPjXAH/Yj23G3JVb/r/c+2Ymmn/3bi/fewwOqShvkWkElY9zCrc9gHP/ZQKd5C2I8BvXYYOK9zyscbtY/5kmLBFuISKJFeGKsAnrzPOgkrRaNxuE8bJRxINpOnnMhY+vDv4AcdwVIP/j1Hzif2ekmb4L81wV83Z7voaSb51kA8BnXYaD0K9mXoI68QLd1jXm7mH0H54Cw7g7Hb/AFcxBZ68CAAA


name: Amazon Affiliate Marketing Automation
author_name: Rakin Jakaria
author_username: rakinjakaria
categories: []
created_at: 2025-08-15T09:59:49.026Z
updated_at: 2025-08-15T09:59:49.026Z
url: https://n8n.io/workflows/7422
scraped_at: 2025-12-24 13:02:41
description:
  Who this is for

  This workflow is for Amazon affiliate marketers and social media managers who want to quickly turn product links into engaging Facebook posts with AI-generated captions and images — fully automated.

  What this workflow does

  This workflow starts every time a new Product Link is added to a connected Google Sheet. It then:

  Extracts the ASIN** from the product link.
  Fetches product details** from Amazon using RapidAPI.
  Generates a short, scroll-stopping Facebook caption** with OpenRouter AI.
  Creates a product image prompt** and sends it to Google Gemini for high-quality image generation.
  Uploads the creative directly to Facebook** via the Facebook Graph API.
  Marks the Google Sheet row** as “Done ✅” after posting.

  The Facebook post includes:

  Product image (AI-enhanced)
  Short, benefit-focused caption with emojis
  Affiliate link

  Setup

  To set this template up, follow the sticky notes inside the workflow and:

  Google Sheets → Connect your sheet and ensure the columns “Product Link” & “Facebook Upload” exist.
  RapidAPI → Add your API key in the “Amazon Product Details” node.
  OpenRouter → Add credentials for caption generation.
  Google Gemini → Add your API key for image generation.
  Facebook Graph API → Connect your Facebook account for posting.

  How to customize this workflow to your needs

  Change the Facebook caption prompt to match your tone or branding.
  Adjust the AI image generation prompt to fit your preferred photography style.
  Modify the Google Sheet update logic if you want to track additional info (e.g., posting date, engagement stats).
  Switch Facebook posting to Instagram or another platform by replacing the final API call.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.convertToFile","n8n-nodes-base.facebookGraphApi","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.googleSheetsTrigger","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.googleSheets","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5836 characters]


name: Lead Generation Agent
author_name: Rakin Jakaria
author_username: rakinjakaria
categories: []
created_at: 2025-08-15T10:12:52.175Z
updated_at: 2025-08-15T10:12:52.175Z
url: https://n8n.io/workflows/7423
scraped_at: 2025-12-24 13:02:41
description:
  Who this is for

  This workflow is for digital marketing agencies or sales teams who want to automatically find business leads based on industry & location, gather their contact details, and send personalized cold emails — all from one form submission.

  What this workflow does

  This workflow starts every time someone submits the Lead Machine Form. It then:

  Scrapes business data* (company name, website, phone, address, category) using *Apify** based on business type & location.
  Extracts the best email address* from each business website using *Google Gemini AI**.
  Stores valid leads* in *Google Sheets**.
  Generates cold email content** (subject + body) with AI based on your preferred tone (Friendly, Professional, Simple).
  Sends the cold email** via Gmail.
  Updates the sheet** with send status & timestamp.

  Setup

  To set this workflow up:

  Form Trigger – Customize the “Lead Machine” form fields if needed (Business Type, Location, Lead Number, Email Style).
  Apify API – Add your Apify Actor Endpoint URL in the HTTP Request node.
  Google Gemini – Add credentials for extracting email addresses.
  Google Sheets – Connect your sheet for storing leads & email status.
  OpenAI – Add your credentials for cold email generation.
  Gmail – Connect your Gmail account for sending cold emails.

  How to customize this workflow to your needs

  Change the AI email prompt to reflect your brand’s voice and offer.
  Add filters to only target leads that meet specific criteria (e.g., website must exist, email must be verified).
  Modify the Google Sheets structure to track extra info like “Follow-up Date” or “Lead Source”.
  Switch Gmail to another email provider if preferred.

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.filter","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5888 characters]


name: Generate Weekly Grocery Lists in Notion with Automated Email Notifications
author_name: Shelly-Ann Davy
author_username: SheCodesFlow
categories: []
created_at: 2025-08-15T11:28:37.226Z
updated_at: 2025-08-15T11:28:37.226Z
url: https://n8n.io/workflows/7427
scraped_at: 2025-12-24 13:02:45
description:
  Who’s it for
  Busy homemakers, creators, and anyone who wants a simple, no-cost way to plan weekly meals and get a ready-to-shop grocery list—without extra apps.

  What it does
  Runs on a weekly Cron schedule, generates a grocery list, creates rows in your Notion database (Ingredient, Quantity, Status), and emails the list (optional Telegram confirmation). It includes a Notion connection check, detailed error notifications (email and optional Telegram), a success email with timestamp, and optional persistent logging to a Notion “Logs” database.

  Requirements
  Notion account + integration connected to your database  
  SMTP credentials for the Email node  
  (Optional) Telegram bot and chat ID for alerts  
  (Optional) Notion log database if you want persistent logs

  How to set up
  Import the workflow and open Set: Configuration to fill:
     fromEmail, emailTo, notifyEmail, notionDb, telegramChatId  
     (Optional) logToNotion (true/false), notionLogDb
  In Notion, create a DB with properties:
     Ingredient (Title), Quantity (Rich text), Status (Select: “To Buy”)
  Attach your Notion and SMTP credentials (and Telegram if used).
  Run once to test, then set Cron to your preferred weekly time.

  How to customize
  Edit the recipe/grocery items in the Code node.
  Change the Cron schedule (test with “Every minute,” then revert to weekly).
  Enable Telegram alerts, and/or turn on Notion logging for audit trails.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.cron","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.notion","n8n-nodes-base.if","n8n-nodes-base.emailSend","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.notion","n8n-nodes-base.set","n8n-nodes-base.emailSend","n8n-nodes-base.emailSend","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.notion","n8n-nodes-base.notion"]

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


name: Daily Tech & Cyber Security Brief with RSS, OpenAI GPT-4o, and Gmail
author_name: Calistus Christian
author_username: ca7ai
categories: []
created_at: 2025-08-15T11:55:02.949Z
updated_at: 2025-08-15T11:55:02.949Z
url: https://n8n.io/workflows/7428
scraped_at: 2025-12-24 13:02:43
description:
  What this workflow does
  Pulls free security/tech headlines from multiple RSS feeds (e.g., CISA, BleepingComputer, Krebs, SecurityWeek, Ars Technica, TechCrunch, Hacker News).

  De-duplicates stories, keeps only the last 24 hours, and limits to a manageable number.

  Uses OpenAI to write a concise brief with sections and "Why it matters."

  Sends a clean HTML email via Gmail.

  Category: Security / News\
  Time to set up: ~10--15 minutes\
  Difficulty: Beginner--Intermediate\
  Cost: Mostly free (OpenAI tokens + Gmail)

  *

  What you'll need
  n8n (recent version)
  OpenAI credentials
  Gmail (or SMTP) credentials
  A few free RSS feed URLs (swap in/out as you like)

  *

  Set up steps
  Trigger -- Add a Cron to run daily (pick your time and timezone).
  Fetch -- Add one RSS Read node per source and connect all to a Merge (append).
  De-duplicate (this run) -- Add Remove Duplicates and compare on a stable key (prefer the article URL).
  Freshness -- Add an IF to pass only items published in the last 24 hours.
  Limit -- Add Limit to cap the total items (e.g., 25).
  Summarize -- Add OpenAI → Message a model to produce a JSON brief with subject + HTML body.
  Email -- Add Gmail → Send to deliver the brief to your inbox.

  *

  Tips & troubleshooting
  If everything gets discarded at de-dup e while testing, switch to "within current input" or reset the node's stored values.
  If no items pass the IF, widen the date window temporarily (some feeds publish late).
  If the email arrives blank, ensure Gmail email type is set to HTML and the subject/body fields map to the model's output.

  *

  Sources you can start with (swap freely)
  CISA, BleepingComputer, KrebsOnSecurity, SecurityWeek, Ars Technica (Security), TechCrunch (Security), Hacker News (front page).

nodes_used:
  ["n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.merge","n8n-nodes-base.rssFeedRead","n8n-nodes-base.removeDuplicates","n8n-nodes-base.if","n8n-nodes-base.limit","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE52X227bRhCGX0XgtTbd88FXTR00NdAmQBSkBYpc7GHWZiNRgkg5CQy/e4eSElIWKUu+sEGbw3+/ndk57ENRpuKq+Mr/bvLb2T/+v/QHGOGKabGAxhdXD0VZ1Y2vIty0dkxqH2xmEWiELENyUQfHUuCa+2RiMkYLC5xSqVRSVtjgqRKeG5BMhYi6DSxWc9/A9RpSPYNms7pe4n+gAVygWW/gcVpUfgG42htfzr9PZhA36+b75B18rdvv/W1dXP37Ga2WCdrHh90epPJJMGqIxaWI9JCJy9ISaW0S0oEOlhU/tX+bA6zK6nbSrr5pYN1Kf1+1rypbka02Cb6GV+u6/h0gfQCf0Ga1rMumXFa4LmFSTimCrPwaRVEDaR4edzqf8K+tGXvFH6d7RK1N5slZkhmXRArtiE/eE6AQuVFReCo6xOub2evJ2/efXkjGHL+EzWfgXjpKlIwB2RxHRwZHJPVBSIyoCKZja9cNm3X1Yr8poy+hU0JH6bIhOco2uFSTwKwhDOm8Zxy0dR3d63U9+QjxriqjfyGf0fYSPqOyU5kxIqSOeOTw3DkRBAEPylmXQRjo+Fq2uN5U8e6FdE5fdO6MF8igFBGZUiKD8sRmKojhQUPmUghhO7q/YH0Lo2CL/dsekqVTyZ4Np+gBCWVdNEEhgRBEKicJOoqTTBXPLjPreeyA7ir0xgs9Jay8xFOZqxS804Q7yonkDIizgRPgwdgcscJF2oF9gMXyHiZvNqs5nrQGTkBuLQ8Me6SCyqm0z4a0w0wyeqGUI44BYsbgSVAyYbJiOUFvov9yh3mTR7nKfEiiuD2LpOcyoNRaJw3RMWJqaqeIxZ5AMqcxsYiJxHuF489yUTajOPP92x6RUfysIP7kcZQyI7kmoLBKSIZxdJZKIiwmpDdCZMs7nhlUaeInC6hrf+LU3y6wFx2CMex1e7KvEO6Wyy/bFkmtNpxnT6JOWOOlySRIfEqQTQY8qIbK4ln3dtsBJyJyC8K59Vj5MpA2O4jzCbRJDCDrfu5u99HuCOHn3X5+xQ390m1q7qvbeOfL6tVyBdXr8snWsNyflzm2q9AmGq5YJJoahhWQRhKEkNhEBMU2DFrk3pG8Rgo26u2Ij4dE7qevz8wQqlzy2MCIYjljhRHYMBTzxPNgndAYkmwPcfgFOEyddyo7Hmt0BhYiUdRgCdZJYBilRm9FxxxQk1IvjLN4B2kzh8nHdXl7e6LJ1nvDzq5fAIU+K5sPCqA0yiAMSSpg9mgNxGeHyZ0tOJpjYFl2nO+W7Vg2ucGhbrz2HbuvzekzBoAeVUjSUBoITRkPl7KZ+AiYY86CCdxhM+tRzZoyfsGBcdmMJ3S9tdmb9H2G6Tnl5mh0KuKyaqBqUKkYrz2QBXbTtvgpC0RihSDBRE+MkwL5Lf7AIOd4LpwElfroCJ4HarIxQiZDYhJYtJ0VJOCuidJCZhuyjNQOgo5nyUlQrY6ifRoUrX1syntcKPt5DdOihqbBgX37KXzDS0Gr/36d8NRfFfes1bjffb+tw5pyrLiY8Y47nGdlpsRSnwkwnBnxFiNFbkERooLYSm2FsVXibyz2LTneLNr9HXet7fspXo0SfCuuKMJ2psMpcfTFZ8TdFcGh9UbL+KgOH9QZ626DMrtNDsk8qdaDX++mxqGvT0xJg0q7cW/YLevxXfC9M37cmi4WYDuB3tXmYgmxk+jN9xdLqJ3EwRXmYhH5IyaHx2gstvyZiBy1oyGhEzfqp6LTbvWjO+647ZNrwLjh0OV03Hr4sjhuP3R5G/TasUMujuNe6TiDhpT6Y/6AzOPj/9GIfwHtEQAA


name: Automate Meeting Minutes Distribution with Google Sheets and Gmail
author_name: Yassin Zehar
author_username: yassinzehar
categories: []
created_at: 2025-08-15T12:15:06.068Z
updated_at: 2025-08-15T12:15:06.068Z
url: https://n8n.io/workflows/7429
scraped_at: 2025-12-24 13:02:46
description:
  Description
  This workflow sends a summary of your meeting minutes via Gmail, directly from the notes stored in your Google Sheet.

  Context
  Taking notes during meetings is important, but sharing them with the team can be time-consuming. This workflow makes it simple: just write down your meeting minutes in a Google Sheets, and n8n will automatically send them by email after each meeting.

  Who is this for?
  Perfect for anyone who:

  Uses Google Sheets to keep track of meeting notes.

  Wants to automatically share minutes with teammates or stakeholders.

  Values speed, productivity, and automation.

  Requirements

  Google account.

  Google Sheets (with your meeting minutes).  You will need to setup  the required columns first : Topic, Status, Owner, Next Step.

  Gmail.

  How it works

  ⏰ Trigger starts after a new row is added in your Google Sheet.

  📑 The meeting minutes are retrieved from the sheet.

  📨 Gmail automatically sends the minutes to the configured recipients.

  Steps
  🗒️ Use the sticky notes in the n8n canvas to:


  Add your Google credentials (Sheets + Gmail).

  Define your sheet and recipient email addresses.

  Test the workflow to check if the minutes are sent.

  You’ll get this: An email containing your full meeting minutes, straight from your notes.

  Tutorial video
  Watch the Youtube Tutorial video

  About me :
  I’m Yassin a Project & Product Manager  Scaling tech products with data-driven project management.
  📬 Feel free to connect with me on Linkedin

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

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


name: Consolidate Daily Google Form Submissions into One Gmail Recap
author_name: Yassin Zehar
author_username: yassinzehar
categories: []
created_at: 2025-08-15T12:29:56.900Z
updated_at: 2025-08-15T12:29:56.900Z
url: https://n8n.io/workflows/7431
scraped_at: 2025-12-24 13:02:46
description:
  Description
  Receive one clean Gmail recap each day with all Google Forms submissions. The workflow reads your Form-linked Google Sheets, compiles every request submitted today, and sends a single, structured email at your chosen time—keeping your inbox tidy.

  Context
  Instead of receiving dozens of individual notifications, consolidate all daily form submissions into one organized email recap.

  Who is this for?

  Teams managing multiple incoming requests per day.

  Managers who want a daily summary instead of real-time alerts.

  Anyone who prefers to avoid notification spam.

  Requirements

  Google account with Forms & Sheets access

  Google Forms linked to Google Sheets 

  Gmail account with n8n OAuth configured

  Steps


  🗒️ Use the sticky notes in the n8n canvas to:

  Credentials : Add/verify Google (Sheets) and Gmail credentials in n8n.

  Schedule : Add a Cron/Schedule Trigger (default: 17:00/ 5PM, your local time).

  Add Google Sheets node → Read mode.

  Spreadsheet: select your Form-linked sheet.

  Build the Recap Body

  Use a Code (Function) node to assemble a simple HTML list or table from the filtered rows.

  Send Gmail : Add Gmail node and setup your team inbox / distribution list. For the body, paste the HTML body from step 5 and enable HTML.

  Test & Activate : Submit a few sample responses, run once, confirm the email looks right.

  Turn the workflow ON.


  You’ll get this:


  A structured Gmail message listing all daily submissions with: submitter name, timestamp, request details, and any custom fields from your form.

  Tutorial video
  Watch the Youtube Tutorial video

  How it works

  ⏰ Trigger: workflow runs once a day at your chosen time (default 5 PM).

  📑 Collects all requests from that day in the Google Sheet.

  📝 Compile: Generates a recap list/table.

  📝 Generates a recap list with all submissions.

  📨 Sends one Gmail email summarizing all requests of the day.

  About me :
  I’m Yassin a Project & Product Manager  Scaling tech products with data-driven project management.
  📬 Feel free to connect with me on Linkedin

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

workflow_json_compressed:
  H4sIAAAAAAAAE5VXbXLbRhK9yoRxRaRDUMDgm5ZURcuWI29WlmVtNrasSgbAgIQEztD4kEwxOMUeYH+nKrfIhfYI2z0ASUiipET6wcKgp1/Pez3djUUniTrDjnV8efNG/HQzuZkehO9Z3ul3prxgneGik4i8YCLkh2gXuAGNAj9ymOUYsa/TgNqR49ncsm09ZIEZel4cBoFJbYt5jm1x3aGWEzgut+LYDsFvwaezlBV8P+NR/oEX5WxfwgovOAAUWcmrfkewKQe0N1KOU04OZDYlr1iSzskJD9mMFJK8nsIzemPjvDM8W9THsJP3J/b+tW6/vLlxR1+Kzh1X8BxmHMCjUQGLVKe2pnuaTk8Nd2g6Q5MOXNv4BGblLHrarOo3uMfpyy/Wmyw+yV9PTpzp0Rp3XB8hhiM8AG5Yp7o/tMGxN3CsB8Hvma3AP/jWMeOf3ibH/xD268RvgTckPQprgD/XexJ2abaC/ZcIhGkf+/pp8bYcvd9fw/K/BGsOTN96GrYxW8FO6OnLt+9yN+Y/vzqMgx/vUZ1POC+eQqd0oP8FrpdmK/TsY3l4lAfmR+Pni2x8dLVGP85kVIZFcpUU86fSzPIHnkGfTLOlWXUOKDLirUQ3QifyDc+FUC2qWbrvaczUdc0wAkq5YXhmSNexfSinpJyRpS7FfIarwhOacqsFLOeDZbLMZJ4UiRQAZuiW3tcB/ZoHEykvVQmITNfhluNrlu3bmuW7VPMj29N4bAVBYHDX9xB6xjIAL3iWYxHJuYhOZSs3pjzP2RjD2F0snl3kUgwmxTStKngnZ4iP+6AU5GVwwUPk53TCSca/lDwvcjKXJTyEPLniEdSDiM1BJGQ94qJIWKpQ1ZHejcpiQlUlw/A97w09YHbwNRfZxehj2SoRaE1YGMpSFJ2qqon6CU6g2KADY5UGgWP4ge8bWqSHkWYZAdc8K/Y0k1OmR4FHY87Wjk+zZDzmGQGpGVYCIvg1yeT1w1KoTP6AiZw3m28LYxmO0uU2yfwKzo5JKq9HUQTltE1lB9F/lCHDhXdCOcflK5aWXBlkTChBRsbwk6HrOmxXS694nIgGuZPPeJjE8xN8MTKApQoDS9PTZFp7SaC+qzydyDLrDA23OkcVEe5I0bHo/PJLltalHvIATg1uEwxWhVI/wJZIhuUUDoRJt3FPmaWtTfhUbUiB+1TWCTGaJaucMA+DSJ848avMPN1/a1zdbRuk3k+WQrZzRMiC54fiIAU9hzGg8jt5s84aaJCeb4S6ZrlurFkxNTW4w1xzzUA3nJiGZuC2Lm2RhJdzcgT+jQczJVdGaHM7QTy9r5m6dS9FQplKUMUEnqQo6nT59ltoq1/KBIj7LPBfI82xm3O2VrAVtx4VLyRNxKW6haSYNK3u7uVZk0Btz4LiFGjU56ZmBXB/PJ9SLaZ27MFEYVKVefdJ+NscmDZ9lAQKdS2JiklniNepM+HJeAJ8eJZ3hx1j8G+ZXcagMCmaDIBTq9s8ZnDkLBFj5A0L1PXSMsnJ8+eNOZDDykJO4e6FLE3nz58TuKvZHKoWYQWxZ9MBQQc/IIIkOQ5FQ6QZxiMs3FDssiXlSC9hIlKsk6TADRBHq/fhRvUS1Wi/qBWCwJZBPiKTp1ux5duG5hgBVPmYGRrzbV9zHObTkNvUDuyNMpl/WyfXsx7VyVrpZDv6YzrRARAGzOC5VZ9ZihJCEAQj6ZPrJE1J3ZyVXdOHFKO1mAQUUq8SgVyregmUMQACGQNZFuotFFnCsMqSqMQEUItKUPCkUNIkV6ZT0kVjKPowwKotPQgUVYtLMMuxOU/rLQEoBccBaCLFOjgp0vmgvpv3UmRfCgH9EfYXkyZR2n2MtOrh4BG9I8/zA4s7mhs4jmZR7OoURLd0x3WN0PZ0M2iVRS54tqTw8bECub9Tm0y6oXld5Pt1WQdJgTdgLCe75FkiZmUxAEm6vcGUzboJ2d0jyQAHht4LJGR7m0x4OuPZkIwhxfmExEkGDvhXoB91ueTzz6J2OoMEBKddGVz0cT3vobfFZ0FUW+7WVpdExs3bJCbdS6VGcEG++w5/zi7PyTe7RKB07ZVdsrXVg5GkKDPRrL5Ax81KKSJsozyCxUoFXoNBP+ZjmSUcT7vAN61IMG0gFuSiV4d5a9MctuCRML365GxrnxV//q6cbfUJPimjrfMe+e03snUkBQlTlud//r71Yu1LzVMgzB1f75tl9HScclCSXGfQ2+sUa8awh17i+sna5J91Gi8D6Qq5Qu21Q4kzOSX4dzuUIzlFLzg94O8BMr98GEUZOIcc1DAJcUV9GBKYf/DFamGJPRJSzKeyzLeUBkQp/M1ahLMltWC/aRVCO6t13fR2MCvzSXexOl2/PlKFmVohHnzlEhxzwc2vOxO697///ucPsqQ6R62XVWQ123afLVD/QcrFuJhUvZ1t2Pfr7TzBCPoEJ6/8HJ28UyPzAK49xtddh9pr0kjF8L0Kwtx7tgCDCoGUhzaSubdTpgrt1g2BrgMoyrpx2HaZJns7eZFJMd5DlwPkoNrZbpZ2gqxeXpIEr2BHjVHdDm67AVfcNRfpbEHw8g/JQhn2iSpzQ9IiiVSkQpHulTuKX1IMP9L4alaDSoploh6gv/KwVPNxFsHIPexcGejjqt6vvn50ziNGoRH6VIe+yENf86Iw0GLT57Zhx7br4+Qf1lV5OXtvqJewCr9YD2FWFnXp2/ydpsz6nQQqyNfOUK/OcaB+8Jtik9/HyvUG71X1f3qYa+4WEgAA


name: Instant Gmail Notifications for Google Form Submissions
author_name: Yassin Zehar
author_username: yassinzehar
categories: []
created_at: 2025-08-15T12:39:39.350Z
updated_at: 2025-08-15T12:39:39.350Z
url: https://n8n.io/workflows/7432
scraped_at: 2025-12-24 13:02:46
description:
  Description
  Get a single Gmail notification immediately whenever someone submits your Google Forms. The workflow watches the Form-linked Google Sheets for new rows and sends a clean, readable email within about a minute—perfect for time-sensitive workflows.

  Context
  Stay responsive to urgent requests without inbox overload. Get notified immediately when new submissions arrive, with all key details in one clean email.

  Who is this for?

  Teams collecting support requests, project inputs, or approvals.

  Anyone who needs to respond quickly to new form submissions.

  Perfect for time-sensitive workflows.

  Requirements

  Google account

  A Google Forms linked to a Google Sheets (Responses → “Link to Sheet”)

  Gmail account connected to n8n (OAuth)

  Steps


  🗒️ Use the sticky notes in the n8n canvas to:

  Create a Google Forms and link it to a Google Sheets.

  Credentials**: Add/verify Google (Sheets) and Gmail credentials in n8n.


  Add Google Sheets Trigger node.


  Spreadsheet: your Form-linked sheet.

  Polling interval**: every 1 minute (or adjust as needed).

  Send Gmail**: Add Gmail node and set up recipient team inbox or on-call email.


  Test & Activate**: Submit a sample form, wait 1 minute, confirm the email.

  Make sure the workflow is always activated**

  You’ll get this:


  A Gmail message with key details (requester, summary, priority, link to the sheet), easy to scan and act on.

  Tutorial video
  Watch the Youtube Tutorial video

  How it works

  ⏰ Trigger: workflow runs every time you get a request from the form (trigger checks every minute)

  📝 Prepare: Format the submission into a concise message.


  📨 Notify: Sends one Gmail email per submission

  About me :
  I’m Yassin a Project & Product Manager  Scaling tech products with data-driven project management.
  📬 Feel free to connect with me on Linkedin

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

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


name: Auto-Generate LinkedIn Content with Gemini AI: Posts & Images 24/7
author_name: Muhammad Farooq Iqbal
author_username: mfarooqone
categories: []
created_at: 2025-08-15T17:15:56.308Z
updated_at: 2025-08-15T17:15:56.308Z
url: https://n8n.io/workflows/7448
scraped_at: 2025-12-24 13:02:43
description:
  🔄 How It Works - LinkedIn Post with Image Automation

  Overview
  This n8n automation creates and publishes LinkedIn posts with AI-generated images automatically. It's a complete end-to-end solution that transforms simple post titles into engaging social media content.

  Step-by-Step Process

  1. Content Trigger & Management
  Google Sheets Trigger** monitors a spreadsheet for new post titles
  Only processes posts with "pending" status
  Limits to one post at a time for controlled execution

  2. AI Content Generation
  AI Agent** uses Google Gemini to create engaging LinkedIn posts
  Takes the post title and generates:
    Compelling opening hooks
    3-4 informative paragraphs
    Engagement questions
    Relevant hashtags (4-6)
    Appropriate emojis
  Output is structured and formatted for LinkedIn

  3. AI Image Creation
  Google Gemini Image Generation** creates custom visuals
  Uses the AI-generated post content as context
  Generates professional images featuring:
    Modern workspace with coding elements
    Flutter development themes
    Professional, LinkedIn-appropriate aesthetics
    16:9 aspect ratio, high resolution
  No text or captions** in the generated image

  4. Image Processing & Storage
  Generated images are uploaded to Google Drive
  Files are shared with public access permissions
  Image URLs are stored back in the spreadsheet for tracking

  5. LinkedIn Publishing
  LinkedIn API integration** handles the posting process:
    Registers image uploads
    Uploads images to LinkedIn's servers
    Creates posts with text + image
    Publishes to your LinkedIn profile
  Updates spreadsheet status to "posted"

  Technical Architecture

  Google Sheets → AI Content → AI Image → Google Drive → LinkedIn API → Status Update
       ↓              ↓          ↓          ↓           ↓           ↓
    Trigger      Gemini LLM   Gemini    File Upload  Posting    Tracking
                Content Gen   Image Gen

  Key Features

  ✅ Fully Automated - Runs continuously without manual intervention
  ✅ AI-Powered - Both content and images generated by AI
  ✅ Professional Quality - LinkedIn-optimized formatting and visuals
  ✅ Real-time Tracking - Monitor status and performance
  ✅ Scalable - Handle multiple posts and campaigns

  How to Use

  Setup Requirements
  Google Gemini API for content and image generation
  LinkedIn API credentials for posting
  Google Sheets for content management
  Google Drive for image storage
  n8n instance for workflow execution

  Content Management
  Add new post titles to your Google Sheet
  Set status to "pending"
  Automation automatically processes and publishes
  Status updates to "posted" upon completion

  Customization Options
  Modify AI prompts for different content styles
  Adjust image generation parameters
  Change posting frequency and timing
  Add multiple LinkedIn accounts
  Integrate with other content sources

  Use Cases

  �� Perfect for:
  Startups** wanting consistent LinkedIn presence
  Marketing teams** overwhelmed with content creation
  HR departments** building employer branding
  Agencies** managing multiple client accounts
  Solo entrepreneurs** needing professional social media presence

  Benefits

  ⏰ Time Savings: 20+ hours per week for content teams
  📈 Consistency: Daily, professional posts without gaps
  🎨 Quality: AI-optimized content and visuals
  📊 Scalability: Handle unlimited content volume
  💰 Cost Effective: Reduce manual content creation costs

  🔄 The automation runs continuously, ensuring your LinkedIn presence stays active and engaging 24/7!

  For inquiries: mfarooqiqbal143@gmail.com

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheetsTrigger","n8n-nodes-base.if","n8n-nodes-base.limit","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.googleDrive"]

workflow_json_compressed:
  [encoded data, 6712 characters]


name: Talk to Your Google Sheets Using ChatGPT-5
author_name: Robert Breen
author_username: rbreen
categories: []
created_at: 2025-08-15T17:54:40.842Z
updated_at: 2025-08-15T17:54:40.842Z
url: https://n8n.io/workflows/7449
scraped_at: 2025-12-24 13:02:41
description:
  This n8n workflow template creates an intelligent data analysis chatbot that can answer questions about data stored in Google Sheets using OpenAI's GPT-5 Mini model. The system automatically analyzes your spreadsheet data and provides insights through natural language conversations.

  What This Workflow Does

  Chat Interface**: Provides a conversational interface for asking questions about your data
  Smart Data Analysis**: Uses AI to understand column structures and data relationships
  Google Sheets Integration**: Connects directly to your Google Sheets data
  Memory Buffer**: Maintains conversation context for follow-up questions
  Automated Column Detection**: Automatically identifies and describes your data columns

  🚀 Try It Out!

  1. Set Up OpenAI Connection

  Get Your API Key
  Visit the OpenAI API Keys page.
  Go to OpenAI Billing.
  Add funds to your billing account.
  Copy your API key into your OpenAI credentials in n8n (or your chosen platform).

  2. Prepare Your Google Sheet

  Connect Your Data in Google Sheets
  Data must follow this format: Sample Marketing Data
  First row** contains column names.
  Data should be in rows 2–100.
  Log in using OAuth, then select your workbook and sheet.

  3. Ask Questions of Your Data

  You can ask natural language questions to analyze your marketing data, such as:
  Total spend** across all campaigns.
  Spend for Paid Search only**.
  Month-over-month changes** in ad spend.
  Top-performing campaigns** by conversion rate.
  Cost per lead** for each channel.

  📬 Need Help or Want to Customize This?
  📧 rbreen@ynteractive.com  
  🔗 LinkedIn
  🔗 n8n Automation Experts

nodes_used:
  ["n8n-nodes-base.googleSheetsTool","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

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


name: Monitor Competitors & Generate Content Ideas with GPT4 & Gemini to Google Sheets
author_name: Shelly-Ann Davy
author_username: SheCodesFlow
categories: []
created_at: 2025-08-15T19:34:29.346Z
updated_at: 2025-08-15T19:34:29.346Z
url: https://n8n.io/workflows/7454
scraped_at: 2025-12-24 13:02:44
description:
  Who’s it for
  Women creators, homemakers-turned-entrepreneurs, and feminine lifestyle brands who want a graceful, low-lift way to keep an eye on competitor content and spark weekly ideas.

  What it does
  On a weekly schedule, this workflow crawls your competitor URLs with Firecrawl (HTTP Request), summarizes each page with OpenAI, brainstorms carousel/pin ideas with Gemini, appends results to Google Sheets (Date, URL, Title, Summary, Ideas), and sends you a single email digest (optional Telegram alert). It includes basic error notifications and a setup-friendly config node.

  Requirements
  HTTP credentials** for Firecrawl, OpenAI, and Gemini (no keys in nodes)
  Google Sheets** OAuth credential
  A Sheets document with a target sheet/range (e.g., Digest!A:F)
  (Optional) Telegram bot + chat ID

  How to set up
  Open Set: Configuration (edit me) and fill:
     competitorUrls (one per line), sheetsSpreadsheetId, sheetsRange,
       ownerEmail, emailTo, geminiModel, openaiModel
  Attach credentials to the HTTP and Sheets nodes.
  Test by switching Cron to Every minute, then revert to weekly.

  How it works
  Cron → Firecrawl (per URL) → Normalize → OpenAI (summary) + Gemini (ideas) → Merge → Compile Row → Google Sheets append → Build one digest → Email (+ optional Telegram).

  How to customize
  Add/remove competitors or change the weekly send time.
  Tweak the OpenAI/Gemini prompts for your brand voice.
  Expand columns in Sheets (e.g., category, tone, CTA).
  Swap email/Telegram for Slack/Notion, or add persistent logs.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.cron","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.emailSend","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.emailSend","n8n-nodes-base.stickyNote"]

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


name: Process Multiple Media Files in Telegram with Gemini AI & PostgreSQL Database
author_name: John Alejandro SIlva
author_username: alejandro-silva
categories: []
created_at: 2025-08-15T22:30:01.603Z
updated_at: 2025-08-15T22:30:01.603Z
url: https://n8n.io/workflows/7455
scraped_at: 2025-12-24 13:02:41
description:
  🤖📨 Telegram AI Assistant with Multi-File Media Group Handling, Smart File Processing & PostgreSQL Integration

  &gt; AI-powered Telegram bot for text, voice, video, documents & media — with database-driven grouping and Telegram-safe formatting.

  📋 Description

  This n8n template creates a next-generation Telegram AI assistant 🧠💬 capable of handling text messages, media files, and documents with advanced processing, PostgreSQL integration, and AI-powered responses.

  It is designed to solve Telegram’s media group challenge 📦 — when multiple files are sent together, they are stored, processed, and combined into one coherent AI-generated reply.

  ✨ Key Features
  📂 Multi-file media group management with PostgreSQL:
    media_group
    media_queue
    chat_histories
  📑 Document parsing for CSV, HTML, ICS, JSON, ODS, PDF (with AI fallback), RTF, TXT, XML, and spreadsheets.
  🎤 Voice & video transcription for AI analysis.
  🖼️ Image, audio, and video description for richer AI context.
  🛡️ Telegram-safe MarkdownV2 formatting with auto-splitting for messages over 4096 chars.
  ⚠️ Error fallback for unsupported file types.

  💡 Acknowledgment

  A huge thank you to Ezema Gingsley Chibuzo 🙌 for the inspiration of the first version of this workflow:  
  Create a Multi-Modal Telegram Support Bot with GPT-4 and Supabase RAG  
  Your pioneering work laid the foundation for this improved, database-powered multi-modal assistant 🚀

  🏷 Tags
  telegram ai-assistant postgresql multi-file media-group  
  file-processing voice-transcription document-parser pdf-extraction  
  markdown-formatting n8n-template

  💼 Use Case
  Use this template if you need an AI-powered Telegram bot that can:
  📦 Handle multiple files sent in a single message (albums, multiple PDFs, etc.).
  🧾 Extract & analyze content from many file formats.
  🎙️ Transcribe voice and video messages.
  🗂️ Maintain chat memory for contextual AI answers.
  🛡️ Avoid Telegram formatting errors and length limit issues.

  This workflow automates the full chain: Receive → Process → AI Analysis → Telegram-safe Reply.

  💬 Example User Interactions

  📄 Multiple PDFs with a caption** → AI extracts and summarizes all PDFs in one combined reply.  
  🎤 Voice message** → AI transcribes and replies with a contextual answer.  
  📊 CSV or spreadsheet file** → AI parses and summarizes the data.  
  🖼️ Multiple images** → AI describes each image and replies in a single message.

  🔑 Required Credentials
  Telegram Bot API** (Bot Token)  
  PostgreSQL** (Connection credentials)  
  AI Provider API** (OpenAI, Google Gemini, or compatible LLM)

  ⚙️ Setup Instructions
  🗄️ Create the PostgreSQL tables (Gray section SQL):
     media_group
     media_queue
     chat_histories
  🔌 Configure the Telegram Trigger with your bot token.
  🤖 Connect your AI provider credentials.
  🗂️ Set up PostgreSQL credentials in the database nodes.
  ▶️ Deploy the workflow in n8n.
  🎯 Start sending messages and files to your bot.

  📌 Extra Notes
  ✅ Green section ensures only one trigger per media group.  
  📌 Yellow section guarantees captions and files are stored in the correct sequence.  
  ✨ Purple section formats AI output to be Telegram-safe and split if needed.  
  🧠 AI prompt is not fixed, allowing full customization.

  💡 Need Assistance?

  If you’d like help customizing or extending this workflow, feel free to reach out:  

  📧 Email: johnsilva11031@gmail.com  
  🔗 LinkedIn: John Alejandro Silva Rodríguez

nodes_used:
  ["n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.switch","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.wait","n8n-nodes-base.postgres","n8n-nodes-base.postgres","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.wait","n8n-nodes-base.postgres","n8n-nodes-base.postgresTrigger","n8n-nodes-base.set","n8n-nodes-base.manualTrigger","n8n-nodes-base.postgres","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.code","n8n-nodes-base.telegram","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.extractFromFile","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.googleGemini","@n8n/n8n-nodes-langchain.googleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.googleGemini","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.code","n8n-nodes-base.switch","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.telegram","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.html","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.set","n8n-nodes-base.merge","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/n8n-nodes-langchain.memoryPostgresChat","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.set","n8n-nodes-base.stickyNote","n8n-nodes-base.telegramTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 22644 characters]


name: 🤖 Automate CV Screening with AI Candidate Analysis
author_name: Lucas Peyrin
author_username: lucaspeyrin
categories: []
created_at: 2025-08-15T23:23:45.102Z
updated_at: 2025-08-15T23:23:45.102Z
url: https://n8n.io/workflows/7456
scraped_at: 2025-12-24 13:02:41
description:
  How it works

  This workflow automates your initial hiring pipeline by creating an AI-powered CV scanner. It collects job applications through a web form, uses AI to analyze the candidate's CV against your job description, and neatly organizes the results in a Google Sheet.

  Here’s the step-by-step process:
  The Application Form:** A Form Trigger provides a public web form for candidates to submit their name, email, and CV (as a PDF).
  Initial Logging:** As soon as an application is submitted, the candidate's name and email are added to a Google Sheet. This ensures every applicant is logged, even if a later step fails.
  CV Text Extraction:* The workflow uses *Mistral's OCR** model to accurately extract all the text from the uploaded CV PDF.
  AI Analysis:* The extracted text is sent to *Google Gemini**. A detailed prompt instructs the AI to act as a hiring assistant, scoring the CV against the specific requirements of your job role and providing a detailed explanation for its score.
  Structured Output:** A JSON Output Parser ensures the AI's analysis is returned in a clean, structured format, making the data reliable.
  Final Record:** The AI-generated qualification score and explanation are added to the candidate's row in the Google Sheet, giving you a complete, analyzed list of applicants.

  Set up steps

  Setup time: ~15 minutes

  You'll need API keys for Mistral and Google AI, and to connect your Google account.

  Get Your Mistral API Key:
      Visit the Mistral Platform at console.mistral.ai/api-keys.
      Create and copy your API key.
      In the workflow, go to the Extract CV Text node, click the Credential dropdown, and select + Create New Credential.
      Paste your key into the API Key field and Save.

  Get Your Google AI API Key:
      Visit Google AI Studio at aistudio.google.com/app/apikey.
      Click "Create API key in new project" and copy the key.
      In the workflow, go to the Gemini 2.5 Flash Lite node, click the Credential dropdown, and select + Create New Credential.
      Paste your key into the API Key field and Save.

  Connect Your Google Account:
      Select the Create 'CVs' Spreadsheet node.
      Click the Credential dropdown and select + Create New Credential to connect your Google account.
      Repeat this for the Log Candidate Submission and Add CV Analysis nodes, selecting the credential you just created.

  Create Your Spreadsheet:
      Click the "play" icon on the Start Here node to run it. This will create a new Google Sheet in your Google Drive named "CVs" with the correct columns.

  Customize the Job Role:
      Go to the AI Qualification node.
      In the Text parameter, find the job_requirements section and replace the example job description with your own. Be as detailed as possible for the best results.

  Start Screening!
      Activate the workflow using the toggle at the top right.
      Go to the Application Form node and click the "Open Form URL" button.
      Fill out the form with a test application and upload a sample CV. Check your Google Sheet to see the AI's analysis appear within moments

nodes_used:
  ["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.formTrigger","n8n-nodes-base.manualTrigger","n8n-nodes-base.mistralAi","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm"]

workflow_json_compressed:
  [encoded data, 10116 characters]


