by Cojocaru David
This n8n template demonstrates how to automatically generate and publish blog posts using trending keywords, AI-generated content, and watermarked stock images. Use cases include maintaining an active blog with fresh SEO content, scaling content marketing without manual writing, and automating the full publishing pipeline from keyword research to WordPress posting. Good to know At time of writing, each AI content generation step will incur costs depending on your OpenAI pricing plan. Image search is powered by Pexels, which provides free-to-use stock images. The workflow also applies a watermark for branding. Google Trends data may vary by region, and results depend on availability in your selected location. How it works The workflow begins with a scheduled trigger that fetches trending keywords from Google Trends. The XML feed is converted to JSON and filtered for relevant terms, which are logged into a Google Sheet for tracking. One random keyword is selected, and OpenAI is used to generate blog content around it. A structured output parser ensures the text is clean and well-formatted. The system then searches Pexels for a matching image, uploads it, adds metadata for SEO, and applies a watermark. Finally, the complete article (text and image) is published directly to WordPress. How to use The schedule trigger is provided as an example, but you can replace it with other triggers such as webhooks or manual inputs. You can also customize the AI prompt to match your niche, tone, or industry focus. For higher volumes, consider adjusting the keyword filtering and batching logic. Requirements OpenAI account for content generation Pexels API key for stock image search Google account with Sheets for keyword tracking WordPress site with API access for publishing Customising this workflow This automation can be adapted for different use cases. Try adjusting the prompts for technical blogs, fashion, finance, or product reviews. You can also replace the image source with other providers or integrate your own media library. The watermark feature ensures branding, but it can be modified or removed depending on your needs.
by DIGITAL BIZ TECH
Travel Reimbursement - OCR & Expense Extraction Workflow Overview This is a lightweight n8n workflow that accepts chat input and uploaded receipts, runs OCR, stores parsed results in Supabase, and uses an AI agent to extract structured travel expense data and compute totals. Designed for zero retention operation and fast integration. Workflow Structure Frontend:** Chat UI trigger that accepts text and file uploads. Preprocessing:** Binary normalization + per-file OCR request. Storage:** Store OCR-parsed blocks in Supabase temp_table. Core AI:** Travel reimbursement agent that extracts fields, infers missing values, and calculates totals using the Calculator tool. Output:** Agent responds to the chat with a concise expense summary and breakdowns. Chat Trigger (Frontend) Trigger node:** When chat message received public: true, allowFileUploads: true, sessionId used to tie uploads to the chat session. Custom CSS + initial messages configured for user experience. Binary Presence Check Node:** CHECK IF BINARY FILE IS PRESENT OR NOT (IF) Checks whether incoming payload contains files. If files present -> route to Split Out -> NORMALIZE binary file -> OCR (ANY OCR API) -> STORE OCR OUTPUT -> Merge. If no files -> route directly to Merge -> Travel reimbursement agent. Binary Normalization Node:** Split Out and NORMALIZE binary file (Code) Split Out extracts binary entries into a data field. NORMALIZE binary file picks the first binary key and rewrites payload to binary.data for consistent downstream shape. OCR Node:** OCR (ANY OCR API ) (HTTP Request) Sends multipart/form-data to OCR endpoint, expects JSONL or JSON with blocks. Body includes mode=single, output_type=jsonl, include_images=false. Store OCR Output Node:** STORE OCR OUTPUT (Supabase) Upserts into temp_table with session_id, parsed blocks, and file_name. Used by agent to fetch previously uploaded receipts for same session. Memory & Tooling Nodes:** Simple Memory and Simple Memory1 (memoryBufferWindow) Keep last 10 messages for session context. Node:** Calculator1 (toolCalculator) Used by agent to sum multiple charges, handle currency arithmetic and totals. Travel Reimbursement Agent (Core) Node:** Travel reimbursement agent (LangChain agent) Model: Mistral Cloud Chat Model (mistral-medium-latest) Behavior: Parse OCR blocks and non-file chat input. Extract required fields: vendor_name, category, invoice_date, checkin_date, checkout_date, time, currency, total_amount, notes, estimated. When fields are missing, infer logically and mark estimated: true. Use Calculator tool to sum totals across multiple receipts. Fetch stored OCR entries from Supabase when user asks for session summaries. Always attempt extraction; never reply with "unclear" or ask for a reupload unless user requests audit-grade precision. Final output: Clean expense table and Grand Total formatted for chat. Data Flow Summary User sends chat message plus or minus file. IF file present -> Split Out -> Normalize -> OCR -> Store OCR output -> Merge with chat payload. Travel reimbursement agent consumes merged item, extracts fields, uses Calculator tool for sums, and replies with a formatted expense summary. Integrations Used | Service | Purpose | Credential | |---------|---------|-----------| | Mistral Cloud | LLM for agent | Mistral account | | Supabase | Store parsed OCR blocks and session data | Supabase account | | OCR API | Text extraction from images/PDFs | Configurable HTTP endpoint | | n8n Core | Flow control, parsing, editing | Native | Agent System Prompt Summary > You are a Travel Expense Extraction and Calculation AI. Extract vendor, dates, currency, category, and total amounts from uploaded receipts, invoices, hotel bills, PDFs, and images. Infer values when necessary and mark them as estimated. When asked, fetch session entries from Supabase and compute totals using the Calculator tool. Respond in a concise business professional format with a category wise breakdown and a Grand Total. Never reply "unclear" or ask for a reupload unless explicitly asked. Required final response format example: Key Features Zero retention friendly design: OCR output stored only to temp_table per session. Robust extraction with inference when OCR quality is imperfect. Session aware: agent retrieves stored receipts for consolidated totals. Calculator integration for accurate numeric sums and currency handling. Configurable OCR endpoint so you can swap providers without changing logic. Setup Checklist Add Mistral Cloud and Supabase credentials. Configure OCR endpoint to accept multipart uploads and return blocks. Create temp_table schema with session_id, file, file_name. Test with single receipts, multipage PDFs, and mixed uploads. Validate agent responses and Calculator totals. Summary A practical n8n workflow for travel expense automation: accept receipts, run OCR, store parsed data per session, extract structured fields via an AI agent, compute totals, and return clean expense summaries in chat. Built for reliability and easy integration. Need Help or More Workflows? We can integrate this into your environment, tune the agent prompt, or adapt it for different OCR providers. We can help you set it up for free — from connecting credentials to deploying it live. Contact: shilpa.raju@digitalbiz.tech Website: https://www.digitalbiz.tech LinkedIn: https://www.linkedin.com/company/digital-biz-tech/ You can also DM us on LinkedIn for any help.
by Incrementors
Description Connect Fireflies to this workflow once and every meeting you record becomes a LinkedIn post draft automatically. The moment Fireflies finishes transcribing a call, it fires a signal to the workflow — which fetches the full transcript, extracts real insights, and uses GPT-4o-mini to write a 180–280 word scroll-stopping post with a hook, key learnings, and hashtags. The finished draft is saved to Google Drive and previewed in Slack so you can review and publish when ready. Built for founders, consultants, and sales leaders who want a consistent LinkedIn presence without spending time writing from scratch after every call. What This Workflow Does Triggers automatically when a call ends** — Fireflies sends a signal the moment transcription completes, so no manual input is ever needed Validates every incoming signal** — Checks that the signal contains a valid meeting ID and silently discards invalid or test pings Extracts real meeting insights** — Pulls speaker dialogue, Fireflies-detected pricing and question sentences, keywords, overview, and sentiment from the full transcript Writes a structured LinkedIn post** — GPT-4o-mini produces a hook, a specific insight paragraph, 3–5 emoji learnings, a closing question, and hashtags — all grounded in your actual meeting content Saves a complete Google Doc** — Stores the post alongside meeting reference details, participants, keywords, action items, and a link back to the Fireflies transcript Previews the post in Slack** — Posts the first 350 characters of the draft to your Slack channel so your team can review before the post goes live Exits cleanly for incomplete transcripts** — If Fireflies hasn't finished processing yet, the workflow stops silently without errors Setup Requirements Tools Needed n8n instance (self-hosted or cloud) Fireflies.ai account with webhook access OpenAI account with GPT-4o-mini API access Google Drive (one folder where posts will be saved) Slack workspace with OAuth2 app configured Credentials Required Fireflies API key (pasted directly into 5. Set — Config Values) OpenAI API key Google Drive OAuth2 Slack OAuth2 Estimated Setup Time: 15–20 minutes Step-by-Step Setup Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import Activate the workflow and copy the webhook URL — Toggle the workflow to Active → click on node 1. Webhook — Fireflies Transcript Done → copy the webhook URL shown Register the webhook in Fireflies — Log in to fireflies.ai → go to Settings → Developer Settings → Webhooks → paste the webhook URL → save Get your Fireflies API key — In Fireflies, go to Settings → Integrations → copy your API key Fill in Config Values — Open node 5. Set — Config Values → replace all placeholders: | Field | What to enter | |---|---| | YOUR_FIREFLIES_API_KEY | Your Fireflies API key from step 4 | | YOUR_GOOGLE_DRIVE_FOLDER_ID | The folder ID from your Google Drive URL (the string after /folders/ in the URL when you open the folder) | | #content-team | Your Slack channel name including the # | | YOUR FULL NAME | The author's full name (used in the post sign-off) | | YOUR JOB TITLE | The author's job title (e.g. CEO, SEO Consultant) | | YOUR COMPANY NAME | Your company name (used in the AI prompt) | Connect OpenAI — Open node 11. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection Connect Google Drive — Open node 13. Google Drive — Save LinkedIn Post → click the credential dropdown → add Google Drive OAuth2 → sign in with your Google account → authorize access Connect Slack — Open node 14. Slack — Send Post Preview → click the credential dropdown → connect your Slack workspace via OAuth2 → invite the n8n bot to your channel in Slack (/invite @n8n) > ⚠️ The workflow must be Active before registering the webhook in Fireflies. An inactive workflow will not receive signals from Fireflies. Activate first, then paste the URL. How It Works (Step by Step) Step 1 — Webhook: Fireflies Transcript Done This step listens for a signal from Fireflies. Every time Fireflies finishes transcribing a meeting, it sends a POST request to this webhook URL containing the meeting ID. No manual trigger is needed — it fires automatically after every recorded call. Step 2 — Code: Extract Meeting ID The meeting ID is extracted from the incoming signal. Fireflies can send the payload in several different formats, so this step checks all possible locations and pulls the ID safely. If no meeting ID is found at all, a flag is set to mark the signal as invalid. Step 3 — IF: Valid Meeting ID? This is the first gate check. If a valid meeting ID was found (YES path), the workflow continues to fetch the transcript. If the signal was invalid or contained no meeting ID (NO path), the workflow routes to 4. Set — Invalid Webhook Skip and stops cleanly. Step 4 — Set: Invalid Webhook Skip This step handles the invalid signal case. It sets a brief message confirming the webhook was skipped and the workflow ends here for that trigger. Step 5 — Set: Config Values Your Fireflies API key, Google Drive folder ID, Slack channel, author name, author title, and company name are stored here. The validated meeting ID from step 2 is also carried forward so the transcript fetch can use it directly. Step 6 — HTTP: Fetch Transcript A request is sent to the Fireflies API using your API key and the meeting ID. It retrieves the complete transcript including all sentences with speaker labels, AI-detected pricing and task sentences, keyword summary, overview, gist, bullet points, and sentiment percentages. Step 7 — Code: Process Transcript Data The raw transcript is processed into clean, usable fields. All sentences are combined into a readable text block (limited to 5,000 characters for GPT efficiency). Fireflies-flagged pricing sentences, question sentences, and task sentences are extracted separately. Sentiment percentages, keywords, action items, and overview are all pulled out. A formatted document title is generated automatically using the meeting name and date. If the transcript is empty or not yet available, a flag is set for the next gate check. Step 8 — IF: Transcript Ready? This is the second gate check. If transcript data is available (YES path), the workflow moves to AI post writing. If Fireflies hasn't finished processing the transcript yet (NO path), the workflow routes to 9. Set — Transcript Not Ready Skip and stops cleanly without errors. Step 9 — Set: Transcript Not Ready Skip This step handles the not-ready case. It logs the meeting ID and a message confirming the transcript was skipped. The workflow ends here for that run. Step 10 — AI Agent: Write LinkedIn Post GPT-4o-mini receives the author details, meeting context, Fireflies summary, bullet points, keywords, action items, questions raised in the call, and the transcript excerpt. It writes a 180–280 word LinkedIn post following a fixed structure: a scroll-stopping hook (not starting with "I" or "We"), a specific insight paragraph in first person, 3–5 emoji key learnings pulled from real transcript content, a closing question or call to action, and 4–5 hashtags. A sign-off with the author's name and title is added at the end. Step 11 — OpenAI: GPT-4o-mini Model This is the language model powering the writing step. It runs at temperature 0.8 for creative, varied output and is capped at 700 tokens to keep the post within the target word count. Step 12 — Code: Build Doc and Slack Message The AI-generated post is assembled into a complete Google Doc with the post text at the top, followed by meeting reference details: title, date, duration, participants, Fireflies transcript link, keywords, and action items. A Slack preview is also built here — the first 350 characters of the post plus meeting details and a link back to the Fireflies transcript. Step 13 — Google Drive: Save LinkedIn Post The complete document is saved to your specified Google Drive folder. The file is named automatically using the meeting title and date (e.g. "LinkedIn Post — Client Strategy Call — 14 Apr 2025"). Step 14 — Slack: Send Post Preview The preview message is posted to your Slack channel at the same time the Google Doc is being saved. Your team sees the post hook and first paragraph instantly, with the full document link available in Drive for review before publishing. Key Features ✅ Fully automatic — zero manual trigger — Fireflies fires the workflow the moment any call transcript is ready, no human action needed ✅ Two validation gates — Invalid webhook signals and unready transcripts both exit cleanly without causing errors or empty posts ✅ Grounded in real content — The AI prompt feeds actual transcript sentences, keywords, bullet points, and action items so posts are specific, not generic ✅ Fixed post structure every time — Hook, insight paragraph, emoji learnings, closing CTA, hashtags, and sign-off are enforced on every run ✅ Auto-named Google Docs — Files are named by meeting title and date automatically so your Drive folder stays organized without any manual renaming ✅ Slack preview before publishing — Your team sees the draft before it goes live — one review step, no surprises ✅ Handles all Fireflies payload formats — The extraction step checks every possible payload structure so the webhook never silently fails due to a format change ✅ Temperature tuned for creative writing — GPT runs at 0.8 so each post has a natural, human tone rather than a repetitive AI pattern Customisation Options Change the post length target — In node 10. AI Agent — Write LinkedIn Post, edit the instruction from "180 to 280 words" to a different range. Also adjust maxTokens in node 11. OpenAI — GPT-4o-mini Model accordingly (e.g. set to 900 for longer posts). Add a second post format — After node 10. AI Agent — Write LinkedIn Post, add a second AI Agent step with a different prompt structure (e.g. a short 3-sentence insight post or a carousel-style numbered list) to generate two post options per call instead of one. Route posts by meeting type — In node 5. Set — Config Values, add a postCategory field. Then add an IF check after step 7 that reads the meeting title — if it contains "demo" or "sales", use a sales-focused prompt; if it contains "team" or "internal", use a thought leadership prompt. Save to a dated subfolder in Drive — In node 12. Code — Build Doc and Slack Message, generate a folder path string using the meeting date (e.g. 2025/April) and use the Google Drive step to create or find that subfolder before saving, keeping your Drive organized by month automatically. Add a Notion database entry — After node 13. Google Drive — Save LinkedIn Post, add a Notion API HTTP request to create a new row in a content calendar database with the post title, meeting date, status (Draft), and Google Drive link for content planning visibility. Troubleshooting Workflow not triggering when a call ends: Confirm the workflow is Active before expecting Fireflies to fire it — inactive workflows do not receive webhooks Log in to Fireflies → Settings → Developer Settings → Webhooks → confirm the webhook URL is saved correctly and matches the URL from node 1. Webhook — Fireflies Transcript Done Check that your Fireflies plan includes webhook support — some plans restrict this feature Fireflies API key error or empty transcript: Confirm YOUR_FIREFLIES_API_KEY in node 5. Set — Config Values is replaced with your actual key — not the placeholder text Get your key from fireflies.ai → Settings → Integrations → API Key If the transcript returns empty, the call may not have been processed yet by Fireflies — the workflow exits cleanly via 9. Set — Transcript Not Ready Skip in this case OpenAI not generating the post: Confirm the API key is connected in node 11. OpenAI — GPT-4o-mini Model and your account has available credits Check the execution log of node 10. AI Agent — Write LinkedIn Post for the raw error message If the post is under 50 characters, node 12. Code — Build Doc and Slack Message catches this and outputs a failure message instead of a broken doc Google Drive not saving the file: Confirm the Google Drive OAuth2 credential in node 13. Google Drive — Save LinkedIn Post is connected and not expired — re-authorize if needed Check that YOUR_GOOGLE_DRIVE_FOLDER_ID in node 5. Set — Config Values is the folder ID from your Drive URL, not the full URL — copy only the string after /folders/ Make sure the Google account you authorized has write access to the target folder Slack preview not arriving: Confirm the Slack OAuth2 credential in node 14. Slack — Send Post Preview is connected and authorized Check that the channel name in node 5. Set — Config Values includes the # prefix and matches your Slack channel exactly Type /invite @n8n in the target Slack channel to ensure the bot has permission to post Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@incrementors.com 🌐 Website: https://www.incrementors.com/
by Servify
Takes a product image from Google Sheets, adds frozen effect with Gemini, generates ASMR video with Veo3, writes captions with GPT-4o, and posts to 4 platforms automatically. How it works Schedule trigger picks first unprocessed row from Google Sheet Downloads product image and sends to Gemini for frozen/ice effect Uploads frozen image to ImgBB (Veo3 needs public URL) Veo3 generates 10-12s ASMR video with ice cracking sounds GPT-4o writes platform-specific titles and captions Uploads simultaneously to YouTube, TikTok, Instagram, Pinterest Updates sheet status and sends Telegram notification Setup Replace these placeholders in the workflow: YOUR_GOOGLE_AI_API_KEY (Gemini) YOUR_KIE_AI_API_KEY (Veo3) YOUR_IMGBB_API_KEY (free) YOUR_UPLOAD_POST_API_KEY YOUR_GOOGLE_SHEET_ID YOUR_PINTEREST_BOARD_ID YOUR_PINTEREST_USERNAME YOUR_TIKTOK_USERNAME YOUR_INSTAGRAM_USERNAME YOUR_TELEGRAM_CHAT_ID Google Sheet format | topic | image_url | status | |-------|-----------|--------| | Dior Sauvage — Dior | https://example.com/img.jpg | | Leave status empty. Workflow sets it to processing then uploaded. Requirements Gemini API key - Google AI Studio Kie.ai account - kie.ai ImgBB API key - api.imgbb.com OpenAI API key upload-post.com account with connected TikTok/IG/Pinterest YouTube channel with OAuth
by Pinecone
Try it out This n8n workflow template lets you chat with your Google Drive documents (.docx, .json, .md, .txt, .pdf) using OpenAI and Pinecone Assistant. It retrieves relevant context from your files in real time so you can get accurate, context-aware answers about your proprietary data—without the need to train your own LLM. What is Pinecone Assistant? Pinecone Assistant allows you to build production-grade chat and agent-based applications quickly. It abstracts the complexities of implementing retrieval-augmented (RAG) systems by managing the chunking, embedding, storage, query planning, vector search, model orchestration, reranking for you. Prerequisites A Pinecone account and API key A GCP project with Google Drive API enabled and configured Note: When setting up the OAuth consent screen, skip steps 8-10 if running on localhost An Open AI account and API key Setup Create a Pinecone Assistant in the Pinecone Console here Name your Assistant n8n-assistant and create it in the United States region If you use a different name or region, update the related nodes to reflect these changes No need to configure a Chat model or Assistant instructions Setup your Google Drive OAuth2 API credential in n8n In the File added node -> Credential to connect with, select Create new credential Set the Client ID and Client Secret from the values generated in the prerequisites Set the OAuth Redirect URL from the n8n credential in the Google Cloud Console (instructions) Name this credential Google Drive account so that other nodes reference it Setup Pinecone API key credential in n8n In the Upload file to assistant node -> PineconeApi section, select Create new credential Paste in your Pinecone API key in the API Key field Setup Pinecone MCP Bearer auth credential in n8n In the Pinecone Assistant node -> Credential for Bearer Auth section, select Create new credential Set the Bearer Token field to your Pinecone API key used in the previous step Setup the Open AI credential in n8n In the OpenAI Chat Model node -> Credential to connect with, select Create new credential Set the API Key field to your OpenAI API key Add your files to a Drive folder named n8n-pinecone-demo in the root of your My Drive If you use a different folder name, you'll need to update the Google Drive triggers to reflect that change Activate the workflow or test it with a manual execution to ingest the documents Chat with your docs! Ideas for customizing this workflow Customize the System Message on the AI Agent node to your use case to indicate what kind of knowledge is stored in Pinecone Assistant Change the top_k value of results returned from Assistant by adding "and should set a top_k of 3" to the System Message to help manage token consumption Configure the Context Window Length in the Conversation Memory node Swap out the Conversation Memory node for one that is more persistent Make the chat node publicly available or create your own chat interface that calls the chat webhook URL. Need help? You can find help by asking in the Pinecone Discord community, asking on the Pinecone Forum, or filing an issue on this repo.
by Don Jayamaha Jr
A fully autonomous, HTX Spot Market AI Agent (Huobi AI Agent) built using GPT-4o and Telegram. This workflow is the primary interface, orchestrating all internal reasoning, trading logic, and output formatting. ⚙️ Core Features 🧠 LLM-Powered Intelligence: Built on GPT-4o with advanced reasoning ⏱️ Multi-Timeframe Support: 15m, 1h, 4h, and 1d indicator logic 🧩 Self-Contained Multi-Agent Workflow: No external subflows required 🧮 Real-Time HTX Market Data: Live spot price, volume, 24h stats, and order book 📲 Telegram Bot Integration: Interact via chat or schedule 🔄 Autonomous Runs: Support for webhook, schedule, or Telegram triggers 📥 Input Examples | User Input | Agent Action | | --------------- | --------------------------------------------- | | btc | Returns 15m + 1h analysis for BTC | | eth 4h | Returns 4-hour swing data for ETH | | bnbusdt today | Full day snapshot with technicals + 24h stats | 🖥️ Telegram Output Sample 📊 BTC/USDT Market Summary 💰 Price: $62,400 📉 24h Stats: High $63,020 | Low $60,780 | Volume: 89,000 BTC 📈 1h Indicators: • RSI: 68.1 → Overbought • MACD: Bearish crossover • BB: Tight squeeze forming • ADX: 26.5 → Strengthening trend 📉 Support: $60,200 📈 Resistance: $63,800 🛠️ Setup Instructions Create your Telegram Bot using @BotFather Add Bot Token in n8n Telegram credentials Add your GPT-4o or OpenAI-compatible key under HTTP credentials in n8n (Optional) Add your HTX API credentials if expanding to authenticated endpoints Deploy this main workflow using: ✅ Webhook (HTTP Request Trigger) ✅ Telegram messages ✅ Cron / Scheduled automation 🎥 Live Demo 🧠 Internal Architecture | Component | Role | | ------------------ | -------------------------------------------------------- | | 🔄 Telegram Trigger | Entry point for external or manual signal | | 🧠 GPT-4o | Symbol + timeframe extraction + strategy generation | | 📊 Data Collector | Internal tools fetch price, indicators, order book, etc. | | 🧮 Reasoning Layer | Merges everything into a trading signal summary | | 💬 Telegram Output | Sends formatted HTML report via Telegram | 📌 Use Case Examples | Scenario | Outcome | | -------------------------------------- | ------------------------------------------------------- | | Auto-run every 4 hours | Sends new HTX signal summary to Telegram | | Human requests “eth 1h” | Bot replies with real-time 1h chart-based summary | | System-wide trigger from another agent | Invokes webhook and returns response to parent workflow | 🧾 Licensing & Attribution © 2025 Treasurium Capital Limited Company Architecture, prompts, and trade report structure are IP-protected. No unauthorized rebranding permitted. 🔗 For support: Don Jayamaha – LinkedIn
by Taiwo Hassan
SecretOps, DevSecOps Real-Time Repos Secret Leak Remediation SecretOps is an n8n security automation workflow that monitors Git push events, detects high-risk secrets in commits, and automatically responds in real time. Unlike typical scanners that only notify, SecretOps acts immediately: Revokes leaked AWS access keys Creates incident tickets in Jira Alerts the security team via Slack Uses AI as a Security Analyst to decide the correct response This workflow demonstrates how n8n can function as a lightweight SOAR (Security Orchestration, Automation, and Response) system for DevOps teams. 🚨 The Problem Developers sometimes commit secrets such as: AWS access keys Payment processor API keys (Paystack / Stripe) Database connection URLs These leaks can result in: Cloud infrastructure takeover Financial theft Full database compromise Most tools detect and notify. SecretOps detects and reacts. 🧠 How It Works 1) Git Push Webhook SecretOps listens to repository push events from GitHub/GitLab. 2) Deterministic Secret Detection (Code Node) A Code node scans changed files and extracts only high-impact secrets: AKIA... → AWS access keys sk_live_, pk_test_ → payment processor keys postgres://, mongodb://, mysql://, redis:// → database URLs 3) AI Security Analyst An AI node receives detected items and decides the correct action: REVOKE_AWS_KEY PAYMENT_PROCESSOR_KEY_ALERT ROTATE_DB_PASSWORD IGNORE_KEY It also generates ready-to-use Jira ticket content and Slack alert messages. 4) Automated Response (Switch) | Action | Automated Response | |--------------------------------|-----------------------------------------------------------------------| | REVOKE_AWS_KEY | Disable key in AWS IAM → Create Jira ticket → Send Slack alert | | PAYMENT_PROCESSOR_KEY_ALERT | Create Jira ticket → Send Slack alert | | ROTATE_DB_PASSWORD | Create Jira ticket → Send Slack alert | | IGNORE_KEY | End workflow | ⚡ What Makes This Unique Immediate containment of AWS key leaks (set to Inactive automatically) AI used for decision-making, not detection Built-in incident workflow for developers and security teams Minimal false positives by focusing only on real, high-risk secrets Shows n8n as a practical DevSecOps automation tool 🧩 Requirements GitHub or GitLab webhook AWS credentials with IAM permissions Jira project access Slack webhook or bot token n8n with AI node enabled 🛡️ Real-World Impact SecretOps turns secret leaks from a silent vulnerability into an immediate, traceable, and automated incident response — reducing the window of exploitation from hours to seconds. Ideal for DevOps, security teams, and engineering organizations that want proactive protection without complex security tooling.
by WeblineIndia
AI-Powered Smart Deal Close Prediction and Salesforce CRM Auto-Update Workflow This workflow acts as an automated, intelligent sales operations assistant. It continuously monitors your Salesforce account for newly updated opportunities, compares them against your historical win data and uses a powerful AI (Groq Llama-3) to predict realistic close dates and win probabilities. If the AI is highly confident in its prediction, it automatically updates the deal in Salesforce. If the AI is uncertain, it emails a manager to review the deal manually. Everything is neatly logged in a Google Spreadsheet for easy tracking. Quick Implementation Steps Connect Credentials: Authenticate your Salesforce, Groq, Gmail and Google Sheets accounts within your n8n account. Prepare the Audit Sheet: Create a new Google Sheet and copy its Document ID into the two Google Sheets nodes. Set the Schedule: Adjust the Schedule Trigger to run at your preferred interval (default is optimized for frequent checks). Activate: Turn on the workflow and watch your pipeline automatically clean itself. What It Does First, the workflow wakes up on a set schedule and looks for two things in Salesforce: a small batch of your recently won deals (to understand what success looks like) and any open opportunities that were modified recently. It filters these to ensure it only spends time on active deals that actually have a dollar amount attached to them. Next, it acts like a data scientist. It grabs the recent task history for each deal and calculates custom metrics—like how fast the deal is moving, how long it has been open and a "Risk Score" based on user engagement. All this data is packaged up and securely sent to a Groq LLM agent. The AI acts as a seasoned sales strategist, weighing these factors to predict a realistic timeline and the actual chance of winning the deal. Finally, the workflow makes a smart decision based on the AI's confidence score. If the AI is 70% or more confident in its assessment, it goes straight into Salesforce and updates the target close date to keep your pipeline accurate. If the confidence is lower, it sends a formatted email via Gmail to alert a sales manager that a deal needs human attention. Regardless of the path taken, every single prediction and action is logged into a Google Sheet for your RevOps team to review. Who It's For Sales Managers & Directors** Who want an unbiased, data-driven view of when deals will actually close, rather than relying on gut feelings. Revenue Operations (RevOps)** Who need accurate pipeline data and want to automate the tedious process of "pipeline scrubbing." CRM Administrators** Who want to reduce the administrative burden on sales reps by automatically updating stagnant close dates. Requirements to use this workflow To use this workflow, you will need n8n account with the following active accounts: Salesforce:** With API access enabled to read opportunities and tasks and update opportunities. Groq:** An API key to access the Llama-3.3-70b AI model. Gmail:** To send the low-confidence alerts. Google Workspace / Sheets:** To maintain the automated audit logs. How It Works & Set Up 1. App Authentication Before doing anything, ensure you have added your credentials for Salesforce (OAuth2), Groq (API Key), Gmail (OAuth2) and Google Sheets (OAuth2) in your n8n environment. 2. Configure the Google Sheet You need a destination for the audit logs. Create a new Google Sheet and ensure it has the following exact column headers in the first row: timestamp opportunity_id opportunity_name stage_name current_amount risk_score risk_label predicted_close_date predicted_win_probability confidence_score reasoning next_best_action action_taken status Open both Google Sheets nodes ("Log Auto-Update Success" and "Log Pending Review") and replace the Document ID with the ID of your newly created sheet. 3. Timing and Lookback Setup The workflow uses a "Set Lookback Timeframe" node to only grab deals modified in the last 5 minutes. If you change your "Run Schedule" to run every hour, you must also update the code in the "Set Lookback Timeframe" node to look back 60 minutes instead of 5, so you don't miss any deals. 4. Review the AI Prompt Open the "AI Deal Timeline Predictor" LangChain node. Review the System Message. If your company has specific sales stages or unique risk factors, you can type them directly into the prompt to make the AI's predictions even smarter for your specific business. How To Customize Nodes Adjusting the Confidence Threshold** Open the check confidence score If node. It is currently set to 70. If you want the AI to be more aggressive with automatic updates, lower this number. If you want more manual reviews, raise it to 80 or 90. Modifying Risk Calculations** The Calculate Deal Risk & Velocity Code node contains JavaScript that assigns risk based on how long a deal has been open and how many tasks are associated with it. You can tweak the numbers in this code to better fit your typical sales cycle length. Changing the Alert System** If you don't use Gmail, you can easily delete the Gmail node and replace it with a Slack or Microsoft Teams node to send the review alerts directly to a sales channel. Add‑ons You can easily extend this workflow to do even more: Push AI Advice to CRM** Add another Salesforce update node to push the AI's next_best_action directly into a custom field on the Opportunity, giving the sales rep instant coaching. Urgent SMS Alerts** Connect a Twilio node alongside the Gmail node to text the VP of Sales if a massive deal (e.g., over $100k) receives a high risk score. Bi-Weekly Summary** Create a separate simple workflow that reads the Google Sheet every Friday and emails a summary of all AI predictions to the executive team. Use Case Examples Automated Pipeline Scrubbing Automatically push out the close dates of neglected deals to the next quarter, ensuring the current quarter's forecast remains mathematically realistic without nagging sales reps. Early Warning System for Stalled Deals Instantly alert managers when a high-value opportunity shows a sudden drop in engagement or task activity, allowing leadership to step in before the deal is lost. Data-Driven Sales Coaching Use the AI's generated reasoning and recommended next steps to help junior account executives figure out how to unblock a complex negotiation. Historical Win-Rate Benchmarking Compare the current active pipeline against what actually won in the past, giving RevOps a clear picture of whether the current pipeline quality is better or worse than the previous quarter. Enforcing CRM Hygiene Identify and flag opportunities that have a 90% probability but haven't had a single phone call or email logged in three weeks. Troubleshooting Guide | Issue | Possible Cause | Solution | | :--- | :--- | :--- | | Workflow isn't processing any deals | Schedule and lookback timeframes don't match or no deals were modified recently. | Ensure the minutes in the Schedule node match the mathematical subtraction in the "Set Lookback Timeframe" node. | | "Invalid JSON returned from AI" error | The LLM ignored instructions and added extra conversational text (like "Here is your data:"). | The workflow already has a "Parse AI Output" cleanup node. If it still fails, adjust the Groq prompt to strictly enforce JSON-only responses. | | Google Sheets node fails to write data | The Google Sheet ID is missing or the column headers in your sheet do not perfectly match the node. | Verify the Document ID. Ensure the headers in your Sheet exactly match the 14 fields listed in the setup instructions above. | | Salesforce API Limit errors | Fetching too much data too frequently. | Increase the interval on your Schedule trigger (e.g., run every 30 minutes instead of 5) to reduce API calls. | | AI Close Dates are completely wrong | The AI lacks context about your specific average sales cycle length. | Edit the AI's System Message prompt to tell it your average sales cycle (e.g., "Our standard enterprise deal takes 90 days to close"). | Need Help? Building dynamic, AI-driven automation workflows can transform your business, but getting the data logic perfectly tuned sometimes requires an expert touch. If you need help setting up this workflow, customizing the custom JavaScript risk scoring, integrating it with a different CRM or building more advanced automation solutions tailored to your unique operations, we are here for you. Reach out to our n8n workflow developers at WeblineIndia to get expert assistance and start maximizing the value of your business process automations today!
by Ravi Patel
Quick Overview This workflow manually runs to read a list of webpage URLs from Google Sheets, scrape each page with ScrapingBee, and use Google Gemini to extract structured product data from screenshots with an HTML fallback, then append the results back into a Google Sheets sheet. How it works Runs when you manually trigger the workflow. Reads the list of URLs to scrape from a Google Sheets spreadsheet. Fetches a full-page screenshot for each URL using the ScrapingBee API. Sends the screenshot (and the URL for context) to a Google Gemini model to extract product details into a structured JSON format, calling a ScrapingBee HTML fetch tool when screenshot extraction is incomplete. Converts any fetched HTML to Markdown and returns it to the Gemini agent to complete the extraction. Splits the extracted product array into individual items and appends them as new rows in the Google Sheets “Results” sheet. Setup Create a Google Sheets service account connection in n8n and set the target spreadsheet and the “List of URLs” and “Results” sheet selections. Add a Google Gemini (PaLM) API credential in n8n and ensure the selected model (gemini-1.5-pro-latest) is available for your account. Add your ScrapingBee API key in both ScrapingBee HTTP requests (screenshot and HTML) and confirm the target URLs are reachable from your n8n environment. Ensure the “Results” sheet columns match the structured output fields (for example: product_title, product_price, product_brand, promo, promo_percentage/promo_percent) or update the output schema and column mappings accordingly.
by iamvaar
Quick Overview This workflow runs daily to pull the latest Product Hunt posts, qualifies them with Google Gemini, scrapes ICP-matching product websites with Apify to find emails, then writes the lead data to Google Sheets and creates contacts in GoHighLevel. How it works Runs every day on a schedule trigger. Queries the Product Hunt GraphQL API for the latest posts and iterates through each result. Resolves each product’s website redirect target, extracts a clean domain, and filters out blocked domains like app stores, social networks, and link aggregators. Sends the product name, tagline, and description to a Google Gemini–powered agent to score ICP fit and keeps only matches. Uses Apify to crawl each matched website and extract email addresses from the site content. Groups scraped results by domain, keeps only products with at least one email, and appends or updates a matching row in Google Sheets. Creates a GoHighLevel contact using the first email and stores any additional emails in a custom field. Setup Add Product Hunt OAuth2 credentials and ensure the GraphQL query in the Product Hunt request returns the fields used (name, tagline, description, website, topics, makers). Add Google Gemini (Google PaLM) credentials for the AI qualification step. Add an Apify API token and set the actor ID and crawl settings to match your email-scraping needs. Connect Google Sheets with a service account, set the target spreadsheet and sheet, and ensure the sheet has columns for product_name, tagline, description, makers, url, original_ph_url, and emails. Add GoHighLevel OAuth2 credentials and update the contact field mappings, including the custom field ID used to store additional emails.
by Pratyush Kumar Jha
Video → Newsletter AI Agent This n8n workflow converts a YouTube video into a polished, email-ready newsletter. It scrapes the transcript, extracts a thumbnail/logo and brand color theme, uses multiple AI agents to (1) clean & summarize the transcript into three newsletter sections, (2) convert that content into a styled HTML newsletter (color-aware), then saves the draft to Google Sheets and sends the email to subscribers via Gmail. The flow is optimized for batch sending and brand-consistent HTML output. How it works (step-by-step) Trigger — On form submission accepts Brand Name, Brand Website, and YouTube video link. Site scrape & colour study — HTTP requests + Information Extractor → AI agent derives brand color theme (primary/secondary/accent/background). Transcript retrieval — Two YouTube transcript scrapers (Apify acts) fetch the video transcript and thumbnail; a small Code node merges transcript chunks. Summarization & journalism — AI Agent2 (LangChain/Gemini) cleans the transcript, extracts thesis + key points, and writes 3 newsletter sections in a journalistic tone. HTML conversion — Convert Newsletter to HTML (AI) agent applies the fixed layout and injects only text color variables (keeps layout intact) and outputs Subject + HTML body (≤1000 words). Aggregate & merge — Merge + Aggregate assemble files, assets, and parsed outputs. Save & send — Save the email draft to Google Sheets (Save Newsletter Draft in Google Sheet) and loop through subscribers from a subscribers sheet; Sending Emails to all the Subscribers (Gmail node) sends the HTML to each address in batches. Batching & looping — Split In Batches handles large subscriber lists; Loop Over Items triggers the HTML-conversion per recipient batch. Quick Setup Guide 👉 Demo & Setup Video 👉 Sheet Template 👉 Course Nodes of interest On form submission (formTrigger) — entry point for video + brand inputs. You Tube Transcript Scraper, You Tube Transcript Scraper1 (HTTP Request → Apify) — transcript + thumbnail fetching. Information Extractor & AI Agent1 — website color/theme extraction. Code in JavaScript — merges transcript pieces into a single text payload. AI Agent2 (LangChain agent + Gemini Chat Model) — transcript → journalist-style newsletter sections. Convert Newsletter to HTML (AI) (LangChain agent + Structured Output Parser) — builds constrained, brand-aware HTML email and subject. Structured Output Parser1/2 — enforce schemas for color theme / structured outputs. Get row(s) in sheet & Save Newsletter Draft in Google Sheet (Google Sheets) — subscriber list + draft storage. Loop Over Items / Split In Batches — batch processing for sends. Sending Emails to all the Subscribers (Gmail) — SMTP/OAuth send. OpenRouter Chat Model — LM compute provider configured in the workflow. What you’ll need (credentials & resources) Google Sheets OAuth2 (for reading subscribers & saving drafts). Gmail OAuth2 (for sending HTML emails). Gemini / LLM provider credentials (Gemini API key or equivalent) for the LangChain agents. Apify API key (for the YouTube transcript scrapers). ConvertAPI (or similar) key if you convert logos (SVG→PNG) server-side. Host storage / publicly accessible URLs for images (thumbnails, logos) or a file-store (S3). Optional: SendGrid / Mailgun credentials if you swap Gmail for a transactional email provider. Security note: do NOT hardcode credentials in node parameters; use n8n credentials manager or environment variables. Recommended settings & best practices Batch size & rate-limits:** set Split In Batches to a conservative batch size (e.g., 50–200) and add delays between batches to avoid provider rate limits and Gmail throttling. Retries & timeouts:** enable retries for HTTP Request nodes and set sensible timeouts (e.g., 30–60s). Use exponential backoff. LM controls:** set token/response length limits and max_output_tokens (or equivalent) to avoid runaway costs; enforce the 1000-word HTML hard limit in the prompt. Validation:** validate the YouTube URL and that transcript content exists before invoking AI summarization (fail fast with a clear error). Schema enforcement:** use Structured Output Parser nodes with strict JSON schemas to prevent malformed outputs. Testing:** run with a small subscriber test sheet and use a safety test Gmail account before sending to production lists. Logging & monitoring:** log each run (video URL, subject, send count, errors) to a monitoring sheet or external logging service. Privacy & compliance:** ensure recipients have consent to receive emails (store opt-ins); include unsubscribe handling if you move beyond one-off sends. Comply with CAN-SPAM / local laws. Credential rotation:** rotate API keys periodically and revoke compromised tokens. Content safety:** instruct the LM agents to avoid hallucinated citations — only include links you can verify. Customization ideas Multi-language support: auto-detect video language and run summarizer in that language. A/B subject testing: generate 2–3 subject lines and send variations to subsets. Scheduling: add a scheduler node to delay sends or publish at optimal send-times per recipient timezone. Integrate with SendGrid/Mailgun for higher throughput and analytics (opens/clicks). Add personalization tokens (first name, company) from subscribers sheet to the HTML (merge fields). Auto-attach transcript as plain-text footer or include “Read more” link to a hosted full article. Add analytics: record opens, clicks, and engagement back into Google Sheets or a database. Support other platforms: ingest videos from Vimeo, Loom, or uploaded MP4s. Use a templating engine to allow multiple newsletter layouts and style variants. Auto-generate social posts (Twitter/X, LinkedIn) from the newsletter summary. Tags n8n newsletter youtube transcript langchain gemini apify gmail google-sheets html-email automation batching ai content-ops
by Pratyush Kumar Jha
Inbox2Ledger is an end-to-end n8n template that turns a noisy finance inbox into a clean, structured ledger. It fetches emails, uses AI guardrails to keep only finance-relevant messages, extracts invoice/receipt fields via an OCR-style agent, validates and auto-categorizes each expense, generates a unique case ID, and appends the result to a Google Sheet for accounting or downstream automations. Key Features Trigger*: Form submission or scheduled fetch (sample *On form submission node included) AI Filter**: Guardrail node determines whether an email is finance-related (payments, invoices, receipts) Keyword Filter**: Filters common invoice/bill/payment subject keywords Extraction**: Language-model agent returns normalized JSON: vendor_name invoice_date (YYYY-MM-DD) invoice_id total_amount tax_amount currency items_summary vendor_tax_id Validation**: Code node checks required fields and amount formats; flags extraction errors Categorization**: Rule-based expense categorizer (software & hosting, subscriptions, travel, payroll, etc.) with MCC/vendor fallbacks Output**: Appends structured rows to a Google Sheet with mapped columns: invoice_id, vendor_name, invoice_date, total_amount, currency, tax_amount, gl_category, approval_status, timestamp, case_id, items_summary, vendor_tax_id, processed_at High Accuracy**: Low false-positive rate using combined AI guardrails + subject filtering Quick Setup**: Example nodes and credentials pre-configured in the template Included Nodes & Flow Highlights On form submission (date picker trigger) → Get Email Content (Gmail) → Guardrail: Is Finance? (LangChain Guardrails) → IF (Guardrail Passed) → Filter Finance Keywords → AI Agent (Email OCR) → Validate Extraction → Check for Errors → Apply Finance Rules → Log to Invoices Sheet (Google Sheets) (Full node list and configuration included in the template.) Requirements & Credentials Gmail OAuth2 (read access)** — for fetching emails OpenAI API key (or compatible LLM)** — for guardrails & extraction Google Sheets OAuth2** — to append rows to the invoice sheet Recommended: Use the Google Sheet ID included in the template, or replace it with your own Sheet ID and gid. Quick Setup Guide 👉 Demo & Setup Video Import the template into n8n Connect and authorize credentials: Gmail, Google Sheets, OpenAI (or preferred LLM) Update the Google Sheet ID / sheet gid if using your own sheet (Optional) Adjust the Guardrail topicalAlignment threshold or filter keywords Test using the form trigger or a single email, then enable the workflow Configuration Tips The extraction agent outputs a strict JSON schema — keep it for reliable downstream mapping Use a low LLM temperature (0.2) for deterministic extraction For non-USD currencies, ensure your accounting system supports the currency field or add a conversion step For high-volume inboxes, enable batching or rate-limit the Gmail node to avoid API quota issues Privacy & Security This template processes real email content and financial data — store credentials securely Restrict access to the n8n instance to authorized users only Review data-retention policies if using a hosted LLM service Example Use Cases Auto-log vendor invoices from email into an accounting Google Sheet Build an audit trail with case IDs for finance teams Preprocess incoming receipts before forwarding to AP tools or ERPs Tags (Recommended) finance, invoices, email, ai, ocr, google-sheets, automation, accounting, n8n-template