by Feras Dabour
Video Generation with Telegram Bot and Gemini API – Auto-Post to TikTok, Instagram & Facebook This n8n workflow turns your Telegram messenger into a full video content pipeline: you send a text or voice idea to a Telegram bot, collaborate with an AI on the script and caption, let Gemini generate the video, and then automatically publish it to TikTok, Instagram and Facebook – all with status tracking and Telegram confirmations. What You Need to Get Started This workflow connects several external services. You’ll need: Telegram Bot API Key** Create a bot via Telegram’s BotFather and copy the bot token. This is used by the Listen for incoming events and other Telegram nodes. OpenAI API Key** Required for: Speech to Text (OpenAI Whisper) – to transcribe voice notes. The OpenAI Chat Model used inside the AI Agent. Google Gemini / Vertex (via n8n Gemini Node)** Used by the Generate a video node (model: veo-3.0-fast-generate-001) to create the video. Google Drive** The generated video is temporarily stored in a Google Drive folder via Upload video and later downloaded again for uploading to Blotato. Blotato API Key* Social media publishing layer: Uploads the video as media. Creates posts for TikTok, Instagram and Facebook. Exposes a status endpoint the workflow uses for polling. Google Sheets Access** (optional but included) Used by Save Prompt & Post-Text to log your prompts and captions. Once these credentials are configured in n8n, the workflow runs end-to-end from Telegram idea to multi-platform publishing. How the Workflow Operates – Step by Step 1. Input & Initial Processing (Telegram + Voice Handling) This phase listens to your messages and normalizes them into a single text input for the AI. | Node Name | Role in Workflow | | ------------------------------ | ------------------------------------------------------------------------------------------------------- | | Listen for incoming events | Telegram Trigger node that starts the workflow whenever your bot receives a message (text or voice). | | Voice or Text | Set node that structures the incoming payload and prepares a unified text field for downstream nodes. | | A Voice? | IF node that checks whether the incoming message is a voice note or plain text. | | Get Voice File | If voice is detected, this Telegram node downloads the audio file from Telegram. | | Speech to Text | Uses OpenAI Whisper to convert the voice note into a text transcript. | If you send text**: The workflow skips the voice download/transcription and goes directly to the AI agent with your original text. If you send a voice note**: The workflow downloads the file, runs it through Whisper in Speech to Text, and passes the resulting transcript onward. The output of this stage is always a clean text string representing your idea. 2. AI Core & Approval Loop (Script + Caption via AI) Here the AI designs the video prompt (for Gemini) and the social media caption (for all platforms), then iterates with you until you approve. | Node Name | Role in Workflow | | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | AI Agent | Central logic agent. Takes your idea text and applies the system prompt to create a video prompt and social media caption. Handles revisions based on your feedback. | | OpenAI Chat Model | The LLM backing the agent (OpenAI Chat model). | | Window Buffer Memory | Memory buffer that stores recent turns, so the agent can keep context across your “make it shorter / more fun / more technical” requests. | | Send questions or proposal to user | Telegram node that sends the AI’s suggested prompt + caption back to you for review. | | Approved from user? | IF node that checks whether the agent’s output is the “approved” JSON (meaning you said “ok” / “approved”) or just a normal suggestion. | Video Prompt Assistant System Prompt (Internal Instructions) The AI Agent is configured with a system message like: > You are a video prompt assistant for Telegram. > > 1. Analyze the user’s message and create a video prompt. > 2. Create relevant social media text with hashtags. > 3. Present both to the user and ask for feedback. > 4. If the user requests changes, refine and present again. > 5. Only when the user says “approved” or “ok”, output a final JSON: > { "videoPrompt": "...", "socialMediaText": "..." } Key behavior: Before approval**: The agent always responds with human-readable suggestions (prompt + caption) and a follow-up question asking what to change. After approval**: The agent returns only JSON (no Markdown, no explanation) with: videoPrompt – to be sent to Gemini. socialMediaText – to be used as a caption on all platforms. JSON Parsing | Node Name | Role in Workflow | | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Parse AI Output | Code node that extracts videoPrompt and socialMediaText from the agent’s output. It is tolerant of different formats (e.g. JSON wrapped in markdown) and throws errors if required fields are missing. | If the AI output is approved JSON, this node returns two clean fields: videoPrompt socialMediaText These are used in all subsequent steps. 3. User Feedback & Logging Right after parsing the final JSON, the workflow informs you and logs the content. | Node Name | Role in Workflow | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Inform user about processing | Telegram node that tells you: “Okay. Your video is being prepared now. I’ll let you know as soon as it’s online.” | | Save Prompt & Post-Text | Google Sheets node that appends a new row containing the videoPrompt and socialMediaText to a sheet (e.g., for tracking which prompts/captions you used). | This gives you both visibility (confirmation message) and historical tracking of your content ideas. 4. Video Generation with Gemini Now the actual video is created using Google Gemini’s video model. | Node Name | Role in Workflow | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | Generate a video | Gemini node (model models/veo-3.0-fast-generate-001) that uses videoPrompt to generate a vertical video (aspect ratio 9:16). | The videoPrompt from the AI agent is passed directly into this node. The resulting binary output is a generated short-form video suitable for TikTok, Reels and Stories. 5. Staging the Video in Google Drive To make the video accessible for Blotato, the workflow uses Google Drive as a simple file staging area. | Node Name | Role in Workflow | | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Upload video | Uploads the generated video binary to a specific folder in Google Drive (n8n_videos). The file name is taken from the binary metadata or defaults to video.mp4. | | Download Video from Drive1 | Immediately downloads the uploaded video by file ID, this time as binary data suitable for passing into [Blotato]. | Using Drive ensures that the file is properly hosted and addressable when uploading to [Blotato]’s media API. 6. Uploading to [Blotato]and Creating Posts First, the video is sent to [Blotato] as a media asset. Then three separate posts are created for TikTok, Instagram, and Facebook. Media Upload | Node Name | Role in Workflow | | ----------------- | ------------------------------------------------------------------------------------------------------------------------- | | Upload media1 | [Blotato] media node. Uploads the binary video as a media asset and returns a public url used by all post creation nodes. | Platform-Specific Post Creation From the uploaded media, the workflow fans out into three branches: | Node Name | Platform | Role in Workflow | | ------------------------ | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | Create TikTok post | TikTok | Creates a TikTok post using the media URL and socialMediaText as the caption. Also sets the flag that the video is AI-generated. | | Create post1 | Instagram | Creates an Instagram (or related) post linked to the [Blotato] account (e.g., aimaginate_xx), using the same socialMediaText and media URL. | | Create Facebook post | Facebook Page | Creates a Facebook post on your specified page, again using the shared caption and media URL. | At this point, all three platforms have an initial “post submission” created via [Blotato]. Next, the workflow tracks their publishing status. 7. Status Monitoring & Retry Loops Each platform has its own mini-loop that polls [Blotato]) until the post is either published or failed. TikTok Status Loop | Node Name | Role in Workflow | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | | Wait | Initial 5-second (or configured) pause after creating the TikTok post. | | Check Post Status | Blotato “get” operation that fetches the current status (published, in-progress, etc.) of the TikTok post by postSubmissionId. | | Published to TikTok? | IF node that checks if status === "published". | | Confirm publishing to Tiktok | Telegram node that notifies you when the TikTok post is live (often including a link or at least a confirmation text). | | In Progress? | IF node that checks if status === "in-progress". | | Give Blotat other 5s :) | Wait node that sleeps a bit before checking again. Feeds back into Published to TikTok? to create a polling loop. | | Send TikTok Error Message | Telegram node that informs you if the status is neither published nor in progress (i.e., a failure). | Instagram Status Loop | Node Name | Role in Workflow | | ----------------------------------- | ------------------------------------------------------------------------------------ | | Wait1 | Wait node after Create post1, giving Blotato time to process the Instagram post. | | Get post1 | Blotato “get” operation to read status of the Instagram post. | | Published to Instagram? | IF node checking if status === "published". | | Confirm publishing to Instagram | Telegram message with confirmation that your Instagram post is live. | | In Progress?1 | IF node checking if status === "in-progress". | | Give Blotat more time | Wait node that loops back to Published to Instagram? for another status check. | | Send Instagram Error Message | Telegram notification if the Instagram post fails. | Facebook Status Loop | Node Name | Role in Workflow | | ---------------------------------- | -------------------------------------------------------------------------------- | | Wait2 | Wait node after Create Facebook post (longer pause, e.g. 30 seconds). | | Get Facebook post | Blotato “get” operation to fetch Facebook post status. | | Published to Facebook? | IF node testing for status === "published". | | Confirm publishing to Facebook | Telegram notification that the Facebook post is online. | | In Progress?2 | IF node checking if the Facebook post is still in progress. | | Give Blotat other 5s :)2 | Wait node that loops back into Published to Facebook? for repeated checks. | | Send Facebook Error Message | Telegram notification if the Facebook post fails or ends in an unexpected state. | This structure ensures that each platform is monitored independently, with clear success or error messages delivered right into your Telegram chat. 🛠️ Personalizing Your Video Content Bot The real power of this workflow is how easy it is to adapt it to your own style, platforms, and preferences. 1. Tweak the AI Prompt & Behavior Where:* Inside the *AI Agent* node, in the *System Message (systemMessage) of the options. What you can change:** The tone (funny, educational, corporate, storytelling, etc.). The level of detail in the video prompt (camera moves, style, characters, environment). The caption structure (hook, value, CTA, hashtag strategy). Whether the agent should produce multiple variants or just one. You can also extend it, e.g.: Ask for multi-slide carousel prompts instead of a single video. Force language (e.g., always English, always German). Add platform-specific hints (e.g., stronger hooks for TikTok). 2. Change Video Model or Aspect Ratio Where:* *Generate a video** node. Options:** Swap the model (within the Gemini node) if you want higher quality or different behavior. Adjust the aspectRatio from 9:16 to 16:9 or 1:1 depending on your target platform. 3. Modify Which Platforms You Post To Where:** Blotato nodes: Create TikTok post Create post1 (Instagram) Create Facebook post You can: Disable or delete branches for platforms you don’t use. Add new accounts or platforms supported by Blotato. Use different captions per platform (e.g. shorter for TikTok, more detailed for Facebook) by adding extra AI formatting steps. 4. Adjust Wait Times and Retry Logic Where:** Wait and IF nodes: Wait, Wait1, Wait2, Give Blotat other 5s :), Give Blotat more time, Give Blotat other 5s :)2 What:** Increase or decrease retry intervals. Limit the number of loops (e.g. by adding a counter) if needed. Customize error messages in the Telegram nodes. 5. Extend Logging & Analytics Where:* *Save Prompt & Post-Text** (Google Sheets). Ideas:** Add more columns (timestamp, platform flags, target audience, campaign name). Write back publish status and final URLs after success. Use this sheet as a content inventory or analytics base. In short, this workflow gives you a full AI-powered video pipeline: Idea (text/voice) via Telegram Drafting & approval of video prompt + caption via OpenAI agent Video generation with Gemini (veo) Staging in Google Drive Auto-posting and status monitoring across TikTok, Instagram & Facebook via Blotato All communication and confirmations returned directly to Telegram And everything is fully editable so you can adapt it precisely to your personal brand and content strategy.
by WeblineIndia
The Content Calendar Manager > n8n + Google Sheets + Groq AI + Slack Automation This workflow automates your entire content planning process—from idea backlog to AI-generated drafts and team-ready summaries. It runs weekly, fetches pending content ideas from Google Sheets, generates platform-specific content using AI (blogs, videos, social posts) and delivers a clean summary to Slack while updating statuses in your sheet. Quick Implementation Steps Connect credentials for Google Sheets, Slack and Groq API in your n8n account. Update the Google Sheet ID and Sheet Name in the "Fetch Content Backlog" node. Ensure your sheet has columns: Sr No, Topic, Type, Status, Deadline. Set your Slack Channel ID in the "Post Summary to Slack" node. Test with sample rows (Status = idea or writing). Activate the workflow. What It Does This workflow acts as a smart content operations assistant. Every week, it scans your content backlog stored in Google Sheets and identifies items that are either in the "idea" or "writing" stage. It then prioritizes them by deadline and processes them accordingly. Based on the content type (Blog, Video or Social), the workflow routes each idea into specialized AI agents powered by Groq. These agents generate structured outputs such as blog outlines, video scripts or social media briefs—each tailored to its format and purpose. Finally, all generated outputs are compiled into a single, clean Slack report for your team. At the same time, the workflow updates the original sheet to mark processed items as "writing", ensuring no duplication of effort and maintaining workflow consistency. Who It's For Content marketing teams Social media managers Digital agencies Startup founders managing content pipelines SEO and content strategists Anyone using Google Sheets to manage content ideas Requirements To use this workflow, you need: An active n8n account Google Sheets account** with API access Slack workspace** with OAuth2 setup Groq API credentials** A Google Sheet structured with: Sr No Topic Type (video, blog, social) Status (idea, writing, etc.) Deadline How It Works & Setup Guide Workflow Breakdown 1. Trigger Node:** Check for New Ideas (Weekly) Runs every week on Monday at 9 AM 2. Fetch Data Node:** Fetch Content Backlog Pulls rows where: Status = idea OR writing 3. Sort Content Node:** Order by Deadline Ensures urgent items are processed first 4. Route by Content Type Node:** Route by Format (Video/Blog/Social) Sends items to: Blog AI branch Video AI branch Social AI branch 5. AI Content Generation Blog Branch** Node: Generate Blog Outline Uses: SEO Strategist LLM Video Branch** Node: Generate Video Script Uses: Video Producer LLM Social Branch** Node: Generate Social Post Uses: Growth Expert LLM 6. Data Mapping Nodes: Map Blog Data Map Video Data Map Social Data Captures: Row ID AI Output 7. Merge Results Node: Sync Parallel Branches Combines outputs from all branches 8. Aggregate Data Node: Bundle Results into List Creates a unified dataset 9. Format Slack Report Node: Format Slack Report Layout Cleans and formats text for Slack readability 10. Send to Slack Node: Post Summary to Slack Posts a structured weekly report 11. Update Google Sheet Nodes: Unbundle Individual Rows Mark Status as Writing Updates each processed row to: Status = writing How To Customize Nodes AI Prompts** Modify prompts in: Generate Blog Outline Generate Video Script Generate Social Post Adjust tone, structure or output format Schedule** Change timing in Check for New Ideas (Weekly) Sheet Filters** Update status filters in Fetch Content Backlog Slack Message Format** Edit JavaScript in Format Slack Report Layout Content Types** Add new conditions in Route by Format for more formats Add-ons (Extend This Workflow) Auto-publish content to CMS (e.g., WordPress) Send email summaries instead of/in addition to Slack Add approval workflow before marking as "writing" Integrate with Notion or Airtable instead of Google Sheets Store generated content in a database or cloud storage Add AI rewriting or optimization steps Use Case Examples Weekly Content Planning Automation Automatically generate drafts for upcoming content ideas Agency Content Pipeline Manage multiple client content queues efficiently YouTube + Blog Strategy Generate scripts and blog outlines simultaneously Social Media Campaign Prep Create ready-to-post social content ideas weekly SEO Content Scaling Quickly generate structured blog outlines at scale There can be many more use cases depending on how you customize and extend this workflow. Troubleshooting Guide | Issue | Possible Cause | Solution | |------|--------------|---------| | No data fetched | Incorrect sheet ID or filters | Verify Google Sheet ID and filter values | | Workflow runs but no output | No rows match "idea" or "writing" | Check Status column values | | AI output is empty | Groq API issue | Validate API credentials and model | | Slack message not sent | Incorrect channel ID or auth issue | Recheck Slack OAuth2 and channel ID | | Sheet not updating | Mapping mismatch | Ensure Sr No matches correctly | | Duplicate processing | Status not updated | Confirm "Mark Status as Writing" node | Need Help? If you need assistance setting up this workflow, customizing prompts or extending it with advanced features, our n8n workflow development team at WeblineIndia is here to help. We can help you: Customize this workflow for your business Integrate with your existing tools Build advanced AI-powered automations Scale your content operations efficiently Reach out to WeblineIndia for expert support and tailored automation solutions.
by Onur
Template Description: > Never run out of high-quality LinkedIn content again. This workflow is a complete content factory that takes a simple topic from a Google Sheet, uses AI to research a trending angle, writes a full post, generates a unique and on-brand image, and publishes it directly to your LinkedIn profile. This template is designed for brands and creators who want to maintain a consistent, high-quality social media presence with minimal effort. The core feature is its ability to generate visuals that adhere to a specific, customizable brand style guide. 🚀 What does this workflow do? Pulls content ideas from a Google Sheet acting as your content calendar. Uses an AI Researcher (OpenAI + SerpAPI) to find the most recent and engaging news or trends related to your topic. Employs an AI Writer to draft a complete, professional LinkedIn post with a catchy title, engaging text, and relevant hashtags. Generates a unique, on-brand image for every post using Replicate, based on a customizable style guide (colors, composition, mood) defined within the workflow. Publishes the post with its image** directly to your LinkedIn profile. Updates the status** in your Google Sheet to "done" to avoid duplicate posts. 🎯 Who is this for? Marketing Teams:** Automate your content calendar and ensure brand consistency across all visuals. Social Media Managers:** Save hours of research, writing, and design work. Solopreneurs & Founders:** Maintain an active, professional LinkedIn presence without a dedicated content team. Content Creators:** Scale your content production and focus on strategy instead of execution. ✨ Benefits End-to-End Automation:** From a single keyword to a published post, the entire process is automated. Brand Consistency:** The AI image generator follows a strict, customizable style guide, ensuring all your visuals feel like they belong to your brand. Always Relevant Content:** The AI research step ensures your posts are based on current trends and news, increasing engagement. Massive Time Savings:** Automates research, copywriting, and graphic design in one seamless flow. Content Calendar Integration:** Easily manage your content pipeline using a simple Google Sheet. ⚙️ How it Works Get Topic: The workflow fetches the next "Pending" topic from your Google Sheet. AI Research: An AI Agent uses SerpAPI to research the topic and identify a viral angle. AI Writing: A second AI Agent takes the research and writes the full LinkedIn post. Generate Image Prompt: A Code node constructs a detailed prompt, merging the post's content with your defined brand style guide. Generate Image: The prompt is sent to Replicate. The workflow waits and checks periodically until the image is ready. Publish: The generated text and image are published to your LinkedIn account. Update Status: The workflow archives the image to Google Drive and updates the topic's status in your Google Sheet to "done". 📋 n8n Nodes Used Google Sheets Langchain Agent (with OpenAI & SerpAPI) Code HTTP Request Wait / If LinkedIn Google Drive 🔑 Prerequisites An active n8n instance. Google Account** with Sheets & Drive access (OAuth2 Credentials). OpenAI Account & API Key**. SerpAPI Account & API Key** (for the research tool). Replicate Account & API Token**. LinkedIn Account** (OAuth2 Credentials). A Google Sheet** with "Topic" and "Status" columns. 🛠️ Setup Import the workflow into your n8n instance. Configure All Credentials: Go through the workflow and connect your credentials for Google, OpenAI, SerpAPI, Replicate, and LinkedIn in their respective nodes. Link Your Google Sheet: In the 1. Get Pending Topic... node, select your spreadsheet and sheet. Do the same for the final 8. ...Update Status node. Customize Your Brand Style (Highly Recommended): In the 4. Generate Branded Image Prompt (Code) node, edit the fixedImageStyleDetails variable. Change the RAL color codes and descriptive words to match your brand's visual identity. Populate Your Content Calendar: Add topics to your Google Sheet and set their status to "Pending". Activate the workflow!
by Simeon Penev
Who’s it for Growth, marketing, sales, and founder teams that want a decision-ready Ideal Customer Profile (ICP)—grounded in their own site content. How it works / What it does On form submission* collects *Website URL* and *Business Name** and redirects to Google Drive Folder after the final node. Crawl and Scrape the Website Content* - crawls and scrape *20 pages** from the website. ICP Creator* builds a *Markdown ICP** with: A) Executive Summary B) One-Pager ICP C) Tiering & Lead Scoring D) Demand Gen & ABM Plays E) Evidence Log F) Section Confidence Facts vs. Inferences, confidence scores and tables. Markdown to Google Doc* converts Markdown to Google Docs batchUpdate requests. Then this is used in *Update a document** for updating the empty doc. Create a document* + *Update a document* generate *“ICP for <Business Name>”** in your Drive folder and apply formatting. How to set up 1) Add credentials: Firecrawl (Authorization header), OpenAI (Chat), Google Docs OAuth2. 2) Replace placeholders: {{API_KEY}}, {{google_drive_folder_id}}, {{google_drive_folder_url}}. 3) Publish and open the Form URL to test. Requirements Firecrawl API key • OpenAI API key • Google account with access to the target Drive folder. Resources Google OAuth2 Credentials Setup - https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/ OpenAI API key - https://docs.n8n.io/integrations/builtin/credentials/openai/ Firecrawl API key - https://take.ms/lGcUp
by Rully Saputra
Automated SEO Watchlist: Continuous Audits Powered by Decodo, Gemini and Google Sheets Automate continuous SEO audits with Decodo and Gemini AI — live data, smart insights, and Google Sheets tracking with team alerts. Who’s it for This workflow is designed for SEO specialists, marketing teams, agencies, and website owners who want an effortless, automated way to monitor SEO health. It’s perfect for ongoing audits, content monitoring, and proactive SEO management — without the manual workload. How it works / What it does Every five days, the workflow: Reads a list of URLs from Google Sheets. Uses Decodo to fetch live on-page data — titles, meta descriptions, headings, schema, links, and Core Web Vitals. Passes that data to Gemini AI for an advanced SEO analysis and scoring based on key factors (content, metadata, links, speed, and structure). Parses results via a Structured Output Parser for clean JSON output. Stores findings in Google Sheets and sends a Telegram alert when the audit completes. Why Decodo matters Decodo is the backbone of this workflow. It powers the real-time page inspection, ensuring Gemini AI has complete, accurate data to analyze. Decodo transforms static audits into live, intelligent monitoring — making your SEO insights far more actionable and reliable. How to set up Connect your Decodo API credentials. Add your Google Sheets URL list. Configure your Telegram bot credentials. Enable the workflow — it runs automatically every 5 days. Requirements Decodo API credentials Google Sheets OAuth connection Telegram Bot token n8n instance (Cloud or Self-hosted) How to customize the workflow Change the trigger interval in the Schedule Trigger node. Modify the SEO Analyzer (LLM Chain) weights for different scoring. Extend the Store Result node to integrate with dashboards or databases. Adjust the AI prompt for additional SEO checks (e.g., backlinks, readability, image optimization). ✅ Highlights Automated SEO auditing Real-time data from Decodo Smart analysis powered by Gemini AI Structured reporting in Google Sheets Team notifications via Telegram
by Madame AI
Find & Qualify Funded Leads with BrowserAct & Gemini This n8n template helps you find new investment leads by automatically scraping articles for funding announcements and analyzing them with an AI Agent. This workflow is ideal for venture capitalists, sales teams, or market researchers who need to automatically track and compile lists of recently funded companies. Self-Hosted Only This Workflow uses a community contribution and is designed and tested for self-hosted n8n instances only. How it works The workflow is triggered manually but can be set to a Cron node to run on a schedule. A Google Sheet node loads a list of keywords (e.g., "Series A," "Series B") and geographic locations to search for. The workflow loops through each keyword, initiating BrowserAct web scraping tasks to collect relevant articles. A second set of BrowserAct nodes patiently monitors the scraping jobs, waiting for them to complete before proceeding. Once all articles are collected, they are merged and fed into an AI Agent node, powered by Google Gemini. The AI Agent processes the articles to identify companies that recently received funding, extracting the Company Name, the Field of Investment, and the source URL. A Code node transforms the AI's JSON output into a clean, itemized format. An If node filters out any entries where no company was found, ensuring data quality. The qualified leads are automatically added or updated in a Google Sheet, matching by "Company" to prevent duplicates. Finally, a Slack message is sent to a channel to notify your team that the lead list has been updated. Requirements BrowserAct** API account for web scraping BrowserAct** n8n Community Node -> (n8n Nodes BrowserAct) BrowserAct* "Funding Announcement to Lead List (TechCrunch)*" Template (or a similar scraping workflow) Gemini** account for the AI Agent Google Sheets** credentials for input and output Slack** credentials for sending notifications Need Help? How to Find Your BrowseAct API Key & Workflow ID How to Connect n8n to Browseract How to Use & Customize BrowserAct Templates How to Use the BrowserAct n8n Community Node Workflow Guidance and Showcase How to Automatically Find Leads from Funding News (n8n Workflow Tutorial)
by Easy8.ai
Auto-Generate SEO FAQ Answers from Google Sheets with OpenAI Intro/Overview This workflow automates the process of generating SEO-optimized FAQ answers using AI, pulling questions from a Google Sheet and writing answers back into the same sheet. It’s ideal for content marketers, SEO specialists, and digital teams looking to scale FAQ content generation with minimal manual input. By combining the power of Google Sheets, AI, and WordPress, the workflow transforms raw questions into structured, keyword-targeted answers tailored for specific audiences — ready for use on landing pages, blogs, or help centers, and automatically publishes them as WordPress posts. How it works Schedule Trigger**: Executes the workflow at a set interval to check for new or unprocessed questions in the Google Sheet. Get Questions from Sheet**: Reads from a specific Google Sheet, targeting columns for: Question (FAQ prompt) KW (target SEO keyword) Audience (intended reader) Article (desired WordPress post title) Filter**: Ensures only rows without an existing answer are processed (i.e., empty "Answer" column). Generate FAQ Answer**: Passes the question, keyword, and audience to the OpenAI Chat Model using a structured prompt to generate: A concise TL;DR-style summary A detailed, SEO-optimized markdown-formatted answer OpenAI Chat Model**: Utilizes GPT-4 Turbo with a controlled temperature (0.7) and token limit (1000) to produce structured, on-brand, keyword-optimized content. Parse FAQ Answer**: Extracts and formats the AI response into separate fields for writing back to the sheet. Update Sheet with Answer**: Writes the AI-generated answer into the Answer column of the same row in the source Google Sheet. WordPress Node**: Publishes each generated answer as a new WordPress post Uses “Create Post” operation Title: Taken from the Article column in the sheet Content: Uses the detailed AI-generated answer Requires valid WordPress credentials (REST API / Application Password) How to Use Importing the Workflow Download or import the workflow JSON into your n8n instance. Credential Setup Connect your Google Sheets credentials. Add your OpenAI API Key in the relevant node. Connect your WordPress credentials for content publishing. Node Assignment Update the following: Google Sheet ID Sheet range (ensure it includes all relevant columns) Timezone & Schedule Adjust the Schedule Trigger node to match your preferred time and frequency (e.g., every weekday at 9 AM). Testing Guidance Add a few sample FAQ entries in your sheet. Run the workflow manually to verify: Prompt quality Answer accuracy Proper sheet update Successful WordPress post creation Example Use Cases Marketing teams generating bulk FAQ content for landing pages SEO professionals creating keyword-optimized responses for user queries Agencies producing personalized FAQ sections for multiple client niches SaaS companies automating knowledge base content with targeted messaging Content teams publishing AI-generated FAQs directly to WordPress blogs Requirements ✅ Google Account with access to the target Google Sheet ✅ OpenAI API Key (GPT-4 Turbo or equivalent) ✅ WordPress account with REST API or Application Password access ✅ Google Sheet with the following columns: Question: The FAQ prompt KW: Target keyword for SEO Audience: Intended reader persona Article: Desired WordPress post title Answer: Output column (leave empty initially) Customization (Optional Section) Tone & Style**: Modify the system prompt to reflect your brand voice (e.g., friendly, expert, concise). Model**: Use a different AI model (e.g., Gemini, Claude, or OpenAI GPT-4.1). Output Format**: Adjust the markdown output to use different heading levels, bullet styles, or HTML if required. Audience Logic**: Expand the input options to fine-tune responses for more specific demographics or buyer personas. Multi-output Options**: Extend the workflow to post content to Notion, CMS, or documentation platforms alongside Google Sheets and WordPress. This automation accelerates content creation, automatically keeps your FAQ sections SEO-friendly, and publishes the results directly to WordPress — keeping your content pipeline running hands-free once deployed.
by Dean Pike
Convert any website into a searchable vector database for AI chatbots. Submit a URL, choose scraping scope, and this workflow handles everything: scraping, cleaning, chunking, embedding, and storing in Supabase. What it does Scrapes websites using Apify (3 modes: full site unlimited, full site limited, single URL) Cleans content (removes navigation, footer, ads, cookie banners, etc) Chunks text (800 chars, markdown-aware) Generates embeddings (Google Gemini, 768 dimensions) Stores in Supabase vector database Requirements Apify account + API token Supabase database with pgvector extension Google Gemini API key Setup Create Supabase documents table with embedding column (vector 768). Run this SQL query in your Supabase project to enable the vector store setup Add your Apify API token to all three "Run Apify Scraper" nodes Add Supabase and Gemini credentials Test with small site (5-10 pages) or single page/URL first Next steps Connect your vector store to an AI chatbot for RAG-powered Q&A, or build semantic search features into your apps. Tip: Start with page limits to test content quality before full-site scraping. Review chunks in Supabase and adjust Apify filters if needed for better vector embeddings. Sample Outputs Apify actor "runs" in Apify Dashboard from this workflow Supabase docuemnts table with scraped website content ingested in chunks with vector embeddings
by Shun Nakayama
Auto-Audit SEO Traffic Drops with AI & GSC Automatically monitor your Google Search Console data to catch SEO performance drops before they become critical. This workflow identifies pages losing rankings and clicks, scrapes the live content, and uses AI to analyze the gap between "Search Queries" (User Intent) and "Page Content" (Reality). It then delivers actionable fixes—including specific Title rewrites and missing H2 headings—directly to Slack. Ideal for SEO managers, content marketers, and site owners who want a pro-level SEO consultant running 24/7 on autopilot. How it works Compare & Detect: Compares last month's GSC performance with the previous month to identify pages with declining traffic. Deep Dive: For each struggling page, it fetches the top search queries and scrapes the actual Title and H2 tags from your live website. AI Analysis: An AI Agent analyzes why the page is failing by comparing user intent vs. actual content. Report: Sends a "Consultant-style" report to Slack with quantitative data and specific improvement tasks (e.g., "Add this H2 heading"). Set up steps Configure: Open the 📝 Edit Me: Config node and enter your GSC Property URL (e.g., sc-domain:example.com). Connect Credentials: Google Search Console: To fetch performance data. OpenAI: To analyze content and generate ideas. Slack: To receive the weekly reports. Activate: Turn on the workflow to receive your SEO audit every Monday morning.
by ConnectSafely
Send Personalized DMs to LinkedIn Profile Visitors Who's it for This workflow is built for sales professionals, recruiters, founders, and networkers who want to automatically reach out to people who viewed their LinkedIn profile. Perfect for anyone who knows that profile visitors are warm leads but doesn't have time to manually check who visited, craft personalized messages, and send outreach one by one. If you're doing outbound sales, recruiting talent, building partnerships, or simply want to convert curiosity into conversations, this automation turns passive profile views into active outreach opportunities. How it works The workflow automatically identifies LinkedIn profile visitors and sends them personalized messages based on their connection status. The process flow: Scheduled trigger runs weekly (or manually) to fetch recent profile visitors ConnectSafely.ai API retrieves all visitors from the past 7 days Splits visitors into individual records for processing Checks Google Sheets to avoid messaging the same person twice Routes based on connection degree: 1st-degree connections → Sends a personalized DM 2nd/3rd-degree connections → Sends a connection request with message Logs all outreach to Google Sheets for tracking Waits between messages to maintain natural activity patterns Loop continues until all visitors are processed Setup steps Step 1: Configure ConnectSafely.ai API Credentials Obtain API Key Create an account at ConnectSafely.ai Connect your LinkedIn account in the 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 → HTTP Bearer Auth Name it "ConnectSafely.ai API" Paste your API key Save the credential This credential is used by all three HTTP Request nodes: Fetch Profile Visitors, Send DM, and Send Connection Request. Step 2: Configure Google Sheets Integration 2.1 Create Your Tracking Sheet Create a new Google Sheet with the following columns: | Column Name | Description | |-------------|-------------| | Name | Visitor's full name | | Linkedin URL | Visitor's profile URL | | Status | Outreach status (DONE) | 2.2 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 2.3 Update All Google Sheets Nodes There are three Google Sheets nodes that need configuration: Check if Already Contacted - Looks up existing contacts Log DM Sent to Sheet - Records DMs sent Log Connection Request to Sheet - Records connection requests For each node: Open the node Replace YOUR_GOOGLE_SHEET_ID with your actual sheet ID (from the URL) Select the correct sheet name Save Step 3: Customize Your Message Templates The workflow includes two Code nodes with message templates that you must customize: For Connected Users (DMs) Open the "Generate DM for Connected User" node and update: // Sender footer - CUSTOMIZE THIS const footer = \n\n— Your Name; // Message bodies - CUSTOMIZE THESE const messages = [ "Noticed you recently checked out my profile... I've been working on [YOUR PRODUCT] — [BRIEF DESCRIPTION].", // Add more variations... ]; For New Connections (Connection Requests) Open the "Generate Message for New Connection" node and update the same sections with your product/service details. Tips for good messages: Keep under 300 characters for connection requests Personalize with their name (already included) Mention something specific about why you're reaching out Include a clear but soft call-to-action Have 3-5 variations to avoid repetitive messaging Step 4: Adjust the Schedule Open the Weekly Schedule Trigger node Adjust based on your profile traffic: High traffic: Daily Medium traffic: Every 3 days Low traffic: Weekly (default) Step 5: Test the Workflow Click Test Workflow on the Schedule Trigger or add a Manual Trigger Verify: Profile visitors are fetched correctly Deduplication works (no existing contacts get messaged) Connection degree routing works properly Messages are personalized with visitor names Google Sheets logs entries correctly Customization Time Range for Visitors Edit the JSON body in the Fetch Profile Visitors node: {"timeRange":"past_7_days","start":0,"fetchAll":true} Options: past_7_days - Last week's visitors (default) past_30_days - Last month's visitors past_90_days - Last quarter's visitors Message Personalization Both Code nodes support multiple message variations. The workflow randomly selects one for each visitor, making your outreach feel more natural. To add more variations: Open the relevant Code node Add new message strings to the messages array Use placeholders like [YOUR PRODUCT] and replace with your actual content Wait Time Between Messages The Wait Between Messages node adds delays between outreach. Adjust the duration to: Increase if you want more conservative pacing Decrease if you have premium LinkedIn and higher limits Recommended: 1-5 minutes between messages Add More Tracking Fields To track additional data in Google Sheets: Add columns to your sheet (e.g., Message Sent, Connection Degree, Date) Update the Google Sheets nodes to map these new fields Pull data from the workflow context using expressions Filter by Company or Title Want to only message visitors from specific companies or with certain titles? Add an IF node after Skip if Already Contacted Add conditions based on visitor data fields Route non-matching visitors directly to the Wait node Use Cases Sales Prospecting**: Automatically reach out to decision-makers who are researching you before a sales cycle Recruiting**: Engage passive candidates who are checking out your profile after seeing job posts Founder Networking**: Connect with investors, partners, and potential hires who show interest Consulting/Freelance**: Convert profile visitors into discovery calls by reaching out while you're top of mind Personal Branding**: Build your network by engaging everyone who takes time to view your profile Troubleshooting Common Issues & Solutions Issue: No visitors returned from API Solution**: Ensure your LinkedIn account is connected in ConnectSafely.ai dashboard. Also verify you've had recent profile views (check LinkedIn's native viewer count). Issue: Duplicate messages being sent Solution**: Verify the Google Sheets lookup is working correctly. Check that the Linkedin URL column matches exactly what the API returns. Make sure all three Google Sheets nodes point to the same sheet. Issue: Messages not sending Solution**: Check your ConnectSafely.ai API key is valid. Verify the HTTP Request nodes have the Bearer Auth credential attached. Check the API response for error messages. Issue: Wrong message type sent (DM vs Connection Request) Solution: The routing is based on connectionDegree field. Verify this field is being returned correctly from the API. Check the **Check if 1st Degree Connection node conditions. Issue: Profile ID extraction failing Solution: The **Extract Profile ID from URL Code node parses the LinkedIn URL. Check that visitors have valid navigationUrl values. Issue: Google Sheets not updating Solution**: Verify your Google Sheets credential has write access. Check that the sheet ID is correct and the sheet name matches. Issue: Rate limit errors Solution: Increase the wait time in the **Wait Between Messages node. Consider reducing the frequency of the schedule trigger. Rate Limiting Best Practices LinkedIn monitors automated activity. To stay safe: Start slow**: Begin with 10-15 messages per day Gradually increase**: Add 5 more per week up to 50/day max Use random delays**: The workflow includes built-in waits Pause if warned**: If LinkedIn shows any warnings, stop for 24-48 hours Keep messages personal**: Avoid spammy, salesy language Don't run 24/7**: Schedule during business hours Costs & Considerations | Service | Cost | |---------|------| | ConnectSafely.ai | Free trial available, then subscription | | Google Sheets | Free | | n8n | Free (self-hosted) or cloud pricing | No per-message costs - ConnectSafely.ai subscription includes API access for messaging. Documentation & Resources Official Documentation ConnectSafely.ai Docs**: https://connectsafely.ai/docs ConnectSafely.ai API Reference**: Available in dashboard Google Sheets API**: https://developers.google.com/sheets 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 and LinkedIn strategies: 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 giangxai
Description Automatically turn a simple Telegram message into fully researched, AI-generated visual content and publish it to multiple social platforms using Blotato — with async processing control and built-in status validation. This workflow creates a complete: Telegram → AI → Research → Visual → Publish → Confirm automation pipeline. Who is this for? This template is ideal for: Content creators automating daily posting Solopreneurs building a 24/7 AI content engine Agencies managing multiple social accounts AI automation builders integrating Telegram + Blotato Teams that want a Chat → Publish pipeline If you want to control your entire content system from a single Telegram chat, this workflow is for you. What problem is this workflow solving? Manual content production usually requires: Researching topics manually Switching between AI writing tools and design tools Waiting for rendering without clear status updates Posting separately to each platform No centralized confirmation system This workflow connects research, media generation, publishing, and confirmation into one automated orchestration system. What this workflow does This automation workflow: Accepts a topic or request via Telegram Bot Sends the message to an AI Content Orchestrator Uses AI model + conversation memory for context Creates a Source job via Blotato (research stage) Waits for structured content extraction Retrieves processed research data Creates a Visual generation job (infographic or slideshow) Waits for AI rendering Retrieves final media asset Publishes automatically to: Instagram LinkedIn Sends confirmation back to Telegram Workflow pattern used Trigger → Analyze → Create → Wait → Retrieve → Validate → Publish → Confirm Setup 1. Configure Telegram Trigger Use Telegram Bot Trigger Connect your Telegram Bot token Set update type to message Ensure bot permissions are enabled This is the entry point of the system. 2. Configure AI Core (Orchestrator) Connect: AI Chat Model Conversation Memory storage Ensure: User message is mapped correctly into the AI prompt Memory is attached for contextual responses Output is structured for downstream routing 3. Configure Blotato Research Engine Create Source Connect Blotato credentials Map topic/content request correctly Store Source ID Wait for Source Processing Add a Wait node Adjust delay based on API performance Get Source Retrieve structured research output Validate status = completed Only completed sources proceed to visual generation. 4. Configure Blotato Media Engine Create Visual Connect Blotato credentials Map structured content into visual prompt Select infographic or slideshow format Wait for Rendering Adjust timing based on rendering duration Get Visual Retrieve generated media Validate status = completed 5. Configure Distribution Publish to Instagram Connect Instagram credentials Verify posting permissions Publish to LinkedIn Connect LinkedIn credentials Confirm correct profile or page selection Both platforms publish automatically once media is validated. 6. Configure Telegram Response Use Telegram Response Sender Send success confirmation Optionally include published links Add failure branch notification if needed This keeps the entire workflow controlled from one chat interface. How to customize this workflow You can extend this workflow by: Adding Telegram approval before publishing Generating AI captions and hashtags dynamically Adding retry logic for failed jobs Logging execution results into Google Sheets Expanding to Facebook or TikTok Adding analytics tracking Best practices Keep wait durations aligned with API speed Always validate job status before proceeding Maintain consistent ID mapping (Source ID / Visual ID) Monitor failed execution branches Test with simple content before scaling Nodes used in workflow Telegram Trigger AI Chat Model Memory Store HTTP Request (Blotato API) Wait Switch If Sticky Note Free or Paid? Depends on: Blotato plan AI model usage Social platform API limits This workflow transforms a Telegram message into a fully automated, multi-platform AI content system running 24/7 — including research, visual creation, publishing, and confirmation. (Watch the tutorial video on YouTube)[https://youtu.be/WdTimRjiiH8]
by Jose Bossa
Automated Social Media Video Posting 👥 Who's it for This workflow is perfect for content creators, social media managers, and businesses who want to schedule and automatically post videos 📹 to multiple platforms (Instagram, LinkedIn, TikTok) without manual effort. Save hours every week! ⏰ 🤖 What it does It automatically reads scheduled posts from Google Sheets, checks if it's the right time to post, downloads videos from Google Drive, uploads them to multiple social media platforms simultaneously, updates the posting status, and sends you a Telegram notification with the results. Complete hands-free social media management! 🚀 ⚙️ How it works ⏰ Schedule Trigger – Runs twice daily at 9 AM and 9 PM 📊 Google Sheets (Read) – Fetches posts with status "Listo para postear" (Ready to post) ⚙️ Code Node – Converts trigger time to readable Spanish format (e.g., "16 de Octubre a las 9 am") 🔍 If Condition – Checks if current time matches the scheduled post time in the sheet 📝 Format Drive Content – Extracts and organizes post data (Title, Copy, Video URL) 🆔 Social Media Account IDs – Prepares account identifiers (can be customized for specific accounts) 🎬 Upload a video – Posts video simultaneously to Instagram, LinkedIn, and TikTok using UploadPost API 📊 Google Sheets (Update) – Changes post status to "Posteado" (Posted) to avoid duplicates 📱 Telegram Notification – Sends detailed success report with URLs for each platform 📋 Requirements Google Sheets** with your content calendar Google Drive** to store your videos UploadPost API account** (supports Instagram, LinkedIn, TikTok): Click aquí 👉 UploadPost Telegram Bot** for notifications n8n instance** with required node packages Google Sheets Structure Your spreadsheet should have these columns: Title – Post title Copy – Post caption/description Video Link – Google Drive download URL Status – Post status ("Listo para postear" or "Posteado") Fecha.Hora – Scheduled time (format: "16 de Octubre a las 9 am") row_number – Auto-generated row identifier 🛠️ How to set up Create your Google Sheets calendar: Set up columns as specified above Use status "Listo para postear" for scheduled posts Format dates as "DD de Mes a las HH am/pm" (Spanish format) Upload videos to Google Drive: Get shareable download links (format: https://drive.google.com/uc?export=download&id=FILE_ID) Ensure videos meet platform requirements (duration, format, size) Configure UploadPost API: Create account and get API credentials Connect your Instagram, LinkedIn, and TikTok accounts Add credentials to the "Upload a video" node Set up Google Sheets credentials: Connect OAuth2 for both read and update operations Update documentId with your spreadsheet ID Verify sheet name matches (default: "Video") Configure Telegram notifications: Create a Telegram bot via @BotFather Get your chat ID Add credentials to "Send a text message" node Customize posting times: Modify Schedule Trigger hours (default: 9 AM and 9 PM) Times are in Santiago, Chile timezone (America/Santiago) Test the workflow: Create a test entry with current time Run manually to verify all connections work Check Telegram for success notification Activate the workflow ✅ 🎨 How to customize Change posting schedule:** Modify triggerAtHour values in Schedule Trigger (add more times if needed) Add more platforms:** Extend the platform array in "Upload a video" node (supports YouTube, Facebook, Twitter) Customize notification format:** Edit the Telegram message template to include/exclude information Change timezone:** Modify the timeZone parameter in the Code node (default: "America/Santiago") Filter by platform:** Add a filter node before upload to post only to specific platforms on certain days Add approval workflow:** Insert an approval step before posting using Telegram or Slack Multiple accounts per platform:** Modify "Social Media Account IDs" node to specify different account IDs Error handling:** Add error notification paths to alert you if uploads fail Batch posting:** Remove returnFirstMatch option to post multiple videos at once 💡 Pro Tips Time format must match exactly** between Schedule Trigger and Google Sheets for the workflow to trigger Videos should be optimized for each platform before upload (aspect ratio, length, file size) Test with a private account first before going live Keep video files under 100MB for best performance across platforms Use the row_number column to track and update specific posts The workflow runs twice daily, so schedule posts accordingly (9 AM or 9 PM slots) ⚠️ Important Notes Posts marked as "Posteado" won't be processed again (prevents duplicates) Video must be publicly accessible from the Google Drive link UploadPost API has rate limits depending on your plan Telegram notifications show success status and post URLs for each platform The Code node converts times to Spanish format - modify if you need different language/format