by Roni Bandini
How it works This template waits for an external button to be pressed via webhook, then reads a Google Sheet with pending shipments. The sheet contains the columns: idEnvio, fechaOrden, nombre, direccion, detalle, and enviado. It determines the next shipment using Google Gemini Flash 2.5, considering not only the date but also the customer’s comments. Once the next shipment is selected, the column “enviado” is updated with an X, and the shipping information is forwarded to Unihiker’s n8n Terminal. Setup Create a new Google Sheet and name it "Shipping". Add the following column headers in the first row: idEnvio, fechaOrden, nombre, direccion, detalle, and enviado. Connect your Google Sheets and Google Gemini credentials. In your n8n workflow, select the Shipping sheet in the Google Sheets node. Copy the webhook URL and paste it into the .ino code for your Unihiker n8n Terminal. 🚀
by Minibox Digital
Find out exactly which keywords top-rated Upwork freelancers use in their profiles — so you can optimize yours for search visibility and client trust. Who's it for Freelancers on Upwork who want data-driven insights into how top earners in their niche write their profiles, rather than guessing which skills and phrases to highlight. How it works The workflow scrapes up to 20 top-rated Upwork profiles for any search term using the Apify talent scraper. It normalizes each profile with field-weighted scoring — title text counts 3× more than bio text, and skills count 2× — because those fields carry more weight in Upwork's own search algorithm. It then calculates keyword coverage across all profiles, tracking how many individual profiles contain each keyword rather than just total occurrences. Single words, two-word phrases, and three-word phrases are all analyzed. Each keyword is scored using a composite formula and grouped into tiers: Essential, High Demand, Targeted, or Niche. Results are exported to Google Sheets with coverage stats and placement tips. How to set up Add your Apify API token to the Run Apify Actor node URL Add your Google Sheets OAuth2 credential in n8n Paste your Google Sheet ID into the Save to Google Sheets node In Configure Search, update the searchUrl to your target niche Requirements Apify account (free tier) Google Sheets account n8n (cloud or self-hosted) How to customize Change maxResults in Configure Search from 20 to 50+ for a larger keyword sample. Filter results in Google Sheets by the Tier column to focus on Essential and High Demand keywords first.
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 Vigh Sandor
PKI Certificate & CRL Monitor - Auto Expiration Alert System Overview This n8n workflow provides automated monitoring of Public Key Infrastructure (PKI) components including CA certificates, Certificate Revocation Lists (CRLs), and associated web services. It extracts certificate information from the TSL (Trusted Service List) -- the Hungarian is the example list as default in the workflow -- , monitors expiration dates, and sends alerts via Telegram and SMS when critical thresholds are reached. Features Automated extraction of certificate URLs from TSL XML CA certificate expiration monitoring CRL expiration tracking Website availability monitoring with retry mechanism Multi-channel alerting (Telegram and SMS) Scheduled execution every 12 hours 17-hour warning threshold for expirations Setup Instructions Prerequisites n8n Instance: Running n8n installation with Linux environment Telegram Bot: Created via @BotFather Textbelt API Key: For SMS notifications (optional) Network Access: To reach TSL source and certificate URLs Linux Tools: OpenSSL, curl, libxml2-utils, jq (auto-installed) Configuration Steps 1. Telegram Setup Create Telegram Bot: Open Telegram and search for @BotFather Send /newbot and follow prompts Save the bot token (format: 1234567890:ABCdefGHIjklMNOpqrsTUVwxyz) Create Alert Channel: Create a new Telegram channel for alerts Add your bot as administrator Get channel ID: Send a test message to the channel Visit: https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates Find "chat":{"id":-100XXXXXXXXXX} - this is your channel ID 2. SMS Setup (Optional) Textbelt Configuration: Register at https://textbelt.com Purchase credits and obtain API key Note: Free tier allows 1 SMS/day for testing 3. Configure Alert Nodes Update these nodes with your credentials: CRL Alert Node: Open CRL Alert --- Telegram & SMS node Replace YOUR-TELEGRAM-BOT-TOKEN with your bot token Replace YOUR-TELEGRAM-CHANNEL-ID with your channel ID Replace +36301234567 with target phone number(s) Replace YOUR-TEXTBELT-API-KEY with your Textbelt key CA Alert Node: Open CA Alert --- Telegram & SMS node Apply same replacements as above Website Down Alert Node: Open Send Website Down - Telegram & SMS node Apply same replacements as above 4. TSL Source Configuration The workflow defaults to Hungarian TSL: URL: http://www.nmhh.hu/tl/pub/HU_TL.xml To change, edit the Collect Checking URL list node Trust list references: https://ec.europa.eu/tools/lotl/eu-lotl.xml (to find more TSL list to change the default), and https://www.etsi.org/deliver/etsi_ts/119600_119699/119615/01.02.01_60/ts_119615v010201p.pdf (to Technical Specification of the Trust Lists) 5. Threshold Configuration Default warning threshold: 17 hours before expiration To modify CRL threshold: Edit nextUpdate - TimeFilter node To modify CA threshold: Edit nextUpdate - TimeFilter1 node Change value in condition: if (diffHours < 17) Activation Save all configuration changes Test with Execute With Manual Start trigger Verify alerts are received Toggle workflow to Active status for scheduled operation How to Use Automatic Operation Once activated, the workflow runs automatically: Frequency**: Every 12 hours Process**: Downloads TSL XML Extracts all certificate URLs Checks each URL type (CRL, CA, or other) Validates expiration dates Sends alerts for critical items Manual Execution For immediate checks: Open the workflow Click Execute With Manual Start node Click "Execute Node" Monitor execution progress Understanding Alerts CRL Expiration Alert Message Format: ALERT! with [Issuer CN] !!!CRL EXPIRATION!!! Will be under 17 hour ([Next Update Time])! Last updated: [Last Update Time] Trigger Conditions: CRL expires in less than 17 hours CRL download successful but expiration imminent CA Certificate Alert Message Format: ALERT!/EXPIRED! with [Subject CN] !!!CA EXPIRATION PROBLEM!!! The expiration time: ([Not After Date]) Last updated: ([Not Before Date]) Trigger Conditions: Certificate expires in less than 17 hours (ALERT!) Certificate already expired (EXPIRED!) Website Down Alert Message Format: ALERT! The [URL] !!!NOT AVAILABLE!!! Service outage probable! Intervention required! Trigger Conditions: Initial HTTP request fails Retry after wait period also fails HTTP status code not 200 Monitoring Dashboard Execution History Navigate to n8n Executions tab Filter by workflow name Review successful/failed runs Alert History Check Telegram channel for: Alert timestamps Affected certificates/services Expiration details Troubleshooting No Alerts Received Check Telegram Bot: Verify bot is admin in channel Test with manual message via API Confirm channel ID is correct Check Workflow Execution: Review execution logs in n8n Look for error nodes (red indicators) Verify TSL URL is accessible False Positives Verify system time is correct Check timezone settings Review threshold values Missing Certificates Some certificates may not have URLs TSL may be temporarily unavailable Check XML parsing in logs Performance Issues Slow Execution: Large TSL files take time to parse Network latency affects URL checks Consider increasing timeout values Memory Issues: Workflow processes many URLs sequentially Monitor n8n server resources Consider increasing batch intervals Advanced Configuration Modify Check Frequency Edit Execute With Scheduled Start node: Change interval type (hours/days/weeks) Adjust interval value Consider peak/off-peak scheduling Add Custom TSL Sources In Collect Checking URL list node: URL="https://your-tsl-source.com/tsl.xml" Customize Alert Messages Edit alert nodes to modify message templates: Add organization name Include escalation contacts Add remediation instructions Filter Certificate Types Modify URL detection patterns: Is this CRL?** node: Adjust CRL detection Is this CA?** node: Adjust CA detection Add new patterns as needed Adjust Retry Logic Wait B4 Retry node: Default: Immediate retry Can add delay (seconds/minutes) Useful for transient network issues Maintenance Regular Tasks Weekly**: Review alert frequency Monthly**: Validate phone numbers/channels Quarterly**: Update TSL source URLs Annually**: Review threshold values Log Management Clear old execution logs periodically Archive alert history from Telegram Document false positives for tuning Updates Keep n8n updated for security patches Monitor OpenSSL versions for compatibility Update notification service APIs as needed Security Considerations Store API keys in n8n credentials manager Use environment variables for sensitive data Restrict workflow edit access Monitor for unauthorized changes Regularly rotate API keys Use HTTPS for TSL sources when available Compliance Notes Ensure monitoring aligns with PKI policies Document alert response procedures Maintain audit trail of certificate issues Consider regulatory requirements for uptime Integration Options Connect to ticketing systems for alert tracking Add database logging for compliance Integrate with monitoring dashboards Create escalation workflows for critical alerts Best Practices Test alerts monthly to ensure delivery Maintain multiple notification channels Document response procedures for each alert type Set up redundant monitoring if critical Review and tune thresholds based on operational needs Keep contact lists updated Consider time zones for global operations
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 Toshiya Minami
Title Prioritize Todoist tasks and send a daily summary to Slack Who’s it for Busy professionals, team leads, and freelancers who want a plug-and-play, AI-assisted morning briefing that turns messy task lists into a clear, actionable plan. What it does / How it works At 08:00 every morning, the workflow pulls open tasks from Todoist. An AI agent scores and ranks them by urgency, importance, dependencies, and effort, then produces a concise plan. You receive the summary in Slack (Markdown). Overdue or critical items are highlighted with warnings. How to set up Connect OAuth for Todoist and Slack. Select your posting channel in Send to Slack. Adjust the time in Morning Schedule Trigger (default 08:00). Run once to verify the parser output and Slack preview, then set the workflow Active. Requirements n8n (cloud or self-hosted) Todoist account / Slack workspace LLM provider connected in the AI node (do not hardcode keys in HTTP nodes) How to customize the workflow Edit the prompt in AI Task Analyzer to tweak prioritization rules. Adjust Format AI Summary to match your tone and structure. Add filters in the Todoist node (e.g., due today). (Optional) Log results to Google Sheets or a database for analytics. Disclaimer (community node) This template uses a community LangChain node for AI features and is intended for self-hosted n8n. Add a workflow image at the top of your submission page for a clearer preview.
by Mani Srinivasan
Enrich your CSV data with web-sourced information using Tavily's AI-powered research API. This workflow fills in missing data for existing columns without creating new ones. Video Link: https://youtu.be/8g8v3vNyhe4 How it works Reads rows from a Google Sheet For missing values, finds information from the web using Tavily Research Maps results to existing columns Writes the enriched data to a new sheet Retries automatically until results are ready (up to ~5 minutes) Setup steps 1) Prepare your sheet 2) Create the columns you want filled (e.g. CEO, revenue, HQ - if the data is related to company information) 3) Create an empty output sheet 4) Add credentials 5) Google Sheets OAuth for both sheet nodes 6) Tavily API key for the research nodes 7) Configure and run 8) Enter the Google Sheet ID and sheet names (For both the CSV nodes) 9) Click Start Requirements: Google account (For sheets) and Tavily API key
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 Pixcels Themes
Who’s it for This workflow is built for finance teams, operations managers, founders, and businesses that process invoices regularly and want to eliminate manual document handling. It’s especially useful for teams that need quick, structured invoice insights delivered directly to their communication tools. What it does / How it works This workflow automates the entire invoice-processing pipeline from upload to notification. A user uploads an invoice file through an n8n form trigger. The uploaded file is securely stored in AWS S3. AWS Textract analyzes the invoice and extracts text and structured data such as vendor name, totals, and line items. The extracted data is sent to AI Agent, which summarizes the invoice and highlights key financial details. The AI-generated summary is sent as a direct message to a selected user in Slack. All steps run automatically after the form submission. Requirements AWS credentials with access to: Amazon S3 AWS Textract Google Gemini (PaLM) API credentials Slack API credentials An existing S3 bucket to store uploaded invoice files How to set up Connect your AWS credentials in n8n with permissions for S3 and Textract. Specify the S3 bucket name where invoice files should be uploaded. Add and authenticate your Google Gemini API credentials. Connect your Slack account and choose the user or channel for notifications. Test the workflow by submitting an invoice through the n8n form. How to customize the workflow Update the Gemini prompt to extract specific fields such as tax, due date, or invoice number. Route invoices differently based on total amount or vendor. Send Slack messages to a channel instead of a direct message. Store extracted invoice data in a database or spreadsheet. Add approval or alert steps for high-value invoices.
by Daniel Turgeman
How it works A daily schedule pulls your existing contacts from HubSpot All contacts are bulk-enriched with Lusha in a single API call for efficiency A code node compares current Lusha data against CRM records to detect job title or company changes Changed contacts trigger a CRM update and a Slack alert to the assigned rep Set up steps Install the Lusha community node Add your Lusha API, HubSpot, and Slack credentials Adjust the CRM fetch limit based on your contact volume Activate the workflow to run daily
by Alex Pekler
How it works Runs every day at 6 PM and reads sales data from Google Sheets Filters rows matching today's date and calculates total revenue, order count, and top product Sends a formatted sales summary to your WhatsApp via MoltFlow If no sales today, sends a "no sales" notification instead Set up steps (~5 min) Create a MoltFlow account at molt.waiflow.app and connect your WhatsApp Create a Google Sheet with columns: Date, Product, Amount, Customer Connect your Google Sheets OAuth2 credential in n8n Paste your Sheet URL in the Google Sheets node Set YOUR_SESSION_ID and YOUR_PHONE in the Build Report code node Add your MoltFlow API Key as Header Auth credential (header name: X-API-Key) Prerequisites MoltFlow account with active WhatsApp session Google Sheet with daily sales data (Date column in YYYY-MM-DD format) Google Sheets OAuth2 credential configured in n8n