# templates

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-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:33
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/n8n-nodes-langchain.openAi","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.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"]

workflow_json_compressed:
  [encoded data, 36328 characters]

metadata_json:
  {"categories":["automation","integration","lead generation","sales outreach","no-code"],"complexity":"complex","use_cases":["Harvest leads from LinkedIn posts (commenters/likers)","Qualify and manage leads inside Airtable","Automated connection request and DM sequences","Scale personalized outreach while respecting rate limits","Nurture prospects and track campaign performance"],"estimated_setup_minutes":30,"required_services":["n8n","Airtable","Unipile API (LinkedIn data harvesting)","LinkedIn account (post URLs / recipients)","OpenAI (optional, for AI/ML nodes)"],"key_features":["Enter a LinkedIn post URL to auto-harvest commenters and likers","Profile data enrichment via Unipile API","Airtable qualification hub with custom filters and statuses","Automated sequence: connection requests -> conditional DMs on acceptance","Rate-limit aware batching and campaign flow in n8n (compliance)"],"target_audience":["entrepreneurs","sales professionals / SDRs","growth teams and marketers who run outreach campaigns\",\"no-code users"]}


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-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:34
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:
  H4sIAAAAAAAAE52Wz24bNxDGX0XgeUflf3J1qpHWqQskQeM2BRL4MCSH8sLSrru7dmIYAvIOfcM+SbGSLMmKFLm96CAOP/5mOPNxH1mV2IR1d+efw/m1e/su3vzxuv2FFWxOPbLJI6vqrsc60sUQZzPlrAViouA1L51yJK12NpeJoza5NETRYhmFxZyzp+wdWiu1McGmzBYFq3FObMJev381+ufr36NLindt1T+Mfrujrq+ausaqpdHZXd+cV7MZK1iP045NPj2uUKe/XrbmrzefP977D9VNe8Y2iq+a+e2sGlhH76m7bepELStYbAl7Smc9mzDJpQHugevfuZhINzFirL35yAp2d5tOhy2uClY3iXZ4hFRBO+tBlmRBa9IQTPagKSfnjMnR0ZbxTwrXTXMzZPVwO/xR+xqWihCwo/Hnzfpt01VDOdjkEwireSE8vyrYOmB5GyiUTiobEK5MoFFrQBsUOO21TlwjSTMoYYtz6qnt2ORxsTr5A7XdUlwuinUiRLy0JlngMUXQNltALxE4olKlxcjJbxN53TTTGY0ur4n67mg602XUJuhZTnKT03cB9dhuECUF5Jk8hCFrjSoBGlLAeXIchQ1auy3iz6nqR+cVzdJxwI76PS4neSHkSSw11hssp1CR8RISlwl04hyC0A4EEQpvrUll3mK9u6X67GJL9GPt6x+2WDOsp/Eaq3rcDIHVHp72L8ITY7/BEzIJDMmA89KClspAcKUE1JEHtDkj2SMXK/7HzfLiP92pIOmiyBJCFiVojwSoswIVeLYhxkhKbuku8lGiKu93GJcv6jA53g6BKoNR2RAMtgVaOA+BtAclQpCOMpVyp1ZvqJ3SUaD5evVZbaR9QWtteUQU5BUlIEwJdIwEXgUCcmUyHr23Uu06YDqOE1eLOzR6mEB9uj4bGmulE2moSUQNOmgHSI6DiTEYnzGWGHc6aY7V7HgDrVd3eKx94tl1udIbFJQy6EgRNAYPnkIATyJnNF5kHU663FhskkjGmMi5BSlMAB0wgA+JwKXsZFDG2V3DXo/DT211f7y0q2F4innWg/plLqe2ZhK9l5QSCB89aDWYCTcZKJJBUjllX27xLvsq3jyM3jb9cbpuGbMO2YUb6q2/7UcWm7qnengI2Te+MryAGPsh00nGWUcF66jvq3q63EpfKN4N+u/a4fWdsHsxaNyv9i/vM9hcuigDcJMjaHJqSFCDi84kL40hNSQYm7qmOEgthS/y8DvHaiD/9Lh8hY95/DKqYFWd6Aub8MXV1aJYzcYhib02Pbh5NeiHdj8fuYOb14Z/8OwjZruvU2x27FnO80CxOvDpI+M7J+7180Hu3doektp/yA6KPDvvZAleJraOPaS2+z6clhAHNb5b4qXMYvEvWJSTfDgLAAA=

metadata_json:
  {"categories":["automation","integration","governance-risk-compliance","data-processing"],"complexity":"medium","use_cases":["Automate responses to vendor/customer security questionnaires","Pre-fill audit-ready security questionnaires for fast review","Map questions to approved answers and evidence links","Track review status and notify owners/reviewers","Export completed responses in customer-required formats (CSV/XLSX/PDF)"],"estimated_setup_minutes":45,"required_services":["Google Sheets (Google Workspace)","Google Drive (Google Workspace)","OpenAI API (optional — used for classification/templating)","Email/SMTP or other notification service (for reviewer alerts)"],"key_features":["Ingests questionnaires from Sheets/CSV/XLSX and normalizes/de-duplicates rows","Classifies question types and tags topics (encryption, access control, IR, privacy, HR, etc.)","Looks up approved answers from an Answer Library with template fallbacks","Inserts evidence Drive links with version/date metadata","Writes an Auto-Fill sheet with proposed_answer, rationale, evidence_link, owner, status, confidence, last_updated, etc."],"target_audience":["GRC / Compliance teams","Security engineers","Sales engineers responding to security reviews/due diligence requests (RFPs/ROIs/etc.)"]}


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-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:33
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, 7796 characters]

metadata_json:
  {"categories":["payments","blockchain","automation","integration","self-hosted"],"complexity":"complex","use_cases":["Accept and settle stablecoin/token payments on-chain","Run a custom x402 facilitator for unsupported tokens/networks","Programmatically advertise supported blockchains to sellers","Offload blockchain settlement complexity from sellers","Build a self-hosted payment processor integrated into n8n"],"estimated_setup_minutes":90,"required_services":["Self-hosted n8n instance","1Shot API (business account)","1Shot API wallets funded with gas tokens","Access to target blockchain RPC/endpoints (EVM-compatible networks)","Token contracts/functions with transferWithAuthorization support"],"key_features":["Implements x402 facilitator routes: /verify, /settle, /supported","Specification-compliant request/response handling and error handling","Integrates with 1Shot API for on-chain transferWithAuthorization","Configurable payment token and network nodes","Self-hosted-only community nodes (requires self-hosted n8n)"],"target_audience":["Developers building crypto payments","Merchants wanting to accept stablecoins/tokens","Payment processors and fintech teams integrating blockchain settlements」「Blockchain integrators and devops teams"]}


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-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:32
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"]

workflow_json_compressed:
  [encoded data, 10552 characters]

metadata_json:
  {"categories":["automation","content strategy","integration","data processing"],"complexity":"complex","use_cases":["Trend monitoring and alerting for emerging topics","Generating AI-driven content ideas and briefs","Collecting and analyzing news coverage around trends","Monthly editorial planning and reporting","SEO and topical research for content teams"],"estimated_setup_minutes":45,"required_services":["SerpAPI (for Google Trends and Google News queries)","Firecrawl API (for scraping full article content)","Google Sheets (OAuth2 access to tracking spreadsheet)","AI model API (Anthropic Claude, OpenAI GPT, or another LLM provider)"],"key_features":["Automated trend analysis based on search growth","Google News search + scraping of full article content","AI-driven content suggestions and editorial ideas","Default exclusion of geo-localized queries with configurable filtering","Configurable language, location, and date range (default: French/France/last month)"],"target_audience":["Content creators","Marketers","Social media managers / community managers"]}


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-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:33
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, 8736 characters]

metadata_json:
  {"categories":["automation","integration","data processing","web crawling","seo"],"complexity":"medium","use_cases":["Generate site sitemaps for audits","Create hierarchical visual sitemaps/mind maps","SEO site-architecture analysis","UX/navigation research","Document site structure for migrations or client presentations"],"estimated_setup_minutes":20,"required_services":["n8n self-hosted (community nodes support)","Firecrawl API key","Google Sheets (OAuth2)","Google Drive (OAuth2)","Optional: AI model or script to convert sheet data to ASCII tree","Optional: Whimsical Diagrams (for visual mind maps)"],"key_features":["Crawls only sitemap-declared pages (sitemapOnly) and respects robots.txt","Uses Firecrawl for sitemap discovery","Organizes URLs into hierarchical levels (Niv 0–5) with parent-child relationships","Exports a formatted Google Sheets copy (template duplication)","Chat-triggered input for URL entry (no manual trigger) and direct link output to generated file in Drive"],"target_audience":["Web developers","SEO specialists","UX designers','Digital marketers"]}


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-09-14 19:11:01
metadata_generated_at: 2025-09-30 08:33:37
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"]

workflow_json_compressed:
  [encoded data, 5480 characters]

metadata_json:
  {"categories":["chatbots","AI/ML","knowledge management","integration","data storage"],"complexity":"complex","use_cases":["Internal documentation search and Q&A","Customer support automation","E-commerce product assistance and recommendations","Retrieval-augmented generation (RAG) for domain-specific answers","Team knowledge base / helpdesk triage"],"estimated_setup_minutes":60,"required_services":["Anthropic Claude (LM API)","Supabase (vector DB & storage)","Postgres (chat memory)","Hosting / webhook endpoint (website, Slack, Teams, etc.)","n8n instance","Embeddings model or service (if separate from Claude)"],"key_features":["Customizable knowledge base ingestion and vector indexing","Retrieval-augmented conversations using Supabase vector store","Persistent chat memory stored in Postgres","Conversational LLM powered by Anthropic Claude","Deployable via webhook to multiple platforms (websites, Slack, Teams)"],"target_audience":["Businesses","Developers","Support teams and helpdesks」「E‑commerce teams」「Knowledge managers and internal support organizations"]}


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-09-29 22:37:33
metadata_generated_at: 2025-09-30 08:33:37
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, 8352 characters]

metadata_json:
  {"categories":["integration","CRM automation","lead management","data processing","notifications"],"complexity":"complex","use_cases":["Process and map Webflow form submissions into Pipedrive (organization, person, deal)","Normalize and format international phone numbers before saving to CRM","Detect and handle duplicate leads intelligently before creating records","Send multi-channel team notifications on new/updated leads","Use conditional logic and aggregation to build complete CRM structures from a single form submission"],"estimated_setup_minutes":60,"required_services":["n8n","Webflow","Pipedrive","Notification channels (e.g., Slack, Email, Microsoft Teams)","Custom code/runtime (for phone formatting, e.g., libphonenumber logic)"],"key_features":["International phone number parsing and formatting","Automated creation of organization, person, and deal records in Pipedrive","Intelligent duplicate detection and conditional handling","Aggregation and conditional logic to assemble CRM data","Custom code node for advanced transformations and validations (phone, fields)"],"target_audience":["Sales teams","Marketing professionals","Business owners managing lead flow and CRM processes\",\"CRM administrators and operations\",\"No-code/low-code automation builders"]}


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-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:34
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"]

workflow_json_compressed:
  [encoded data, 7944 characters]

metadata_json:
  {"categories":["automation","integration","project management","notifications"],"complexity":"medium","use_cases":["Automated project status tracking across clients","Milestone/ task completion notifications","Editorial/calendar workflow monitoring","Client deliverable & QA tracking","Deadline and progress monitoring"],"estimated_setup_minutes":45,"required_services":["Airtable (database)","Motion API (HTTP)","Gmail (OAuth2) for email sending","n8n account"],"key_features":["Fetches projects from Airtable and Motion workspace data via HTTP","Filters active projects (Status = Actif) and names containing 'SEO'","Monitors specific tasks and checks completion status","Sends conditional email notifications when target tasks complete","Updates Airtable with last-notification timestamps to prevent duplicates (date-based filtering)」「Schedule-driven execution with configurable cron (default: 0 8 10-31 * *)\",\"Supports multi-project and multi-workspace processing\",\"Customizable notification templates and recipients\",\"Optional alternative notification channels (Slack, Discord, SMS, webhooks)\"],"],"target_audience":["Project managers","Team leads","Agencies and account managers (content/SEO)」「Content editors and publishers\",\"Developers and QA leads"]}


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-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:33
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"]

workflow_json_compressed:
  [encoded data, 5164 characters]

metadata_json:
  {"categories":["automation","web-scraping","content-migration","documentation","data-extraction"],"complexity":"medium","use_cases":["AI knowledge base creation (convert webpages to docs for training)","Content migration and backups (move site content to Google Docs)","Competitor and SEO content analysis","Bulk documentation generation (product pages, FAQs)","Research aggregation (market/academic/legal)"],"estimated_setup_minutes":25,"required_services":["n8n self-hosted (community nodes compatibility required)","Firecrawl API (API key)","Google Sheets (OAuth2)","Google Drive / Google Docs (OAuth2)"],"key_features":["Batch read URLs from Google Sheets","Sequential scraping with Firecrawl and markdown conversion","Creates individual Google Docs for each page","Progress tracking and status updates in the sheet","Duplicate prevention (skips already-scraped URLs) and empty-row filtering\",\"Graceful error handling and continuation"],"target_audience":["AI chatbot developers","Content managers","Data analysts and researchers\",\"SEO specialists and marketers"]}


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-09-29 22:37:33
metadata_generated_at: 2025-09-30 08:33:37
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, 8928 characters]

metadata_json:
  {"categories":["marketing automation","reporting","integrations","data processing"],"complexity":"medium","use_cases":["Automated monthly Google Ads performance reporting","Aggregating metrics across multiple client accounts","Separating e-commerce vs non-e-commerce campaign reporting","Populating Google Sheets and syncing records to Airtable","Creating client-ready campaign performance dashboards"],"estimated_setup_minutes":45,"required_services":["Google Ads","Google Sheets (Spreadsheets)","Google Drive","Airtable","Webhook/HTTP endpoint (for triggers or inbound data)"],"key_features":["Multi-account Google Ads data retrieval","Campaign-type differentiation (e.g., e-commerce vs non-ecom)","Conversion and performance metric aggregation","Writes organized reports to Google Sheets","Syncs or updates records in Airtable for tracking/organization (via API/code node if needed)"],"target_audience":["Digital marketing agencies","PPC managers","Marketing teams managing multiple clients/accounts"]}


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-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:33
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, 5156 characters]

metadata_json:
  {"categories":["automation","recruitment","integration","data processing","AI/ML"],"complexity":"medium","use_cases":["Automated phone interview evaluation","Candidate pre-screening and qualification","Logging interview results to Google Sheets","Adapting phone transcripts for ATS/CRM ingestion","Customizable AI-driven scoring and reasoning"],"estimated_setup_minutes":45,"required_services":["n8n instance (publicly accessible webhook)","OpenAI API (GPT-4o-mini)","Google Account / Google Sheets (OAuth)","Vapi.ai (recommended) or alternative phone interview system that can send webhooks"],"key_features":["Receives transcripts via webhook","AI analysis against predefined evaluation criteria (GPT-4o-mini)","Extracts structured fields (name, phone, location, qualifies, reasoning)","Outputs structured JSON and writes rows to Google Sheets","Configurable system prompt and evaluation checklist for role-specific criteria (e.g., Massachusetts driving job)」「Supports Vapi.ai integration with expected payload format and timeout settings"],"target_audience":["HR teams","Recruiters and staffing agencies","Hiring managers conducting phone screens」「Developers/IT implementing hiring automations"]}


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-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:33
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:
  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

metadata_json:
  {"categories":["automation","notifications","wellness"],"complexity":"simple","use_cases":["Daily morning affirmations","Personalized morning notifications","Delivering motivational content via email and/or Telegram","Light journaling integration (optional Notion logger)"],"estimated_setup_minutes":30,"required_services":["SMTP account (SendGrid, Gmail, etc.)","Telegram Bot (optional)","n8n instance/workflow runner"],"key_features":["Cron-triggered daily run (default 7 AM)","Config node to store email, Telegram chat ID and affirmation list","Random selection of one affirmation via Code node","Email delivery via SMTP","Optional Telegram forwarding controlled by IF node (zero-code toggleable branch)"],"target_audience":["Creators","Homemakers","Entrepreneurs"]}


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-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:34
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, 5840 characters]

metadata_json:
  {"categories":["automation","social media","content generation","e-commerce","marketing"],"complexity":"medium","use_cases":["Automatically convert new product links into Facebook posts","Generate short, engaging social captions with AI","Create AI-generated product images from prompts","Publish affiliate posts and track status in Google Sheets","Rapidly scale affiliate content posting workflow"],"estimated_setup_minutes":20,"required_services":["Google Sheets (Google Sheets API)","RapidAPI (Amazon product details / ASIN lookup)","OpenRouter (AI caption generation)","Google Gemini (image generation)","Facebook Graph API (posting to Facebook)"],"key_features":["Triggers on new Google Sheet row","ASIN extraction from Amazon product links","Fetches product details from Amazon via RapidAPI","AI-generated short Facebook captions (OpenRouter)","AI image prompt creation and image generation (Google Gemini)"],"target_audience":["Amazon affiliate marketers","Social media managers","Content creators and influencers focused on e-commerce"]}


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-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:34
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, 5876 characters]

metadata_json:
  {"categories":["automation","integration","lead generation","data enrichment","email outreach"],"complexity":"medium","use_cases":["Automated prospect discovery by industry & location","Enriching leads with contact details and website data","Generating personalized cold emails with AI","Automated cold email sending and tracking","Storing and updating lead status in a spreadsheet for follow-up"],"estimated_setup_minutes":30,"required_services":["Apify (scraping actor / API)","Google Gemini (LM for email extraction)","OpenAI (AI prompt for cold email generation) or equivalent","Google Sheets","Gmail (or SMTP email provider)","n8n Form Trigger (Lead Machine form)"],"key_features":["Scrapes business data (name, website, phone, address, category) based on type & location","AI-driven email extraction from websites","AI-generated cold email subject and body with selectable tone","Stores validated leads in Google Sheets and updates send status/timestamp","Sends emails via Gmail and supports customization/filters before send"],"target_audience":["Digital marketing agencies","Sales teams and SDRs","Growth teams and founders running outreach campaigns"]}


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-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:33
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:
  [encoded data, 4752 characters]

metadata_json:
  {"categories":["automation","integration","productivity","household management"],"complexity":"medium","use_cases":["Generate weekly grocery lists from a recipe list","Automatically populate a Notion database with shopping items","Send email (and optional Telegram) notifications with the list and status","Persistent logging of runs to Notion for audit/troubleshooting","Simple meal planning and household shopping automation"],"estimated_setup_minutes":20,"required_services":["Notion (database + integration)","SMTP-compatible email provider (credentials)","Telegram bot & chat ID (optional for alerts)"],"key_features":["Runs on a weekly Cron schedule (configurable)","Generates grocery items and creates rows in Notion (Ingredient, Quantity, Status)","Optional persistent logging to a Notion Logs database","Notion connection check and detailed error notifications (email + optional Telegram)","Success email with timestamp and optional Telegram confirmation or alerts on failure and success (configurable)"],"target_audience":["Busy homemakers","Creators and content producers planning meals","Non-technical users wanting no-cost meal/grocery automation using Notion and email notifications"]}


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-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:34
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, IT Project Manager, Agile & Data specialist. 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:
  H4sIAAAAAAAAE5VYa3LbRhK+Su/YW6YqAIk3QJhWle3IjySWtZYSZ9dyJQNMg4QFDuCZgSiaYdX+2gPsvz3B1p4jN8lJtgYAQYqWLIf8QWDQ0/314+tpcEVyRmKyEFn0PbN+fpN8/+zoxeINMcgcFSXxiuRcKspTfKnlLM+1wtBh1PGzMEmpM04yHzMncXzbigIa+VniWePAt1waZGFk+07AXCfBjFluxAKyNgincyQxeYWocj6FVzmvFUp4XKtyTlVechg8L8tpgXA6Q1QSvoHnc5oXB8Qgik4lid+tWtTuWVhffTh5cpwnnz5+VxyRXnmrgBgkFUgVsseKxMSxHN+0ItOOzqwwtv3YdYZeYP2DGKSu2N1ia6OzG346Wvzw7GlxiT8/OUpZsrU7bYFLDfzL1oPYcYahH9xhfSvWWz8av/wwO1l+dynCb3/+2/TT1vq8C+m8DemXAYSxFQ6tO93fivUA3srnx2cnT+T8Kbvy/YuPWwCo8/Q1fnv+V/mtxXqzydR/uqieRW725IV4/ni2NXsiSlanKr/M1fJrcj4ef1XOtVhvHR9/Oj46/fjDj28Xb1+Jo/FOzr/Waesus1ux9XuD8JLhTrFTTFM3cR3T9dzE9Bw7MZPQj0wMPCfzMUxD39qCOlV5erGE41KhrXmzrPQqj7jZqDUTKnEoGyEtQwxSlTLX7CPxO8uw3hukooLOUaGQug2kZVEKErsGmWE+nSkS22FgkLTkCrn25d49eIMf61wgO+f6a0JHY5qmZc1Vy+Kd9YbeuiNodD+hkI11e5twGmFih77JsjQyvcSPzCRM0XRt5mOCLMjYzR7/aYed0DFM13du89oxyCJnakZizw62EYi8aC8C9vBtKS6yolyAEvl0igJQAaOKwpSqGYqcT3VsztqHMbyivKYFdPcQg6g5qBnCYqOHZgoFLMsaspzncgYLkTcs11J7jAfKmRb945//EQgCKVuCKkEiZ1p8PtS2j3U8IOeXZXGJLG5TtYfjj3/9G6SiQslrYK6ltevOgzdI2UGzo6qLot2wwZOJcq4BibYl6v27u0G0FTNHrmSHZFNEkJZFPecyhrOyylMDThVVtTTg9YKjMOAYrxScKqz0tlNUddUpOMUCU9XAOK10DBrTTWjOaAIDHE6HBuwdPwfDdvMRp0mB8KNEyHIhFQidAgkzpAxFLyRrgR1A0PUnYU5VOgO8oqkqljCQFRZFzqejlEpslZ/lGqEJL7MmmwXVeV1QroD2R58BAquCprifkEWuZkDhNJ0hqwuEAaN5sRwtEC+Kpdb/BR4FoTv2PM8zmR/YphdEmZmkPjNtD0MWuhikXnQjj9w/TaTQ8r5IJK8nkh9YXyKSM4TTrmoB275xzk9qUZUSY3hS5wXbJYC5Kbg5SkmnuF94LQV1CTRcyJWmhd4vNAAQmOZVrovwdoY8LRnC4FnNU+1rW/BZKeZUSeigw+DF2asfDlo7dfJBl2GRc+xoo91omYWcyeuuNQUMg8aIjvOB3qGrUM1yCZLnVYUN6ClyFFQh0I0JA7RVSEq2NBrTW28+C4MoF3K0IdaGLo3lFl1nuvFXIEOuclrIGGTLqUZTK/n6ca1mkPZCbc//iRY5ayq5Vc0ZUFAoVeupdkDrkFhkLb8aSzNML0DNqAJaFJue0DcAGNzRAA6AVhVS0TnPGQpISyFQU7HF9QV2hKHjJE7EzMiJxqaXeIEZuREzA8xCJwp8miDbsqPj463EmDe03UrtcMO1PMN1g31q3I5sTCMroik1/cQPTI/5zBxngWVGgY12yFjkJzu8PWoC3PSJz+fAm8FuJpcdkGMn6kAuMJmV5UUz9o89204QPZO5vmd6FmNm5FHH9P1xkgQJJmGih+DrlNdVflbuTIUdN0lMHq1W9z/Ikg9nal6s18QgZaUBdPHoCnvnJYGXmtyqZHT5QG78+yypznAbvJQ5AbNZaCbUdU1vHLkmTZlnZg4L/CyKUs92d94XNqzqSXlr0NKS7Tc9x7opseSD1HTWWEoum9p+qXAu4RHcz3lVqyEtisHBw7ZCtUxZ4LAop4Nz8m3J+e//QwkCf/9vjTI+JwZ8d/r6eCiVniHybDnY6DOA10VhgHPQ6hqNIOn7o9LH2TkvdPPQl2/KhQbw4MHDc75RMMxKcUTT2SBXOIdHh7A657Aj/s0j+FWvTJQ41L/6ih3eX2nxYZPGhqDw22/w4MF6MlLsFrGWwHfLNQS/U+zdOdnOAOT9vvxkpMThrw/P+boPS987m47ZxlyBrkFoXJz85dvXT8/+fnLUrB2e80n/i7TTKtWywA5QE6I2WvqTlIKhMNOyKGilj6nN1cONRHP2xWBb1l/7tTkV05zH4FjVFVj9clZyZWZ0nhfLGB6LnBYGSMqlKVHkWSe27nDMDFBsH0gMdnUFsixyBvdY8+m1K7xSJi3yKY+hwEz1DyrKWM6nMUTV1b6RHQM0vZiKsubMbA72GO5ljv5eh79ojvcYkrJgu8omo00UJ6MushN9fLURrg5fYFGUxmRUbRcEAhUdPYt2XoQy2x0B4o18W6o6NX3d9Olrb0V/3Tw8bMp3MlKzvfW2Xm940BToDet9PV571lRiB2W0i2Wieq/15/6q59y6F9/GZbT1aRMWeqnngGlZMmB0OZwkYnR48grOkM7baExG3f7JqCnlXxsqCFS14PBuBZpHMaxaDqxh/f7h5021b6luFqRpFo1NyoJMt1TbTKxobFqua/nW2KVulu221HYG15PX7SdQ8zLQvklcb6q+7dzYVK8fFHrjcWNvRX75RRQkVqJGg8zbxpvrk/uSFnV3szYIK9Nal48+127cU4tiZ5O+W++HxBsG+gWd6r8ckMQZLSQaRKLSddigxCtMaw30tWYiicmlrY1fthqaMxXR9dMgCc3ET33TS9zITGwnMDPq0YBlXugEPmmmYo7pxud+/ohXZE5zHah3q+afglsj3ogZJOcMr0hsrd+/XxvXRW/WdfuBeIvGzzbcpPdrppQb9K/X/weFEkN+qRQAAA==

metadata_json:
  {"categories":["automation","integration","communication","productivity"],"complexity":"simple","use_cases":["Automatically share meeting minutes after each meeting","Distribute notes and action items to stakeholders","Automate follow-up emails based on meeting notes","Consolidate meeting records for audit or tracking purposes"],"estimated_setup_minutes":15,"required_services":["Google Sheets","Gmail","Google account","n8n"],"key_features":["Trigger on new Google Sheets row","Retrieve meeting minutes from predefined columns (Topic, Status, Owner, Next Step)","Send formatted email via Gmail to configured recipients","Simple configuration via sticky notes and credential setup","Supports quick testing of workflow"],"target_audience":["project managers","team leads","productivity-focused professionals/administrators using Google Sheets"]}


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-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:33
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, 6708 characters]

metadata_json:
  {"categories":["automation","social media","integration","AI content generation","image generation"],"complexity":"complex","use_cases":["Automate LinkedIn posting from a content pipeline","Content marketing and audience engagement","Employer branding and HR communications","Agency-managed client social accounts","Personal/entrepreneur professional branding"],"estimated_setup_minutes":60,"required_services":["n8n instance","Google Gemini (LLM + Image Generation) API","Google Sheets (spreadsheet for posts)","Google Drive (for image storage and public sharing)","LinkedIn API (developer app and permissions)"],"key_features":["End-to-end automation: from post title to published LinkedIn post with image","AI-generated post copy (hooks, paragraphs, questions, hashtags, emojis)","AI-generated, LinkedIn-appropriate images (16:9, no text)","Automatic image upload to Google Drive and public URL tracking","LinkedIn image registration and upload workflow, then post creation and publish step"],"target_audience":["Marketing teams","Social media managers","Agencies managing multiple clients"]}


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-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:32
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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

metadata_json:
  {"categories":["integration","data processing","analytics","conversational AI","automation"],"complexity":"medium","use_cases":["Ask natural-language questions of spreadsheet data","Marketing campaign analysis and reporting","Ad spend and conversion rate insights","Exploratory data analysis for non-technical users","Follow-up Q&A using conversational context"],"estimated_setup_minutes":20,"required_services":["Google Sheets (Google account, OAuth)","OpenAI API (GPT-5 Mini)","n8n platform"],"key_features":["Natural language chat interface for spreadsheet data","Automated column detection and schema understanding","Memory buffer to maintain conversation context","Direct Google Sheets integration and row-range support","Uses GPT-5 Mini for intelligent data analysis and summaries"],"target_audience":["marketers","data analysts","business intelligence professionals looking for quick insights from sheets\",\"n8n users and automation builders\",\"developers customizing AI-driven workflows"]}


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-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:33
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:
  [encoded data, 4584 characters]

metadata_json:
  {"categories":["automation","integration","monitoring","content_generation","data_collection"],"complexity":"medium","use_cases":["Weekly competitor content monitoring","Automated content idea generation (carousels/pins)","Content curation and research for social media","Building a centralized content digest in Google Sheets","Automated email/Telegram digests for stakeholders"],"estimated_setup_minutes":20,"required_services":["Firecrawl (HTTP endpoint) - HTTP credentials","OpenAI (GPT-4) - API credential","Google Gemini - API credential","Google Sheets - OAuth credential and target sheet","Email sending capability (SMTP or n8n Communication node)","Telegram bot + chat ID (optional)"],"key_features":["Scheduled crawl of competitor URLs (cron)","Page summarization with OpenAI","Brainstorming content ideas with Gemini","Append results (Date, URL, Title, Summary, Ideas) to Google Sheets","Compile and send a single email digest (optional Telegram alert/additional notifs/err handling/config node)"],"target_audience":["Women creators and feminine lifestyle brands","Homemakers-turned-entrepreneurs and solopreneurs","Content marketers and social media managers looking for low-lift ideation workflows"]}


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-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:32
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, 22600 characters]

metadata_json:
  {"categories":["automation","integration","data-processing","ai-assistant","messaging"],"complexity":"complex","use_cases":["Handle Telegram media groups and combine multiple files into one AI reply","Parse and summarize documents (PDF, CSV, ODS, HTML, JSON, XML, etc.)","Transcribe voice and video messages for AI analysis","Maintain chat history and group media handling using PostgreSQL","Produce Telegram-safe MarkdownV2 output with auto-splitting for long responses"],"estimated_setup_minutes":60,"required_services":["n8n (self-hosted or cloud)","Telegram Bot API (Bot Token)","PostgreSQL (database)","AI provider API (OpenAI, Google Gemini, or compatible LLM)"],"key_features":["Database-driven media_group, media_queue and chat_histories to manage multi-file uploads","Document parsing for CSV, HTML, ICS, JSON, ODS, PDF (with AI fallback), RTF, TXT, XML and spreadsheets","Voice and video transcription for downstream AI processing","Image/audio/video description generation to enrich context","Telegram-safe MarkdownV2 formatting with automatic splitting for >4096 char messages and formatting-safety checks"],"target_audience":["Developers building Telegram AI assistants or bots","Support teams who need multimodal ticket intake and summarization","Product owners implementing file-heavy chat workflows (e.g., legal, finance, education)」「Data engineers/analysts who need automated extraction and summarization of uploaded files"]}


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-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:32
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, 10132 characters]

metadata_json:
  {"categories":["automation","recruiting","integration","document processing","AI/ML"],"complexity":"medium","use_cases":["Automated initial CV screening and ranking","Logging and tracking applicants in Google Sheets","Extracting text from PDF resumes for downstream processing","Generating structured AI assessments for hiring decisions","Creating a simple public application form for submissions"],"estimated_setup_minutes":15,"required_services":["n8n (workflow host / Form Trigger)","Mistral (OCR API key)","Google AI / Gemini (text analysis API key)","Google Account / Google Sheets (Drive access)"],"key_features":["Public web form for candidate submissions","Immediate logging of name/email to Google Sheets (fail-safe)","PDF CV text extraction via Mistral OCR","AI-driven CV scoring and explanation via Google Gemini","Structured JSON output parsing for reliable data fields and scores"],"target_audience":["Recruiters","Hiring managers","HR teams at SMBs or startups looking to scale screening workflows locally in n8n users"]}


name: LeadBot Autopilot — Chat-to-Lead for Salesforce
author_name: Le Nguyen
author_username: leeseifer
categories: []
created_at: 2025-08-16T10:24:30.951Z
updated_at: 2025-08-16T10:24:30.951Z
url: https://n8n.io/workflows/7467
scraped_at: 2025-09-14 19:10:59
metadata_generated_at: 2025-09-14 21:18:34
description:
  LeadBot Autopilot — Chat-to-Lead for Salesforce

  Description — How It Works
  Greets & Guides: Welcomes the visitor and collects info step-by-step — Full Name → Email → Mobile → Product Interest.
  Validates Inputs: Checks email/phone formats; politely re-asks if invalid.
  De-dupe in Salesforce: Looks up by email; updates an existing lead if found.
  Create/Update Lead: Writes to Salesforce, including ProductInterest__c.
  Notify Instantly: Sends a Slack alert to your team and a personalized email to the prospect.
  Close the Loop: Confirms submission and ends the chat.

  Description — Set Up Steps (≈45–75 mins)
  Connect Credentials (20–30 mins):** Salesforce OAuth, OpenAI, Slack, SMTP.  
  Tune the Prompt (5–10 mins):** Greeting, field order, product options.  
  Map Fields (10–15 mins):** Name split, email/phone, ProductInterest__c.  
  Smoke Test (10–15 mins):** Run a full chat; verify de-dupe, Slack + email.  
  Go Live (5–10 mins):** Expose the webhook/chat entry point on your site.

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.salesforceTool","@n8n/n8n-nodes-langchain.toolThink","n8n-nodes-base.salesforceTool","n8n-nodes-base.salesforceTool","n8n-nodes-base.emailSendTool","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.slackTool","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6344 characters]

metadata_json:
  {"categories":["automation","CRM integration","lead generation","chatbot"],"complexity":"medium","use_cases":["Convert website visitors to Salesforce leads via chat","Validate and normalize contact data (email/phone)","De-duplicate and update existing leads in Salesforce","Notify sales team via Slack and send personalized prospect emails","Collect product interest mapped to custom Salesforce fields"],"estimated_setup_minutes":60,"required_services":["Salesforce (OAuth)","OpenAI (Chat API)","Slack","SMTP / email provider","Website chat webhook/embed"],"key_features":["Step-by-step conversational capture (name, email, phone, product interest)","Input validation with polite re-prompts (email/phone)","Email-based lookup and de-duplication in Salesforce","Create or update Lead including ProductInterest__c","Instant Slack alert to team and personalized email to prospect','Configurable prompt tuning and field mapping for deployment"],"target_audience":["Sales teams","Marketing teams","Customer success teams/ops teams that manage lead flows','Developers / automation engineers"]}


name: Auto-Label Gmail Messages with Custom Categories using GPT-4o-mini
author_name: Ashish Kumar Swain
author_username: phoenix
categories: []
created_at: 2025-08-16T20:23:44.041Z
updated_at: 2025-08-16T20:23:44.041Z
url: https://n8n.io/workflows/7477
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:34
description:
  Why settle for Gmail’s default tabs when AI can sort your inbox your way?

  Who is this for?

  Job seekers, freelancers, and students who receive job-related emails and want them auto-sorted into labels

  Use case

  Problem**: Job emails get buried.Manually reading, labeling, and tracking them in a sheet is error-prone and time-consuming.

  Use Case**: An n8n workflow that fetches new Gmail messages on a schedule, classifies them with OpenAI, adds customised Gmail labels defined by the user.

  What this workflow does? 

  Runs on a schedule (Cron) to fetch new Gmail messages.
  Uses OpenAI to classify each email into: Job Opportunity, Application Status, Enquiries, or Others (you can edit categories).
  Adds Gmail labels accordingly (auto-creates them if missing).

  Prerequisites

  n8n (Cloud or self-hosted).
  Credentials set up in n8n:
  	Gmail OAuth
  	OpenAI (API key)

  Setup 

  Import the JSON (below) into n8n.
  Open Credentials for Gmail, OpenAI.
  In the OpenAI node, pick your model (e.g., gpt-4o-mini or any GPT-4 class model).
  In the Gmail Add Labels nodes, confirm/adjust label names:
  	Job Opportunity, Application Status, Enquiries, Others

  How to customize it for your needs

  Add a Follow-Up Date parser (e.g., “We’ll get back in 2 weeks”) → push to Calendar.

  Extend categories (e.g., Interview Invite, Offer, Rejection, HR Enquiry).

  Threaded Gmail Draft Reply for Enquiries using a template.

  Troubleshooting

  No items flowing?** Check Gmail scope/label filters and Cron timing.

  Labels not created?** The Gmail node can create them; ensure the label names match exactly.

  Why Use This Template?

  Gmail can classify messages into Spam, Promotions, or Social, but have you ever wished you could sort emails your own way?

  With this AI-powered workflow, you can create custom categories that fit your needs — like Job Opportunity, Application Status, or Enquiries — so you never lose track of what matters.

  Need Assistance?

  For setup guidance, customization, or business inquiries,
  Email: phoenixaiagentsolutions@gmail.com

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.gmail","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.textClassifier","n8n-nodes-base.cron","n8n-nodes-base.gmail"]

workflow_json_compressed:
  H4sIAAAAAAAAE7VVyW7jRhD9FaIPObGd3heeMnA8gZM4DsZBgsAQgupmtUVYIhmy5QWC/j2g7Iw8lteDbwRZ9eo91quqNWlqUpGTyy9Hf/zSH3/+/a+/D780J6QkS8xAqjVp2jFDG/F4ipM1E9Fy6ZzkFryVRtmIWCflOJhgkxde8WiNiYnbZKx0DoJUvNZCe8dISTIu+wVkPBywHs8wr/rDbtkvMGNNqjyscFOSFpZIKnK2hCEXPy2hWRSHCxjHJjU4VP8/3xbfFb9CwEVx3eR50fXYfjqeKsDFSKrzWUnarsbpcX2n0jPpkmWG8pgcVVwb6p121BsPNtRoBErytfrpFq84nEMuTroaFxP0bT99+qF17feta+m2AF1AexHn0LQHi+UUvs1sSEn6bmxy07WkOqdOuVJbMytJDwMsMeMwkmq9uQP9E4dxG8gPxKa858sQtRIRqdMhUsU00ABMUQtCW3S1SSrt+P7cheK077shr9om3+7Y7ogGGPHgYvqfj8hppUo2K8k1hnnXXW57rZNRkglJma2RquAkBZEs1YkxrkBgNJ68okYc8K9qEI3nQkeqDCBV0tc0sGBpZNxA4kHXyezUfOr7RRNhIlicZcir8d2CuBcfLEnaJL0JhlopLFWyDjQo1BSlstoEJ0CqB4bK8wnyvTKkUx8so/bSopKB2sQ0VVgDDckjVcyDFDoZ7/1OxlH776oZGny/kjv7f6jHgkoiJEOVlpqq4A0FwTXV0fskEwuBPWjI0aPN8oYBz3iTv0l4qNErVQrnXh/xHWGOzhkhNeUuWqqSQQpWTSPOrXXMImOwI/wjNIvb4p72HOPlsy2IQ9c+YselF2+it9s/NjrtE6dOpESVMI6G2nvKnDXMecmVYDtynzHHefEbXt8RfJ89ODfuntxDf6A1NQMVKQITVCEoGpSwlAkruY4cnDKv+mMzKwnE3FwhqRIsRizJiDk37XQm1gRvMK4mHqdDjQOpyBUnm5Jc3eVvaVgAw8I0FoxZqoLxNAgBFCC6WluH3E+HI3Zti3GC2gLv2atakyU0k97z9fY2vbS1t5Eladoab0jFNrNyl/TScnwp7/EGein2iTHfC59tyv22P6Xy+Ul7EnPf50+BPm+4J0H373m1JtD8Mw33Ci7w/t2bWO+lfVtss/kPqvT4rFgJAAA=

metadata_json:
  {"categories":["email management","automation","AI classification","productivity"],"complexity":"medium","use_cases":["Auto-label incoming job-related emails (Opportunities, Status, Enquiries, Others)","Keep track of applications and reduce manual triage","Automatically create and apply Gmail labels","Extendable to add follow-up dates or calendar events","Generate templated draft replies for enquiries"],"estimated_setup_minutes":15,"required_services":["n8n (Cloud or self-hosted)","Gmail (OAuth credentials)","OpenAI API (e.g., gpt-4o-mini or another GPT-4 class model)"],"key_features":["Scheduled (Cron) fetch of new Gmail messages","AI classification of emails into customizable categories using OpenAI","Auto-creation and assignment of Gmail labels","Configurable categories (Job Opportunity, Application Status, Enquiries, Others)","Easy customization to add follow-up parsing or threaded draft replies"],"target_audience":["job seekers","freelancers","students receiving application-related emails or leads seeking organization support by non-developers"]}


name: Generate Personalized Startup Ideas with Claude Analysis and Gmail Reports
author_name: Luka Zivkovic
author_username: zivkovic58
categories: []
created_at: 2025-08-16T22:01:06.982Z
updated_at: 2025-08-16T22:01:06.982Z
url: https://n8n.io/workflows/7480
scraped_at: 2025-09-29 22:37:32
metadata_generated_at: 2025-09-30 08:33:37
description:
  Description

  Who's it for
  This workflow is designed for developers, entrepreneurs, and startup enthusiasts who want personalized, AI-driven startup idea generation and analysis. Perfect for solo developers seeking side project inspiration, startup accelerators evaluating concepts, or anyone looking to validate business ideas with professional-grade analysis.

  How it works
  The workflow uses a three-stage Claude AI agent pipeline to create comprehensive startup analyses. The first agent generates innovative startup ideas based on your technical skills and preferences. The second agent acts as a venture capitalist, critically analyzing market viability, competition, and execution challenges. The third agent performs sentiment analysis and synthesizes a final recommendation with actionable next steps.

  How to set up
  Configure Anthropic API credentials for all three Claude AI model nodes
  Set up Gmail OAuth2 for email delivery
  Fill out the "My Information" node with your developer profile
  Update the recipient email address in the Gmail node
  Test with the manual trigger before enabling daily automation

  Requirements
  n8n account
  Anthropic API account for Claude AI access
  Gmail account with OAuth2 configured
  Basic understanding of developer skills and market preferences

  How to customize the workflow
  Modify the AI agent prompts to focus on specific industries or business models. Adjust temperature settings for different creativity levels. Add database storage to track idea history. Configure the form trigger for team-wide idea generation or integrate with Slack for automated sharing.

  Got a good idea?
  Visit my site https://techpoweredgrowth.com to get help getting to the next level
  Or reach out to luka.zivkovic@techpoweredgrowth.com

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.formTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.manualTrigger","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.gmail","n8n-nodes-base.merge","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.lmChatAnthropic","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","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.memoryBufferWindow","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 15100 characters]

metadata_json:
  {"categories":["automation","ai","ideation","integration"],"complexity":"complex","use_cases":["Personalized startup idea generation","AI-driven idea validation and analysis","Automated email reports of analyses","Startup accelerator concept evaluation"],"estimated_setup_minutes":20,"required_services":["Anthropic Claude (lmChatAnthropic)","Gmail (or SMTP/email provider)"],"key_features":["Three-stage Claude AI agent analysis pipeline","Structured output parsing for consistent results","Generates personalized startup ideas from form input","Automated Gmail reports and scheduling","Form and manual triggers for input collection and reviewable sticky notes guidance','Customizable code nodes for tailoring outputs"],"target_audience":["Developers","Entrepreneurs","Startup enthusiasts / founders / solo builders / accelerators"]}


name: Store AI-Generated Images in AWS S3: OpenAI Image Creation & Cloud Storage
author_name: Trung Tran
author_username: trungtran
categories: []
created_at: 2025-08-17T04:14:29.275Z
updated_at: 2025-08-17T04:14:29.275Z
url: https://n8n.io/workflows/7485
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Automating AWS S3 Operations with n8n: Buckets, Folders, and Files
  Watch the demo video below:

  This tutorial walks you through setting up an automated workflow that generates AI-powered images from prompts and securely stores them in AWS S3. It leverages the new AI Tool Node and OpenAI models for prompt-to-image generation.  

  Who’s it for
  This workflow is ideal for:
  Designers & marketers** who need quick, on-demand AI-generated visuals.  
  Developers & automation builders* exploring *AI-driven workflows** integrated with cloud storage.  
  Educators or trainers** creating tutorials or exercises on AI image generation.  
  Businesses* looking to automate *image content pipelines** with AWS S3 storage.  

  How it works / What it does
  Trigger: The workflow starts manually when you click “Execute Workflow”.  
  Edit Fields: You can provide input fields such as image description, resolution, or naming convention.  
  Create AWS S3 Bucket: Automatically creates a new S3 bucket if it doesn’t exist.  
  Create a Folder: Inside the bucket, a folder is created to organize generated images.  
  Prompt Generation Agent: An AI agent generates or refines the image prompt using the OpenAI Chat Model.  
  Generate an Image: The refined prompt is used to generate an image using AI.  
  Upload File to S3: The generated image is uploaded to the AWS S3 bucket for secure storage.  

  This workflow showcases how to combine AI + Cloud Storage seamlessly in an automated pipeline.  

  How to set up
  Import the workflow into n8n.  
  Configure the following credentials:  
     AWS S3 (Access Key, Secret Key, Region).  
     OpenAI API Key (for Chat + Image models).  
  Update the Edit Fields node with your preferred input fields (e.g., image size, description).  
  Execute the workflow and test by entering a sample image prompt (e.g., “Futuristic city skyline in watercolor style”).  
  Check your AWS S3 bucket to verify the uploaded image.  

  Requirements
  n8n** (latest version with AI Tool Node support).  
  AWS account** with S3 permissions to create buckets and upload files.  
  OpenAI API key** (for prompt refinement and image generation).  
  Basic familiarity with AWS S3 structure (buckets, folders, objects).  

  How to customize the workflow
  Custom Buckets**: Replace the auto-create step with an existing S3 bucket.  
  Image Variations**: Generate multiple image variations per prompt by looping the image generation step.  
  File Naming**: Adjust file naming conventions (e.g., timestamp, user input).  
  Metadata**: Add metadata such as tags, categories, or owner info when uploading to S3.  
  Alternative Storage: Swap AWS S3 with **Google Cloud Storage, Azure Blob, or Dropbox.  
  Trigger Options: Replace manual trigger with **Webhook, Form Submission, or Scheduler for automation.  

  ✅ This workflow is a hands-on example of how to combine AI prompt engineering, image generation, and cloud storage automation into a single streamlined process.  

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

workflow_json_compressed:
  [encoded data, 6360 characters]

metadata_json:
  {"categories":["automation","integration","AI / image generation","cloud storage"],"complexity":"medium","use_cases":["On-demand AI image generation for marketing/design assets","Automating image content pipelines to cloud storage","Prototype or demo workflows for AI-powered media creation","Educational labs/tutorials on AI+cloud automation","Batch or scheduled generation and archival of images"],"estimated_setup_minutes":20,"required_services":["n8n (with AI Tool Node support)","OpenAI API (Chat + Image models)","AWS S3 (AWS account with S3 permissions)","AWS IAM credentials with S3 create/upload permissions"],"key_features":["Refine/generate prompts using OpenAI chat model (prompt agent)","Generate images from prompts using OpenAI image model","Automatically create S3 bucket and folder if missing","Upload generated images to AWS S3 with configurable naming/metadata","Editable input fields for prompt, resolution, naming convention, etc.| Manual trigger with easy replacement by webhook/scheduler/form| Looping for multiple image variations"],"target_audience":["Designers","Marketers","Developers / automation builders using n8n and cloud storage APIs\",\"Educators and trainers teaching AI workflows\",\"Businesses automating image asset pipelines"]}


name: Send Slack Alerts for AWS IAM Access Keys Older Than 365 Days
author_name: Trung Tran
author_username: trungtran
categories: []
created_at: 2025-08-17T07:03:25.274Z
updated_at: 2025-08-17T07:03:25.274Z
url: https://n8n.io/workflows/7501
scraped_at: 2025-09-14 19:11:03
metadata_generated_at: 2025-09-14 21:18:34
description:
  AWS IAM Access Key Rotation Reminder Automation Workflow
  Watch the demo video below:

  Who’s it for
  DevOps/SRE teams responsible for AWS account security.  
  Security/compliance officers ensuring key rotation policies are followed.  
  Any AWS account owner who wants automatic detection of stale access keys. 

  How it works / What it does
  Weekly Scheduler — triggers the workflow on a recurring basis.  
  Get Many Users — fetches all IAM users in the AWS account.  
  Get User Access Key(s) — retrieves the access keys associated with each user.  
  Filter Out Inactive Keys — removes keys that are not active (e.g., status Inactive).  
  Access Key Older Than 365 Days — checks the key creation date and flags keys older than one year.  
  Send Slack Message — notifies a Slack channel with details of the outdated key(s) for review and action.  
  No Operation — safely ends the workflow if no keys match the condition.  

  How to set up
  Configure the Weekly Scheduler to run at your desired cadence (e.g., every Monday).  
  Use Get Many Users to list all IAM users.  
  For each user, call ListAccessKeys (Get User Access Key(s)) to fetch their key metadata.  
  Apply a filter to keep only keys with status Active.  
  Add a condition to compare CreateDate against today - 365 days.  
  Send results to Slack using the Slack Post Message node.  

  Requirements
  n8n (latest version).  
  AWS credential in n8n configured for us-east-1 (IAM requires signing with this region).  
  IAM permissions:  
    iam:ListUsers  
    iam:ListAccessKeys  
  Slack bot credentials with permission to post messages in the desired channel.  

  How to customize the workflow
  Change threshold** — adjust the 365 days condition to 90, 180, or any other rotation policy.  
  Escalation** — mention @security or create a Jira/Ticket when old keys are found.  
  Logging** — push flagged results into a Google Sheet, database, or log management system for audit.  
  Automation** — instead of only notifying, add a step to automatically deactivate keys older than the threshold (after approval).  
  Multi-account support** — duplicate or loop across multiple AWS credentials if you manage several AWS accounts.  

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.awsIam","n8n-nodes-base.noOp","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.filter","n8n-nodes-base.if","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4236 characters]

metadata_json:
  {"categories":["security","automation","integration","monitoring","compliance"],"complexity":"medium","use_cases":["Detect stale AWS IAM access keys older than a policy threshold","Notify teams via Slack for key rotation and remediation","Periodic security/compliance checks and audits","Automate or escalate remediation workflows (e.g., create tickets, deactivate keys)","Multi-account scanning when managing several AWS accounts"],"estimated_setup_minutes":20,"required_services":["n8n (self-hosted or cloud)","AWS (IAM) with permissions iam:ListUsers and iam:ListAccessKeys and an AWS credential configured in n8n)","Slack (bot credentials with permission to post messages in the target channel)","Optional: Google Sheets / database / Jira for logging/escalation"],"key_features":["Scheduled weekly scan of IAM users and their access keys","Filters out inactive keys and identifies keys older than 365 days (configurable threshold)","Sends Slack notifications with details of flagged keys","Safe no-op termination when no keys match","Can be extended to log results, escalate (tickets/mentions), or automatically deactivate keys after approval"],"target_audience":["DevOps / SRE teams","Security / Compliance officers","AWS account owners and cloud engineers"]}


name: Manage Google Cloud Storage with AI Image Generation using GPT-4 Mini
author_name: Trung Tran
author_username: trungtran
categories: []
created_at: 2025-08-17T07:56:19.333Z
updated_at: 2025-08-17T07:56:19.333Z
url: https://n8n.io/workflows/7502
scraped_at: 2025-09-14 19:11:02
metadata_generated_at: 2025-09-14 21:18:33
description:
  Beginner’s Tutorial: Manage Google Cloud Storage Buckets and Objects with n8n
  Watch the demo video below:

  Who’s it for
  Beginners who want to learn how to automate Google Cloud Storage (GCS) operations with n8n.  
  Developers who want to combine AI image generation with cloud storage management.  
  Anyone looking for a simple introduction to working with Buckets and Objects in GCS.  

  How it works / What it does
  This workflow demonstrates end-to-end usage of Google Cloud Storage with AI integration:  

  Trigger: Start manually by clicking Execute Workflow.  
  Edit Fields: Provide input values (e.g., bucket name or image description).  
  List Buckets: Retrieve all existing buckets in the project (branch: view only).  
  Create Bucket: If needed, create a new bucket to store objects.  
  Prompt Generation Agent: Use an AI model to generate a creative text prompt.  
  Generate Image: Convert the AI-generated prompt into an image.  
  Upload Object: Store the generated image as an object in the selected bucket.  
  Delete Object: Clean up by removing the uploaded object if required.  

  This shows the full lifecycle: Bucket → Object (Create/Upload/Delete) combined with AI image generation.  

  How to set up
  Trigger the workflow: Use the When clicking Execute workflow node to start manually.  
  Provide inputs: In Edit Fields, specify details such as bucket name or description text for the image.  
  List buckets: Use the List Buckets node to see what exists.  
  Create a bucket: Use Create Bucket if you want a new storage bucket.  
  Generate prompt & image:  
     The Prompt Generation Agent uses an OpenAI Chat Model to create an image prompt.  
     The Generate an Image node turns this prompt into an actual image.  
  Upload to bucket: Use Create Object to upload the generated image into your GCS bucket.  
  Delete object (optional): Use Delete Object to remove the file from the bucket as a cleanup step.  

  Requirements
  An active Google Cloud account with Cloud Storage API enabled.  
  A Service Account Key (JSON) credential added in n8n for GCS.  
  An OpenAI API Key configured in n8n for the prompt and image generation nodes.  
  Basic familiarity with running workflows in n8n.  
  How to customize the workflow
  Different object types:** Instead of images, upload PDFs, logs, or text files.  
  Automatic cleanup:** Skip the delete step if you want objects to persist.  
  Schedule trigger:** Replace manual execution with a weekly or daily schedule.  
  Dynamic prompts:** Accept user input from a form or webhook to generate images.  
  Multi-bucket management:** Extend the logic to manage multiple buckets across projects.  
  Notifications:** Add a Slack/Email step after upload to notify your team with the object URL.  

  ✅ By the end of this tutorial, you’ll understand how to:  
  Work with Buckets (list, create).  
  Work with Objects (upload, delete).  
  Integrate AI image generation with Google Cloud Storage.  

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.googleCloudStorage","n8n-nodes-base.googleCloudStorage","n8n-nodes-base.noOp","n8n-nodes-base.googleCloudStorage","n8n-nodes-base.googleCloudStorage","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, 5152 characters]

metadata_json:
  {"categories":["automation","integration","cloud storage","ai image generation"],"complexity":"medium","use_cases":["Automate Google Cloud Storage lifecycle (list/create/upload/delete)","Generate images from AI prompts and store them in GCS","Automated content/media pipeline for websites or apps","Scheduled or webhook-driven image generation & storage","Prototyping AI-driven asset generation workflows for teams"],"estimated_setup_minutes":15,"required_services":["Google Cloud Storage (Cloud Storage API enabled + Service Account JSON)","OpenAI API (GPT-4 Mini / image generation)","n8n instance (cloud or self-hosted)"],"key_features":["Manual trigger with editable input fields","List existing GCS buckets","Create a new GCS bucket","AI prompt generation using an OpenAI chat model","Generate images from AI prompts and convert to file objects」「Upload generated images to a selected GCS bucket」「Optional delete/cleanup of uploaded objects」「Extensible: replace manual trigger with schedule or webhook, add notifications"],"target_audience":["Beginners learning n8n and GCS","Developers integrating AI with cloud storage","Content creators/marketers automating asset generation and storage"]}


name: Lead Enrichment Pipeline: Leadfeeder to Apollo to Google Sheets
author_name: Khairul Muhtadin
author_username: khmuhtadin
categories: []
created_at: 2025-08-17T10:22:47.976Z
updated_at: 2025-08-17T10:22:47.976Z
url: https://n8n.io/workflows/7510
scraped_at: 2025-09-29 22:37:33
metadata_generated_at: 2025-09-30 08:33:37
description:
  🎯 What This Does

  This automation creates a seamless daily pipeline that:
  Pulls** yesterday's website visitors from Leadfeeder
  Enriches** company data using Apollo.io's powerful database
  Delivers** enriched leads to your Google Sheets with smart deduplication
  Alerts** your team via Telegram when something needs attention

  💡 Why Automate Your Lead Enrichment?

  ⏰ Reclaim Your Time  
  Stop the copy-paste busywork.

  🎯 Never Miss a Hot Lead  
  Automatically captures yesterday's visitors and enriches.

  🚀 Enable Faster Outreach  
  Enriched records mean your SDRs can reach out the same day with full context—faster follow-up leads to higher conversion rates.

  🛡️ API-Friendly Design  
  Built-in pagination, rate limiting (40s delay), and smart stop logic prevent API throttling and account issues.

  ⚡ Perfect For These Teams

  📈 Growth Marketers  
  Maintain a daily pipeline of enriched accounts for targeted campaigns and ABM strategies.

  📊 Sales Ops & SDR Managers  
  Ensure your reps start each day with high-quality, enriched leads in a shared workspace.

  🔍 Data & BI Teams  
  Create a lightweight source-of-truth for lead activity without building complex ETL pipelines.

  Workflow Overview
  Daily Trigger (9 AM) → Fetch Account → Generate Pages → Retrieve Leads → 
  Enrich with Apollo → Update Google Sheets → Send Alerts

  🕘 Trigger  
  Runs automatically every day at 9:00 AM server time

  📋 Process Flow  
  Fetch your Leadfeeder Account ID
  Generate smart pagination (up to 50 pages with safety cap)
  Retrieve yesterday's leads in batches of 100
  Split and process individual records
  Enrich each company using Apollo's database
  Append or update rows in Google Sheets with deduplication

  🧠 Smart Logic  
  Pre-generates page sequences with safety limits
  Stops automatically when pages return &lt;100 results
  Normalizes website URLs and handles Apollo field fallbacks
  Implements intelligent rate limiting to respect API limits

  📤 Output  
  Clean, enriched data in your Google Sheets
  Telegram alerts for any workflow errors
  Automatic deduplication using ID matching

  🚀 Quick Setup Guide

  1. Import & Configure
  Import the JSON workflow file to your n8n instance

  2. Add Your Credentials
  Set up these integrations in n8n:
  Leadfeeder**: HTTP Header Auth with Bearer token
  Apollo**: HTTP Header Auth with API key  
  Google Sheets**: OAuth2 with edit permissions
  Telegram**: Bot Token + Chat ID for alerts

  3. Update Sheet Configuration
  Replace documentId with your Google Sheets URL or from list
  Set correct sheetName (gid) in Google Sheets nodes
  Verify column mapping matches your sheet structure

  5. Test Your Setup
  Run a test with yesterday's date to confirm:
  ✅ Leads are retrieved from Leadfeeder
  ✅ Apollo enrichment populates correctly  
  ✅ Rows append/update in Google Sheets
  ✅ Telegram alerts work for errors

  🛠️ Level Up Your Automation

  CRM Integration
  Push enriched leads directly into HubSpot, Salesforce, or Pipedrive for automatic sequences and follow-up campaigns.

  Daily Intelligence Reports
  Add Slack or email summaries highlighting high-value accounts by revenue, employee count, or industry vertical.

  Smart Routing
  Route leads to specific team members based on company size, industry, or geographic location.

  Data Flow Structure
  Each lead goes through this enrichment pipeline:
  Raw Lead: Company name, website, visit data from Leadfeeder
  Apollo Enrichment: Industry, size, revenue, contact info, social profiles
  Sheet Update: Merged data with smart deduplication and timestamp tracking

  Support

  Created by: khaisa Studio  
  Support: Contact for Custom Work  
  Category: Sales Automation, Lead Generation, Data Enrichment  
  Tags: lead-generation, leadfeeder, apollo, google-sheets, lead-enrichment, sales-automation

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.wait","n8n-nodes-base.errorTrigger","n8n-nodes-base.code","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["integration","automation","sales enablement","data enrichment"],"complexity":"medium","use_cases":["Automated lead enrichment from website visitors","Populate and maintain a master lead list in Google Sheets","B2B prospecting and outreach preparation","Alerting team on new or problematic leads"],"estimated_setup_minutes":45,"required_services":["Leadfeeder","Apollo.io","Google Sheets (Google Drive)","Telegram (bot/API)","n8n host with HTTP/Webhook access"],"key_features":["Daily scheduled pull of yesterday's website visitors from Leadfeeder","Company/person enrichment using Apollo.io","Smart deduplication before writing to Google Sheets","Batch processing to handle API limits","Telegram alerts for exceptions or attention-needed items"],"target_audience":["Sales development reps (SDRs)","Growth/marketing operations","Revenue ops teams and sales managers who manage outreach lists','Small teams wanting automated lead enrichment"]}


name: Automated Workflow Backup to Google Drive with Smart Cleanup
author_name: Luca Olovrap
author_username: lucaolovrap
categories: []
created_at: 2025-08-17T11:17:55.476Z
updated_at: 2025-08-17T11:17:55.476Z
url: https://n8n.io/workflows/7512
scraped_at: 2025-09-14 19:11:01
metadata_generated_at: 2025-09-14 21:18:34
description:
  How it works

  This workflow provides a complete, automated backup solution for your n8n instance, running on a daily schedule to ensure your automations are always safe.

  Automatic cleanup:** It first connects to your Google Drive to find and delete old backup folders, keeping your storage clean and organized based on a retention number you set.
  Daily folder creation:** It then creates a new, neatly dated folder to store the current day's backup.
  Fetches & saves workflows:** Finally, it uses the n8n API to get a list of all your workflows, converts each one to a .json file, and uploads them to the newly created folder in Google Drive.

  Set up steps

  Setup time: ~3 minutes

  This template is designed to be as plug-and-play as possible. All configurations are grouped in a single node for quick setup.

  Connect your accounts:** Authenticate the Google Drive and n8n API nodes with your credentials.
  Configure main settings:* Open the Set node named *"CONFIG - Set your variables here"** and:
      Paste the ID of your main Google Drive folder where backups will be stored.
      Adjust the number of recent backups you want to keep.
  Activate workflow:** Turn on the workflow. Your automated backup system is now active.

  For more detailed instructions, including how to find your Google Drive folder ID, please refer to the sticky notes inside the workflow.

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

workflow_json_compressed:
  [encoded data, 4708 characters]

metadata_json:
  {"categories":["automation","backup","integration","maintenance","devops"],"complexity":"medium","use_cases":["Automated daily backup of n8n workflows","Disaster recovery and workflow versioning","Retention-based cleanup of old backups","Offsite storage of workflow exports"],"estimated_setup_minutes":30,"required_services":["Google Drive (Google account with Drive access)","n8n instance / n8n API access"],"key_features":["Scheduled daily exports of all n8n workflows","Creates dated backup folders in Google Drive","Retention policy: automated deletion of old backup folders","Exports each workflow as a .json file","Batch processing to handle multiple workflows efficiently"],"target_audience":["n8n administrators","Developers using n8n","DevOps / SREs responsible for automation reliability"]}


name: Transform Cloud Documentation into Security Baselines with OpenAI and GDrive
author_name: Raphael De Carvalho Florencio
author_username: followdrabbit
categories: []
created_at: 2025-08-18T02:08:44.545Z
updated_at: 2025-08-18T02:08:44.545Z
url: https://n8n.io/workflows/7529
scraped_at: 2025-09-14 19:11:00
metadata_generated_at: 2025-09-14 21:18:34
description:
  What this template does

  Transforms provider documentation (URLs) into an auditable, enforceable multicloud security control baseline. It:

  Fetches and sanitizes HTML
  Uses AI to extract security requirements (strict 3-line TXT blocks)
  Composes enforceable controls** (strict 7-line TXT blocks with true-equivalence consolidation)
  Builds the final baseline* (TXT or JSON, see *Outputs) with a Technology: header
  Returns a downloadable artifact via webhook and can append/create the file in Google Drive

  Why it’s useful

  Eliminates manual copy-paste and produces a consistent, portable baseline ready for review, audit, or enforcement tooling—ideal for rapidly generating or refreshing baselines across cloud providers and services.

  Multicloud support

  The workflow is multicloud by design. Provide the target cloud in the request and run the same pipeline for:

  AWS, **Azure, GCP (out of the box)
  Extensible to other providers/services by adjusting prompts and routing logic

  How it works (high level)

  POST /create (Basic Auth) with { cloudProvider, technology, urls[] }
  Input validation → generate uuid → resolve Google Drive folder (search-or-create)
  Download & sanitize each URL
  AI pipeline: Extractor → Composer → Baseline Builder → (optional) Baseline Auditor
  Append/create file in Drive and return a downloadable artifact (TXT/JSON) via webhook

  Request (webhook)

  Method: POST
  URL: https://&lt;your-n8n&gt;/webhook/create
  Auth: Basic Auth
  Headers: Content-Type: application/json

  Example input (Postman/CLI)

  {
    "cloudProvider": "aws",
    "technology": "Amazon S3",
    "urls": [
      "https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html",
      "https://www.trendmicro.com/cloudoneconformity/knowledge-base/aws/S3/",
      "https://repost.aws/knowledge-center/secure-s3-resources"
    ]
  }

  Field reference

  cloudProvider (string, required) — case-insensitive. Supported: aws, azure, gcp.
  technology (string, required) — e.g., "Amazon S3", "Azure Storage", "Google Cloud Storage".
  urls (string\[], required) — 1–20 http(s) URLs (official/reputable docs).

  Optional (Google Drive destination):

  gdriveTargetId (string) — Google Drive folderId used for append/create.
  gdrivePath (string) — Path like "DefySec/Baselines" (folders are created if missing).
  gdriveTargetName (string) — Folder name to find/create under root.

  Optional (Assistant overrides):

  assistantExtractorId, assistantComposerId, assistantBaselineId, assistantAuditorId (strings)

  Resolution precedence

  Drive: gdriveTargetId → gdrivePath → gdriveTargetName → default folder.
  Assistants: explicit IDs above → dynamic resolution by name (expects 1_DefySec_Extractor, 2_DefySec_Control_Composer, 3_DefySec Baseline Builder, 4_DefySec_Baseline_Auditor).

  Validation

  Rejects empty urls or non-http(s) schemes; normalizes cloudProvider to aws|azure|gcp.
  Sanitizes fetched HTML (removes scripts/styles/headers) before AI steps.

  Outputs

  Primary:* downloadable *TXT** file controls_&lt;technology&gt;_&lt;timestamp&gt;.txt (via webhook).
  Composer outcomes:** if no groups to consolidate → NO_CONTROLS_TO_BE_CONSOLIDATED; if nothing valid remains → NO_CONTROLS_FOUND.&#x20;
  JSON path:* when the Builder stage is configured for *JSON-only** output (strict schema), the workflow returns a .json artifact and the Auditor validates it (see next section).&#x20;

  Techniques used (from the built-in assistants)

  Provider-aware extraction with strict TXT contract (3 lines):* Extractor limits itself to the declared provider/technology, outputs only Description/Reference/SecurityObjective, and applies a *reflexive quality check** before emitting.&#x20;
  Normalization & strict header parsing:** Composer normalizes whitespace/fences, requires the CloudProvider/Technology header, and ignores anything outside the exact 3-line block shape.&#x20;
  True-equivalence grouping & consolidation:* Composer groups *only** when intent, enforcement locus/mechanism, scope, and mode/setting all match—otherwise items remain distinct.&#x20;
  7-line enforceable control format:* Composer renders each (consolidated or unique) control in *exactly seven labeled lines** to keep results auditable and automatable.&#x20;
  Builder with JSON-only schema & technology inference:* Builder parses 7-line blocks, infers technology, consolidates true equivalents again if needed, and returns *pure JSON** matching a canonical schema (with counters in meta).&#x20;
  Self-evaluation loop (Auditor):* Auditor *unwraps transport, validates **schema & content, checks provider terminology/scope/automation, and returns either GOOD_ENOUGH or a JSON instruction set for the Builder to fix and re-emit—enabling reflective improvement.&#x20;
  Reference prioritization:** Across stages, official provider documentation is preferred in References (AWS/Azure/GCP).&#x20;

  Customization & extensions

  Prompt-reflective techniques:** keep (or extend) the Auditor loop to add more review passes and quality gates.&#x20;
  Compliance assistants:* add assistants to analyze/label controls for *HIPAA, PCI DSS, SOX** (and others), emitting mappings, gaps, and remediation notes.
  Implementation context:* feed internal implementation docs, runbooks, or *Architecture Decision Records (ADRs); use these as **grounding to generate or refine controls (works with local/self-hosted LLMs, too).
  Local/self-hosted LLMs:** swap OpenAI nodes for your on-prem LLM endpoint while keeping the pipeline.
  Provider-specific outputs:** extend the final stage to export Policy-as-Code or IaC snippets (Rego/Sentinel, CloudFormation Guard, Bicep/ARM, Terraform validations).

  Assistant configuration & prompts

  Full assistant configurations and prompts (Extractor, Composer, Baseline Builder, Baseline Auditor) are available here:
    https://github.com/followdrabbit/n8nlabs/tree/main/Lab03%20-%20Multicloud%20AI%20Security%20Control%20Baseline%20Builder/Assistants

  Security & privacy

  No hardcoded secrets in HTTP nodes; use n8n’s Credential Manager.
  Drive operations are optional and folder-scoped.
  For sensitive environments, switch to a local LLM and provide only sanitized/approved inputs.

  Quick test (curl)

  curl -X POST "https://&lt;your-n8n&gt;/webhook/create" \
    -u "&lt;user&gt;:&lt;pass&gt;" \
    -H "Content-Type: application/json" \
    -d '{
          "cloudProvider":"aws",
          "technology":"Amazon S3",
          "urls":[
            "https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html"
          ]
        }' \
    -OJ

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.webhook","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleDrive","n8n-nodes-base.if","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.googleDrive","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.if","n8n-nodes-base.switch","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.googleDrive","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","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/n8n-nodes-langchain.openAi","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 16944 characters]

metadata_json:
  {"categories":["automation","integration","data processing","security","ai-assisted"],"complexity":"complex","use_cases":["Generate auditable multicloud security control baselines from provider docs","Convert documentation URLs into enforceable controls (TXT or JSON)","Consolidate true-equivalent controls across sources","Automated baseline auditing and iterative improvement","Append or create baseline artifacts in Google Drive and return downloadable artifact via webhook"],"estimated_setup_minutes":30,"required_services":["n8n (self-hosted) with webhook endpoint","OpenAI or compatible LLM endpoint (or on‑prem LLM)","Google Drive API / Google account (optional, for append/create)","Public HTTP(S) documentation URLs to be processed"],"key_features":["HTML fetch and sanitization","Provider-aware AI extraction with strict 3-line TXT contract","Composer that normalizes and consolidates true-equivalent items into 7-line enforceable controls","Baseline Builder producing TXT or strict JSON schema outputs","Optional Auditor loop for schema/content validation and automated fixes (GOOD_ENOUGH or instruction set)」、「Multicloud support (AWS/Azure/GCP) and technology inference」「Drive folder search-or-create and append/create file operations」「Webhook endpoint returning downloadable artifact (TXT/JSON)"],"target_audience":["Security engineers","Cloud architects","Compliance teams and auditors」「DevOps/SRE teams responsible for policy enforcement"]}


