by Mathis
Convert PDF documents to AI-generated podcasts with Google Gemini and Text-to-Speech Transform any PDF document into an engaging, natural-sounding podcast using Google's Gemini AI and advanced Text-to-Speech technology. This automated workflow extracts text content, generates conversational scripts, and produces high-quality audio files. Who is this for? This workflow template is perfect for content creators, educators, researchers, and marketing professionals who want to repurpose written content into audio format. Ideal for creating podcast episodes, educational content, or making documents more accessible. What problem does this solve? Converting written documents to engaging audio content manually is time-consuming and requires scriptwriting skills. This workflow automates the entire process, turning static PDFs into dynamic, conversational podcasts that sound natural and engaging. What this workflow does Extracts text from uploaded PDF documents Generates podcast script using Google Gemini AI with conversational tone Converts script to speech using Google's advanced TTS with customizable voices Processes audio into properly formatted WAV files Saves final podcast ready for distribution Setup Obtain API credentials: Get Google Gemini API key from AI Studio Configure credentials in n8n as "Google Gemini(PaLM) Api account" Configure voice settings: Choose from available voices: Kore (professional), Aoede (conversational), Laomedeia (energetic) Customize script generation prompts if needed Test the workflow: Upload a sample PDF file Verify audio output quality Adjust voice settings as preferred How to customize this workflow Modify script style:** Edit the prompt in the "Generate Podcast Script" node to change tone, length, or format Change voice:** Update the voice name in "Prepare TTS Request" node Add preprocessing:** Insert text cleaning nodes before script generation Integrate with storage:** Connect to Google Drive, Dropbox, or other storage services Add notifications:** Include Slack or email notifications when podcasts are ready Note: This template requires Google Gemini API access and works best with text-based PDF files under 10MB.
by Shahrear
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Automatically transform audio files into professional transcription reports with AI-powered speech recognition, timestamp generation, and formatted Google Docs output. What this workflow does Monitors Gmail for incoming audio attachments Downloads and processes audio files using VLM Run AI transcription Generates accurate transcriptions with precise timestamps and segmentation Creates professional reports in Google Docs with formatted output Handles asynchronous processing for long audio files without timeouts Setup Prerequisites: Gmail account, VLM Run API credentials, Google Docs access, self-hosted n8n. You need to install VLM Run community node Quick Setup: Configure Gmail OAuth2 for email monitoring Add VLM Run API credentials for audio transcription Set up Google Docs OAuth2 for report generation Create target Google Doc for transcription reports Update document URL in workflow nodes Test with sample audio file and activate Perfect for Meeting recordings and conference calls Voice memos and dictation workflows Interview transcriptions and journalism Podcast episode documentation Accessibility compliance and documentation Legal proceedings and court recordings Educational content and lecture notes Customer service call analysis Key Benefits Human-level accuracy** - Advanced AI speech recognition with automatic punctuation Timestamp precision** - Segmented transcriptions with exact time markers Multi-format support** - Handles MP3, WAV, M4A, AAC, OGG, FLAC files Asynchronous processing** - No timeouts for long audio files Professional formatting** - Beautifully structured Google Docs reports Automatic workflow** - Zero manual intervention required Saves hours per recording** - Transforms manual transcription into instant results Searchable documentation** - Google Docs integration enables easy content discovery How to customize Extend by adding: Speaker identification and diarization Integration with project management tools (Notion, Asana, Trello) Automatic summary generation from transcripts Translation to multiple languages Slack notifications for completed transcriptions Integration with CRM systems for call logging Audio quality enhancement preprocessing Custom formatting templates for different use cases Automatic keyword extraction and tagging Integration with calendar systems for meeting context This workflow revolutionizes audio documentation by combining cutting-edge AI transcription with professional report generation, making spoken content instantly accessible, searchable, and shareable across your organization.
by ist00dent
This n8n template enables you to instantly generate high-quality screenshots of any specified public URL by simply sending a webhook request. It’s an indispensable tool for developers, content creators, marketers, or anyone needing on-demand visual captures of web pages without manual intervention, all while including crucial security measures. 🔧 How it works Receive URL Webhook: This node acts as the entry point for the workflow. It listens for incoming POST requests and expects a JSON body containing a url property with the website you want to screenshot. You can trigger it from any application or service capable of sending an HTTP POST request. Validate URL for SSRF: This is a crucial security step. This Function node validates the incoming url to prevent Server-Side Request Forgery (SSRF) vulnerabilities. It checks for valid http:// or https:// protocols and, more importantly, ensures the URL does not attempt to access internal/private IP addresses or localhost. If the URL is deemed unsafe or invalid, it flags it for an error response. IF URL Valid: This IF node checks the isValidUrl flag set by the previous validation step. If the URL is valid (true), the workflow proceeds to take the screenshot. If the URL is invalid or flagged for security (false), the workflow branches to Respond with Validation Error. Take Screenshot: This node sends an HTTP GET request to the ScreenshotMachine API to capture an image of the validated URL. Remember to replace YOUR_API_KEY in the URL field of this node with your actual API key from ScreenshotMachine. Respond with Screenshot Data: This node sends the data received directly from the Take Screenshot node back to the original caller of the webhook. This response typically includes information about the generated screenshot, such as the URL to the image file, success status, and other metadata from the ScreenshotMachine API. Respond with Validation Error: If the IF URL Valid node determines the URL is unsafe or invalid, this node sends a descriptive error message back to the webhook caller, explaining why the request was denied due to security concerns or an invalid format. 🔒 Security Considerations This template includes a dedicated Validate URL for SSRF node to mitigate Server-Side Request Forgery (SSRF) vulnerabilities. SSRF attacks occur when an attacker can trick a server-side application into making requests to an unintended location. Without validation, an attacker could potentially use your n8n workflow to scan internal networks, access sensitive internal resources, or attack other services from your n8n server. The validation checks for: Only http:// or https:// protocols. Prevention of localhost or common private IP ranges (e.g., 10.x.x.x, 172.16.x.x - 172.31.x.x, 192.168.x.x). While this validation adds a significant layer of security, always ensure your n8n instance is properly secured and updated. 👤 Who is it for? This workflow is ideal for: Developers: Automate screenshot generation for testing, monitoring, or integrating visual content into applications. Content Creators: Quickly grab visuals for articles, presentations, or social media posts. Marketing Teams: Create dynamic visual assets for campaigns, ads, or competitive analysis. Automation Enthusiasts: Integrate powerful screenshot capabilities into existing automated workflows. Website Owners: Monitor how your website appears across different tools or over time. 📑 Prerequisites To use this template, you will need: An n8n instance (cloud or self-hosted). An API Key from ScreenshotMachine. You can obtain one by signing up on their website: https://www.screenshotmachine.com/ 📑 Data Structure When you trigger the webhook, send a POST request with a JSON body structured as follows: { "url": "https://www.example.com" } If the URL is valid, the workflow will return the JSON response directly from the ScreenshotMachine API. This response typically includes information about the generated screenshot, such as the URL to the image file, success status, and other metadata: { "status": "success", "hash": "...", "url": "https://www.screenshotmachine.com/...", "size": 12345, "mimetype": "image/jpeg" } If the URL is invalid or blocked by the security validation, the workflow will return an error response similar to this: { "status": "error", "message": "Access to private IP addresses is not allowed for security reasons." } ⚙️ Setup Instructions Import Workflow: In your n8n editor, click "File" > "Import from JSON" and paste the provided workflow JSON. Configure Webhook Path: Double-click the Receive URL Webhook node. In the 'Path' field, set a unique and descriptive path (e.g., /website-screenshot). Add ScreenshotMachine API Key: Double-click the Take Screenshot node. In the 'URL' parameter, locate YOUR_API_KEY and replace it with your actual API key obtained from ScreenshotMachine. Example URL structure: http://api.screenshotmachine.com/?key=YOUR_API_KEY&url={{ $json.validatedUrl }} Activate Workflow: Save and activate the workflow. 📝 Tips Processing Screenshots: You're not limited to just responding with the screenshot data! You can insert additional nodes after the Take Screenshot node (and before the Respond with Screenshot Data node) to further process or utilize the generated image. Common extensions include: Saving to Cloud Storage: Use nodes for Amazon S3, Google Drive, or Dropbox to store the screenshots automatically, creating an archive. Sending via Email: Attach the screenshot to an email notification using an Email or Gmail node for automated alerts or reports. Posting to Chat Platforms: Share the screenshot directly in a Slack, Discord, or Microsoft Teams channel for team collaboration or visual notifications. Image Optimization: Use an image processing node (if available via an API or a custom function) to resize, crop, or compress the screenshot before saving or sending. Custom Screenshot Parameters: The ScreenshotMachine API supports various optional parameters (e.g., width, height, quality, delay, fullpage). Upgrade: Extend the Receive URL Webhook to accept these parameters in the incoming JSON body (e.g., {"url": "...", "width": 1024, "fullpage": true}). Leverage: Dynamically pass these parameters to the Take Screenshot HTTP Request node's URL to customize your screenshots for different use cases. Scheduled Monitoring: Upgrade: Combine this workflow with a Cron or Schedule node. Set it to run periodically (e.g., daily, hourly). Leverage: Automatically monitor your website or competitors' sites for visual changes. You could then save screenshots to cloud storage and even trigger a comparison tool if a change is detected. Automated Visual Regression Testing: Upgrade: After taking a screenshot, store it with a unique identifier. In subsequent runs, take a new screenshot, then use an external image comparison API or a custom function to compare the new screenshot with a baseline. Leverage: Get automated alerts if visual elements on your website change unexpectedly, which is critical for quality assurance. Dynamic Image Generation for Social Media/Marketing: Upgrade: Feed URLs (e.g., for new blog posts, product pages) into this workflow. After generating the screenshot, use it to create dynamic social media images or marketing assets. Leverage: Streamline the creation of engaging visual content, saving design time.
by Davi Saranszky Mesquita
Use case Workshop We are using this workflow in our workshops to teach how to use Tools a.k.a functions with artificial intelligence. In this specific case, we will use a generic "AI Agent" node to illustrate that it could use other models from different data providers. Enhanced Weather Forecasting In this small example, it's easy to demonstrate how to obtain weather forecast results from the Open-Meteo site to accurately display the upcoming days. This can be used to plan travel decisions, for example. What this workflow does We will make an HTTP request to find out the geographic coordinates of a city. Then, we will make other HTTP requests to discover the weather for the upcoming days. In this workshop, we demonstrate that the AI will be able to determine which tool to call first—it will first call the geolocation tool and then the weather forecast tool. All of this within a single client conversation call. Setup Insert an OpenAI Key and activate the workflow. by Davi Saranszky Mesquita https://www.linkedin.com/in/mesquitadavi/
by Vitali
Template Description This n8n workflow template allows you to create a masked email address using the Fastmail API, triggered by a webhook. This is especially useful for generating disposable email addresses for privacy-conscious users or for testing purposes. Workflow Details: Webhook Trigger: The workflow is initiated by sending a POST request to a specific webhook. You can include state and description in your request body to customize the masked email's state and description. Session Retrieval: The workflow makes an HTTP request to the Fastmail API to retrieve session information. It uses this data to authenticate further requests. Create Masked Email: Using the retrieved session data, the workflow sends a POST request to Fastmail's JMAP API to create a masked email. It uses the provided state and description from the webhook payload. Prepare Output: Once the masked email is successfully created, the workflow extracts the email address and attaches the description for further processing. Respond to Webhook: Finally, the workflow responds to the original POST request with the newly created masked email and its description. Requirements: Fastmail API Access**: You will need valid API credentials for Fastmail configured with HTTP Header Authentication. Authorization Setup**: Optionally set up authorization if your webhook is exposed to the internet to prevent misuse. Custom Webhook Request**: Use a tool like curl or create a shortcut on macOS/iOS to send the POST request to the webhook with the necessary JSON payload, like so: curl -X POST -H 'Content-Type: application/json' https://your-n8n-instance/webhook/87f9abd1-2c9b-4d1f-8c7f-2261f4698c3c -d '{"state": "pending", "description": "my mega fancy masked email"}' This template simplifies the process of integrating masked email functionality into your projects or workflows and can be extended for various use cases. Feel free to use the companion shortcut I've also created. Please update the authorization header in the shortcut if needed. https://www.icloud.com/shortcuts/ac249b50eab34c04acd9fb522f9f7068
by ist00dent
This n8n template empowers you to instantly fetch a list of public holidays for any given year and country using the Nager.Date API. This is incredibly useful for scheduling, planning, or integrating holiday data into various business and personal automation workflows. 🔧 How it works Receive Holiday Request Webhook: This node acts as the entry point, listening for incoming POST requests. It expects a JSON body containing the year (e.g., 2025) and countryCode (e.g., US for United States, PH for Philippines, DE for Germany) for which you want to retrieve public holidays. Get Public Holidays: This node makes an HTTP GET request to the Nager.Date API (date.nager.at). It dynamically uses the year and countryCode from your webhook request to query the API. The API responds with a JSON array, where each object represents a public holiday with details like its date, name, and type. Respond with Holiday Data: This node sends the full list of public holidays received from Nager.Date back to the service that initiated the webhook. 👤 Who is it for? This workflow is ideal for: Businesses with International Operations: Automatically check holidays for different country branches to adjust production schedules, customer service hours, or delivery estimates. HR & Payroll Departments: Accurately calculate workdays, plan leave schedules, or process payroll taking public holidays into account. Event Planners: Avoid scheduling events on public holidays, which could impact attendance or venue availability. Travel Agencies: Inform clients about holidays in their destination country that might affect local business hours or attractions. Content & Social Media Schedulers: Plan content around national holidays to maximize engagement or avoid insensitive postings. Personal Productivity & Travel Planning: Integrate holiday data into your calendar or task management tools to plan trips or personal time off more effectively. Developers: Easily integrate a reliable source of public holiday data into custom applications, dashboards, or internal tools without managing complex datasets. 📑 Data Structure When you trigger the webhook, send a POST request with a JSON body structured as follows: { "year": 2025, "countryCode": "PH" // Example: "US", "DE", "GB", etc. } You can find a comprehensive list of supported country codes on the Nager.Date API documentation: https://www.nager.at/Country The workflow will return a JSON array, where each element is a holiday object, like this example for a single holiday: [ { "date": "2025-01-01", "localName": "New Year's Day", "name": "New Year's Day", "countryCode": "PH", "fixed": true, "global": true, "counties": null, "launchYear": null, "types": [ "Public" ] } // ... more holiday objects ] ⚙️ Setup Instructions Import Workflow: In your n8n editor, click "Import from JSON" and paste the provided workflow JSON. Configure Webhook Path: Double-click the Receive Holiday Request Webhook node. In the 'Path' field, set a unique and descriptive path (e.g., /public-holidays). Activate Workflow: Save and activate the workflow. 📝 Tips This workflow is a foundation for many powerful automations: Conditional Branching for Specific Holidays: Add an IF node after "Get Public Holidays" to check for a specific holiday (e.g., "Christmas Day"). You can then trigger different actions (e.g., send a reminder, adjust a schedule) only for that particular holiday. Filtering and Aggregating Data: Use a Filter node to only keep holidays of a certain type (e.g., "Public"). Use a Code or Function node to count the number of public holidays, or extract just the names and dates into a simpler list. Storing Holiday Data: Google Sheets/Airtable: Automatically append new holidays to a spreadsheet for easy reference or further analysis. Database: Store holiday data in a database (like PostgreSQL or MySQL) to build a custom holiday calendar application. Scheduling and Reminders: Connect this workflow to a Cron or Schedule node to run periodically (e.g., once a year at the start of the year). Use the retrieved holiday dates to set up reminders in your calendar (Google Calendar node) or send notifications (Slack, Email, SMS) a few days before an upcoming holiday. Integrate with Business Logic: Employee Leave Management: Cross-reference employee leave requests with public holidays to ensure accuracy. Automated Messages: Schedule automated "Happy Holiday" messages to customers or employees. E-commerce Shipping: Adjust estimated shipping times based on upcoming non-working days. API Key (Not needed for Nager.Date free tier): The Nager.Date API used here does not require an API key for basic public holiday lookups, which makes this template very easy to use out-of-the-box.
by Yang
Who is this for? This template is designed for content creators, marketing teams, educators, or media managers who want to repurpose video content into written blog posts with visuals. It's ideal for anyone looking to automate the process of transforming YouTube videos into professional blog articles and custom images. What problem is this workflow solving? Creating written content from video material is time-consuming and manual. This workflow solves that by automating the entire pipeline: from detecting new YouTube video uploads to transcribing the audio, turning it into an engaging blog post, generating a matching visual, and saving both in Airtable. It saves hours of work while keeping your blog or social feed active and consistent. What this workflow does This automation listens for new YouTube videos added to a Google Drive folder, extracts the full transcript using Dumpling AI, and sends it to GPT-4o to generate a blog post and image prompt. Dumpling AI then turns the prompt into a 16:9 visual. The blog and visual are saved into Airtable for easy publishing or curation. Setup Google Drive Trigger Create a folder in Google Drive and upload your YouTube videos there. Link this folder in the "Watch Folder for New YouTube Videos" node. Enable polling every minute or adjust as needed. Download & Prepare the Video The video is downloaded and converted into base64 format by the next two nodes: Download Video File and Convert Downloaded Video to Base64. Transcription with Dumpling AI The base64 video is sent to Dumpling AI’s extract-video endpoint. You must have a Dumpling AI account and an API key with access to this endpoint: Dumpling AI Docs Generate Blog Content with GPT-4o GPT-4o takes the transcript and generates: A human-like blog post A descriptive prompt for AI image generation Make sure your OpenAI credentials are configured. Generate the Visual The prompt is passed to Dumpling AI’s generate-ai-image endpoint using model FLUX.1-pro. The result is a clean 1024x576 image. Save to Airtable Blog content is stored under the Content field in Airtable. The image prompt is also added to the Attachments column as a visual reference. Ensure Airtable base and table are preconfigured with the correct field names. How to customize this workflow to your needs Change the GPT prompt to alter the tone or format of the blog post (e.g., add bullet points or SEO tags). Modify the Dumpling AI prompt to generate different image styles. Add a scheduler or webhook trigger to run at different intervals or through other integrations. Connect this output to Ghost, Notion, or your CMS using additional nodes. 🧠 Sticky Note Summary Part 1: Transcription & Blog Prompt Watches a Google Drive folder for new video uploads. Downloads and encodes the video. Transcribes full audio with Dumpling AI. GPT-4o writes a blog post and descriptive image prompt. Part 2: Image Generation & Airtable Save Dumpling AI generates a visual from the image prompt. Blog content is saved to Airtable. The image prompt is patched into the Attachments field in the same record. ✅ Use this if you want to automate repurposing YouTube videos into blog content with zero manual work.
by lin@davoy.tech
Gold Price Alert This workflow template, "Gold Price Alert," is designed to monitor gold prices at regular intervals and send real-time notifications via LINE when the price exceeds a specified threshold. By leveraging the power of web scraping and automated alerts, this template ensures you stay informed about significant changes in gold prices without manual intervention. Whether you're an investor, trader, or simply someone interested in tracking gold prices, this workflow provides a reliable and customizable solution for staying updated. Who Is This Template For? Investors & Traders: Who want to monitor gold prices and receive alerts when the price reaches a specific threshold. Financial Analysts: Looking for automated tools to track commodity prices. Businesses: Operating in industries where gold prices impact operations or profitability. Automation Enthusiasts: Seeking to build workflows that combine web scraping, data processing, and messaging platforms. What Problem Does This Workflow Solve? Tracking gold prices manually can be time-consuming and prone to oversight, especially if you’re monitoring multiple sources or need alerts for specific thresholds. This workflow solves that problem by: Automatically checking gold prices every 6 hours using a schedule trigger. Extracting the latest price from a trusted source (e.g., Gold Traders Association ). Sending instant notifications via LINE when the price exceeds a predefined threshold (e.g., 52,300 THB). Reducing the need for constant manual checks while ensuring timely updates. What This Workflow Does 1) Scheduled Trigger: The workflow is triggered every 6 hours to check the current gold price. 2) Fetch Webpage Content: It retrieves the HTML content of the webpage displaying the latest gold prices. 3) Extract Price Data: Using CSS selectors, the workflow extracts the relevant price data (e.g., buying price) from the HTML content. 4) Filter Prices: The extracted price is converted into a numeric format and compared against a predefined threshold (e.g., 52,300 THB). Alerts are only sent if the price exceeds this value. 5) Send Notification via LINE: If the condition is met, the workflow sends a notification to your LINE account with the current gold price. Setup Guide Pre-Requisites Access to the LINE Developers Console to configure your API Access Token Basic knowledge of HTML and CSS selectors for extracting data from webpages. Familiarity with n8n workflows and JSON formatting. Step-by-Step Setup 1) Configure the Schedule Trigger: Set the interval to 6 hours or adjust it based on your preference. 2) Set Up Webpage Fetching: Update the URL in the HTTP Request node to point to the webpage containing the gold price data. 3) Extract Price Data: Use the HTML Extractor node to specify the CSS selector for the price element (e.g., #DetailPlace_uc_goldprices1_lblBLBuy). 4) Set Price Threshold: Modify the threshold value in the If node to match your desired alert level (e.g., 52,300 THB). 5) Configure LINE Push API: Replace the placeholder to field in the Send Line Message node with your LINE user ID to ensure notifications are sent to the correct account. Test the Workflow: Run the workflow manually to verify that it fetches the price, evaluates the condition, and sends notifications correctly. How to Customize This Workflow to Your Needs Change the Interval: Adjust the schedule trigger to check prices more or less frequently (e.g., hourly or daily). Monitor Multiple Prices: Extend the workflow to extract and compare additional price points (e.g., selling price, international rates). Integrate Other Platforms: Replace the LINE notification with integrations for Telegram, email, or SMS. Expand Use Cases: Adapt the workflow to track other commodities or financial indicators by modifying the webpage URL and CSS selectors. Why Use This Template? Real-Time Alerts: Stay informed about significant changes in gold prices without manual intervention. Customizable Thresholds: Set your own price thresholds to receive alerts tailored to your needs. Easy Integration: Seamlessly integrates with LINE for quick setup and minimal maintenance. Scalable: Easily extend the workflow to monitor multiple data points or integrate with other platforms.
by Dr. Firas
💥 Create viral Ads with NanoBanana & Seedance, publish on socials via upload-post Who is this for? This workflow is designed for marketers, content creators, and small businesses who want to automate the creation of engaging social media ads without spending hours on manual design, video editing, or publishing. What problem is this workflow solving? / Use case Manually creating ads for multiple platforms is time-consuming and repetitive. You need to generate visuals, edit videos, add music, and then publish them across social channels. This workflow automates the end-to-end ad production pipeline, saving time while ensuring consistent, professional-quality output. What this workflow does Receives ad ideas via Telegram. Uses NanoBanana to generate and edit realistic product images. Transforms images into engaging short videos with Seedance. Generates background music with Suno. Merges video and audio into a polished final ad. Reads brand info and generates ad copy with AI (OpenAI). Publishes ads to Instagram, TikTok, YouTube, Facebook, and X via upload-post. Stores media and campaign data in Google Drive and Google Sheets for tracking. Sends back notifications and previews via Telegram. Setup Connect your accounts: Telegram Google Drive Google Sheets OpenAI API NanoBanana API Seedance API Suno API Upload-post Prepare Google Sheets: Add a sheet for brand details (name, category, features, website). Add another sheet for video logs (status, links, captions). Configure upload-post: Ensure your social accounts (TikTok, Instagram, YouTube, Facebook, X) are linked to upload-post. How to customize this workflow to your needs Prompts* → Adjust the *image/video/music prompts** to better reflect your brand’s tone and products. Ad copy* → Modify the AI prompt inside the *Ads Copywriter Generator** to control wording, style, and structure. Publishing scope* → Choose only the platforms you want (TikTok, Instagram, etc.) inside the *upload-post** node. Storage** → Update Google Drive folder IDs and Google Sheets document IDs to match your own workspace. 👉 With this template, you get a fully automated viral ad production system powered by AI visuals, video rendering, and auto-publishing across social platforms. Perfect for scaling your content strategy while saving time. 📄 Documentation: Notion Guide Demo Video 🎥 Watch the full tutorial here: YouTube Demo Need help customizing? Contact me for consulting and support : Linkedin / Youtube
by Juan Carlos Cavero Gracia
This workflow turns any Telegram bot into an AI-powered social media command center for photos, videos and voice notes. video demo From one Telegram chat you can: Send a photo and auto-post it to Instagram, TikTok and Pinterest with AI captions. Send a video and: Let AI generate titles + descriptions and upload it to TikTok, Instagram and YouTube. Use /thumb to generate 4 custom thumbnails with Nano Banana Pro. Use /edit ... to run FFmpeg edits (cut, mute, resize, speed, etc.) via Upload-Post FFmpeg jobs and get the edited video back in Telegram. Send a voice note and turn it into posts for LinkedIn, X (Twitter) and Threads, then auto-publish. Keep human approval in the loop: every caption or text post is shown in Telegram for you to accept before publishing. Out of the box, the captions and long descriptions are optimized for Spanish (es-ES), but you can easily change the prompts to any language or brand voice. What You Can Do From Telegram 1. Photo → Instagram, TikTok & Pinterest Just send a photo (or image as document) to your Telegram bot: The workflow downloads the photo from Telegram. Gemini 2.5 Flash** analyzes the image plus your caption/text (if any). An AI Agent generates platform-specific descriptions for: TikTok (short hook, 90 chars) Instagram Pinterest (title + description) You receive a message in Telegram with all the proposed descriptions. You approve or reject with inline buttons. On approval, Upload-Post publishes the photo to: Instagram TikTok Pinterest (to the board you configured) and sends back a status message with success flags, post URLs and error messages. 2. Video → TikTok, Instagram & YouTube (no commands) If you send a video with no special caption: The workflow treats it as a standard video post. It fetches the file from Telegram. Gemini 2.5 Flash** analyzes the video and describes its content. An AI Agent turns that description + your caption into: TikTok description Instagram description YouTube title + description You get a Telegram message with the three platform descriptions to review. Once you approve: It shows “Uploading…” in Telegram. The video is sent to Upload-Post, which uploads to TikTok, Instagram and YouTube with the generated text. Finally, you receive an upload report for each platform (success, URL, error message). 3. /thumb → AI Thumbnails for Your Video (Nano Banana Pro) If you send a video with caption exactly /thumb: The workflow downloads the video. Gemini 2.5 Flash* generates a *long, SEO-rich description in Spanish** of everything that happens in the video. A second AI Agent uses that detailed description to create 3 concepts: Each concept has: title, description, and a full prompt_thumbnail (Spanish, single line) specially crafted for Nano Banana Pro. In Telegram you see the 3 concepts (titles) and select: 0, 1, 2 or “create new”. Once you choose a concept: The prompt is sent to Nano Banana Pro (fal-ai/nano-banana-pro/edit) with your reference face image (configurable). Nano Banana Pro generates 4 thumbnails (16:9). The workflow downloads the 4 images and sends them back to you in Telegram as photos so you can pick and use your favorite in your YouTube/Upload-Post pipeline. Use /thumb whenever you already have the video and just want killer thumbnails generated with AI. 4. /edit … → Natural-Language FFmpeg Video Editor If you send a video with a caption starting with /edit, for example: /edit cut the first 3 seconds and remove the audio /edit crop to vertical 9:16 and speed up x1.5 /edit blur the background and keep the subject centered The workflow behaves as a text-to-FFmpeg command generator: An AI Agent (powered by Gemini) reads your /edit instructions. It generates a safe FFmpeg command in JSON format: Always uses ffmpeg -y Uses {input} and {output} placeholders No semicolons and no dangerous shell characters The workflow then: Downloads the original video from Telegram. Calls Upload-Post FFmpeg jobs API with the video and the generated full_command. Polls the job status until it’s finished. Downloads the processed (edited) video. Sends the edited video back to you in Telegram with a simple sendVideo node. This makes Telegram a front-end for a remote FFmpeg engine: you describe the edit in natural language, and the workflow handles all the FFmpeg complexity. > Note: The edited video is returned to Telegram; if you want to auto-post it, simply send the new video again without /edit so it goes through the normal multi-platform publishing path. 5. Voice Notes → LinkedIn, X & Threads (Text Posts) For voice messages: The Telegram Trigger detects message.voice. The workflow downloads the audio file. OpenAI Whisper** transcribes the recording. An AI Agent turns the transcription into: A LinkedIn post (Spanish, long-form dev/creator style, based on your examples). A Threads post (Spanish, up to ~500 chars). A Tweet / X post or thread (English, using hooks + hashtags like #n8n, #automation, #dev). In Telegram you see a preview message with the suggested copy for Threads, LinkedIn and X. After you approve: You get an “Uploading…” message. Upload-Post publishes: To your LinkedIn organization page (configured by ID). To X (Twitter). To Threads. The workflow sends a status message with success flags and URLs for each platform. This is perfect for “talk to your phone, ship content to all your text platforms”. How the Workflow Is Structured Telegram Trigger** Listens to every incoming message and routes by type: /start → No-Op voice → Audio pipeline document/photo → Photo pipeline video → Video/thumbnail/editor pipelines (/thumb, /edit or normal) AI Blocks (Gemini + OpenAI)** Gemini 2.5 Flash for: Photo understanding. Short video descriptions (for auto-posting). Long, detailed video summaries (for thumbnail generator). OpenAI Whisper for voice transcription. Multiple AI Agents (Gemini chat) with structured JSON output parsers for: Per-platform social captions. Threads/LinkedIn/X posts. Thumbnail prompts and title concepts. FFmpeg command generation. Upload-Post Integration** Photos → Instagram, TikTok, Pinterest. Videos → TikTok, Instagram, YouTube. Text → LinkedIn page, X, Threads. FFmpeg job endpoint for server-side video editing. All uploads return status, URL and error messages back into Telegram. Human-in-the-Loop** All critical AI outputs go through sendAndWait nodes in Telegram: You review and choose whether to publish or not. You choose which thumbnail concept to use. Requirements & Setup Accounts & APIs** Telegram bot (via @BotFather). Upload-Post.com account with your social profiles connected. OpenAI API key (Whisper). Google Gemini API key (AI Studio). Nano Banana Pro / fal.ai key (for thumbnails). Runtime** n8n instance (cloud or self-hosted). FFmpeg available where n8n runs (Docker image, VM, etc.) for local checks if needed (the heavy lifting is delegated to Upload-Post FFmpeg jobs). Configuration** Create Telegram credentials with your bot token. Create Upload-Post credentials with your API token. Set upload_post_user and pinterest_board_id in the Edit Fields node. Optionally replace: Example face image URL used for Nano Banana Pro. LinkedIn organization ID. Any language / tone in the AI agent system prompts. Ideal Use Cases Creators & influencers* who want to post to every platform from *one Telegram chat**. Agencies** who want a “content butler” clients can use without touching n8n. Solo devs & makers** who publish workflows, devlogs and product updates and want: Multi-platform video posts. Voice → LinkedIn/X/Threads posts. Easy text-based video editing and thumbnail generation. Install this template, plug in your keys, talk to your bot in Telegram, and turn it into your all-in-one AI social media machine.
by Lucas Peyrin
How it works This template is a complete, hands-on tutorial for building a RAG (Retrieval-Augmented Generation) pipeline. In simple terms, you'll teach an AI to become an expert on a specific topic—in this case, the official n8n documentation—and then build a chatbot to ask it questions. Think of it like this: instead of a general-knowledge AI, you're building an expert librarian. The workflow is split into two main parts: Part 1: Indexing the Knowledge (Building the Library) This is a one-time process you run manually. The workflow automatically scrapes all pages of the n8n documentation, breaks them down into small, digestible chunks, and uses an AI model to create a special numerical representation (an "embedding") for each chunk. These embeddings are then stored in n8n's built-in Simple Vector Store. This is like a librarian reading every book and creating a hyper-detailed index card for every paragraph. Important: This in-memory knowledge base is temporary. It will be erased if you restart your n8n instance, and you will need to run the indexing process again. Part 2: The AI Agent (The Expert Librarian) This is the chat interface. When you ask a question, the AI agent doesn't guess the answer. Instead, it uses your question to find the most relevant "index cards" (chunks) from the knowledge base it just built. It then feeds these specific, relevant chunks to a powerful language model (Gemini) with a strict instruction: "Answer the user's question using ONLY this information." This ensures the answers are accurate, factual, and grounded in your provided documents. Set up steps Setup time: 2 minutes (plus 15-20 minutes for indexing) This template uses n8n's built-in tools, removing the need for an external database. Follow these simple steps to get started. Configure Google AI Credentials: You will need a Google AI API key for the Gemini models. In your n8n workflow, go to any of the three Gemini nodes (e.g., Gemini 2.5 Flash). Click the Credential dropdown and select + Create New Credential. Enter your Gemini API key and save. Apply Credentials to All Nodes: Your new Google AI credential is now saved. Go to the other two Gemini nodes (Gemini Chunk Embedding and Gemini Query Embedding) and select your newly created credential from the dropdown list. Build the Knowledge Base: Find the Start Indexing manual trigger node at the top-left of the workflow. Click its "Execute workflow" button to start the indexing process. ⚠️ Be Patient: This will take 15-20 minutes as it scrapes and processes the entire n8n documentation. You only need to do this once per n8n session. If you restart n8n, you must run this step again. Chat with Your Expert Agent: Once the indexing is complete, Activate the entire workflow using the toggle at the top of the screen. Open the RAG Chatbot chat trigger node (bottom-left) and copy its Public URL. Open the URL in a new tab and start asking questions about n8n! For example: "How does the IF node work?" or "What is a sub-workflow?".
by EoCi - Mr.Eo
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Introduction Tired of spending time crafting the perfect AI prompt? This workflow takes your simple ideas like "write a blog post" and automatically transforms them into detailed, structured prompts that actually work. 🎯 What This Does Automatically converts simple user prompts like "write a blog post" into structured, professional AI prompts with metadata, variables, and clear instructions. Perfect for everybody, all industries and organizations who are wanting to eliminate prompt engineering works. 🔄 How It Works Google Sheets Trigger monitors for new prompts AI Enhancement Pipeline uses Gemini + Groq to add structure & context Field Completion auto-generates missing metadata (topic, categories) Quality Assurance validates & stores complete results 🚀 Setup Requirements AI APIs**: Gemini, Telegram, Groq API keys Google Sheets**: 2 sheets (Main, ModifiedPrompt) 5 minutes setup time** - detailed instructions in blue sticky notes Set up steps Setup time: < 5 minutes Create a Google Spreadsheet with two tabs (sheets): OriginalPrompts and ModifiedPrompts. OriginalPrompts columns: Original Prompt ID | Model | Original Prompt | Created Time ModifiedPrompts columns (example): Modified Prompt ID | Original Prompt ID | Topic | Topic Categories | Modified Prompt | Prompt Title | Prompt Type | Model Used | Improvement Notes | Updated Time | Created Time | isProcessed Add and attach credentials in n8n: Google Sheets OAuth2 (required for getting new prompt) Gemini and Groq API credentials (required for AI Agent) Telegram credential (required for notifications) Save & Activate the workflow. Add a test row to OriginalPrompts, for example: Original Prompt ID: 1 — Original Prompt: "Write a short blog post about AI ethics". Wait ~30–60s and check ModifiedPrompts for the enhanced output. That’s it ! Once it configured, drop short ideas into your sheet and get professional prompts back automatically. Your prompts get better, your AI outputs improve, and you save hours of manual prompt crafting.