by Abdul Mir
Overview Create hyper-personalized cold outreach messages at scale by combining Google Sheets, web scraping, and AI. This workflow is perfect for sales teams, SDRs, and agency owners looking to boost reply rates with icebreakers that actually feel personal. It takes lead info from a Google Sheet—including name, email, company, and website—then visits each site, pulls meaningful text, and crafts a tailored message using AI. The personalized message is then written back into your lead sheet, ready for use in cold email, LinkedIn DMs, or CRM enrichment. Who’s it for Cold email outreach specialists B2B sales and SDR teams Lead generation agencies Founders doing outbound manually How it works Pull lead data from Google Sheets Loop through each lead and scrape their website using an HTTP node Clean and format the website content Use OpenAI to generate a custom-written icebreaker for each lead Write the final icebreaker back into the spreadsheet How to set up Connect your Google Sheets account Replace the spreadsheet ID and column names with your own Set up your OpenAI credentials (or whichever LLM you prefer) Tweak the prompt for tone or style Hit "Execute Workflow" and watch the sheet populate Requirements Google Sheets credentials OpenAI (or any compatible LLM node) The websites listed must be publicly accessible and static How to customize Modify the scraping logic to focus on specific sections (e.g. About page, Case Studies) Adjust the AI prompt to match your brand’s tone Add filtering logic to skip low-value leads Integrate with your CRM to send the data downstream
by Ruth Olatunji
This n8n is a daily analytics automation that calculates which lead sources generate actual revenue, not just leads. Provides ROI data, conversion rates, and budget allocation recommendations. Use Case: automates marketing ROI tracking by linking closed deals to their lead sources in Airtable, calculating revenue and ROI per channel, and sending daily insights to Slack. What It Does Runs nightly to analyze closed deals from last 30 days Matches deals to their original lead sources Calculates total revenue per source Computes ROI (revenue vs. cost per lead) Determines conversion rates by source Updates Lead Sources table with metrics Sends weekly reports to team How It Works Step 1: Schedule Trigger Runs daily at midnight Step 2: Fetch Closed Won Deals Gets all deals where: Stage = "Closed Won" Actual Close Date in last 30 days Step 3: Fetch Lead Sources Gets cost and lead count data from Lead Sources table Step 4: Calculate ROI (JavaScript) For each source: Total revenue = Sum of all deals from that source Total cost = Cost per lead × Total leads ROI = ((Revenue - Cost) / Cost) × 100 Conversion rate = Deals closed / Total leads × 100 Average deal size = Revenue / Deal count Step 5: Update Lead Sources Writes calculated metrics back to Airtable Step 6: Send Report Slack message with top 3 performing sources Business Impact Marketing ROI:** Know exactly which channels generate revenue Budget optimization:** Allocate spend to highest-ROI sources Data-driven decisions:** Stop guessing, start knowing Cost reduction:** Cut low-performing channels Revenue growth:** Double down on what works Technical Requirements n8n (self-hosted or cloud) Airtable (uses existing tables) Slack (for reports) Gmail for reminder incase CEO missed the report in the Slack channel (optional)
by DIGITAL BIZ TECH
AI-Powered LinkedIn Post Generator Workflow Overview This workflow is a two-part intelligent content creation system built in n8n, designed to generate professional and on-brand LinkedIn posts. It combines a conversational frontend agent that interacts naturally with users and a backend post generation engine powered by structured templates and Mistral Cloud AI models. Workflow Structure Frontend:** Conversational “LinkedIn Agent” that guides the user. Backend:** “Post Generator” engine that produces final, high-quality content using dynamic templates. LinkedIn Agent (Frontend Flow) Trigger:** When chat message received Starts the workflow whenever a user sends a message to the chatbot or embedded interface. Agent:** LinkedIn Agent Welcomes the user and lists 7 available post templates: Educational Promotional Discussion Case Study & Testimonial News Personal General Prompts the user to select a template number. Asks for a topic after the user’s choice. Sends both template number and topic to the backend using a Tool call. Memory:** Simple Memory1 Stores the last 10 messages to maintain conversational context. LLM Model:** Mistral Cloud Chat Model1 Used for reasoning, conversational responses, and user guidance. Tool Used:** template Invokes another trigger in the same workflow: When Executed by Another Workflow. Passes the user’s chosen template and topic to the backend. Post Generation Engine (Backend Flow) Trigger:** When Executed by Another Workflow Receives payload from the template tool (template ID + topic). Router Node:** Switch between templates Directs flow to the correct post template logic based on user’s choice (1–7). Example: 1 → Knowledge & Educational 2 → Promotion 3 → Discussion 4 → Case Study & Testimonial etc. Prompt Template Nodes:** Each Set node defines a large, structured prompt containing: Specific tone, audience, and purpose rules Example hooks and CTAs Layout and line formatting instructions “FORBIDDEN PHRASES” list (e.g., no “game-changer”, “revolutionary”) Expert Writer Agent:** post generator A specialized agent node that receives the selected prompt template. Generates the final LinkedIn post text using strict formatting and tone rules. Model: Mistral Cloud Chat Model Output:** The generated post text is sent back to the template tool and displayed to the user in chat. Integrations Used | Service | Purpose | Credential | |----------|----------|-------------| | Mistral Cloud | LLM & post generation | Mistral Cloud account dbt | | n8n Agent Framework | Multi-agent orchestration | Native | | Chat UI / Webhook | Frontend interaction | Custom embedded UI or webhook trigger | Agent System Prompt Summary > “You are an intelligent LinkedIn assistant that helps users craft posts. List available templates, guide them to select one, and collect a topic. Then use the provided template tool to request the backend writer to generate a final post.” Backend writer’s system prompt: > “You are an expert LinkedIn marketing leader. Generate structured, professional posts for AI/automation topics. Avoid hype, buzzwords, and clichés. Keep sentences short, tone confident, and use strong openers.” Key Features Dual-agent architecture (Frontend Assistant + Backend Writer) 7 dynamic content templates for flexibility Conversational chat interface for ease of use Strict brand tone enforcement with style run Fully automated generation and return of final post in chat Summary > A modular, agent-based n8n workflow for automated LinkedIn post creation, featuring conversational input, structured templates, and AI-generated output powered by Mistral Cloud. Perfect for content teams, social media managers, and AI automation startups. Need Help or More Workflows? Want to customize this workflow for your business. Our team at Digital Biz Tech can tailor it precisely to your use case — from automation logic to AI-powered content engines. We can help you set it up for free — from connecting credentials to deploying it live. Contact: shilpa.raju@digitalbiz.tech Website: https://www.digitalbiz.tech LinkedIn: https://www.linkedin.com/company/digital-biz-tech/ You can also DM us on LinkedIn for any help.
by Oneclick AI Squad
This workflow automatically replies to new comments on your Instagram posts using smart AI. It checks your recent posts, finds unread comments, and skips spam or duplicates. The AI reads the post and comments to create a friendly, natural reply with emojis. It posts the reply instantly and logs everything so you can track engagement. Perfect for busy creators — stays active 24/7 without you lifting a finger! What It Monitors Recent Instagram Posts**: Fetches the latest posts based on your account activity. New Comments**: Detects unreplied comments in real time. Reply Eligibility**: Filters spam, duplicates, and already replied comments. AI-Generated Responses**: Creates personalized, engaging replies using post context. Features Runs on a schedule trigger (High traffic: 2–3 min | Medium: 5 min | Low: 10+ min). Fetches recent posts and their comments via Instagram Graph API. Context-aware AI replies** using post caption + comment content. Spam & duplicate filtering** to avoid unwanted or repeated replies. Tone-friendly & emoji-rich** responses for higher engagement. Logs every reply** with metadata (post ID, comment ID, timestamp). Workflow Steps | Node Name | Description | |---------|-----------| | Schedule Trigger | Triggers workflow based on traffic level (2–10 min intervals). | | Get Recent Posts | Fetches recent posts using Instagram Graph API. Returns post IDs needed to fetch comments. | | Split Posts | Splits batch of posts into individual items for parallel processing. | | Get Comments | For each post, retrieves comments with content, username, timestamp, like count. | | Split Comments | Splits comments into individual items for granular processing. | | Add Post Context | Combines comment + original post caption to generate relevant replies. | | Check if Replied | Checks if AI has already replied to this comment (prevents duplicate replies). | | Not Replied Yet? | Routes only unreplied comments forward. | | Spam Filter | Filters out spam using: • Spam keywords • Empty/one-word comments • Excessive emojis • Known spam patterns | | Should Reply? | Final logic gate: • If reply key exists → Skip • If spam → Skip • Else → Proceed | | Generate AI Reply | Uses OpenAI (or compatible LLM): • Input: Post caption + comment • Tone: Friendly & engaging • Max tokens: 150 • Temperature: 0.8 (creative) | | Post Reply | Posts AI-generated reply via Instagram API: • Method: POST • Body: message parameter • TTL: 30 days | | Mark As Replied | Updates internal tracking to prevent duplicate replies. | | Log Reply | Logs full reply details: • Post ID • Comment ID • Username • Reply text • Timestamp • Used for analytics & reporting | How to Use Copy the JSON configuration of the workflow. Import it into your n8n workspace. Configure Instagram Graph API credentials (Business/Creator Account required). Set up OpenAI API key in the Generate AI Reply node. Activate the workflow. Monitor replies in Instagram and execution logs in n8n. > The bot will only reply once per comment, skip spam, and use full post context for natural responses. Requirements n8n** account and self-hosted or cloud instance. Instagram Business or Creator Account** with Graph API access. Facebook App** with pages_read_engagement, pages_manage_comments permissions. OpenAI API key** (or compatible LLM endpoint). Valid access token with long-lived permissions. Customizing this Workflow Change Schedule Trigger interval based on post frequency (e.g., every 1 min for viral accounts). Update Spam Filter keywords list for brand-specific spam patterns. Modify Generate AI Reply prompt to match your brand voice (e.g., formal, humorous, Gen-Z). Adjust Temperature (0.5 = consistent, 1.0 = creative) and Max Tokens. Replace OpenAI with Claude, Gemini, or local LLM via HTTP request. Add approval step (manual review) before posting replies. Export logs to Google Sheets, Airtable, or database for analytics. Explore More AI Workflows: https://www.oneclickitsolution.com/contact-us/
by Alexandru Florea
This workflow allows you to integrate the Google Gemini CLI into your n8n AI Agents. It is designed for self-hosted n8n instances and enables you to chat with the Gemini CLI running on your local machine or server via SSH. This is powerful for users who want to utilize the free tier of Gemini via Google's CLI tools or need the AI to interact with local files on the host server. How it works AI Agent**: The main workflow uses a LangChain AI Agent with a custom tool. Custom Tool**: When the agent needs to answer, it calls a sub-workflow ("Gemini CLI Worker"). SSH Execution**: The sub-workflow connects to your host machine via SSH, executes the gemini command with your prompt, and returns the CLI's standard output to the chat. Set up steps Prerequisites: You must have Node.js (v20+) and the gemini-chat-cli installed on your host machine. Split the Workflows: Copy the bottom section (Sub-workflow). Paste it into a new workflow, name it "Gemini CLI Worker", and Save it. Note the ID of this new workflow. Configure the Main Workflow: Open the Call 'Gemini CLI' node. In the "Workflow ID" field, select the "Gemini CLI Worker" workflow you just saved. Configure SSH: Open the Execute a command node in the sub-workflow. Configure your SSH credentials (IP, Username, Password/Key) to allow n8n to connect to the host where Gemini CLI is installed.
by Open Paws
📌 Who’s it for This template is designed for campaigners, researchers, and organizers who need to enrich spreadsheets of contacts with publicly available social media profiles. Ideal for advocacy campaigns, outreach, or digital organizing where fast, scalable people lookup is needed. ⚙️ What it does This workflow scans a Google Sheet for rows marked as unanalysed ("Analysed?" = false), sends each contact to a dedicated AI-powered research agent, and returns structured public profile links across major platforms like: Twitter/X LinkedIn Facebook Instagram GitHub TikTok YouTube Reddit Threads Medium Substack And more (18+ total) It processes one contact per run for clarity and stability, appending the results back to the original Google Sheet. 🛠️ How to set it up Copy the Google Sheet template → This sheet includes sample columns and headers for contacts and social profile fields. Paste your contact list at the end of the sheet. For each new contact, make sure the "Analysed?" column is set to false. Clone this workflow and the AI Research Agent subworkflow. Connect your Google Sheets account in n8n. Update the workflow with your sheet ID and sheet name (Sheet1 by default). Trigger the workflow on a schedule (e.g. every 15 minutes) or run it manually. ✅ Requirements Google Sheets integration** set up in n8n Access to this AI research subworkflow OpenRouter API key n8n (self-hosted or cloud) 🧩 How to customize the workflow Modify the research agent to prioritize specific platforms or return only verified profiles. Add more profile columns to the Google Sheet and schema to match your custom fields. Add logic to send alerts (email, Slack, etc.) for specific contacts. Use an n8n webhook instead of a schedule to run the process on demand. Use a loop over all items to process all rows sequentially (only recommended for small datasets due to memory constraints)
by M Sayed
Keep an eye on gold prices without lifting a finger! 🕵️♂️ This workflow checks gold prices every 15 minutes and sends you a neat little report. What it does: ✨ Fetches the live price of gold. 🌍 Converts it into your local currency AND USD. 📊 Creates a simple table with prices for 24k, 21k, and 18k gold. 🔔 Sends the update directly to your Telegram chat! Setup is easy: Just set your local currency (like 'EGP') and your Telegram Chat ID. That's it! ✅
by SpaGreen Creative
Automate Shopify Abandoned Cart WhatsApp Reminders with Product Links via Rapiwa Who’s it for This n8n workflow automatically identifies customers who have abandoned their carts on your Shopify store, cleans and verifies their WhatsApp numbers, and sends them personalized reminders via the Rapiwa API. It also logs each interaction—whether the number was valid or not—into a connected Google Sheet. Designed for marketers, small business owners, freelancers, and support teams, this solution makes it easy to run bulk WhatsApp campaigns using just a Google Sheet and your own WhatsApp number—no need for the official WhatsApp Business API. It’s a budget-friendly, scalable, and easy-to-manage alternative for anyone looking to automate WhatsApp follow-ups without the tech hassle. How it Works / What It Does Reads rows from a Google Sheet where the Status column is marked as "pending". Cleans each phone number (removes special characters, spaces, etc.). Verifies whether the number is a WhatsApp user using the Rapiwa API. If valid: Sends the message via Rapiwa. Updates Status = sent and Verification = verified. If invalid: Skips sending. Updates Status = not sent and Verification = unverified. Waits a configurable delay between sends to avoid rate limits. Processes rows in small batches and repeats on schedule (default every 5 minutes). How to Set Up Duplicate the sample Google Sheet format and populate it with contacts and messages. Fill required columns such as WhatsApp No, Name, Message, Image URL, and set Status = pending. Connect Google Sheets in n8n and grant the required OAuth scopes. Create an HTTP Bearer credential in n8n and paste your Rapiwa API key. Configure the workflow nodes (Trigger, Google Sheets, Limit, SplitInBatches, Code, HTTP Request, If, Update Google Sheets, Wait). Enable the workflow in n8n. Requirements Google Sheets API credentials (OAuth2) configured in n8n Google Sheet matching the template (WhatsApp No, Name, Message, Status, Verification) Rapiwa account and Bearer token n8n instance with HTTP Request and Google Sheets nodes enabled How to Customize the Workflow Add or increase delay between messages using the Wait node (e.g., 5–10 seconds). Change message content or include media by editing the HTTP Request body. Personalize messages using sheet columns (Name, product details, coupon codes). Add error handling nodes to retry failed sends or log errors. Adjust the Limit node to control how many rows are processed per run. Workflow Highlights Triggered every 5 minutes using the Schedule Trigger node. Filters sheet rows where Status = pending. Cleans numbers and verifies WhatsApp existence before sending. Sends messages via Rapiwa (unofficial API). Updates Google Sheet rows with Status = sent/not sent and Verification = verified/unverified. Uses a Wait node to prevent rapid-fire sending. Setup in n8n 1. Connect Google Sheets Add a Google Sheets node. Authenticate with your Google account. Select the document and worksheet. Use a filter or query to fetch rows with Status = pending. 2. Loop Through Rows Use SplitInBatches to process rows in small chunks (e.g., 5 rows per batch). Add a Code node to clean phone numbers (remove non-digits). Add a Wait node to pause between individual sends (recommended 5 seconds). 3. Send Message via HTTP Node Configure an HTTP Request node to POST to: https://app.rapiwa.com/api/send-message Use Bearer Token authentication with your Rapiwa API key. Example JSON body: { "number": "{{ $json['WhatsApp No'] }}", "message": "{{ $json['Message'] }}" } After the send, update the row in Google Sheets with the result. Sample Google Sheet Structure A Google Sheet formatted like this ➤ sample | name | number | order id | item name | coupon | item link | total price | validity | status | | -------------- | ------------- | -------------- | --------------------------------- | ------ | -------------------------------------------------------------------------------- | ------------ | ---------- | -------- | | Abdul Mannan | 8801400620056 | 39248398811454 | S25 Ultra 5XXXXX Price Cell Phone | | Product Link | 11500.00 BDT | unverified | not sent | | Abdul Mannan | 8801400620055 | 39248402153790 | S25 Ultra 5XXXXX Price Cell Phone | | Product Link | 11500.00 BDT | verified | sent | | Abdul Mannan | 8801400620055 | 39248403431742 | S25 Ultra 5XXXXX Price Cell Phone | | Product Link | 11500.00 BDT | verified | sent | Tips Ensure numbers are in proper format (e.g., 8801XXXXXXXXX — no +, no spaces). Use public image URLs if sending media. Store Rapiwa API key securely in n8n credentials. Test with a small batch before scaling up. Mark processed rows as "sent" to avoid duplicates. Increase Wait time or reduce batch size if you encounter rate limiting. Important Notes Avoid Duplicates: The Google Sheet serves as a ledger. Sent messages won’t be repeated in the next cycle. Rate Limit Awareness: Use Wait nodes to space out requests and avoid getting banned. Add Delay for Safety: If needed, increase wait times or limit message batches. Extendable: You can add product images, links, or even abandon cart discounts dynamically. Future Enhancements (Ideas) Add delay between batches (e.g., 60 messages/hour) Auto-update Shopify checkout status (via GraphQL API) Use more advanced templates or media (via Rapiwa) Add error handling to log failed API calls Use Telegram/Slack node to notify when process ends Useful Links Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Support WhatsApp Support: Chat Now Discord: Join SpaGreen Community Facebook Group: SpaGreen Support Website: https://spagreen.net Developer Portfolio: Codecanyon SpaGreen
by Robert Breen
Automatically pulls tasks from your Trello board and sends a daily summary to Slack. Perfect for staying on top of admin tasks, due dates, and project updates without leaving Slack. ⚙️ Setup Instructions 1️⃣ Connect Trello (Developer API) Get your API key here → Trello App Key On the same page, generate a Token (click Token). In n8n → Credentials → New → Trello API → paste API Key + Token, then save. Open each Trello node (Get Board, Get Lists, Get Cards) and select your Trello credential. 2️⃣ Connect Slack Go to Slack API Apps and create a new app. Add OAuth & Permissions → include scopes like: chat:write (to send messages) users:read (if targeting specific users) Install the app to your workspace → copy the Bot User OAuth Token. In n8n → Credentials → New → Slack OAuth2 API → paste the token and save. In your Slack node (e.g., Send a message), select your Slack credential, and choose whether to send messages to a channel or a user. 3️⃣ Add Your Board URL to “Get Board” Copy your Trello board URL (e.g. https://trello.com/b/DCpuJbnd/administrative-tasks). Open the Get Board node → set: Resource: Board Operation: Get ID → choose URL mode and paste the board link. This node will return the board id → used by Get Lists / Get Cards nodes. 📬 Contact Need help customizing this workflow or building automations? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com
by Kunsh
How it works Automatically monitors NIST's CVE database every hour for new vulnerabilities and uses AI to assess their relevance for bug bounty hunting, delivering actionable intelligence directly to Slack. Set up steps Get Google Gemini API key from AI Studio (free tier available) Create Slack bot with chat:write permissions Configure your target Slack channel AI filters and scores each CVE for exploitation potential What you'll get Real-time CVE intelligence with: Bug bounty relevance scoring (HIGH/MEDIUM/LOW/NONE) Actionable testing strategies for each vulnerability Slack-formatted reports with CVSS severity scores Focus on web-testable vulnerabilities only Part of "The Warden" project - perfect for security researchers who want AI-filtered, actionable CVE intelligence without the noise.
by Patrick Jennings
Sleeper NFL Draft Results to Telegram Easily retrieve and send your Sleeper fantasy football draft picks to Telegram with this plug-and-play n8n workflow template. What This Workflow Does This workflow allows you to: Accept a /team {username} command via Telegram Use the Sleeper API to: Get the user’s ID from their username Find the most recent NFL draft associated with that user Fetch all the picks made in that draft Filter only the picks made by that user Format the data into a readable message Send back a Telegram message with full pick results including: Round, draft slot, overall pick Player name, position, and team Requirements Sleeper Fantasy Football account** with at least one completed draft Telegram Bot** created via BotFather n8n instance** with: Telegram Trigger credentials set up Access to external HTTP requests (Sleeper API) Setup Instructions Import the Template into your n8n instance. Add Telegram Credentials: Go to Credentials > Telegram API Add your bot token Replace REPLACE_WITH_YOUR_TELEGRAMAPI_CREDENTIAL in the workflow Customize: Optional: Modify the /team command trigger Optional: Adjust formatting of the Telegram message Example Telegram Response Your draft results From 2024 Your City Here (dynastyppr) season! Here are your picks: • Round 1, Pick 4: (4 overall) Christian McCaffrey (RB - SF) • Round 2, Pick 21: (21 overall) Garrett Wilson (WR - NYJ) • Round 3, Pick 28: (28 overall) Travis Etienne (RB - JAX) Notes This workflow defaults to the first Sleeper league/draft returned — you can enhance logic to let users select from multiple leagues. Draft year is hardcoded to 2024. Update for future seasons as needed. Does not require Airtable or Google Sheets.
by David Olusola
🎬 YouTube New Video → Auto-Post Link to Slack This workflow automatically checks your YouTube channel’s RSS feed every 30 minutes and posts a message to Slack when a new video is published. It includes the title, description snippet, publish date, and a direct “Watch Now” button. ⚙️ How It Works Check Every 30 Minutes A Cron node runs on a 30-minute interval. Keeps monitoring the channel RSS feed for updates. Fetch YouTube RSS The HTTP Request node retrieves the channel’s RSS feed. Uses the format: https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID Parse RSS & Check for New Video A Code node extracts video info: Title Link Description Published date Sorts by most recent publish date. Ensures only new videos within last 2 hours are processed (avoids duplicate posts). Format Slack Message Builds a rich Slack message with: Video title Description preview Published date Button: “🎥 Watch Now” Post to Slack Sends the formatted message to your chosen Slack channel (default: #general). Includes custom username/icon for branding. 🛠️ Setup Steps 1. Get YouTube Channel RSS Go to your channel page → View Page Source. Find: channel/UCxxxxxxxxxx (your channel ID). Construct RSS feed: https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID Replace YOUR_CHANNEL_ID_HERE in the HTTP Request node. 2. Connect Slack Create a Slack app at api.slack.com. Add OAuth scopes: chat:write, channels:read. Install to your workspace. In n8n, connect your Slack OAuth credentials. 3. Adjust Timing (Optional) Default = runs every 30 minutes. Modify the Cron node if you want faster or slower checks. 📺 Example Slack Output 🎬 New Video Published! How to Automate Your Business with n8n 📅 Published: Aug 29, 2025 Learn how to connect your apps and automate repetitive tasks using n8n… With a clickable 🎥 Watch Now button linking directly to the video. ⚡ With this workflow, your Slack team is always up to date on new YouTube uploads — no manual link sharing needed.