by Kev
Generate ready-to-publish short-form videos from text prompts using AI Click on the image to see the Example output in google drive Transform simple text concepts into professional short-form videos complete with AI-generated visuals, narrator voice, background music, and dynamic text overlays - all automatically generated and ready for Instagram, TikTok, or YouTube Shorts. This workflow demonstrates a cost-effective approach to video automation by combining AI-generated images with audio composition instead of expensive AI video generation. Processing takes 1-2 minutes and outputs professional 9:16 vertical videos optimized for social platforms. The template serves as both a showcase and building block for larger automation systems, with sticky notes providing clear guidance for customization and extension. Who's it for Content creators, social media managers, and marketers who need consistent, high-quality video content without manual production work. Perfect for motivational content, storytelling videos, educational snippets, and brand campaigns. How it works The workflow uses a form trigger to collect video theme, setting, and style preferences. ChatGPT generates cohesive scripts and image prompts, while Google Gemini creates themed background images and OpenAI TTS produces narrator audio. Background music is sourced from Openverse for CC-licensed tracks. All assets are uploaded to JsonCut API which composes the final video with synchronized overlays, transitions, and professional audio mixing. Results are stored in NocoDB for management. How to set up JsonCut API: Sign up at jsoncut.com and create an API key at app.jsoncut.com. Configure HTTP Header Auth credential in n8n with header name x-api-key OpenAI API: Set up credentials for script generation and text-to-speech Google Gemini API: Configure access for Imagen 4.0 image generation NocoDB (Optional): Set up instance for video storage and configure database credentials Requirements JsonCut free account with API key OpenAI API access for GPT and TTS Google Gemini API for image generation NocoDB (optional) for result storage How to customize the workflow This template is designed as a foundation for larger automation systems. The modular structure allows easy modification of AI prompts for different content niches (business, wellness, education), replacement of the form trigger with RSS feeds or database triggers for automated content generation, integration with social media APIs for direct publishing, and customization of visual branding through JsonCut configuration. The workflow can be extended for bulk processing, A/B testing multiple variations, or integration with existing content management systems. Sticky notes throughout the workflow provide detailed guidance for common customizations and scaling options.
by Robin Geuens
Overview Get a weekly report on website traffic driven by large language models (LLMs) such as ChatGPT, Perplexity, and Gemini. This workflow helps you track how these tools bring visitors to your site. A weekly snapshot can guide better content and marketing decisions. How it works The trigger runs every Monday. Pull the number of sessions on your website by source/medium from Google Analytics. The code node uses the following regex to filter referral traffic from AI providers like ChatGPT, Perplexity, and Gemini: /^.openai.|.copilot.|.chatgpt.|.gemini.|.gpt.|.neeva.|.writesonic.|.nimble.|.outrider.|.perplexity.|.google.bard.|.bard.google.|.bard.|.edgeservices.|.astastic.|.copy.ai.|.bnngpt.|.gemini.google.$/i; Combine the filtered sessions into one list so they can be processed by an LLM. Generate a short report using the filtered data. Email the report to yourself. Setup Get or connect your OpenAI API key and set up your OpenAI credentials in n8n. Enable Google Analytics and Gmail API access in the Google Cloud Console. (Read more here). Set up your Google Analytics and Gmail credentials in n8n. If you're using the cloud version of n8n, you can log in with your Google account to connect them easily. In the Google Analytics node, add your credentials and select the property for the website you’re working with. Alternatively, you can use your property ID, which can be found in the Google Analytics admin panel under Property > Property Details. The property ID is shown in the top-right corner. Add this to the property field. Under Metrics, select the metric you want to measure. This workflow is configured to use sessions, but you can choose others. Leave the dimension as-is, since we need the source/medium dimension to filter LLMs. (Optional) To expand the list of LLMs being filtered, adjust the regex in the code node. You can do this by copying and pasting one of the existing patterns and modifying it. Example: |.example.| The LLM node creates a basic report. If you’d like a more detailed version, adjust the system prompt to specify the details or formatting you want. Add your email address to the Gmail node so the report is delivered to your inbox. Requirements OpenAI API key for report generation Google Analytics API enabled in Google Cloud Console Gmail API enabled in Google Cloud Console Customizing this workflow The regex used to filter LLM referral traffic can be expanded to include specific websites. The system prompt in the AI node can be customized to create a more detailed or styled report.
by Ibrahim Emre POLAT
How it works Automatically generates professional PDF invoices from webhook data and delivers them via email while storing backups in Google Drive. Perfect for freelancers, small businesses, and service providers who need automated billing workflows. Set up steps Configure environment variables for company information (name, address, email, phone). Set up your PDF generation API service account (PDFShift recommended). Configure SMTP email credentials for invoice delivery. Set up Google Drive OAuth2 for cloud storage. Deploy the workflow and test with sample invoice data. Key features Smart invoice number generation if not provided Automatic tax calculations with configurable rates Professional HTML templates with company branding Parallel processing for email and storage Comprehensive error handling and validation Detailed success confirmation responses Required environment variables COMPANY_NAME - Your business name COMPANY_ADDRESS - Business mailing address COMPANY_EMAIL - Billing contact email COMPANY_PHONE - Business phone number PDF_API_URL - PDF generation service endpoint PDF_API_KEY - API authentication key GDRIVE_INVOICE_FOLDER_ID - Google Drive folder ID API requirements PDF generation service (PDFShift, HTML/CSS to PDF API, or similar), SMTP email service for delivery, Google Drive API access for storage. Input format { "customerName": "John Smith", "customerEmail": "john@example.com", "items": [ {"description": "Web Design", "quantity": 1, "price": 500} ], "dueDate": "2025-02-15" }
by AppStoneLab Technologies LLP
Weekly Google Analytics 4 Report - Full WoW Tracking & Auto-Generated with Gemini AI Stop manually building weekly analytics reports. This workflow automatically fetches your GA4 data every Monday morning, generates an AI-written executive summary using Gemini, builds a premium formatted HTML email with deep Week-over-Week (WoW) comparisons for every metric, and delivers it straight to your stakeholders' inboxes — fully hands-free. 👤 Who is this for? Marketing teams* and *agency owners** who report GA4 metrics weekly to clients Product managers* and *founders** who want a Monday morning performance digest Freelancers** managing analytics for multiple clients who want to automate reporting Anyone who spends 30–60 minutes every week manually pulling GA4 numbers and calculating WoW changes 🚩 What problem does this solve? Manual GA4 reporting is repetitive, error-prone, and time-consuming. This template eliminates that entirely — every Monday at 8:00 AM in your configured timezone, a fully formatted report lands in your inbox. With the new dual-node architecture, it automatically calculates accurate WoW trends for your overall metrics, specific pages, traffic sources, and more, all contextualized by a Gemini-generated executive summary. ⚙️ What this workflow does ⏰ Triggers every Monday at 8:00 AM via the Schedule Trigger node 📡 Fetches 14 GA4 reports in parallel - pulling both Current Week and Previous Week data simultaneously for speed: Overview metrics Top 5 Screens / Pages by views Top 5 Traffic Sources / Referrals Top 5 Events by count Top 5 Countries by sessions Device breakdown (mobile / desktop / tablet) New vs Returning users 🔀 Merges all 14 responses and passes the complete historical dataset forward 🤖 Gemini writes a 3-5 bullet point summary analyzing the full WoW dataset to highlight performance trends, audience behaviour, and actionable recommendations 🧮 Code node processes all data - aligns current vs. previous week data, calculates WoW % changes for every single category, handles new/dropped entries, and builds the full inline-CSS HTML email 📧 Sends the report via standard SMTP / Email node to your configured recipients 📧 What the email report includes Header** - dark luxury card with 4 KPI tiles (Users, Sessions, Bounce Rate, Avg Duration) and WoW arrows AI Executive Summary** - 3-5 bullet point Gemini-generated insight (hidden automatically if Gemini fails) Overview Table** - all 5 core metrics with This Week / Last Week / WoW % change pill badges Audience** - New vs Returning users with visual progress bars and WoW changes Top Screens** - ranked by views, including previous week values and WoW trend pills. (not set) and (empty) rows are preserved for transparency Traffic Sources** - top referral channels with WoW changes; direct traffic auto-labelled as Direct / App Open Top Events** - tracks interaction trends with WoW changes; system events (first_open, os_update, etc.) are filtered out automatically Geography** - top 5 countries by sessions with WoW comparisons Devices** - mobile / desktop / tablet with visual progress bars and WoW trend pills 🛠️ Setup Instructions Step 1 - Google Analytics 4 Credential Go to n8n Credentials → Add new → search Google Analytics OAuth2 Sign in with the Google account that has access to your GA4 property Assign this credential to all 14 GA4 nodes Step 2 - Set your GA4 Property ID Open each of the 14 GA4 nodes In the Property ID field, replace {YOUR_PROPERTY_ID} with your GA4 numeric property ID Find your Property ID at: GA4 Admin → Property Settings → Property ID (looks like 123456789) Step 3 - Gemini API Credential Get your free API key at aistudio.google.com Go to n8n Credentials → Add new → search Google Gemini Paste your API key and assign it to the Generate AI Summary node Step 4 - Email / SMTP Credential Go to n8n Credentials → Add new → search SMTP (or swap the node for Gmail OAuth2 if preferred) Enter your email host, port, and login credentials Assign to the Send Weekly Report node Step 5 - Set Recipients Open the Send Weekly Report node (or the Code node depending on your mapping preference) Update the To Email field with your recipient address(es): 'email@example.com, email2@example.com' Alternatively, update the recipients: line at the bottom of the Build Report & Email HTML Code node. Step 6 - Set Timezone Open the Weekly Monday Trigger node Update the workflow settings to match your local timezone so the 8:00 AM trigger fires correctly. 🔧 How to Customise Change the schedule** → Open the trigger node, adjust the day and time to any cadence you need (daily, bi-weekly, monthly) Change the client brand in the footer** → Search for AppStoneLab Technologies in the Code node and replace it with your client or company name Filter or change events** → In the Code node, find the EXCLUDE_EVENTS array and add/remove event names to control which events appear in the report Change the AI summary language or tone** → Edit the prompt inside the Generate AI Summary Gemini node to match your client's preferred reporting style 📦 Requirements | Service | Purpose | Free Tier Available | | --- | --- | --- | | Google Analytics 4 | Source of all report data | ✅ Yes | | Google Gemini API | AI executive summary generation | ✅ Yes (via AI Studio) | | SMTP / Email | Email delivery | ✅ Yes | ⚠️ Notes Mobile app properties** - If your GA4 property tracks a mobile app, the workflow uses unifiedScreenName instead of pagePath, which works correctly for both web and app properties WoW calculations** - Bounce rate change is intentionally inverted (a decrease is shown as positive/green). If a metric like a specific page or country is new this week, the workflow dynamically tags it as "New" instead of breaking the calculation. Gemini failure handling** - If the Gemini node fails for any reason, the AI summary section is automatically hidden and the rest of the report sends normally Execute Once** - All 14 GA4 nodes have Execute Once enabled to prevent duplicate rows from the merge operation
by Oneclick AI Squad
This workflow automatically notifies travelers about their pending trip payments and provides secure payment links through Email and WhatsApp. It runs twice daily (at 7 AM and 7 PM) to ensure timely reminders before the due date. Designed for travel agencies, it simplifies payment tracking, reduces manual follow-up, and ensures every traveler receives personalized reminders with real-time payment status updates. 🔧 Main Components Daily Payment Check – 7 AM & 7 PM Scheduled triggers that start the workflow daily at 7 AM and 7 PM. Read Pending Travel Payment Fetches traveler payment records from an Excel sheet (using getAll method). Process Payment Reminders Filters records to find pending payments due within the next 3 days. Create Payment Reminders Generates personalized payment reminders. Make Reminder For Email Prepares email-friendly messages with payment links. Send Email Reminder Sends the payment reminder email with a secure payment link to the traveler. Prepare WhatsApp Reminder Generates WhatsApp-friendly messages with payment and payment details. Send WhatsApp Message Sends the message to the traveler’s WhatsApp number using a message API. Update Status Of Reminder Updates the Excel file to mark reminders as sent to avoid duplicates. 🧩 Channels Used 📧 Email – with personalized payment link 💬 WhatsApp – formatted reminder message 🔐 Payment Integration Secure payment links are auto-generated per traveler to enable direct and safe online payments. ✅ Essential Prerequisites Excel sheet with payment records (travel_payment_data.xlsx) SMTP credentials for sending email WhatsApp API or provider integration (like Twilio or Gupshup) Access to a payment gateway or service for link generation File storage access to update reminder status in Excel 📁 Required Excel File Structure (travel_payment_data.xlsx) | Traveler ID | Name | Email | Phone | Payment Due Date | Amount | Reminder Sent | |-------------|------------|-------------------|---------------|------------------|---------|---------------| | TR001 | Arjun Patel| arjun@example.com | +919876543210 | 2025-10-20 | ₹3000 | No | 🧾 Expected Input Format Example { "travelerId": "TR001", "name": "Arjun Patel", "email": "arjun@example.com", "phone": "+919876543210", "dueDate": "2025-10-20", "amount": "₹3000", "reminderSent": "No" } 🚀 Key Features ⏰ Scheduled Daily Execution – Fully automated at 7 AM and 7 PM 🧮 Due-Date Filtering – Only targets payments due in the next 3 days 💬 Multi-Channel Notifications – Sends reminders via both Email and WhatsApp 🔗 Secure Payment Links – Auto-generated for each traveler 🔄 Reminder Tracking – Prevents duplicate reminders by updating status ⚙️ Quick Setup Guide Import Workflow JSON into your n8n instance. Configure schedule in the “Daily Payment Check” node (default: 7 AM & 7 PM). Set Excel file path in the “Read Pending Travel Payment” node. Update your payment processing logic in the “Process Payment Reminders” node. Add email credentials in the “Send Email Reminder” node. Integrate WhatsApp provider API in the “Send WhatsApp Message” node. Define how you generate secure payment links. Test with sample data and activate workflow.
by Yang
📄 What this workflow does This workflow automatically turns any uploaded video into structured blog research using AI tools. It transcribes the video, extracts keywords, runs research based on those keywords, and saves the final result to a Google Sheet. It uses Dumpling AI for transcription and research, OpenAI for keyword extraction, and Google Sheets for organizing the output. 👤 Who is this for This workflow is perfect for: Content creators who repurpose video content into blog posts SEO and marketing teams looking to extract topics and keyword insights from video materials Anyone who wants to automate video-to-text and research workflows without doing it manually ✅ Requirements Google Drive** account with a folder to watch for video uploads Dumpling AI** API access for transcription and agent research OpenAI (GPT-4o)** credentials for keyword extraction Google Sheets** document with the following column headers: Keywords topicsFromPerplexity blogPostsFromGoogle ⚙️ How to set up Connect your Google Drive and choose the folder where videos will be uploaded. Set up your Dumpling AI and OpenAI GPT-4o API credentials. Create a Google Sheet with the required columns. Replace the default folder ID and spreadsheet ID in the workflow with your own. Activate the workflow to start watching for new videos. 🔁 How it works (Workflow Steps) Watch Uploaded Videos: Triggers when a new video is added to your selected Google Drive folder. Download Video: Downloads the uploaded video file. Convert Video to Base64: Prepares the video for API submission by converting it to base64. Transcribe with Dumpling AI: Sends the video to Dumpling AI to get a full transcript. Extract Keywords with OpenAI: Analyzes the transcript and extracts five key SEO keywords. Run Competitor Research via Dumpling AI: Uses those keywords to fetch related topics and blog examples from Perplexity and Google. Format Results for Google Sheets: Formats the research results into clean text blocks. Append to Google Sheets: Saves the data into your specified Google Sheet. 🛠️ Customization Ideas Add a translation step after transcription to support multilingual content research. Modify the GPT prompt to extract summaries or titles instead of keywords. Change the Google Sheet structure to log video filenames and timestamps. Add email or Slack notifications to alert you when research is complete.
by Ranjan Dailata
Who this is for This workflow is designed for teams that collect feedback or survey responses via Jotform and want to automatically: Analyze sentiment (positive, neutral, negative) of each response. Extract key topics and keywords from qualitative text. Generate AI summaries and structured insights. Store results in Google Sheets and n8n DataTables for easy reporting and analysis. Use Cases Customer experience analysis Market research & survey analysis Product feedback clustering Support ticket prioritization AI-powered blog or insight generation from feedback What this workflow does This n8n automation connects Jotform, Google Gemini, and Google Sheets to turn raw responses into structured insights with sentiment, topics, and keywords. Pipeline Overview Jotform → Webhook → Gemini (Topics + Keywords) → Gemini (Sentiment) → Output Parser → Merge → Google Sheets Jotform Trigger Captures each new submission from your Jotform (e.g., a feedback or survey form). Extracts raw fields ($json.body.pretty) such as name, email, and response text. Format Form Data (Code Node) Converts the Jotform JSON structure into a clean string for AI input. Ensures the text is readable and consistent for Gemini. Topics & Keyword Extraction (Google Gemini + Output Parser) Goal: Identify the main themes and important keywords from responses. { "topics": [ { "topic": "Product Features", "summary": "Users request more automation templates.", "keywords": ["AI templates", "automation", "workflow"], "sentiment": "positive", "importance_score": 0.87 } ], "global_keywords": ["AI automation", "developer tools"], "insights": ["Developers desire more creative, ready-to-use AI templates."], "generated_at": "2025-10-08T10:30:00Z" } Sentiment Analyzer (Google Gemini + Output Parser) Goal: Evaluate overall emotional tone and priority. { "customer_name": "Ranjan Dailata", "customer_email": "ranjancse@gmail.com", "feedback_text": "Please build more interesting AI automation templates.", "sentiment": "positive", "confidence_score": 0.92, "key_phrases": ["AI automation templates", "developer enablement"], "summary": "Customer requests more AI automation templates to boost developer productivity.", "alert_priority": "medium", "timestamp": "2025-10-08T10:30:00Z" } Merge + Aggregate Combines the topic/keyword extraction and sentiment output into a single structured dataset. Aggregates both results for unified reporting. Persist Results (Google Sheets) Writes combined output into your connected Google Sheet. Two columns recommended: feedback_analysis → Sentiment + Summary JSON topics_keywords → Extracted Topics + Keywords JSON Enables easy visualization, filtering, and reporting. Visualization (Optional) Add Sticky Notes or a logo image node in your workflow to: Visually describe sections (e.g., “Sentiment Analysis”, “Topic Extraction”). Embed brand logo: Example AI Output (Combined) { "feedback_analysis": { "customer_name": "Ranjan Dailata", "sentiment": "positive", "summary": "User appreciates current templates and suggests building more advanced AI automations.", "key_phrases": ["AI automation", "developer templates"] }, "topics_keywords": { "topics": [ { "topic": "AI Template Expansion", "keywords": ["AI automation", "workflow templates"], "sentiment": "positive", "importance_score": 0.9 } ], "global_keywords": ["automation", "AI development"] } } Setup Instructions Pre-requisite If you are new to Jotform, Please do signup using Jotform Signup For the purpose of demonstation, we are considering the Jotforms Prebuilt New Customer Registration Form as a example. However, you are free to consider for any of the form submissions. Step 0: Local n8n (Optional) If using local n8n, set up ngrok: ngrok http 5678 Use the generated public URL as your Webhook URL base for Jotform integration. Step 1: Configure the Webhook Copy the Webhook URL generated by n8n (e.g., /webhook-test/f3c34cda-d603-4923-883b-500576200322). You can copy the URL by double clicking on the Webhook node. Make sure to replace the base url with the above Step 0, if you are running the workflow from your local machine. In Jotform, go to your form → Settings → Integrations → Webhooks → paste this URL. Now, every new form submission will trigger the n8n workflow. Step 2: Connect Google Gemini Create a Google Gemini API Credential in n8n. Select the model models/gemini-2.0-flash-exp. Step 3: Create Data Storage Create a DataTable named JotformFeedbackInsights with columns: feedback_analysis (string) topics_keywords (string) Step 4: Connect Google Sheets Add credentials under Google Sheets OAuth2. Link to your feedback tracking sheet. Step 5: Test the Workflow Submit a form via Jotform. Check results: AI nodes return structured JSON. Google Sheet updates with new records. Customization Tips Change the Prompt You can modify the topic extraction prompt to highlight specific themes: You are a research analyst. Extract main topics, keywords, and actionable insights from this feedback: {{ $json.body }} Extend the Output Schema Add more fields like: { "suggested_blog_title": "", "tone": "", "recommendations": [] } Then update your DataTable or Sheets schema accordingly. Integration Ideas Send sentiment alerts to Slack for high-priority feedback. Push insights into Notion, Airtable, or HubSpot. Generate weekly reports summarizing trends across all submissions. Summary This workflow turns raw Jotform submissions into actionable insights using Google Gemini AI — extracting topics, keywords, and sentiment while automatically logging everything to Google Sheets.
by Ruthwik
📧 AI-Powered Email Categorization & Labeling in Zoho Mail This n8n template demonstrates how to use AI text classification to automatically categorize incoming emails in Zoho Mail and apply the correct label (e.g., Support, Billing, HR). It saves time by keeping your inbox structured and ensures emails are routed to the right category. Use cases include: Routing customer support requests to the correct team. Organizing billing and finance communications separately. Streamlining HR and recruitment email handling. Reducing inbox clutter and ensuring no important message is missed. ℹ️ Good to know You’ll need to configure Zoho OAuth credentials — see Self Client Overview, Authorization Code Flow, and Zoho Mail OAuth Guide. The labels must already exist in Zoho Mail (e.g., Support, Billing, HR). The workflow fetches these labels and applies them automatically. The Zoho Mail API domain changes depending on your account region: .com → Global accounts (https://mail.zoho.com/api/...) .eu → EU accounts (https://mail.zoho.eu/api/...) .in → India accounts (https://mail.zoho.in/api/...) Example: For an EU account, the endpoint would be: https://mail.zoho.eu/api/accounts/<accountID>/updatemessage The AI model used for text classification may incur costs depending on your provider (e.g., OpenRouter). Start by testing with a small set of emails before enabling for your full inbox. 🔄 How it works A new email in Zoho Mail triggers the workflow. OAuth authentication retrieves access to Zoho Mail’s API. All available labels are fetched, and a label map (display name → ID) is created. The AI model analyzes the subject and body to predict the correct category. The workflow routes the email to the right category branch. The matching Zoho Mail label is applied (final node is deactivated by default). 🛠️ How to use Create the required labels (e.g., Support, Billing, HR, etc.) in your Zoho Mail account before running the workflow. Replace the Zoho Mail Account ID in the Set Account ID node. Configure your Zoho OAuth credentials in the Get Access Token node. Update the API base URL to match your Zoho account’s region (.com, .eu, .in, etc.). Activate the Apply Label to Email node once ready for production. Optionally, adjust categories in the AI classifier prompt to fit your organization’s needs. 📋 Requirements Zoho Mail account with API access enabled. Labels created in Zoho Mail for each category you want to classify. OAuth credentials set up in n8n. Correct Zoho Mail API domain (.com, .eu, .in) based on your account region. An AI model (via OpenRouter or other provider) for text classification. 🎨 Customising this workflow This workflow can be adapted to many inbox management scenarios. Examples include: Auto-routing customer inquiries to specific departments. Prioritizing VIP client emails with special labels. Filtering job applications directly into an HR-managed folder.
by Automate With Marc
Social Media Post & Caption Generator (Google Drive → AI Caption → Approval → Auto-Post) Automatically turn your existing content library into approved, AI-written social media posts. This workflow selects a random file from Google Drive, generates an Instagram caption using AI, sends it to you for approval, and—once approved—uploads and publishes the post via Blotato. 🎥 Watch Step-By-Step Guide: https://youtu.be/9XU9ECcj9dg What this template does On a scheduled basis (default: 10:00 AM), this workflow: Searches a specified Google Drive folder for content files Randomly selects one file to avoid repetitive posting Uses AI to generate an Instagram-ready caption based on the file name Sends the caption + file link to you via email for approval If approved: Downloads the file from Drive Uploads the media to Blotato Creates and publishes the social media post If rejected: Automatically loops back and selects a different random file Why it’s useful Keeps your social media consistent with minimal manual effort Adds a human-in-the-loop approval step for quality control Eliminates the need to manually write captions or pick content Ideal for creators, solo marketers, and small teams managing content at scale Requirements Before using this template, connect the following credentials in n8n: Google Drive OAuth (searching & downloading files) OpenAI API (caption generation) Gmail OAuth (approval email workflow) Blotato API (media upload & social posting) All credentials must be added manually after importing the template. No sensitive data is included in the template. How it works (Node overview) Schedule Trigger Runs the workflow at a fixed time each day. Google Drive – Search Files and Folders Fetches all files from a specified Drive folder. Randomizer (Code Node) Selects a random file from the available list to ensure content variety. Caption Generator AI Uses an AI model to generate a descriptive Instagram caption based on the file name. Gmail – Send for Approval and Wait Emails the generated caption and file link to you and pauses execution until approval or rejection. IF (Approved) Yes: proceeds to download, upload, and publish No: loops back to select another random file Google Drive – Download File Downloads the approved content file. Blotato – Upload Media & Create Post Uploads the media and publishes the post to the connected social account. Setup instructions Import the template into your n8n workspace Open the Google Drive nodes and connect your Drive OAuth credential Replace the Folder ID with your own content folder Connect your OpenAI credential in the Caption Generator node Connect Gmail OAuth and set your approval email address Connect your Blotato account and select the target social profile Run the workflow once to test the approval loop Activate the workflow to start automated posting Customization ideas Adjust the AI system prompt to change tone (funny, educational, sales-focused) Add hashtag rules (e.g. max 5 hashtags, niche-specific only) Replace random selection with “least recently posted” logic using a Data Table Duplicate the Blotato node to post to multiple platforms Add a fallback step to auto-edit captions that exceed character limits Troubleshooting No files found: confirm the Google Drive folder ID and permissions Approval email not received: check Gmail OAuth scopes and spam folder Caption quality not ideal: refine the AI system prompt Upload fails: confirm Blotato account permissions and social account connection
by vinci-king-01
Employee Directory Sync – Microsoft Teams & Coda ⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template. This workflow keeps your employee directory perfectly synchronized across your HRIS (or any REST-compatible HR database), Microsoft Teams, Coda docs, and Slack channels. It automatically polls the HR system on a schedule, detects additions or updates, and propagates those changes to downstream tools so everyone always has the latest employee information. Pre-conditions/Requirements Prerequisites An active n8n instance (self-hosted or n8n cloud) ScrapeGraphAI community node installed A reachable HRIS API (BambooHR, Workday, Personio, or any custom REST endpoint) Existing Microsoft Teams workspace and a team/channel for announcements A Coda account with an employee directory table A Slack workspace and channel where directory updates will be posted Required Credentials Microsoft Teams OAuth2** – To post adaptive cards or messages Coda API Token** – To insert/update rows in your Coda doc Slack OAuth2** – To push notifications into a Slack channel HTTP Basic / Bearer Token** – For your HRIS REST endpoint ScrapeGraphAI API Key** – (Only required if you scrape public profile data) HRIS Field Mapping | HRIS Field | Coda Column | Teams/Slack Field | |------------|-------------|-------------------| | firstName| First Name| First Name | | lastName | Last Name | Last Name | | email | Email | Email | | title | Job Title | Job Title | | department| Department| Department | (Adjust the mapping in the Set and Code nodes as needed.) How it works This workflow keeps your employee directory perfectly synchronized across your HRIS (or any REST-compatible HR database), Microsoft Teams, Coda docs, and Slack channels. It automatically polls the HR system on a schedule, detects additions or updates, and propagates those changes to downstream tools so everyone always has the latest employee information. Key Steps: Schedule Trigger**: Fires daily (or at your chosen interval) to start the sync routine. HTTP Request**: Fetches the full list of employees from your HRIS API. Code (Delta Detector)**: Compares fetched data with a cached snapshot to identify new hires, departures, or updates. IF Node**: Branches based on whether changes were detected. Split In Batches**: Processes employees in manageable sets to respect API rate limits. Set Node**: Maps HRIS fields to Coda columns and Teams/Slack message fields. Coda Node**: Upserts rows in the employee directory table. Microsoft Teams Node**: Posts an adaptive card summarizing changes to a selected channel. Slack Node**: Sends a formatted message with the same update. Sticky Note**: Provides inline documentation within the workflow for maintainers. Set up steps Setup Time: 10-15 minutes Import the workflow into your n8n instance. Open Credentials tab and create: Microsoft Teams OAuth2 credential. Coda API credential. Slack OAuth2 credential. HRIS HTTP credential (Basic or Bearer). Configure the HRIS HTTP Request node Replace the placeholder URL with your HRIS endpoint (e.g., https://api.yourhr.com/v1/employees). Add query parameters or headers as required by your HRIS. Map Coda Doc & Table IDs in the Coda node. Select Teams & Slack channels in their respective nodes. Adjust the Schedule Trigger to your desired frequency. Optional: Edit the Code node to tweak field mapping or add custom delta-comparison logic. Execute the workflow manually once to verify proper end-to-end operation. Activate the workflow. Node Descriptions Core Workflow Nodes: Schedule Trigger** – Initiates the sync routine at set intervals. HTTP Request (Get Employees)** – Pulls the latest employee list from the HRIS. Code (Delta Detector)** – Stores the previous run’s data in workflow static data and identifies changes. IF (Has Changes?)** – Skips downstream steps when no changes were detected, saving resources. Split In Batches** – Iterates through employees in chunks (default 50) to avoid API throttling. Set (Field Mapper)** – Renames and restructures data for Coda, Teams, and Slack. Coda (Upsert Rows)** – Inserts new rows or updates existing ones based on email match. Microsoft Teams (Post Message)** – Sends a rich adaptive card with the update summary. Slack (Post Message)** – Delivers a concise change log to a Slack channel. Sticky Note** – Embedded documentation for quick reference. Data Flow: Schedule Trigger → HTTP Request → Code (Delta Detector) Code → IF (Has Changes?) If No → End If Yes → Split In Batches → Set → Coda → Teams → Slack Customization Examples Change Sync Frequency // Inside Schedule Trigger { "mode": "everyDay", "hour": 6, "minute": 0 } Extend Field Mapping // Inside Set node items[0].json.phone = item.phoneNumber ?? ''; items[0].json.location = item.officeLocation ?? ''; return items; Data Output Format The workflow outputs structured JSON data: { "employee": { "id": "123", "firstName": "Jane", "lastName": "Doe", "email": "jane.doe@example.com", "title": "Senior Engineer", "department": "R&D", "status": "New Hire", "syncedAt": "2024-05-08T10:15:23.000Z" }, "destination": { "codaRowId": "row_abc123", "teamsMessageId": "msg_987654", "slackTs": "1715158523.000200" } } Troubleshooting Common Issues HTTP 401 from HRIS API – Verify token validity and that the credential is attached to the HTTP Request node. Coda duplicates rows – Ensure the key column in Coda is set to “Email” and the Upsert option is enabled. Performance Tips Cache HRIS responses in static data to minimize API calls. Increase the Split In Batches size only if your API rate limits allow. Pro Tips: Use n8n’s built-in Version Control to track mapping changes over time. Add a second IF node to differentiate between “new hires” and “updates” for tailored announcements. Enable Slack’s “threaded replies” to keep your #hr-updates channel tidy.
by Tsubasa Shukuwa
How it works This workflow automatically generates a new haiku poem every morning using AI, formats it in 5-7-5 structure, saves it to Google Docs, and sends it to your email inbox. Workflow steps: Schedule Trigger – Runs daily at 7:00 AM. AI Agent – Asks AI to output four words (kigo, noun, verb1, verb2) in JSON format. Code in JavaScript – Builds a 5-7-5 haiku using the AI-generated words and sets today’s title. Edit Fields – Prepares document fields (title and body) for Google Docs. Create a document – Creates a new Google Document for the haiku. Prepare Append – Collects the document ID and haiku text for appending. Update a document – Inserts the haiku into the existing Google Doc. Send a message – Sends the haiku of the day to your Gmail inbox. OpenRouter Chat Model – Connects the OpenRouter model used by the AI Agent. Setup steps Connect your OpenRouter API key as a credential (used in the AI Agent node). Update your Google Docs folder ID and Gmail account credentials. Change the email recipient address in the “Send a message” node. Adjust the Schedule Trigger time as you like. Run the workflow once to test and verify document creation and email delivery. Ideal for Writers and poets who want daily creative inspiration. Individuals seeking a fun morning ritual. Educators demonstrating AI text generation in a practical example. ⚙️ Note: Each node includes an English Sticky Note above it for clarity and documentation.
by vinci-king-01
Lead Scoring Pipeline with Telegram and Box This workflow ingests incoming lead data from a form submission webhook, enriches each lead with external data sources, applies a custom scoring algorithm, and automatically stores the enriched record in Box while notifying your sales team in Telegram. It is designed to give you a real-time, end-to-end lead-qualification pipeline without writing any glue code. Pre-conditions/Requirements Prerequisites n8n instance (self-hosted or n8n.cloud) ScrapeGraphAI community node installed (not directly used in this template but required by marketplace listing rules) Telegram Bot created via BotFather Box account (Developer App or User OAuth2) Publicly accessible URL (for the Webhook trigger) Optional: Enrichment API account (e.g., Clearbit, PDL) for richer scoring data Required Credentials | Credential | Scope | Purpose | |------------|-------|---------| | Telegram Bot Token | Bot | Send scored-lead alerts | | Box OAuth2 Credentials | App Level | Upload enriched lead JSON/CSV | | (Optional) Enrichment API Key | REST | Append firmographic & technographic data | Environment Variables (Recommended) | Variable | Example | Description | |---------|----------|-------------| | LEAD_SCORE_THRESHOLD | 75 | Minimum score that triggers a Telegram alert | | BOX_FOLDER_ID | 123456789 | Destination folder for lead files | How it works This workflow listens for new form submissions, enriches each contact with external data, calculates a lead score based on configurable criteria, and routes the lead through one of two branches: high-value leads trigger an instant Telegram alert and are archived to Box, while low-value leads are archived only. Errors are captured by an Error Trigger for post-mortem analysis. Key Steps: Webhook Trigger**: Receives raw form data (name, email, company, etc.). Set node – Normalization**: Renames fields and initializes default values. HTTP Request – Enrichment**: Calls an external enrichment API to augment data. Merge node**: Combines original and enriched data into a single object. Code node – Scoring**: Runs JavaScript to calculate a numeric lead score. If node – Qualification Gate**: Checks if score ≥ LEAD_SCORE_THRESHOLD. Telegram node**: Sends alert message to your sales channel for high-scoring leads. Box node**: Uploads the enriched JSON (or CSV) file into a specified folder. Error Trigger**: Captures any unhandled errors and notifies ops (optional). Sticky Notes**: Explain scoring logic and credential placement (documentation aids). Set up steps Setup Time: 15-25 minutes Create Telegram Bot & Get Token Talk to BotFather → /newbot → copy the provided token. Create a Box Developer App Enable OAuth2 → add https://api.n8n.cloud/oauth2-credential/callback (or your own) as redirect URI. Install Required Community Nodes From n8n editor → “Install” → search “ScrapeGraphAI” → install. Import the Workflow JSON Click “Import” → paste the workflow file → save. Configure the Webhook URL in Your Form Tool Copy the production URL generated by the Webhook node → add it as form action. Set Environment Variables In n8n (Settings → Environment) add LEAD_SCORE_THRESHOLD and BOX_FOLDER_ID. Fill in All Credentials Telegram: paste bot token. Box: complete OAuth2 flow. Enrichment API: paste key in the HTTP Request node headers. Activate Workflow Toggle “Activate”. Submit a test form to verify Telegram/Box outputs. Node Descriptions Core Workflow Nodes: Webhook** – Entry point; captures incoming JSON payload from the form. Set (Normalize Fields)** – Maps raw keys to standardized ones (firstName, email, etc.). HTTP Request (Enrichment)** – Queries external service for firmographic data. Merge (Combine Data)** – Merges the two JSON objects (form + enrichment). Code (Scoring)** – Calculates lead score using weighted attributes. If (Score Check)** – Branches flow based on the score threshold. Telegram** – Sends high-score alerts to a specified chat ID. Box** – Saves a JSON/CSV file of the enriched lead to cloud storage. Error Trigger** – Executes if any preceding node fails. Sticky Notes** – Inline documentation for quick reference. Data Flow: Webhook → Set → HTTP Request → Merge → Code → If If (true) → Telegram If (always) → Box Error (from any node) → Error Trigger Customization Examples Change Scoring Logic // Inside the Code node const { jobTitle, companySize, technologies } = items[0].json; let score = 0; if (jobTitle.match(/(CTO|CEO|Founder)/i)) score += 50; if (companySize > 500) score += 20; if (technologies.includes('AWS')) score += 10; // Bonus: subtract points if free email domain if (items[0].json.email.endsWith('@gmail.com')) score -= 30; return [{ json: { ...items[0].json, score } }]; Use a Different Storage Provider (e.g., Google Drive) // Replace Box node with Google Drive node { "node": "Google Drive", "operation": "upload", "fileName": "lead_{{$json.email}}.json", "folderId": "1A2B3C..." } Data Output Format The workflow outputs structured JSON data: { "firstName": "Ada", "lastName": "Lovelace", "email": "ada@example.com", "company": "Analytical Engines Inc.", "companySize": 250, "jobTitle": "CTO", "technologies": ["AWS", "Docker", "Node.js"], "score": 82, "qualified": true, "timestamp": "2024-04-07T12:34:56.000Z" } Troubleshooting Common Issues Telegram messages not received – Ensure the bot is added to the group and chat_id/token are correct. Box upload fails with 403 – Check folder permissions; verify OAuth2 tokens have not expired. Webhook shows 404 – The workflow is not activated or the URL was copied in “Test” mode instead of “Production”. Performance Tips Batch multiple form submissions using the “SplitInBatches” node to reduce API-call overhead. Cache enrichment responses (Redis, n8n Memory) to avoid repeated lookups for the same domain. Pro Tips: Add an n8n “Wait” node between enrichment calls to respect rate limits. Use Static Data to store domain-level enrichment results for even faster runs. Tag Telegram alerts with emojis based on score (🔥 Hot Lead for >90). This is a community-contributed n8n workflow template provided “as-is.” Always test thoroughly in a non-production environment before deploying to live systems.