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 Trung Tran
Try It Out, HireMind – AI-Driven Resume Intelligence Pipeline! This n8n template demonstrates how to automate resume screening and evaluation using AI to improve candidate processing and reduce manual HR effort. A smart and reliable resume screening pipeline for modern HR teams. This workflow combines Google Drive (JD & CV storage), OpenAI (GPT-4-based evaluation), Google Sheets (position mapping + result log), and Slack/SendGrid integrations for real-time communication. Automatically extract, evaluate, and track candidate applications with clarity and consistency. How it works A candidate submits their application using a form that includes name, email, CV (PDF), and a selected job role. The CV is uploaded to Google Drive for record-keeping and later reference. The Profile Analyzer Agent reads the uploaded resume, extracts structured candidate information, and transforms it into a standardized JSON format using GPT-4 and a custom output parser. The corresponding job description PDF file is automatically retrieved from a Google Sheet based on the selected job role. The HR Expert Agent evaluates the candidate profile against the job description using another GPT-4 model, generating a structured assessment that includes strengths, gaps, and an overall recommendation. The evaluation result is parsed and formatted for output. The evaluation score will be used to mark candidate as qualified or unqualified, based on that an email will be sent to applicant or the message will be send to hiring team for the next process The final evaluation result will be stored in a Google Sheet for long-term tracking and reporting. Google drive structure ├── jd # Google drive folder to store your JD (pdf) │ ├── Backend_Engineer.pdf │ ├── Azure_DevOps_Lead.pdf │ └── ... │ ├── cv # Google drive folder, where workflow upload candidate resume │ ├── John_Doe_DevOps.pdf │ ├── Jane_Smith_FullStack.pdf │ └── ... │ ├── Positions (Sample: https://docs.google.com/spreadsheets/d/1pW0muHp1NXwh2GiRvGVwGGRYCkcMR7z8NyS9wvSPYjs/edit?usp=sharing) # 📋 Mapping Table: Job Role ↔ Job Description (Link) │ └── Columns: │ - Job Role │ - Job Description File URL (PDF in jd/) │ └── Evaluation form (Google Sheet) # ✅ Final AI Evaluation Results How to use Set up credentials and integrations: Connect your OpenAI account (GPT-4 API). Enable Google Cloud APIs: Google Sheets API (for reading job roles and saving evaluation results) Google Drive API (for storing CVs and job descriptions) Set up SendGrid (to send email responses to candidates) Connect Slack (to send messages to the hiring team) Prepare your Google Drive structure: Create a root folder, then inside it create: /jd → Store all job descriptions in PDF format /cv → This is where candidate CVs will be uploaded automatically Create a Google Sheet named Positions with the following structure: | Job Role | Job Description Link | |------------------------------|----------------------------------------| | Azure DevOps Engineer | https://drive.google.com/xxx/jd1.pdf | | Full-Stack Developer (.NET) | https://drive.google.com/xxx/jd2.pdf | Update your application form: Use the built-in form, or connect your own (e.g., Typeform, Tally, Webflow, etc.) Ensure the Job Role dropdown matches exactly the roles in the Positions sheet Run the AI workflow: When a candidate submits the form: Their CV is uploaded to the /cv folder The job role is used to match the JD from /jd The Profile Analyzer Agent extracts candidate info from the CV The HR Expert Agent evaluates the candidate against the matched JD using GPT-4 Distribute and store results: Store the evaluation results in the Evaluation form Google Sheet Optionally notify your team: ✉️ Send an email to the candidate using SendGrid 💬 Send a Slack message to the hiring team with a summary and next steps Requirements OpenAI GPT-4 account for both Profile Analyzer and HR Expert Agents Google Drive account (for storing CVs and evaluation sheet) Google Sheets API credentials (for JD source and evaluation results) Need Help? Join the n8n Discord or ask in the n8n Forum! Happy Hiring! 🚀
by SEVENEDGE
Quick overview This workflow watches a Google Drive folder for new contracts, uses Anthropic Claude to extract and assess clauses against your legal playbook and hard limits, then aggregates a verdict, optionally pauses for a human decision, logs the results to Google Sheets, and sends notifications via a webhook. How it works Triggers when a new file is created in a specific Google Drive folder (or runs manually with a provided file ID). Downloads the contract from Google Drive, converts it to Base64, and sends it to the Anthropic Messages API to extract a structured list of clauses. Splits the extracted clauses into small batches and uses Anthropic Claude to assess each clause against your playbook, producing severity, explanations, and suggested redlines. Aggregates all clause findings into a single review, deterministically sets a verdict (with hard-limit breaches forcing a “DO_NOT_SIGN”), and decides whether human review is required. If escalation is needed, posts decision links to your webhook endpoint and waits for a reviewer to proceed, request redlining, or reject; otherwise it auto-clears the contract. Builds a severity-ordered report, appends the full review record to a Google Sheets log, and posts a completion notice to the same webhook. Setup Connect Google Drive credentials and set the folder to watch in the trigger (or set a test file ID for manual runs). Add Anthropic access for both extraction and assessment: an HTTP Header Auth credential with x-api-key for the Anthropic Messages API request, and an Anthropic credential for the Claude assessment model. Update the configuration values for ourSide, playbook, hardLimits, and (optionally) the Anthropic model name and clause batch size. Connect Google Sheets credentials and select the target spreadsheet and sheet tab used as the review log. Set notifyWebhookUrl to an endpoint (for example, Slack/Teams incoming webhook) that can receive the reviewer decision message and completion notice.
by Davide
This workflow creates an AI-powered chatbot that generates custom songs through an interactive conversation, then uploads the results to Google Drive. This workflow transforms n8n into a complete AI music production pipeline by combining: Conversational AI Structured data validation Tool orchestration External music generation API Cloud automation It demonstrates a powerful hybrid architecture: LLM Agent + Tools + API + Storage + Async Control Flow Key Advantages 1. ✅ Fully Automated AI Music Production From idea → to lyrics → to full generated track → to cloud storage All handled automatically. 2. ✅ Conversational UX Users don’t need technical knowledge. The AI collects missing information step-by-step. 3. ✅ Smart Tool Selection The agent dynamically chooses: Songwriter tool (for original lyrics) Search tool (for existing lyrics) This makes the system adaptive and intelligent. 4. ✅ Structured & Error-Safe Design Strict JSON schema enforcement Output parsing and validation Cleanup of malformed LLM responses Reduces failure rate dramatically. 5. ✅ Asynchronous API Handling Uses webhook-based resume Handles long-running AI generation Supports multiple song outputs Scalable and production-ready. 6. ✅ Modular & Extensible The architecture allows: Switching LLM provider Changing music API Adding new tools (e.g., cover art generation) Supporting different vocal styles or languages 7. ✅ Memory-Enabled Conversations Uses buffer memory (last 10 messages) Maintains conversational context and continuity. 8. ✅ Automatic File Management Generated songs are: Automatically downloaded Properly renamed Stored in Google Drive No manual file handling required. How it Works Here's the flow: User Interaction: The workflow starts with a chat trigger that receives user messages. A "Music Producer Agent" powered by Google Gemini engages with the user conversationally to gather all necessary song parameters. Data Collection: The agent collects four essential pieces of information: Song title Musical style (genre) Lyrics (prompt) - either generated by calling the "Songwriter" tool or searched online via the "Search songs" tool Negative tags (styles/elements to avoid) Validation & Formatting: The collected data passes through an IF condition checking for valid JSON format, then a Code node parses and cleans the JSON output. A "Fix Json Structure" node ensures proper formatting with strict rules (no line breaks, no double quotes). Song Generation: The formatted data is sent to the Kie.ai API (HTTP Request node) which generates the actual music track. The workflow includes a callback URL for asynchronous processing. Wait & Retrieve: A Wait node pauses execution until the Kie.ai API sends a webhook callback with the generated songs. The "Get songs" node then retrieves the song data. Process Results: The response is split out, and a Loop Over Items node processes each generated song individually. For each song, the workflow: Downloads the audio file via HTTP request Uploads it to a specified Google Drive folder with a timestamped filename Setup steps API Credentials (3 required): Google Gemini (PaLM) API: Configure in the two Gemini Chat Model nodes Gemini Search API: Set up in the "Search songs" tool node Kie AI Bearer Token: Add in the HTTP Request nodes (Create song and Get songs) Google Drive Configuration: Authenticate Google Drive OAuth2 in the "Upload song" node Verify/modify the folder ID if needed Ensure the Drive has proper write permissions Webhook Setup: The Wait node has a webhook ID that needs to be publicly accessible Configure this URL in your Kie.ai API settings as the callback endpoint Optional Customizations: Adjust the AI agent prompts in the "Music Producer Agent" and "Songwriter" nodes Modify song generation parameters in the Kie.ai API call (styleWeight, weirdnessConstraint, etc.) Update the Google Drive folder path for song storage Change the vocal gender or other music generation settings in the "Create song" node Testing: Activate the workflow and start a chat session to test song generation with sample requests like "Write a pop song about summer" or "Find lyrics for 'Bohemian Rhapsody' and make it in rock style" 👉 Subscribe to my new YouTube channel. Here I’ll share videos and Shorts with practical tutorials and FREE templates for n8n. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by oka hironobu
Quick Overview This workflow exposes a POST webhook that sends user text (and optional context) to Google Gemini for moderation, returning an allow/flag/block decision, toxicity level, matched categories, detected PII types, a short reason, and a cleaned version with slurs masked and PII redacted. How it works Receives a POST request on a webhook endpoint with a JSON body containing text and optional context. Sends the input to Google Gemini with instructions to classify safety (allow/flag/block), rate toxicity, identify categories, detect PII, and produce a redacted/masked cleaned_text. Parses Gemini’s response into a structured JSON object with the required moderation fields. Returns the moderation result to the caller as the webhook response. If Gemini fails to classify the text, returns a fail-safe JSON response that flags the content for human review. Setup Add a Google Gemini (PaLM) API credential for the Google Gemini Chat Model node. Activate the workflow and copy the production webhook URL from the webhook trigger. Configure your client/app to POST JSON (for example { "text": "...", "context": "..." }) to the /moderate endpoint and handle the JSON response.
by alephantAI
Quick overview This workflow exposes a paid webhook endpoint, verifies budget via Alephant usage analytics, routes the request through an OpenAI-based agent to pick the most cost-effective model, runs the chosen model through Alephant for cost tracking, then returns results with per-call margin reporting to Discord and optional throttling. How it works Receives a POST request on a webhook endpoint that is intended to be paid per call over x402. Checks current budget status using Alephant Usage analytics and returns a 402-style JSON error response if the workspace budget is exceeded. Sends the buyer request and budget context to an OpenAI-based routing agent (via Alephant) that calls Alephant UsageSummary and outputs strict JSON selecting a model tier and refined prompt. Runs the refined prompt on the chosen model using Alephant AI to capture per-call usage and cost metadata. Calculates per-call profit and margin percentage from fixed revenue, token usage, and an Alephant fee estimate. Responds to the webhook caller with the model result plus net margin metrics, posts the margin line to Discord, and calls a policy write-back HTTP endpoint to throttle if margin drops below 20%. Setup Install the Alephant community nodes and create an Alephant Virtual Key credential in n8n. Create an OpenAI credential that uses Base URL https://ai.alephant.io/v1 with your Alephant virtual key as the API key, and select it for the agent’s language model. Configure a Discord Webhook credential and set it on the Discord node used for the margin feed. Update the Per-Call P&L constants (price per call, token rate per 1k, external spend, and fee percentage) to match your real unit economics. Replace https://ai.alephant.io/REPLACE_WITH_POLICY_ENDPOINT with your real policy/throttling endpoint and set the ALEPHANT_API_KEY environment variable used for the Authorization header. Copy the webhook URL for the paid endpoint and configure your x402 buyer/agent to call this endpoint with the expected request body fields (for example, topic and runId). Requirements Alephant account with a Virtual Key, free tier works (https://alephant.io) Alephant community nodes installed: Cost Control, AI Analytics, AI Analytics Tool OpenAI credential with Base URL set to https://ai.alephant.io/v1 and your Alephant virtual key as the API key A Discord channel webhook for the margin feed Optional: an Alephant policy endpoint if you want the auto-throttle write-back Customization Change the service by editing the agent system prompt (research summary, wallet-risk scoring, data enrichment, etc.) Adjust the model tiers and routing logic the agent chooses between (premium vs economy) Set your real price, token rate, and fee in the Per-Call P&L node Tune the margin threshold that triggers throttling (default 20%) in the Margin Thin node Swap Discord for Slack or email, or add a Google Sheets row per call Register the webhook as a paid x402 endpoint in Alephant to charge per request in USDC Additional info Full information: https://developers.alephant.io/docs/overview/showcase/n8n-workflow This workflow turns an n8n webhook into a paid, self-funding AI endpoint. A buyer pays per request in USDC over x402; Alephant verifies and settles the payment before the request reaches n8n, so revenue is booked before any work runs. A budget guard gates the call, then an AI agent reads recent spend through the Alephant UsageSummary tool and picks the cheapest model that still does the job. The work runs through Alephant for full cost tracking, and a P&L step calculates net margin (revenue minus token spend minus fee) on every single call. Healthy calls just respond and log; calls that drop below the margin threshold trigger a write-back to throttle, so a bad call never quietly loses money. The agent's own reasoning is also routed through Alephant via the OpenAI Base URL override, so the thing watching cost appears in its own dashboard. Notes: the Alephant analytics tool is read-only, so enforcement happens through the HTTP policy node, not the tool. After you run the Budget Guard node once, map the real budget field into the Budget OK node, since field names depend on your workspace response. Hard budget caps still live in the Alephant Budget Circuit Breaker; this workflow tunes within those rails.
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 Ibrahim
Quick overview Submit a YouTube URL and get a publish-ready SEO blog post. Three Gemini agents research the video, write the article, and score it. Articles scoring 7+ auto-publish to Google Docs. Lower scores route to Telegram for review. How it works The workflow starts when a POST request hits the webhook with a YouTube URL, optional target keyword, and tone. A Code node extracts the video ID and validates the URL format, then an HTTP Request node calls YouTube Data API v3 to pull the video title, description, channel name, and tags. Three Basic LLM Chain nodes run in sequence, each powered by a Google Gemini Flash sub-node connected via the native ai_languageModel port. The first chain (Research Agent) receives the video context and returns a structured JSON brief containing an SEO title, four H2 headings, primary keyword, secondary keywords, key insights, target audience, and a content angle. A Code node parses this output with a JSON fallback in case Gemini adds unexpected formatting. The second chain (Writer Agent) takes the research brief and writes a complete 1,000–1,400 word blog post following strict rules: flowing paragraphs over bullet lists, primary keyword used 3–5 times, concrete examples in at least two sections, and a link back to the original video at the end. The third chain (Editor Agent) reviews the finished article and returns a JSON score across five dimensions: SEO optimisation, readability, depth of insight, hook strength, and actionability. A Code node attaches the article text and calculates the overall score. An IF node acts as the quality gate. Articles scoring 7 or above go to Google Docs (created as a new document), logged to Google Sheets, and a success notification fires in Telegram. Articles below 7 skip publishing, and Telegram receives the editor's critique and improvement list instead. Setup Google Gemini API key (free): Go to aistudio.google.com, click Get API Key, and create a key in a new project. In n8n, add it as a Google PaLM API credential. Open all three Gemini sub-nodes (Research, Writing, Editing) and select that credential. This is the only LLM credential needed. YouTube Data API v3: In console.cloud.google.com, enable YouTube Data API v3 for your project and create an API key. Open the Fetch YouTube Video Metadata node and replace $credentials.googleYoutubeApiKey with your key, or set up a Generic Header Auth credential and reference it there. Google Docs and Sheets OAuth2: Enable the Google Docs API and Google Sheets API in your Google Cloud project. In n8n Settings > Credentials, create a Google Docs OAuth2 credential and a Google Sheets OAuth2 credential. Connect each to the corresponding node. In the Sheets node, replace YOUR_SHEETS_ID with your spreadsheet ID (found in the sheet URL). Google Sheets tab: Create a sheet named Blog Posts with these columns: Date, YouTube URL, Video Title, Blog Title, Primary Keyword, Quality Score, Word Count, Editor Note, Google Doc. Telegram: Create a bot via @BotFather on Telegram and copy the token. Add it as a Telegram API credential in n8n. Get your chat ID by messaging @userinfobot. Replace YOUR_TELEGRAM_CHAT_ID in both Telegram nodes. Test: Switch the workflow to listening mode and send a POST request: Invoke-RestMethod -Uri "YOUR_WEBHOOK_TEST_URL" -Method POST -ContentType "application/json" -Body '{"youtube_url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","target_keyword":"AI automation","tone":"professional"}' Requirements Google Gemini API key (free at aistudio.google.com, 1M tokens/day, no credit card) YouTube Data API v3 key (free, 10,000 units/day quota) Google Docs OAuth2 credential Google Sheets OAuth2 credential Telegram bot token and chat ID n8n with LangChain nodes available (Cloud or self-hosted) Customization Change the quality threshold: Open the Check Quality Score node and change 7 to any value between 1 and 10. Swap the model: Each Gemini sub-node is independent. Open any of the three and change models/gemini-1.5-flash to models/gemini-1.5-pro for higher quality output, or replace the sub-node with an Anthropic or OpenAI Chat Model node to switch providers entirely. Add a second language: After the Writer Agent, add another Basic LLM Chain with a Gemini sub-node. Prompt it to translate the article into Arabic or any other language while preserving the heading structure. Connect its output to the Sheets log alongside the English version. Adjust article length: In the Writer Agent prompt, change the target word count. The current setting is 1,000–1,400 words. Skip the quality gate: Delete the IF node and connect Review and Attach Article directly to Publish Article to Google Docs. Additional info This workflow uses native n8n LangChain nodes (@n8n/n8n-nodes-langchain.chainLlm and @n8n/n8n-nodes-langchain.lmChatGoogleGemini) rather than raw HTTP Request calls to the Gemini REST API. This means prompts are editable directly in the node UI, all three agents share a single credential, and swapping the LLM provider requires changing one sub-node rather than editing URL strings and JSON bodies across multiple nodes. The workflow costs $0 to run. Gemini 1.5 Flash is free up to 1 million tokens per day via Google AI Studio. The YouTube Data API, Google Docs API, Google Sheets API, and Telegram Bot API are all free within standard usage limits. Built by Ibrahim Maher Al-Bander, n8n Certified Level 1 automation developer. ibrahimaher.com
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 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 Dinakar Selvakumar
Description This workflow is Part 2 of the HR Client Acquisition system and builds on the lead discovery pipeline from the previous workflow: 🔗 HR Client Acquisition (Part 1) – Job Lead Discovery & AI Qualification System In Part 1, job leads are discovered and qualified using AI. In this workflow (Part 2), those qualified companies are enriched further by identifying company domains, classifying them as employers or agencies, and extracting decision-maker contacts such as HR and operations leaders. The workflow uses AI, web scraping, and enrichment APIs to transform raw company data into actionable outreach-ready leads with verified contact information. Use cases Recruitment agencies targeting companies actively hiring Sales teams building high-quality outbound lead lists Automating employer research and contact discovery Enriching job-based leads into decision-maker pipelines Requirements Google Sheets account OpenAI API key Apify account LinkFinder AI API key n8n instance with environment variables configured How to use Run Part 1 workflow to collect and qualify job leads Ensure companies are stored in Google Sheets with status = NEW or ENRICHMENT_REQUIRED Execute this workflow Workflow enriches companies and extracts key contacts Contacts are saved into Google Sheets for outreach Customising this workflow Modify AI prompts for company classification Adjust industry filtering logic Change contact selection priorities (HR, operations, leadership) Integrate additional enrichment or CRM tools What this template demonstrates Multi-step lead enrichment pipeline AI-powered company classification Domain extraction and validation Contact discovery using external APIs Structured data handling using Google Sheets How it works • Step 1: Fetch qualified companies from Google Sheets • Step 2: Extract or predict company domain • Step 3: Scrape and analyze website content using AI • Step 4: Classify company as employer or agency • Step 5: Enrich employer data and fetch employee contacts • Step 6: Select top contacts and store results Setup steps • Estimated setup time: 15–25 minutes • Configure API keys (OpenAI, Apify, LinkFinder) • Set environment variables for Google Sheets • Connect output of Part 1 workflow • Run test execution with sample data