by Dr. Firas
Auto-Generate Social Media Videos with GPT-5 and Publish via Blotato > ⚠️ Disclaimer: This workflow uses Community Nodes (Blotato) and requires a self-hosted n8n instance with "Verified Community Nodes" enabled. 👥 Who is this for? This workflow is perfect for: Content creators and influencers who post regularly on social media Marketing teams that want to scale branded video production Solo entrepreneurs looking to automate their video marketing Agencies managing multi-client social media publishing 💡 What problem is this workflow solving? Creating high-quality video content and publishing consistently on multiple platforms is time-consuming. You often need to: Write compelling captions and titles Adapt content to fit each platform’s requirements Publish manually or across disconnected tools This workflow automates the entire process — from idea to publishing — so you can focus on growth and creativity, not logistics. ⚙️ What this workflow does Receives a video idea via Telegram Saves metadata to Google Sheets Transcribes the video using OpenAI Whisper Generates a catchy title and caption using GPT-5 Uploads the final media to Blotato Publishes the video automatically to: TikTok Instagram YouTube Shorts Facebook X (Twitter) Threads LinkedIn Pinterest Bluesky Updates the post status in Google Sheets Sends confirmation via Telegram 🧰 Setup Before launching the workflow, make sure to: Create a Blotato Pro account and generate your API Key Enable Verified Community Nodes in the n8n Admin Panel Install the Blotato community node in n8n Create your Blotato credential using the API key Make a copy of this Google Sheet template Ensure your Google Drive folder with videos is shared publicly (viewable by anyone with the link) Link your Telegram Bot and configure the trigger node Follow the sticky note instructions inside the workflow 🛠️ How to customize this workflow Modify the GPT-5 prompt to reflect your brand voice or campaign tone Add/remove social platforms depending on your strategy Include additional AI modules (e.g., for voiceover or thumbnails) Insert review/approval steps (via Slack, email, or Telegram) Connect Airtable, Notion, or your CRM to track results This is your all-in-one AI video publishing engine, built for automation, scale, and growth across the social web. 📄 Documentation: Notion Guide Need help customizing? Contact me for consulting and support : Linkedin / Youtube
by Davide
This workflow automates the full pipeline for extending short Viral UGC-style videos using AI, merging them, and finally publishing the output to cloud storage or social media platforms (TikTok, Instagram, Facebook, Linkedin, X, and YouTube). It integrates multiple external APIs (Fal.ai, Runpod/Kling 2.1, Postiz, Upload-Post, Google Sheets, Google Drive) to create a smooth end-to-end video-generation system. Key Advantages 1. ✅ Full End-to-End Automation The workflow covers the entire process: Read inputs Generate extended clips Merge them Save outputs Publish on social platforms No manual intervention required after starting the workflow. 2. ✅ AI-Powered Video Extension (Kling 2.1 or other models like Veo 3.1 or Sora 2) The system uses Kling 2.1 (Kling 2.1 or other models like Veo 3.1 or Sora 2) to extend short videos realistically, enabling: Longer UGC clips Consistent cinematic style Smooth transitions based on extracted frames Ideal for viral social media content. 3. ✅ Smart Integration with Google Sheets The spreadsheet becomes a control panel: Add new videos to extend Control merging Automatically store URLs and results This makes the system user-friendly even for non-technical operators. 4. ✅ Robust Asynchronous Job Handling Every external API includes: Status checks Waiting loops Error prevention steps This ensures reliability when working with long-running AI processes. 5. ✅ Automatic Merging and Publishing Once videos are generated, the workflow: Merges them in the correct order Uploads them to Google Drive Posts them automatically to selected social platforms This drastically reduces time required for content production and distribution. 6. ✅ Highly Scalable and Customizable Because it is built in n8n: You can add more APIs You can add editing steps You can connect custom triggers (e.g., Airtable, webhooks, Shopify, etc.) You can fully automate your video-production pipeline How It Works This workflow automates the process of extending and merging videos using AI-generated content, then publishing the final result to social media platforms. The process consists of five main stages: Data Input & Frame Extraction** The workflow starts by reading video and prompt data from a Google Sheet. It extracts the last frame from the input video using Fal.ai’s FFmpeg API. AI Video Generation** The extracted frame is sent to RunPod’s Kling 2.1 AI model to generate a new video clip based on the provided prompt and desired duration. Video Merging** Once the AI-generated clip is ready, it is merged with the original video using Fal.ai’s FFmpeg merge functionality to create a seamless extended video. Storage & Publishing** The final merged video is uploaded to Google Drive and simultaneously distributed to social media platforms via: YouTube (via Upload-Post) TikTok, Instagram, Facebook, X, and YouTube (via Postiz) Progress Tracking** Throughout the process, the Google Sheet is updated with the status, video URLs, and completion markers to keep track of each step. Set Up Steps To configure this workflow, follow these steps: Prepare the Google Sheet Use the provided template or clone this sheet. Fill in the START (video URL), PROMPT (AI prompt), and DURATION (in seconds) columns. Configure Fal.ai API for Frame Extraction & Merging Create an account at fal.ai. Obtain your API key. In the nodes “Extract last frame”, “Merge Videos”, and related status nodes, set up HTTP Header Authentication with: Name: Authorization Value: Key YOUR_API_KEY Set Up RunPod API for AI Video Generation Sign up at RunPod and get your API key. In the “Generate clip” node, configure HTTP Bearer Authentication with: Value: Bearer YOUR_RUNPOD_API_KEY Configure Social Media Publishing For YouTube: Create a free account at Upload-Post and set your YOUR_USERNAME and TITLE in the “Upload to Youtube” node. For Multi-Platform Posting: Sign up at Postiz and configure your Channel_ID and TITLE in the “Upload to Social” node. Connect Google Services Set up Google Sheets and Google Drive OAuth2 credentials in their respective nodes to allow reading from and writing to the sheet and uploading videos to Drive. Execute the Workflow Once all credentials are set, trigger the workflow manually via the “When clicking ‘Execute workflow’” node. The process will run autonomously, updating the sheet and publishing the final video upon completion. 👉 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 ConnectSafely
Send AI-personalized LinkedIn connection requests from Google Sheets using ConnectSafely.AI API Who's it for This workflow is built for sales professionals, recruiters, founders, and growth marketers who want to scale their LinkedIn outreach without sacrificing personalization. Perfect for anyone tired of sending generic connection requests that get ignored, or manually crafting individual messages for hundreds of prospects. If you're running ABM campaigns, building a sales pipeline, recruiting talent, or expanding your professional network, this automation handles the heavy lifting while keeping your outreach authentic and human. How it works The workflow automates personalized LinkedIn connection requests by combining Google Sheets prospect tracking with AI-powered message generation through ConnectSafely.ai's API. The process flow: Reads pending prospects from your Google Sheet Immediately marks them "IN PROGRESS" to prevent duplicate sends Fetches complete LinkedIn profile data via ConnectSafely.ai API Generates a personalized, authentic message using Google Gemini AI Sends the connection request with your custom message Updates your sheet with "DONE" status and stores the message sent Random delays between requests mimic human behavior and maintain LinkedIn compliance. Watch the complete step-by-step implementation guide: Setup steps Step 1: Prepare Your Google Sheet Structure your Google Sheet with the following columns: | Column Name | Description | Required | |------------|-------------|----------| | First Name | Contact's first name | Optional | | LinkedIn Url | LinkedIn profile URL or username | Yes | | Tagline | Contact's headline/title | Optional | | Status | Processing status (PENDING/IN PROGRESS/DONE) | Yes | | Message | Stores the AI-generated message sent | Yes | Sample Data Format: First Name: John LinkedIn Url: https://www.linkedin.com/in/johndoe Tagline: VP of Sales at TechCorp Status: PENDING Message: (left empty - will be filled by workflow) Pro Tip: Use LinkedIn Sales Navigator export or a prospecting tool to populate your sheet with qualified leads. Step 2: Configure ConnectSafely.ai API Credentials Obtain API Key Log into ConnectSafely.ai Dashboard Navigate to Settings → API Keys Generate a new API key Add Bearer Auth Credential in n8n Go to Credentials in n8n Click Add Credential → Header Auth or Bearer Auth Paste your ConnectSafely.ai API key Save the credential This credential is used by both the "Fetch LinkedIn Profile" and "Send Connection Request" HTTP nodes. Step 3: Configure Google Sheets Integration 3.1 Connect Google Sheets Account Go to Credentials → Add Credential → Google Sheets OAuth2 Follow the OAuth flow to connect your Google account Grant access to Google Sheets 3.2 Configure "Get Pending Prospect" Node Open the Get Pending Prospect node Select your Google Sheets credential Enter your Document ID (from the sheet URL) Select the Sheet Name Add a filter: Lookup Column: Status Lookup Value: PENDING Enable Return First Match Only under Options 3.3 Configure "Mark as In Progress" Node Open the Mark as In Progress node Select the same document and sheet Configure column mapping: Matching Column: row_number Status: IN PROGRESS 3.4 Configure "Mark as Complete" Node Open the Mark as Complete node Select the same document and sheet Configure column mapping: Matching Column: row_number Status: DONE Message: {{ $('Generate Personalized Message').item.json.message }} Step 4: Configure Google Gemini AI Get Gemini API Key Go to Google AI Studio Create or select a project Generate an API key Add Gemini Credential in n8n Go to Credentials → Add Credential → Google Gemini (PaLM) API Paste your API key Save the credential Connect to Google Gemini Node Open the Google Gemini node Select your Gemini credential Step 5: Customize the AI Prompt The Generate Personalized Message node contains the system prompt that controls how messages are written. Customize it for your personal brand: Open the Generate Personalized Message node Find the System Message in Options Replace the placeholder text: MY CONTEXT: [CUSTOMIZE THIS: Add your name, role, and what you're looking for in connections] With your actual information, for example: MY CONTEXT: I'm Sarah, founder of a B2B SaaS startup. I'm interested in connecting with other founders, VCs, and sales leaders to exchange ideas and explore potential partnerships. Update the sign-off instruction from "- [YOUR NAME]" to your actual name Step 6: Test the Workflow Add a test prospect to your Google Sheet with Status: PENDING Click the Manual Trigger (for testing) node Click Test Workflow Verify: Profile data is fetched correctly AI generates an appropriate message Connection request is sent Sheet updates to DONE with the message stored Customization Message Personalization Edit the system prompt in the Generate Personalized Message node to adjust: Tone**: Formal, casual, or industry-specific language Length**: Modify character limits (LinkedIn allows up to 300 characters) Focus**: Emphasize mutual connections, shared interests, or achievements Sign-off**: Change the signature format to match your brand Timing Adjustments Schedule Trigger: Currently set to run every minute. Adjust the interval in the **Run Every Minute node Random Delay: The **Random Delay (1-5 min) node adds 1-5 minutes of random wait time. Modify the formula {{ Math.floor(Math.random() * 4) + 1 }} to change the range Rate Limiting Best Practices Start with 10-20 connection requests per day Gradually increase over 2-3 weeks Never exceed 100 requests per day Consider pausing on weekends Use Cases Sales Prospecting**: Connect with decision-makers at target accounts with personalized outreach Recruiting**: Reach out to passive candidates with messages that reference their specific experience Founder Networking**: Build relationships with fellow entrepreneurs, investors, and advisors Event Follow-up**: Send personalized connection requests to conference attendees and speakers Partnership Development**: Connect with potential partners by referencing their company achievements Troubleshooting Common Issues & Solutions Issue: AI generating messages over 300 characters Solution**: Add explicit character count requirement in the system prompt; the current prompt specifies 200-250 characters Issue: "Profile not found" errors from ConnectSafely.ai Solution**: Ensure LinkedIn URLs are complete (include https://www.linkedin.com/in/) Issue: Generic-sounding AI messages Solution**: Enhance the system prompt with more specific context about your background and goals Issue: Duplicate connection requests sent Solution**: Verify "Mark as In Progress" node runs before "Fetch LinkedIn Profile"; check that row_number column exists in your sheet Issue: Google Sheets not updating Solution**: Confirm row_number column exists and the matching column is correctly configured Issue: Bearer Auth errors Solution**: Verify your ConnectSafely.ai API key is valid and has proper permissions Documentation & Resources Official Documentation ConnectSafely.ai Docs**: https://connectsafely.ai/docs API Reference**: Available in ConnectSafely.ai dashboard Google Gemini API**: https://ai.google.dev/docs Support Channels Email Support**: support@connectsafely.ai Documentation**: https://connectsafely.ai/docs Custom Workflows**: Contact us for custom automation Connect With Us Stay updated with the latest automation tips, LinkedIn strategies, and platform updates: LinkedIn**: linkedin.com/company/connectsafelyai YouTube**: youtube.com/@ConnectSafelyAI-v2x Instagram**: instagram.com/connectsafely.ai Facebook**: facebook.com/connectsafelyai X (Twitter)**: x.com/AiConnectsafely Bluesky**: connectsafelyai.bsky.social Mastodon**: mastodon.social/@connectsafely Need Custom Workflows? Looking to build sophisticated LinkedIn automation workflows tailored to your business needs? Contact our team for custom automation development, strategy consulting, and enterprise solutions. We specialize in: Multi-channel engagement workflows AI-powered personalization at scale Lead scoring and qualification automation CRM integration and data synchronization Custom reporting and analytics pipelines
by Vincent Nguyen
This n8n template shows how to fully automate your social media workflow from Google Sheets to X, Threads, LinkedIn, Facebook, and Instagram — with AI-generated visuals. Instead of manually writing, designing, and posting content, this workflow turns a single Google Sheet row into multi-platform posts plus a custom AI image that matches your message. You write once. n8n posts everywhere. How it works A scheduled trigger checks your Google Sheet for content marked “Ready To Post.” The post text is pulled from Sheets and sent to all text-only platforms (X and Threads). At the same time, an AI agent analyzes your post and generates a high-quality image prompt. GPT-Image creates a custom visual based on that prompt. The image is uploaded to ImgBB to create a shareable URL. That image + your caption are automatically posted to LinkedIn, Facebook, and Instagram. Finally, your Google Sheet is updated so you never repost the same content twice. How to use Add your posts to Google Sheets in the Content column. Set Status = Ready To Post when you want it published. Make sure all platform credentials are connected in n8n. Turn the workflow on and let it run automatically. What you get Hands-free posting to 5 platforms AI-generated visuals for every post Zero manual design work Built-in error handling No duplicate posts Requirements Google Sheets access X (Twitter) account Threads account LinkedIn account Facebook & Instagram Page access ImgBB account OpenAI credentials for image generation Need help? Ask in the n8n Forum or shoot me a DM on LinkedIn Happy automating 🚀
by Sankar Battula
This workflow turns a simple Telegram message into a full stock research report inspired by Warren Buffett’s value investing approach. A user sends a ticker symbol such as AAPL, MSFT, or AMZN, and the workflow validates the input, runs AI-powered research, performs discounted cash flow calculations, and sends a polished HTML report to Gmail with a final verdict. It is designed as a reusable finance analysis template for creators, developers, and automation builders who want to combine Telegram, AI agents, live research, and email delivery in one workflow. Templates in n8n are intended to help users learn, reuse best practices, and quickly adapt a workflow to their own setup, so this version is structured to be easy to follow and reconfigure after import. What this workflow does Receives a stock ticker from Telegram and cleans the input before processing. Validates the ticker format and stops invalid requests early with a helpful reply. Uses an AI agent to generate a Buffett-style investment analysis. Uses SerpAPI for live company and market research. Uses a calculator tool for DCF and margin-of-safety math. Sends the final HTML report to Gmail and confirms completion in Telegram. Setup instructions Import the workflow into n8n and reconnect your credentials for Telegram, OpenAI, SerpAPI, and Gmail. n8n templates are designed to be imported and then configured in the user’s own environment. Open the Extract Ticker, Chat ID & Email node and replace YOUR_EMAIL@gmail.com with your destination email address. Create or connect your Telegram bot credentials, then test by sending a stock ticker like AAPL or MSFT. Connect your Gmail OAuth2 account so the workflow can send the HTML report email. Activate the workflow and run a live test from Telegram. Requirements Telegram Bot API credentials OpenAI API credentials SerpAPI credentials Gmail OAuth2 credentials Best for Finance research demos AI agent workflow examples Telegram-to-email automations Value investing and stock analysis use cases
by WeblineIndia
AI-Powered News Risk Monitoring & Alert System (Google News + Groq + Gmail) This workflow acts as an automated, proactive monitoring system that separates "market noise" from actual "market risk". Instead of flooding your inbox with every single news mention about a company or topic, it uses artificial intelligence (Llama 3 via Groq) to act as a virtual risk analyst. The AI reviews recent Google News articles, categorizes the risk as Low, Medium or High and only sends you an email alert when the risk is significant (Medium or High). Fast Track Setup Prepare your Data: Create a Google Sheet named "Risk Keywords" and list your target companies or terms under a "Keyword" column. Connect Credentials: Add your Google Sheets, Groq API and Gmail credentials to your n8n instance. Configure Nodes: Select your specific spreadsheet in the "Fetch Risk Keywords" node and update the "Gmail Alert Dispatcher" node with your recipient email address. Run: Trigger the workflow manually to start receiving your filtered risk alerts. What It Does This workflow automates the tedious process of monitoring the news for potential business risks. It begins by fetching a customized list of keywords — such as company names, competitors or industry terms — from a Google Sheet. It then processes these keywords one by one, using an iterator to safely manage the flow of data. For each keyword, the workflow scrapes the top 4 most recent articles from a Google News RSS feed. To ensure the system doesn't overwhelm the AI service with too many requests at once, it introduces a brief 2-second rate-limit delay. Once the news data is collected, an AI Agent uses Llama 3 (via Groq) to read the headline and snippet of each article. The AI is instructed to determine the risk level and provide a one-sentence reason for its decision. The workflow then filters out any "Low" risk news, bundles the "Medium" and "High" risk alerts together, formats them into a clean text summary and emails the final report directly to you. Who’s It For Investors and Traders:** Who need to monitor sudden negative news about stocks in their portfolio without reading every minor press release. Risk Management Professionals:** Who must keep an eye on supply chain disruptions, regulatory changes or macroeconomic indicators like inflation. Public Relations (PR) Teams:** Who want instant alerts when a client or their own brand is mentioned in a potentially damaging context. Business Owners and Executives:** Who need to monitor competitor struggles or industry shifts that could impact their strategic planning. Requirements to use this workflow To successfully run this workflow, you will need: [An active n8n account](https://n8n.partnerlinks.io/om1efg2qgvwi ). A Google account to create the "Risk Keywords" Google Sheet. Google Sheets credentials configured within n8n. A Groq API key to power the Llama 3 AI analysis. Gmail credentials configured within n8n to send the final alerts. How It Works & Set Up Follow these step-by-step instructions to configure and use the workflow: Set Up the Google Sheet: Create a new Google Sheet and name it exactly "Risk Keywords". In the first tab (Sheet1), create a header row and name the first column "Keyword". Fill the rows below with the terms you want to monitor (e.g., "Tesla", "Nvidia", "Inflation Rate"). Configure n8n Credentials: Go to your n8n credentials page and ensure you have active connections for Google Sheets (OAuth2) and Gmail (OAuth2). Create a new credential for the Groq API and input your secret API key. Adjust the Google Sheets Node: Open the "Fetch Risk Keywords" node. Use the dropdown menus to select your "Risk Keywords" document and "Sheet1". Adjust the AI Node: Open the "Llama 3 (via Groq)" node and ensure your Groq credential is selected. Configure the Email Destination: Open the "Gmail Alert Dispatcher" node. Find the "Send To" field and replace "RECIPIENT_EMAIL_HERE" with your actual email address. How To Customize Nodes Top 4 Articles Filter (Limit Node):** Currently, the workflow only analyzes the top 4 recent articles to save API costs and time. You can open this node and change the maxItems value to 10 or 20 if you want a broader scan. API Rate-Limit Delay (Wait Node):** The workflow pauses for 2 seconds between batches. If you are using a free tier API with strict limits, you can increase this wait time to 5 or 10 seconds. Risk Analysis Agent (Agent Node):** You can open this node to tweak the AI's system message. For example, you can tell the AI to look specifically for "financial risk" or "reputational damage" rather than general risk. Add‑ons You can easily extend this workflow to make it even more powerful: Schedule Trigger:** Replace the manual "Start" node with a Schedule Trigger to run this scan automatically every morning at 8:00 AM or every hour. Slack or MS Teams Integration:** Instead of sending a Gmail alert, you can swap the Gmail node for a Slack or Microsoft Teams node to push high-risk alerts directly to a company channel. Database Logging:** Add an Airtable or Notion node right before the email dispatcher to keep a historical log of all high-risk events over time. Use Case Examples Here are a few ways this workflow can be utilized in the real world: Supply Chain Monitoring: Add keywords for your key suppliers or global shipping routes (e.g., "Suez Canal disruption"). Get alerted immediately if a medium or high risk threatens your inventory. Competitor Watchlist: Track your top 5 competitors. If a competitor faces a high-risk situation (like a lawsuit or product recall), you are notified and can capitalize on the market shift. PR Crisis Prevention: Input your own brand names and executive names. Catch negative press (high risk) the moment it hits Google News so your team can draft a response quickly. Macroeconomic Tracking: Monitor terms like "interest rate hike", "housing market crash" or "recession". Automatically filter out opinion pieces and only get alerted to high-risk factual reports. (Note: There are countless other use cases for this workflow depending on the keywords and AI prompt you choose!) Troubleshooting Guide | Issue | Possible Cause | Solution | | :--- | :--- | :--- | | Workflow fails at the Groq AI node | API Rate Limits exceeded or invalid API Key. | Check your Groq dashboard to ensure your API key is correct and you haven't hit your rate limit. Increase the wait time in the "API Rate-Limit Delay" node. | | No emails are being sent | All news was categorized as "Low" risk. | This is normal behavior! If you want to test the email, temporarily bypass the "Filter High/Medium Risk" node or add a highly controversial keyword to your sheet. | | Email formatting looks broken | The AI outputted invalid JSON data. | The "Format Alert Email" code node is designed to handle errors. However, to prevent this, you can refine the prompt in the "Risk Analysis Agent" to be stricter about JSON formatting. | | Google Sheets node fails | Incorrect document selected or permissions issue. | Re-authenticate your Google account in n8n credentials and ensure the sheet is exactly named "Risk Keywords". | Need Help? Building and customizing automated workflows can sometimes be tricky, especially when integrating AI and dealing with complex data structures. Whether you need help setting up this exact News Risk Alert workflow, customizing it with the Add-ons mentioned above or building an entirely new automation tailored to your business needs, our n8n workflow developers at WeblineIndia are here to help! Please feel free to contact WeblineIndia for expert assistance.
by isaWOW
Description Connect Fireflies to this workflow once and every meeting you record is automatically categorized and logged to Google Sheets the moment transcription finishes. GPT-4o-mini reads the meeting title, keywords, overview, and action items, then assigns one of seven categories — Sales, Client, Internal, HR, Product, Finance, or Other — along with a confidence rating and a one-sentence reason. Each meeting becomes one clean row in your sheet with emoji labels for instant visual scanning. Built for founders, operations managers, and team leads who want a searchable, sortable record of how their time is actually being spent across meeting types. What This Workflow Does Triggers instantly when a meeting ends** — Fireflies fires the workflow the moment transcription completes, so no manual step is ever needed Fetches meeting details from Fireflies** — Retrieves the title, date, duration, participants, keywords, overview, and action items for each meeting Assigns one of seven categories** — GPT-4o-mini classifies every meeting as Sales, Client, Internal, HR, Product, Finance, or Other based on actual meeting content Scores confidence per classification** — Returns High, Medium, or Low confidence so you know which categorizations to trust and which to review Adds emoji labels for visual scanning** — Category and confidence values are emoji-coded before logging so your sheet is readable at a glance without filtering Logs one row per meeting to Google Sheets** — Appends a 10-column record automatically including date, title, category, confidence, reason, duration, participants, keywords, and a direct Fireflies link 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 Sheets (one sheet with a tab named Meeting Categories) Credentials Required Fireflies API key (pasted into Set Config Values) OpenAI API key Google Sheets OAuth2 Estimated Setup Time: 10–15 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 Fireflies Webhook → copy the Production URL shown Register the webhook in Fireflies — Log in to app.fireflies.ai → Settings → Developer Settings → Webhooks → paste the webhook URL → save Get your Fireflies API key — In Fireflies, go to Settings → Integrations → Fireflies API → copy your API key Get your Google Sheet ID — Open your Google Sheet in a browser → look at the URL → copy the string between /d/ and /edit (e.g. in docs.google.com/spreadsheets/d/1ABC123xyz/edit, the ID is 1ABC123xyz) Fill in Config Values — Open node Set Config Values → replace the two placeholders: | Field | What to enter | |---|---| | YOUR_FIREFLIES_API_KEY | Your Fireflies API key from step 4 | | YOUR_GOOGLE_SHEET_ID | Your Google Sheet ID from step 5 | > ⚠️ Do NOT change the meetingId field — it is extracted automatically from the Fireflies webhook and must remain as-is. Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly Meeting Categories → add these 10 column headers in row 1: Date, Meeting Title, Category, Confidence, Reason, Duration (min), Participants, Keywords, Fireflies URL, Logged At Connect OpenAI — Open node OpenAI Chat Model → click the credential dropdown → add your OpenAI API key → test the connection Connect Google Sheets — Open node Log to Google Sheets → click the credential dropdown → add Google Sheets OAuth2 → sign in with your Google account → authorize access Activate the workflow — Confirm the workflow is Active — Fireflies will now fire it automatically after every recorded meeting How It Works (Step by Step) Step 1 — Webhook: Fireflies Webhook This step listens for a signal from Fireflies. Every time a meeting finishes transcribing, Fireflies sends a POST request to this webhook URL containing the meeting ID and event type. No manual trigger is needed — it fires automatically after every recorded call where you are the organizer. Step 2 — Set: Config Values Your Fireflies API key, Google Sheet ID, sheet tab name, and the meeting ID from the webhook are stored here. The meeting ID is extracted automatically from all possible Fireflies payload formats — you never need to enter it manually. Step 3 — HTTP: Fetch Transcript from Fireflies A request is sent to the Fireflies API using your API key and the meeting ID. It retrieves the meeting title, date, duration, participants, transcript URL, keywords, overview, and action items. Only lightweight summary fields are fetched — no full sentence-by-sentence transcript — keeping the response fast and small. Step 4 — Code: Extract Meeting Data The Fireflies response is processed into clean, usable fields. Keywords are limited to the top 12, the overview is capped at 600 characters, and action items are limited to the top 5. The meeting date is formatted as a readable date string. If the transcript is not found or not yet ready, the step throws an error and the workflow stops cleanly without creating a blank row in your sheet. Step 5 — AI Agent: Categorize Meeting GPT-4o-mini receives the meeting title, keywords, overview, action items, participants, and duration. It assigns exactly one category from the seven options and returns three structured fields: the category name, a confidence level (High, Medium, or Low), and a one-sentence plain-text reason for the choice. The model runs at temperature 0.1 for highly consistent, repeatable categorization. Step 6 — OpenAI Chat Model This is the language model powering the categorization step. It uses GPT-4o-mini at temperature 0.1 and is capped at 150 tokens — only three short fields are needed per meeting, making this extremely cost-efficient at approximately $0.0002 per meeting. Step 7 — Structured Output Parser This step enforces the exact three-field schema GPT-4o-mini must return. It validates that category, confidence, and reason are all present and correctly typed before the results move forward, preventing any malformed AI output from reaching your sheet. Step 8 — Code: Prepare Sheet Row The AI output is read and emoji labels are added based on category and confidence. Category emojis: 💰 Sales, 🤝 Client, 🏢 Internal, 👥 HR, 🛠️ Product, 📊 Finance, 📋 Other. Confidence emojis: ✅ High, 🟡 Medium, ⚠️ Low. All meeting metadata from step 4 is combined with the AI output into one complete row ready for logging. Step 9 — Google Sheets: Log to Google Sheets One row is appended to your Meeting Categories tab with all 10 columns populated: date, meeting title, category with emoji, confidence with emoji, reason, duration in minutes, participants, keywords, Fireflies transcript URL, and the logged-at timestamp. The final result: every meeting ends with a new row in your Google Sheet — categorized, confidence-rated, and ready to filter or sort by meeting type. Key Features ✅ Fires automatically on every meeting — No manual input ever needed after the one-time webhook setup in Fireflies ✅ Seven category options cover all meeting types — Sales, Client, Internal, HR, Product, Finance, and Other handle virtually every business meeting scenario ✅ Confidence rating per classification — High, Medium, and Low ratings tell you exactly how certain the AI was so you can spot which rows to review manually ✅ Emoji-coded for instant visual scanning — Category and confidence columns use emojis so you can read your sheet at a glance without needing to filter ✅ Direct Fireflies link in every row — Each row includes a clickable link back to the full Fireflies transcript so you can open the original meeting in one click ✅ Ultra-low cost per meeting — GPT-4o-mini at temperature 0.1 with a 150-token cap costs approximately $0.0002 per meeting — a full year of daily meetings costs less than a dollar ✅ Structured output enforced — A schema parser validates all three AI fields before anything reaches your sheet — no broken or incomplete rows ✅ Lightweight API call — Only summary fields are fetched from Fireflies (not full sentences), keeping each API call fast and the response small Customisation Options Add your own custom categories — In node AI Agent — Categorize Meeting, edit the category list in the prompt to replace or add categories that match your business (e.g. replace "Finance" with "Investor" or add "Partnership" as an eighth option) — also update the schema in Structured Output Parser to match. Add a Slack notification for Sales meetings — After node Log to Google Sheets, add an IF check that reads the category field — if it contains "Sales", post a Slack message to your #sales-team channel with the meeting title, participants, and Fireflies link for immediate team visibility. Filter out internal meetings from the sheet — In node Prepare Sheet Row, add a condition: if the category is "Internal" and confidence is "High", set a skipLog flag to true — then add an IF check before Log to Google Sheets to bypass logging for confirmed internal meetings and keep your sheet focused on client-facing activity. Add a weekly category summary email — Add a separate Schedule trigger that fires every Monday morning, reads the Meeting Categories sheet via a Google Sheets read step, counts rows by category from the past 7 days, and sends a summary email showing how many Sales, Client, and Internal meetings happened that week. Use a different sheet per category — In node Prepare Sheet Row, add logic that maps each category to a different sheetName value — then Log to Google Sheets will route each meeting to its own dedicated tab (e.g. all Sales calls on a Sales tab, all Client calls on a Client tab). Troubleshooting Workflow not triggering when a meeting ends: Confirm the workflow is Active — inactive workflows do not receive Fireflies webhooks Log in to app.fireflies.ai → Settings → Developer Settings → Webhooks → confirm the URL is saved and matches the Production URL from node Fireflies Webhook exactly Note that Fireflies only fires the webhook for meetings where you are the organizer — guest meetings will not trigger it Fireflies API key error or transcript not found: Confirm YOUR_FIREFLIES_API_KEY in node Set Config Values is replaced with your actual key — not the placeholder text Get your key from fireflies.ai → Settings → Integrations → Fireflies API If the transcript is not found, Fireflies may still be processing the meeting — this workflow stops cleanly with an error in this case; the meeting will not be logged until you rerun it manually or wait for the next webhook OpenAI not categorizing correctly: Confirm the API key is connected in node OpenAI Chat Model and your account has available credits Check the execution log of node AI Agent — Categorize Meeting for the raw GPT response If categories are inconsistent, confirm the prompt text in AI Agent — Categorize Meeting is intact and has not been accidentally edited Google Sheets not logging rows: Confirm the Google Sheets OAuth2 credential in node Log to Google Sheets is connected and not expired — re-authorize if needed Check that YOUR_GOOGLE_SHEET_ID in node Set Config Values is the ID from the sheet URL, not the full URL Confirm the tab is named Meeting Categories exactly — capitalization must match the sheetName value in Set Config Values Verify all 10 column headers in row 1 match exactly: Date, Meeting Title, Category, Confidence, Reason, Duration (min), Participants, Keywords, Fireflies URL, Logged At AI returning a category not in the list: The Structured Output Parser enforces the schema — if an unexpected value appears, check the execution log of AI Agent — Categorize Meeting for the raw output Confirm the seven category names in the prompt match exactly what the schema parser expects: Sales, Client, Internal, HR, Product, Finance, Other Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@isawow.com 🌐 Website: https://isawow.com/
by Yevhenii
How it works Send a target niche and location via Telegram message Workflow discovers businesses via Google Maps API AI enriches contacts with email and LinkedIn data via Serper GPT-4o scores and qualifies each lead Personalized cold email sent automatically with follow-ups Set up steps Import the workflow JSON into n8n (5 min) Add credentials: OpenAI, Google Maps API, Serper, Gmail, Telegram Configure the target niche in the settings node Send a test message to your Telegram bot Requirements n8n instance (cloud or self-hosted) OpenAI API key Google Maps API key Serper key Telegram bot token
by Redowan Ahmed Farhan
How it works Triggered every 4 hours (or manually) to check all active products in Google Sheets Each product is evaluated for stock level and urgency against its reorder threshold Products with sufficient stock are skipped; duplicate daily orders are prevented OpenAI generates a professional Purchase Order message for products needing reorder PO is posted to a Slack channel; inventory sheet is updated and reorder log appended A summary report is posted to Slack after each full run An error handler sends a Slack alert if anything fails Set up steps Estimated time: ~15 minutes Add your OpenAI API key; connect Slack and Google Sheets via OAuth2 Create a Google Sheet with a Products tab and a Reorder Log tab (column names in setup sticky note) Select your spreadsheet in all Google Sheets nodes Select your Slack channels in the three Slack nodes Activate the workflow
by Meet Soni
How it works Runs automatically on a weekly schedule and fetches the live HTML of every competitor page you define Strips all HTML tags and captures a clean text snapshot of each page Compares the current snapshot against the previously stored version using workflow static data — no external database needed Sends only changed pages to GPT-4.1-mini, which analyses differences across pricing, positioning, product launches, and feature updates Formats the AI analysis into a structured digest with an executive summary, material changes per competitor, suggested response actions, and watch items for next run Saves the digest as a Gmail draft addressed to your chosen recipient — ready to review and forward to your team Set up steps Open the Define Competitors node and replace the example entries with your competitor names, URLs, and what to watch for (e.g. pricing, features, messaging) Open the Build Digest Prompt node and replace replace-me@example.com with your recipient's email address Connect your OpenAI credential to the OpenAI node (GPT-4.1-mini or higher recommended) Connect your Gmail OAuth2 credential to the Gmail node Run the workflow once manually to store the first baseline snapshots — no digest will be sent on this first run Activate the workflow — it will now run every week and only alert you when something has actually changed
by TakatoYamada
Quick Overview This workflow triggers on failed Stripe invoice payments, uses OpenAI to generate an escalating dunning email, sends it through Gmail, logs the attempt to Google Sheets, and notifies the owner in Slack when the final reminder threshold is reached. How it works Triggers when Stripe emits an invoice.payment_failed event. Extracts and normalizes key invoice fields like customer email/name, amount due, currency, attempt count, and hosted invoice URL. Uses OpenAI (GPT-4o-mini) to draft a structured dunning email with a subject and body that escalates tone based on the attempt number. Sends the generated email to the customer via Gmail with the AI-produced subject and message. Appends the email attempt details to a Google Sheets spreadsheet for tracking. If the attempt count is 3 or higher, posts an escalation message to a designated Slack channel. Setup Connect your Stripe account in the Stripe Trigger node so it can receive invoice.payment_failed events. Add OpenAI credentials for the GPT-4o-mini chat model used to generate the dunning email content. Add Gmail credentials and confirm the sending mailbox used by the Gmail node. Add Google Sheets credentials and replace the placeholder spreadsheet URL/ID, ensuring a sheet named “Dunning” exists. Add Slack credentials and set the target channel (for example, #billing) for final-attempt escalation messages.
by Abi Odedeyi
This n8n template demonstrates how to triage tenant maintenance requests automatically; matching each ticket to the right contractor by category and postcode area, dispatching the job by email and SMS, and detecting duplicate tickets before they snowball. Use cases are many: residential lettings agencies juggling dozens of properties, short-let and HMO operators tired of duplicate "is anyone fixing this?" tickets, or commercial property managers who need a paper trail for every dispatch. Oher industries juggling tickets can use the system too! Good to know Each Twilio SMS is billed per message. See Twilio SMS pricing for the rate in your country; UK SMS costs ~$0.04 at time of writing. The postcode-matching logic in this template is built around UK postcodes (e.g. SW1A 1AA → SW1). For US ZIP codes or other formats, you'll need to adjust the Extract Postcode District code node. The duplicate-detection window is 24 hours by default; adjust it inside the Evaluate Duplicates code node for your portfolio size. Any CRM will do if you don't want to use Airtable. How it works The Airtable Trigger polls the Maintenance Tickets table every minute for new tenant submissions. Before anything else, we check for duplicates; same tenant, same property, same category, within the last 24 hours. Matches get flagged as Possible Duplicate and an alert email goes to the admin. For real new tickets, we normalise the postcode (e.g. SW1A 1AA becomes SW1) so the search matches on area rather than the full code. We then search the Vendors table for active vendors who handle that category and serve that postcode district, sorted by response time, and pick the fastest match. If we find a vendor, we update the ticket (assigned, status Assigned, timestamp), email the vendor the full job details, fire a Twilio SMS so they see it on their phone within seconds, and email the tenant a confirmation with the contractor's name and expected response time. If no vendor matches, we don't drop the ticket on the floor; we set the status to Pending Manual Assignment, email the admin so a human can step in, and email the tenant a holding message so they know the request landed. How to use Duplicate the Airtable base before you import; you need a Vendors table and a Maintenance Tickets table. The schema is documented in the sticky notes inside the workflow. The trigger polls every minute by default, but feel free to swap it for an Airtable webhook (instant) if you have an Enterprise plan, or a form/webhook trigger if tenants submit elsewhere. The vendor SMS uses Twilio; replace the from number with your verified Twilio number before going live. Set the admin email in the two admin Gmail nodes (Email to Admin - Alert and Send Duplicate Alert to Admin) so escalations land in the right inbox. Requirements Airtable base with Vendors and Maintenance Tickets tables Gmail account for vendor, tenant, and admin emails Twilio account with a verified from number for SMS Customising this workflow The same triage pattern works anywhere you need to route inbound requests by category and location. Try it for field-service dispatch, IT helpdesk ticket assignment, or routing customer support tickets to the right specialist based on issue type and language.