Agent Directory
Browse 159,125 AI agents
1105–1152 of 159,116
By LatentLark
Quick overview This workflow runs weekly (or manually) to scrape Google Maps leads via Apify, audits each business website with LatentLark Local Lead Audit to generate issues and outreach angles, and appends the enriched lead data to a Google Sheets spreadsheet. How it works Runs every Monday at 08:00 (or starts from a manual test run) and loads the search term, location, maximum places, and campaign key. Uses Apify’s Google Maps Scraper actor to collect matching businesses from Google Maps based on the configured search and location. Sends the scraper run’s dataset to Apify’s LatentLark Local Lead Audit actor to audit each website, attempt to find owner/contact details, and generate a pitch angle and email opener while skipping previously seen businesses. Drops results flagged as error, invalid input, or skipped, and keeps only valid business records. Maps the audit output into a consistent set of columns (business details, issues, scores, and outreach fields) and appends each row to Google Sheets. Setup Install the Apify community node (@apify/n8n-nodes-apify) if needed and add an Apify API token credential. Create a Google Sheet with header columns that match the workflow’s output (for example: businessName, website, city, phone, email, ownerName, problemScore, grade, primaryIssue, issues, pitchAngle, emailOpener, rating, reviewCount, mapsUrl, auditedAt). Add Google Sheets OAuth2 credentials and select the target spreadsheet and sheet/tab in the Google Sheets append step. Update the Settings values (searchTerm, location, maxPlaces, and a unique campaignKey used to deduplicate with onlyNew), then run once manually before enabling the weekly schedule. An n8n automation workflow template by LatentLark.
- 1 nodes
- Automation
By Christian
Quick overview This workflow runs on a schedule or manually to update WordPress plugins and themes over SSH using WP-CLI, verifies site health with HTTP checks and log inspection, automatically rolls back breaking updates, and emails an HTML report with optional Groq AI analysis of failures. How it works Copy selfheal.sh from the GitHub repository (github.com/Christianzimpel/n8n-wp-self-healing-update-agent) to ~/wp-selfheal/selfheal.sh on your server. Provide an SSH private key credential with access to the WordPress server and make sure the server has WP-CLI, PHP CLI, tar, and curl available. Connects to the server via SSH, checks that the helper script is installed, backs up the database, enables temporary debug logging, and fetches the list of available plugin and theme updates. If no updates are available or the preparation step fails, sends an email indicating everything is up to date or that the run was aborted. Processes each plugin and theme update one at a time over SSH by backing up the component, running the WP-CLI update, and building one or more URLs to check. After each update, requests the configured site paths over HTTP and checks via SSH whether WordPress boots and whether new PHP fatal errors appear, then marks the update as successful or schedules a rollback. If the site appears broken, restores the plugin/theme from its backup over SSH, and if rollback fails, stops further updates and sends an emergency email. After all items (including a retry round for previously rolled-back/failed items), restores debug settings, optionally sends failure logs to Groq for analysis, and emails a consolidated HTML report. Setup Provide an SSH private key credential with access to the WordPress server and ensure the server has WP-CLI, PHP CLI, tar, and curl available. Update the Configuration values for siteUrl, wpPath, wpCli, and checkPaths, and (optionally) set phpErrorLog, keepDays, and maxAttempts to match your environment. Add an SMTP/email credential and set the mailTo and mailFrom addresses used for the report, no-updates notice, aborted-run notice, and emergency alert. Add a Groq credential (or replace the Groq model with another supported chat model) if you want AI-generated analysis included in the report. Verify the schedule in the Monday 4 AM trigger (or disable it) and run the workflow manually against a staging site before enabling it in production. An n8n automation workflow template by Christian.
- 5 nodes
- Automation
- AI
By AI Agent Starter Kit
Quick overview This workflow runs every weekday morning, pulls today’s Google Calendar events and recent unread Gmail messages, uses an OpenAI-compatible chat completions API to write a short plain-text briefing, and emails the briefing to you via Gmail. How it works Runs every weekday at 7 AM (or on-demand via a manual trigger for testing). Reads your settings (timezone, goal, inbox search, model, and email recipient) and fetches today’s events from Google Calendar. Queries Gmail for unread inbox emails from the last 24 hours using your configured Gmail search filter. Cleans and summarizes the raw data by sorting meetings, flagging back-to-back events, calculating total meeting time and your longest free focus block, and trimming each email to sender/subject/snippet. Sends the prepared calendar and email context to an OpenAI-compatible API endpoint to generate a three-part briefing (TODAY, INBOX, ONE THING) under the configured word limit. Formats the final email body using the AI response or a fallback plain list if the AI request fails, then sends it to your address through Gmail. Setup Add Google Calendar OAuth2 credentials and select them for the calendar-read step, ensuring the calendar ID matches the calendar you want to summarize. Add Gmail OAuth2 credentials and select them for both reading unread emails and sending the briefing email. Add an HTTP Header Auth credential for your LLM provider (Authorization: Bearer YOUR_API_KEY) and set the LLM base URL and model to match your OpenAI-compatible endpoint. Update the workflow settings values (recipient email, timezone, goal, inbox search, and workday hours) to match your preferences, then test with the manual trigger before activating the schedule. An n8n automation workflow template by AI Agent Starter Kit.
- 4 nodes
- Automation
By Zhang Lixiang
Quick overview This workflow handles WhatsApp Business Cloud API webhooks, verifies the callback URL, and replies to incoming WhatsApp text messages using keyword-matched FAQs with an OpenAI fallback that can only select from approved FAQ IDs before sending the stored answer back via WhatsApp. How it works Receives a GET request from Meta to verify the WhatsApp webhook and returns the hub.challenge only when the provided verify token matches. Receives WhatsApp webhook POST events and keeps only incoming text messages while ignoring delivery/read receipts. Scores each message against a built-in FAQ list using keyword matching and selects the highest-scoring FAQ answer when a match is found. If no keyword match is found, sends the customer message plus the FAQ IDs and questions to an OpenAI chat model to choose a single FAQ ID or null. Validates the model’s output against the known FAQ IDs and selects either the corresponding stored answer or a fixed fallback message. Sends the chosen reply back to the customer via the WhatsApp Business Cloud API using the same phone number that received the message. Setup Create a Meta app with the WhatsApp product, connect a business phone number, and configure webhook subscriptions for messages. In n8n, add WhatsApp Business Cloud API credentials and an OpenAI (or OpenAI-compatible) credential for the chat model node. Replace YOUR_VERIFY_TOKEN in the webhook verification check and use the same token in Meta’s webhook settings. Activate the workflow and copy the production webhook URL for the whatsapp-faq path into Meta’s webhook configuration. Edit the FAQ list (IDs, questions, keywords, answers) and update placeholders like YOUR_BOOKING_LINK and the fallback message to match your business. Additional info Need signature verification, deduplication, opt-out handling and human handoff? A production version is available at https://zhangautomation.gumroad.com/l/ecvlr. An n8n automation workflow template by Zhang Lixiang.
- 4 nodes
- Automation
- AI
By Advisync
Quick overview Inspect bounded Vinted listing samples, then preview rows or a short summary for Google Sheets, Slack, Notion or email. Choose Ralph Lauren, Dior, Sezane or a custom search. The default first execution prepares input without credentials, source requests or destination writes. How it works A manual trigger reads eight common customer fields; a separate Advanced controls node retains source modes, approval phrases and lowerable resource ceilings. With no completed run ID, AUTO prepares the selected search and returns a readable configuration receipt without HTTP, credentials or writes. A matching completed run ID selects recovery; AUTO never starts a paid search. For listing previews, three Apify read nodes verify the exact Actor/build, terminal status, original stored input, resource and cost guards, then validate the versioned results payload. The workflow removes exact duplicate source rows, preserves partial/capped warnings and prepares full listing receipts for Sheets or a bounded digest for the other destinations. Asking prices do not establish sale value or profit. PREVIEW displays the selected target and proposed content, then stops before every destination writer. A separate explicit approval is required for any write or delivery. The Sheets path reads before writing, appends missing observation receipts, verifies them and writes the run completion marker last. An exact completed replay is designed to skip duplicate writes. Slack, Notion and email use a durable n8n Data Table intent before one provider call and verify the provider receipt. Unresolved attempts stop for manual reconciliation. Run executions serially: the journal does not guarantee concurrent exactly-once delivery. Setup Import into a new empty workflow and keep manual execution. Open node 01, choose one preset and destination, and leave the completed run ID blank. Execute once and read node 02B. No credential is required for this first configuration check. To preview actual listings, supply your own matching completed Actor 0.13.69 run ID and one destination target. A standard Google Sheets or Notion page link is accepted; Slack uses one channel ID, and email uses one sender and recipient. For recovery, select your own Apify Bearer Auth credential only on read nodes 04B, 07A and 08A. Leave paid-start node 04A unbound. Keep Advanced write_mode=PREVIEW and inspect the target, proposed content and partial-result warnings. For later Sheets writes, create Vinted Listings and Vinted Runs tabs with the exact headers in the canvas note, then connect your Google Sheets credential to the listed Sheets nodes. Use the Advanced write controls only after reviewing a preview. For later Slack, Notion or SMTP delivery, connect only the selected service credential and create the n8n Data Table with the exact string columns in the recovery note. Set its ID and the destination-specific approval phrase in Advanced controls. Starting a new Actor run is optional and separate: explicitly choose START_BOUNDED_RUN, bind 04A and enter its exact approval phrase. The fixed ceilings are USD 0.25, 40 listing rows and 45 total source requests. Reuse completed runs for recovery instead of starting another collection. Requirements n8n with Manual Trigger, Set, Code, If, HTTP Request and the selected service nodes; Data Table is needed for Slack/Notion/email delivery. An Apify account and your own credential are needed only when retrieving or starting a source run. This template fixes source build 0.13.69 and payload contract 0.13.0. Use customer-owned service credentials and one exact destination. No owner credentials or real destination IDs are embedded. Customization Choose one of three presets, or select custom and set query, optional size and maximum asking price in node 01. Simple custom searches default to buyer/France; goal and countries remain editable in Advanced. Paste the selected destination link or ID into destination_target. Conflicting common and Advanced targets stop before HTTP. Other destination targets are cleared from the resolved configuration. Lower resource ceilings in Advanced. Keep previews enabled until the proposed rows or digest and its exact target have been reviewed. Additional info This unofficial Actor supports listing inspection, not purchases, sold-price estimates, seller-country identification or profit forecasts. France has bounded source-validation evidence; broader reliability is unproven. Partial/capped results must remain visibly partial. Source cost controls are requested ceilings; platform settlement can slightly exceed them. Native compact configuration preparation was verified in n8n Cloud; actual listing preview and each provider delivery for this exact revision remain separate qualification gates. Provider acceptance does not prove recipient delivery or reading. Keep executions manual and serialized; reconcile unresolved journal attempts rather than blindly resending. An n8n automation workflow template by Advisync.
- 6 nodes
- Automation
By Le Thua Phu
Quick overview This workflow reads URLs from Google Sheets, checks each page for noindex directives in the meta robots tag or X-Robots-Tag header, writes the status back to the sheet, and for rows marked “Needs index” calls the RankMath WordPress REST API to switch robots settings to index. How it works Starts manually and loads URL rows from a Google Sheets tab, focusing on rows that match the configured filter. Processes the URLs in batches, fetching each page over HTTP and parsing the HTML and headers for meta robots and X-Robots-Tag values. Writes the detected robots status (for example NOINDEX, INDEX, noindex via header, no meta robots found, or an HTTP error) back to the Google Sheet. After the check completes, reads the rows where the Google Sheet “Note” column equals “Needs index.” Fetches each marked page again and extracts the underlying WordPress post or term ID from headers or page markup, while preparing a new robots value that replaces noindex with index. Sends the updated robots meta to the RankMath updateMeta REST endpoint in WordPress for rows with a valid object ID and records API errors for the rest. Updates the Google Sheet with the final result (INDEX or an error status) for each processed row. Setup Create a Google Sheet with a tab named “All URLs” and columns named exactly: URL, Robots Tag, Note. Add your Google Sheets credential in n8n and replace YOUR_GOOGLE_SHEET_ID in all Google Sheets nodes with your spreadsheet ID. Add a WordPress API credential (for example using an Application Password) with permission to edit content, and replace https://your-site.example.com in the RankMath request with your WordPress site URL. Ensure RankMath is installed and its REST API is reachable, then mark rows you want switched by setting Note to “Needs index.” Optionally enable the disabled test limiter to run a small subset first, and avoid sorting the sheet while the workflow is running so row matching stays consistent. Requirements Google Sheets account with OAuth2 credential WordPress site with the RankMath SEO plugin active WordPress user that can edit posts, with an Application Password recommended Network access from n8n to your site Customization Change the Needs index text in Get Rows Needing Index to use your own marker Adjust the filter in Get URLs to check only the rows you want Raise or lower the batch size and interval in the Fetch nodes to suit your server Replace Run Check with a Schedule Trigger for regular checks Adjust the robots values in Get Object ID, which keeps nofollow-type tags and replaces noindex with index Additional info The status INDEX means RankMath accepted the request, not that the page is confirmed indexable. Clear your cache and run the check again to verify. If your site still shows noindex after a run, compare the request body in the RankMath updateMeta node with the request your RankMath editor sends. Pages that expose no post or term ID get the status missing object_id and must be handled manually. Noindex can also come from an X-Robots-Tag header or another plugin, which this workflow cannot change. An n8n automation workflow template by Le Thua Phu.
- 3 nodes
- Automation
By Jessy Mariau
Quick overview This workflow runs every weekday at 09:00, reads overdue invoices from a Google Sheets spreadsheet, sends staged payment reminder emails via Gmail at 3, 7, and 14 days past due, then updates the invoice tracking fields and appends an audit entry to a Log sheet. How it works Runs every weekday at 09:00 on a schedule. Loads reminder settings (cadence days, minimum gap between reminders, and a per-run safety cap) and reads all rows from the Google Sheets “Invoices” tab. Selects invoices that are overdue by the next configured reminder day, skips closed/paid statuses, validates required fields (email, amount, due date), and avoids reminding customers too frequently. Builds a personalized email subject and body (including an optional payment link) and sends the reminder through Gmail. Updates the matching invoice row in Google Sheets with the new status, attempts count, last reminder date, and computed next reminder date. Appends a row to the Google Sheets “Log” tab for each successfully sent reminder. Setup Connect a Gmail account/credential that is allowed to send reminder emails. Connect Google Sheets credentials and paste your spreadsheet URL into the Google Sheets nodes that read, update, and log data. Ensure your spreadsheet includes an “Invoices” tab with columns used by the workflow (at minimum: invoice_id, customer_email, customer_name, amount, currency, due_date, status, attempts, last_reminder_at, next_reminder_at, invoice_link) and a “Log” tab with matching log columns. In “Your Settings”, set your display name and adjust reminder_days, min_gap_days, and max_per_run as needed, and leave test_today blank for production use. An n8n automation workflow template by Jessy Mariau.
- 3 nodes
- Automation
By Muhammad Firaz Al Aqib
Quick overview This workflow tracks competitor product prices, promos, and stock using MrScraper, logs results to Google Sheets, generates short insights with Google Gemini, and posts Slack alerts only when significant changes occur, running daily on a schedule or on demand via a webhook. How it works Runs daily on a schedule or starts via a POST webhook request and normalizes the input to choose a tracking mode (sheets watchlist, a listing page, or a SERP query). In watchlist mode, reads SKUs from Google Sheets (Watchlist) and the prior run data (History), then scrapes each competitor product page with MrScraper. Compares the scraped competitor price, promo, and stock status to your price and the most recent History entry, appends the new result to the History sheet, and flags meaningful changes. When a change triggers an alert, Google Gemini writes a short recommendation and the workflow posts a detailed Slack alert for that SKU. In listing/SERP mode, uses MrScraper to collect multiple offers (from a category page or from Google results followed by product page scraping), compares each offer to your price, and appends results to the Market History sheet. If any market offers cross the alert rules, Google Gemini summarizes the market position and the workflow posts a single Slack “Market Price Check” summary; webhook runs also return the final results as JSON. Setup Create credentials for MrScraper, Google Sheets OAuth2, Google Gemini (PaLM) API, and Slack (access token). Create a Google Sheet with tabs named Watchlist, History, and Market History, and add Watchlist columns for sku, product_name, my_price, currency, competitor_url, and threshold_pct. Paste your Google Sheet ID and Slack channel ID into the workflow’s Setup values. If using the webhook mode, copy the production webhook URL from n8n and send POST requests to /webhook/competitor-tracker with a valid body (source: sheets, listing, or serp plus the required fields). An n8n automation workflow template by Muhammad Firaz Al Aqib.
- 4 nodes
- Automation
- AI
By iamvaar
Quick overview Youtube Video: https://youtu.be/0lc_UfiqvIA This workflow collects refund requests via an n8n Form, validates the order in Shopify, save contact to Klaviyo and Shopify journey data, checks images with Sightengine, and uses Gemini to generate fraud triage decision that is logged to Sheets, filed in Jira, and posted to Slack. How it works Receives a refund request through an n8n Form with order details, reason, and an optional image attachment. Writes the submission to Google Sheets with a PENDING_TRIAGE status, then looks up the order in Shopify and checks that the order exists and the submitted email matches. If the order cannot be verified, updates the Google Sheets row with an invalid status and sends an alert to Slack. If the order is verified, looks up the customer in Klaviyo and creates a profile if one does not already exist. Fetches recent order history and customerJourneySummary data from Shopify GraphQL and builds a single AI context payload that also preserves the uploaded image. Sends the attachment to Sightengine’s GenAI detector, converts the result into an authenticity status and score, and passes everything to Google Gemini to produce a structured refund recommendation, fraud risk score, and notes. Creates a Jira issue with the AI triage report, updates the original Google Sheets row with the decision and Jira key, and notifies the support team in Slack. Setup Create and publish the n8n Form, then share its public URL with customers or embed it where you collect refund requests. Connect Shopify OAuth2 credentials and ensure the workflow can access both the Admin REST API (order lookup) and Admin GraphQL API (customerJourneySummary query). Add Google Sheets service account credentials and update the spreadsheet ID and the “Refund Requests” sheet name/columns to match your document. Add Slack credentials and set the target channel(s) for unverified-order alerts and triaged-refund notifications. Add Jira Software Cloud credentials and select the target project and issue type for refund tickets. Add Klaviyo API credentials and configure the account that should own/track customer profiles, and provide Sightengine API credentials for the image authenticity check. An n8n automation workflow template by iamvaar.
- 9 nodes
- Automation
- AI
By Mohamed Ayoub Jabane
Quick overview This workflow monitors an Unraid server via its GraphQL API, scanning new syslog warnings every minute and running broader health checks every five minutes, then sends deduplicated alerts with suggested next steps to a Telegram chat, with optional Unraid notifications and container auto-restarts. How it works Runs on two schedules: every minute for syslog monitoring and every five minutes for health checks. Calls the Unraid GraphQL API to fetch either only the newly appended syslog lines or a full health snapshot (array, disks, SMART, Docker, notifications, CPU/memory). Classifies syslog lines and health findings by severity and generates actionable alert details and suggested next steps. Normalizes alerts and throttles repeats using stored state so the same issue is only sent once per configured time window. Optionally sends the alert text to a connected chat model for short triage guidance and appends it to the alert. Sends the formatted alert to Telegram, and optionally mirrors it into Unraid’s notification system and auto-starts stopped autostart Docker containers before reporting the result back to Telegram. Setup Create an Unraid admin API key (Unraid Settings → Management Access → API Keys) and configure an HTTP Header Auth credential that sends it as header name x-api-key. Add a Telegram bot credential and set the target chat ID in cfg.telegramChatId. Update cfg.unraidUrl to your Unraid WebGUI base URL (HTTPS) and adjust alert options like cfg.minSeverity and cfg.throttleMinutes. (Optional) Enable cfg.alsoUnraidNotification to create Unraid notifications and/or cfg.autoRestartContainers to auto-start stopped autostart containers. (Optional) Connect a chat model to the AI triage step and enable it if you want AI-generated guidance included in alerts. An n8n automation workflow template by Mohamed Ayoub Jabane.
- 4 nodes
- Automation
- AI
By Divyanshu Gupta
Quick overview Run school admin from one Telegram chat. Teachers report absences and the bot asks free teachers to confirm cover. The principal approves AI-written English and Hindi circulars before parents are emailed, and gets a daily 8am briefing on attendance, fees and substitutions. Everything is logged in Google Sheets. How it works Triggers when a message arrives in Telegram or every day at 8am via a schedule. Looks up the sender in Google Sheets (Users and Teachers) to determine their role, and replies with a registration message if the chat ID is unknown. Uses DeepSeek to extract the request intent (absence or announcement) and key details from the Telegram message, then routes the request accordingly or sends a help reply. For absence requests, reads the Timetable and existing Substitutions from Google Sheets, ranks available teachers, and sends Telegram approval prompts to the top candidates per period, escalating to the principal when no one accepts. Logs confirmed and uncovered periods to the Substitutions sheet in Google Sheets and sends a consolidated cover-plan summary to both the requester and the principal on Telegram. For announcement requests (Principal/Admin only), uses DeepSeek to draft an English and Hindi circular, asks for Telegram approval, then emails matching parents via Gmail using addresses from the Students sheet and logs the send to the Circulars sheet. At 8am, reads Students and Substitutions from Google Sheets, calculates attendance/fees/substitution counts, uses DeepSeek to write a formatted briefing, and sends it to the principal on Telegram. Setup Create a Telegram bot and add a Telegram API credential in n8n, then message the bot from each staff account and record their Telegram Chat IDs in the Teachers and Users sheets. Connect Google Sheets OAuth2 credentials and update the sheet ID, tab names, and required columns in the Workflow Config and Google Sheets nodes (Teachers, Users, Students, Timetable, Substitutions, Circulars). Add a DeepSeek API credential and ensure it is selected for the information extraction, circular drafting, and daily briefing steps. Add a Gmail OAuth2 credential and update the Gmail “Send To” field to use the recipient email from Google Sheets (or your preferred target) before enabling parent emails. Set the principal’s Telegram Chat ID in the Users sheet (Role = Principal) and adjust Workflow Config values like attendance threshold, due-soon window, and approval wait time to match your school process. An n8n automation workflow template by Divyanshu Gupta.
- 8 nodes
- Automation
- AI
By MEKA
Quick overview Monitor new public LinkedIn jobs in Google Sheets with MEKA. The workflow validates a focused search, deduplicates job IDs against your sheet, and appends only unseen roles. How it works Use the Manual Trigger for a supervised test, or enable the included daily Schedule Trigger after setup. Read and validate search, spreadsheet, result, and budget settings before starting one MEKA Actor run through Apify. Handle READY and RUNNING responses with a bounded poll loop without retrying the billable start request. Read the Actor OUTPUT summary before accepting data; stop on failed searches and mark enrichment failures or budget stops as partial coverage. Fetch one bounded Dataset batch and normalize valid public LinkedIn job records into the documented ten-column shape. Read existing IDs from the target sheet and remove jobs already present or duplicated inside the fetched batch. Append only unseen rows, preserve firstSeenAt, and report fetched, new, appended, skipped, and coverage counts. Setup Import the workflow JSON and keep it inactive. Create a Google Sheet with a Jobs worksheet and add these exact headers in row 1: id, title, company, location, postedAt, url, salary, employmentType, seniority, firstSeenAt. Create an HTTP Header Auth credential. Set the header Name to Authorization and Value to Bearer . Select the same credential on Start Actor, Poll Actor Run, Get Run Output, and Get Dataset Items. In Search settings, enter your spreadsheet document ID and sheetName, then choose keywords, location, date window, limit, and budgetUsd (mapped to the maxTotalChargeUsd HTTP query parameter). Connect Google Sheets OAuth2 to Read Existing Jobs and Append Rows. Open Workflow settings -> Timezone and choose the timezone you intend to use. Confirm that 08:00 is the intended time in the timezone you explicitly choose. Run the Manual Trigger, inspect the execution and real sheet, and enable the Schedule Trigger only after that test succeeds. Requirements Use n8n with an Apify account and token, a Google account that can authorize Google Sheets OAuth2, and a writable spreadsheet with the documented Jobs worksheet and ten headers. This template is free, but Apify Actor usage may incur separate Apify charges. Customization Edit Search settings to change the keywords, location, date window, result limit, spending cap, spreadsheet, or worksheet. After choosing a workflow timezone, adjust the 08:00 schedule if needed. Focused smaller searches are easier to inspect; result limits and budget caps do not guarantee full-market coverage. Additional info The template is free to use, while Apify Actor runs may incur separate Apify charges; the user's n8n plan may also apply. Public repository: https://github.com/meka-im/linkedin-jobs-scraper-examples. MEKA Actor: https://apify.com/meka.im/linkedin-jobs-scraper. Use one workflow and one active writer per sheet because concurrent read-and-append runs can race. Results depend on search ranking, public availability, enrichment outcomes, and result or budget limits, so this workflow does not provide full-market coverage. An n8n automation workflow template by MEKA.
- 3 nodes
- Automation
By Aymeric Besset
Quick overview This workflow runs every five minutes to fetch new Mastodon bookmarks and save them to Wallabag, tracking the last processed bookmark ID in an n8n Data Table and checking Wallabag first to prevent duplicate saved URLs. How it works Runs every 5 minutes on a schedule. Reads the last processed Mastodon bookmark ID (min_id) from an n8n Data Table and falls back to a default value on first run. Calls the Mastodon API (/api/v1/bookmarks) with min_id to fetch only newer bookmarks and stops if none are returned. Extracts pagination values (including the newest min_id) from the Mastodon Link response header and stores the updated min_id back to the Data Table. Processes each bookmarked post individually and decides whether to use the link preview card URL or the first non-mention/non-hashtag link in the post (or the post URL if no link is found). Checks in Wallabag whether the chosen URL already exists and, if not, creates a new Wallabag entry with metadata such as title, author, language, content, origin URL, and published date. Setup Install the community node package n8n-nodes-wallabag in your n8n instance. Create a Mastodon access token with the read:bookmarks scope and add it as an HTTP Bearer Auth credential used by the Mastodon HTTP request. Replace YOUR_MASTODON_INSTANCE in the Mastodon bookmarks request URL with your server domain. Create and select a Wallabag API credential for the Wallabag “exists” and “create” operations. Create an n8n Data Table named mastodon_sync_state with string columns source and min_id, and select it in the nodes that read and upsert the sync state. Optionally adjust the DEFAULT_MIN_ID value (0 starts from your oldest bookmarks) and run the workflow once to initialize state before activating it. Requirements ⚠️ Requires the community node n8n-nodes-wallabag and n8n with Data Tables. An n8n automation workflow template by Aymeric Besset.
- 2 nodes
- Automation
By Sam
Quick overview Type a topic; this workflow reads web pages found with DuckDuckGo and gives you one HTML file: an overview in which every paragraph cites a source, quotes checked against the pages, news, and optionally videos and pictures. Self-hosted n8n only. How it works A form takes the topic and whether you want videos and pictures (as links, or with thumbnails). A model plans the searches: up to two web queries, one for news and how recent it must be, one for videos and one for pictures. Code checks the plan. An AI agent searches the web with the DuckDuckGo node as its tool, choosing a past day, week, month or year when the topic asks for recent pages, and returns findings with a quote from each page. Code keeps a finding only if its quote is in the text of a page the tools returned, and stops unless at least three points come from at least two sites. The DuckDuckGo node then searches news, videos and images, adds an instant answer and search ideas, with short waits between searches. A vision model only judges whether a thumbnail is safe. A second model writes the overview from the verified points, and a paragraph that cites no source is dropped. A design agent writes the style sheet, and code accepts it only as plain CSS with readable colours. Code builds one HTML file with all text escaped. The form page shows it in a preview with a Download button. If there is no dossier, the page says why. Setup Self-hosted n8n 2.18 or later: install n8n-nodes-duckduckgo-search 32.19 or later under Settings → Community nodes. Searching and reading pages need no API key or account. Add a credential to the chat-model node, OpenRouter model. Any other chat-model node can replace it; choose a model that returns JSON reliably. Activate the workflow, open the form's production URL and type a topic. A run takes one to two minutes and about 5 to 7 DuckDuckGo searches, so leave a few minutes between runs. Keep the form behind n8n login, as it is set here: it makes the node fetch whatever pages a search returns. Requirements Self-hosted n8n only: community nodes cannot be installed on n8n Cloud n8n 2.18 or later, so that links in the preview open in a new tab The community node n8n-nodes-duckduckgo-search, version 32.19 or later An API key for the AI model: OpenRouter by default, or any provider with an n8n chat-model node No API key or account is needed for DuckDuckGo Customization Change how many points and sources are kept (the limits in Verify the findings) or how many searches the agent may make (its prompt and Max Iterations) Choose another region on the search nodes (they are set to wt-wt, no region) Swap the model node for any other chat-model node Keep the waits between searches: DuckDuckGo limits requests per IP address Send the HTML file by email or save it to Google Drive instead of showing it on the form page Additional info Suggested title: "Create a topic dossier as an HTML file with DuckDuckGo". Please do not use "fact-checked" in the title: the workflow checks that each quote is on the page it cites, but it does not fact-check the claims in them, and the result page says so. The AI model is a swappable part (any chat-model node works), so the title names only the search node. The canvas preview does not render community nodes, so the full canvas is in the screenshot at the top of the description. The workflow JSON is submitted as it is in the repository; the AI-generated sticky notes were not used, because the file already has an overview note and section notes that include the community-node install step and the self-hosted-only line. Source and notes: https://github.com/samnodehi/n8n-nodes-duckduckgo/tree/main/docs/examples. An n8n automation workflow template by Sam.
- 7 nodes
- Automation
- AI
By Finrod Chen
Quick overview This workflow runs every morning, pulls recent items from multiple RSS feeds, uses TypeSafe Jev to score relevance/importance and deduplicate similar headlines, then uses OpenAI to generate a one-line-per-story digest that it sends to Telegram and Gmail and archives to Google Sheets. How it works Runs every day at 8:00 AM. Reads items from the configured RSS feed URLs, normalizes the entries, keeps only recent stories, and skips links already processed in earlier runs. Sends each story’s title and snippet to TypeSafe Jev to score topic relevance, assign an importance rating, and categorize the story. Filters to stories that meet the relevance and importance thresholds, then compares remaining headlines with TypeSafe Jev to detect and merge duplicates about the same event. Sends the final list of top stories to OpenAI to produce a daily headline and a one-sentence summary per story, falling back to RSS snippets if the AI output is invalid. Formats the digest and delivers it to Telegram and Gmail, then appends one row per story to a Google Sheets archive. Setup Add a TypeSafe (typesafe.ai) Bearer token credential and select it for both Jev HTTP requests. Add OpenAI credentials for the chat model used to generate the headline and per-story summaries. Add Telegram bot credentials and set your target telegramChatId in the configuration step. Add Gmail credentials and set the recipient address in emailTo. Add Google Sheets credentials and update sheetUrl and sheetTab to point to your archive spreadsheet and worksheet. An n8n automation workflow template by Finrod Chen.
- 7 nodes
- Automation
- AI
By Kingsley Ken
Quick overview This workflow runs weekly to scan your newest YouTube video descriptions for dead links and expired or missing promo offers using data from Google Sheets, then posts a Slack summary and uses Anthropic Claude to propose safe fixes that only update YouTube after your approval. How it works Runs every Monday morning on a schedule. Validates the required configuration values, then reads your live offers and past decisions from Google Sheets. Uses the YouTube Data API to fetch your newest public and unlisted uploads (up to a set limit) and extracts each description’s external links, promo codes, and full offer dates. Tests each unique external link once and flags problems per video, including dead links, codes not in the offers sheet or outside their valid dates, and offer dates that have already passed. Posts a weekly Slack summary and selects the most-viewed videos with issues (up to a set limit) to process for fixes. Sends each video’s problem lines and the live offers list to Anthropic Claude to generate replacement text for only the affected lines. Validates Claude’s proposed changes against the offers sheet and, if they pass, asks for approval in Slack before updating the YouTube description; all outcomes are logged back to Google Sheets and notable results are posted to Slack. Setup Create a Google Sheet with an “Offers” tab (Name, Code, Discount, Starts, Ends, Link) and a “Checks” tab for logging results. Add credentials for YouTube OAuth2 (with YouTube Data API v3 enabled if self-hosted), Google Sheets, Slack OAuth2, and an Anthropic API key for Claude. In the Config node, set your Google Sheet URL, the Offers/Checks tab names, your Slack channel ID, and any limits (max videos, links per video, fixes per run, and approval wait time). Requirements YouTube channel and the Google account that owns it (on self-hosted n8n, turn on the YouTube Data API v3 in your Google Cloud project) Google Sheets account for the offers sheet and the check log Slack workspace and the ID of the channel for approvals Anthropic API key for Claude Each approved update uses 50 of the 10,000 free YouTube API units you get every day Customization In Config, change maxVideos, maxFixesPerRun, maxLinksPerVideo or approvalWaitHours. Change the day and time in Every Monday Morning. Swap the Claude model for any chat model. Additional info Nothing changes on YouTube until you press Approve in Slack, and the title, tags and privacy stay as they are. Check Fix Against Sheet is plain code that stops a fix if any link, code, number or date is not in your offers sheet. A fix you decline is not asked about again unless the description changes. An n8n automation workflow template by Kingsley Ken.
- 7 nodes
- Automation
- AI
By Vivek Sharma
Quick overview This workflow runs daily to read completed projects from Google Sheets, sends personalized Google review request emails via Gmail to clients who finished 2+ days ago, and then updates the sheet to mark each project as review-requested so clients are not contacted twice. How it works Runs every day at 11:00 on a schedule. Loads your business details (name, owner name, Google review link, and email signature) and reads all rows from the Projects sheet in Google Sheets. Filters for projects with status set to Completed, a completed_on date at least two days old, a blank review_requested field, and valid project_id and client_email values. Builds a personalized thank-you email that includes your Google review link for each eligible project. Sends the review request email to each client using Gmail. Updates the matching rows in Google Sheets (by project_id) to set review_requested to today’s date. Setup Connect Google Sheets credentials and set the Google Sheet URL/document ID in both the read and update Google Sheets steps. Connect Gmail credentials for the account you want to send review requests from. Create a Projects tab in your Google Sheet with these headers: project_id, client_name, client_email, project, status, completed_on, review_requested, and ensure completed_on uses YYYY-MM-DD dates. Update the Settings values with your business name, owner name, Google review link, and email signature text. Review the schedule time (11:00) and adjust the 2-day delay logic if needed before activating the workflow. An n8n automation workflow template by Vivek Sharma.
- 3 nodes
- Automation
By Kingsley Ken
Quick overview This workflow runs hourly to find Gmail auto-replies and permanent bounces, uses Anthropic Claude to detect when a HubSpot contact has left or is out of office, and posts Slack approvals before updating HubSpot with lead status changes, notes, replacement contacts, or follow-up tasks. How it works Runs every hour and loads configuration values like lookback window, approval timeout, and the target Slack channel. Verifies the HubSpot app token and required scopes before reading any emails. Searches Gmail for recent auto-replies and bounce messages, deduplicates messages across runs, and filters to one relevant reply per contact. Looks up each sender (or bounced address) in HubSpot and skips emails not tied to an existing contact or contacts already marked with the configured “left” lead status. For auto-replies, sends the reply text to Anthropic Claude to classify it as left_company, out_of_office, or other and extract exact supporting quotes and any replacement contact details. Builds a safe update plan and routes it: posts “left company” and permanent bounce cases to Slack for approval, creates HubSpot follow-up tasks for validated out-of-office return dates, and posts informational Slack alerts for HubSpot lookup errors. If approved in Slack within the configured window, writes the planned updates to HubSpot (lead status change, CRM note, and optional new replacement contact) and then posts a Slack message summarizing what succeeded or failed. Setup Create a HubSpot private app and generate an access token with scopes crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.companies.read, and crm.objects.companies.write, then add it as a HubSpot App Token credential. Connect your Gmail account so the workflow can search messages, and ensure the Gmail query matches the mailbox/labels you want monitored. Connect Slack with OAuth, copy the target channel ID, and update the Config node’s slackChannelId (and optionally lookBackDays, leftLeadStatus, approvalWaitHours, and out-of-office settings). Add your Anthropic credentials and keep or replace the Claude model used for classification. Confirm that the HubSpot lead status internal value in leftLeadStatus (for example UNQUALIFIED) matches a valid hs_lead_status value in your HubSpot portal. Requirements HubSpot account (the free CRM works; creating the private app needs super admin rights) Gmail account you send outreach from Slack workspace and the ID of the channel for approvals Anthropic API key for Claude Hourly runs use about 720 executions a month Customization In Config, set leftLeadStatus to another lead status value used in your HubSpot account. Change lookBackDays, followUpDaysAfterReturn or approvalWaitHours. Set postOutOfOffice to false to add follow-up tasks without a Slack message. Swap the Claude model for any chat model. Additional info Nothing changes in HubSpot until you press Approve in Slack, and no answer within 24 hours means no change. Plan HubSpot Changes is plain code: it only uses quotes, addresses and dates found word for word in the reply, and it never adds a shared inbox such as sales@ as a contact. Out-of-office replies get a HubSpot follow-up task for the working day after the person is back. An n8n automation workflow template by Kingsley Ken.
- 7 nodes
- Automation
- AI
By Kingsley Ken
Quick overview This workflow runs hourly to review upcoming Klaviyo campaign emails, test links and images for errors, extract codes/offers/dates with Anthropic Claude, validate them against a Google Sheets offers list, and post results to Slack while logging each check back to Google Sheets. How it works Runs every hour and validates that required configuration values (Google Sheets URL/tabs, Slack channel ID, time zone, and limits) are set. Reads the Offers and Checks tabs from Google Sheets to load valid promo codes/discount windows and determine which email versions have already been checked. Fetches Klaviyo campaign messages (scheduled only, plus drafts if enabled) and selects up to the configured limit that send within the next configured time window, split by A/B variation. For each selected email, retrieves the Klaviyo template HTML/text, extracts plain-text content, codes, and up to the configured number of non-personalized links and images, and skips unchanged versions unless a near-send reminder is due. Sends each extracted URL as a HEAD request to flag dead destinations and note sites that block automated checks. Uses Anthropic Claude to list discount codes, offers, and dates found in the email text, then validates quotes, codes, discount amounts, and deadlines against the offers sheet and the email’s send date. Posts a per-email status message to Slack (pass/warn/fail, plus reminders when applicable) and appends a detailed log row to the Checks tab in Google Sheets. Setup Create a Klaviyo private API key with campaigns:read and templates:read, and configure it as an HTTP Header Auth credential used by the Klaviyo HTTP requests (Authorization: Klaviyo-API-Key ) and set the correct API revision date. Create a Google Sheet with an Offers tab (including columns like Code, Discount, Starts, Ends) and an empty Checks tab, then connect Google Sheets credentials and paste the sheet URL and tab names into the Config values. Connect an Anthropic credential for Claude and ensure the selected Claude chat model is available in your account. Connect Slack OAuth2 credentials and set the target Slack channel ID in Config (use the channel ID, not the channel name). Review Config limits and behavior (hoursAhead, remindHoursBefore, maxEmailsPerRun, maxLinksPerEmail, checkDrafts, postPasses, and time zone) to match your email volume and notification preferences. Requirements Klaviyo account with a private API key that has read access to Campaigns and Templates Google Sheets account for the offers sheet and the check log Slack workspace and the ID of the channel for the reports Anthropic API key for Claude Hourly runs use about 720 executions a month Customization In Config, change hoursAhead, remindHoursBefore or maxLinksPerEmail to match how far ahead you schedule and how many links your emails carry. Set postPasses to false to hear only about problems. Set checkDrafts to true to also check drafts edited in the last 7 days. Swap the Claude model for any chat model. Additional info The workflow only reads from Klaviyo: nothing is changed or sent there. Each A/B version is checked on its own, and personalised links are skipped and counted. Check Email Against Offers is plain code that drops anything Claude quoted that is not in the email, so a wrong reading cannot reach Slack as a fact. An n8n automation workflow template by Kingsley Ken.
- 7 nodes
- Automation
- AI
By Jessy Mariau
Quick overview Three importable workflows that sort your inbox into a Google Sheet, chase failed Stripe payments for you, and follow up new leads once so they do not go cold. No AI credits or paid extras. How it works Runs every 5 minutes and triggers on new unread Gmail messages while excluding Promotions and Social categories. Applies keyword-based rules to classify each email into Money, Customer, Urgent, Admin, Bulk, or Other, and sets a priority plus a short preview. Appends the categorized email details (received date, sender, subject, category, priority, preview, message ID, and status) to an “Inbox” sheet in Google Sheets. Checks whether the email priority is High. Sends an alert email via Gmail to your address with the sender, preview, and a link back to the Google Sheets log when the message is urgent. Setup Connect your Gmail account for both the Gmail trigger (reading unread emails) and the Gmail action (sending alert emails). Connect Google Sheets credentials and replace the spreadsheet URL/ID so the workflow can append rows to your target document. Create an “Inbox” sheet tab with headers: received, from, subject, category, priority, preview, message_id, status. Replace the alert recipient placeholder with your own email address in the Gmail send step. (Optional) Edit the keyword lists in the rules code to match your business categories and terminology. Additional info Honest limits: I use keyword rules, not AI. Each lead gets one follow-up only. Google Sheets is the log. Try Stripe test mode first. Support: jessedu29200@gmail.com. An n8n automation workflow template by Jessy Mariau.
- 3 nodes
- Automation
By kitayama
Quick Overview This workflow monitors a Google Drive folder for new SOP Google Docs, uses Google Gemini to draft a training checklist and multiple-choice quiz, then sends the draft for approval via Gmail and records approval decisions in Google Sheets. How it works Triggers when a new file is created in a specific Google Drive folder. Retrieves the SOP text from Google Docs, validates that it is present and meets the minimum length, and emails the reviewer via Gmail if the SOP is invalid. Sends the SOP to Google Gemini to generate a draft checklist and a multiple-choice quiz in the configured language. Validates Gemini’s JSON output (checklist length, question structure, and evidence quotes that must exist verbatim in the SOP) and emails the reviewer via Gmail if the draft fails validation. Checks Google Sheets for an existing review record for the same document ID and skips saving if a prior decision or pending review already exists. Saves valid drafts to a Google Sheets review tab, emails the reviewer a formatted approval request via Gmail with Approve/Reject actions, and updates the same sheet row with Approved, Rejected, or Timed out after 7 days. Setup Connect credentials for Google Drive, Google Docs, Google Sheets, Gmail, and Google Gemini. Set the Google Drive folder ID to watch and ensure it contains Google Docs SOPs. Create or select a Google Sheets spreadsheet and a tab (for example, “Training Reviews”) with columns for documentId, documentName, createdTime, draftCreatedAt, outputLanguage, checklist, questions, reviewStatus, reviewerEmail, reviewedAt, reviewDecision, and reviewNotes. In the configuration values, set your spreadsheet ID, sheet name, reviewer email address, output language, minimum SOP length, and desired question count. If self-hosting n8n, set WEBHOOK_URL (or the equivalent public URL settings) so the Gmail approval links can route back to your n8n instance. An n8n automation workflow template by kitayama.
- 5 nodes
- Automation
- AI
By ForeKnow Digital
Quick overview This workflow triggers on new Shopify orders, finds or creates the matching customer in Xero, converts the order line items and shipping into an AUTHORISED accounts receivable invoice, and optionally records a payment when the order is marked paid, with failures reported to Slack and email. How it works Triggers when a new order is created in Shopify. Loads configuration values for your Xero tenant, account codes, tax type, and line amount handling. Searches Xero Contacts for a match on the Shopify customer email and creates a new contact in Xero if none exists. Maps Shopify line items, discounts, and shipping lines into a Xero invoice payload using your configured account codes and tax type. Creates an AUTHORISED ACCREC invoice in Xero via the Xero Accounting API. If the Shopify order financial status is paid, creates a payment in Xero against the invoice using the configured bank/clearing account code. If any Xero or API step fails, formats the error details and sends notifications to Slack and via SMTP email. Setup Add Shopify Admin API credentials (access token) with scopes including read_orders and read_customers, then enable the Shopify “orders/create” trigger. Add a Xero OAuth2 credential with scopes including accounting.transactions and accounting.contacts, and set your Xero tenant ID in the Config step. Update the Config values for sales/shipping account codes, tax type, line amount type (Inclusive/Exclusive), and the payment account code used to receive Shopify payouts. Add a Slack credential and set the target channel ID and/or add an SMTP credential and set the from/to email addresses for error notifications. Create a Shopify test order to validate contact matching, invoice creation, and payment posting before activating the workflow. An n8n automation workflow template by ForeKnow Digital.
- 5 nodes
- Automation
By 久保田 卓磨
Quick overview This workflow runs every weekday morning, reads unsettled income deals and partner details from freee Accounting, uses Anthropic Claude to draft Japanese payment reminder emails for overdue amounts, saves passing reminders as Gmail drafts, and emails staff a report of created drafts and any issues. How it works Runs every weekday at 9:00 (or manually) and loads configuration like the freee company ID, minimum overdue days, and staff notification email. Fetches unsettled income deals and the partner list from the freee Accounting API. Filters deals that are past due with an amount still due, groups them by customer, skips customers without an email address, and limits processing to the top customers by total overdue amount. Sends each customer’s invoice facts to Anthropic Claude to generate a polite Japanese reminder email as JSON with a subject and body. Validates the draft to ensure all invoice numbers, remaining amounts, and due dates match freee data and rejects drafts containing extra amounts, late-fee/legal language, or missing required facts. Creates a Gmail draft for each passing reminder (without sending) and emails staff a single Gmail message summarizing drafts saved, drafts rejected with reasons, and customers that could not be drafted. Setup Create a freee app with read access to Deals and Partners, then add an n8n OAuth2 credential for the freee API and set your freee company ID. Add Anthropic credentials for Claude and a Gmail OAuth2 connection for creating drafts and sending the staff notification email. Update the Config values (staff_email, sender_signature, min_days_overdue, max_customers, and timezone) and optionally set today_override for testing before enabling the schedule. Requirements freee Accounting (freee会計) and an app in freee Developers (permissions: deals and partners, read); an n8n OAuth2 API credential for freee. Gmail (OAuth2) and an Anthropic API key (one Claude call per customer with overdue sales). Customer e-mail addresses in freee partners. Customization Set the company ID, staff e-mail, signature, days overdue before reminding and customers per run in Config (today_override for testing with past data). Change the tone in the Write the reminder prompt. Change the weekday schedule. Send the notice to Slack or Teams instead of Gmail. Additional info Nothing is sent: reminders are saved as Gmail drafts. Claude gets only the facts from freee; code checks every invoice number, remaining amount and due date in each draft, rejects any other amount and words like late fees or legal action, and lists stopped drafts in the staff notice. Tested on a freee developer test company with made-up deals, including a partly paid sale. An n8n automation workflow template by 久保田 卓磨.
- 5 nodes
- Automation
- AI
By 久保田 卓磨
Quick overview This workflow captures customer orders from Gmail or a public n8n form, matches the customer and their open quotations in freee, uses Anthropic Claude to interpret the order text, and creates an unsent freee Invoice draft based on the selected quotation, then notifies staff by Gmail. How it works Triggers when a new Gmail message matches the subject search query or when someone submits the “order-to-freee-invoice” n8n form. Extracts the sender email, subject, and plain-text order message and applies shared configuration like company ID, payment terms, and staff notification email. Fetches partners from the freee API and identifies the customer by matching the sender email or a unique partner name mentioned in the order text. Retrieves the customer’s open freee quotations (prioritizing any Q-… number mentioned) plus existing invoices, and loads the details of the top quotation candidates. Sends the order text and quotation line summaries to Anthropic Claude to determine whether it is a clear order, which quotation it references, and any requested quantity changes or additions. Validates the AI result in code, prevents duplicates by checking for an existing invoice referencing the quotation number, applies only verifiable quantity changes, and turns unclear additions into “To check” note lines. Creates an UNSENT invoice draft in freee Invoice using prices/taxes from the quotation and either emails the staff a detailed result via Gmail or shows the outcome on the form completion page. Setup Create/enable a freee app with permissions for Partners (read) and freee Invoice quotations/invoices (read/write), and add an n8n OAuth2 credential for the freee API. Add Gmail credentials for the Gmail Trigger and Gmail Send nodes, then set the staff notification address in the Config node. Add an Anthropic credential for the Claude chat model node. Update the Config node with your freee company ID, payment terms/days, max quotation candidates, and timezone. If using the form entry path, publish the form and share its URL; if using Gmail, adjust the Gmail search query to match your order emails. Requirements freee with freee Invoice (freee請求書) and an app in freee Developers (permissions: partners read, [請求書] all document types read/write); an n8n OAuth2 API credential for freee. Gmail (OAuth2) and an Anthropic API key (one Claude call per order mail). Customization Set the freee company ID, staff e-mail, payment terms (end of next month or days) and how many open quotations to compare in Config. Change which mails count in the Gmail search of New order mail (or use a label). Change the due date rule in Check and build. Send the notice to Slack or Teams instead of Gmail. Additional info Prices come from the quotation, never from the AI: Claude only says whether the mail is an order, for which quotation and which quantities change, quoting the words; code checks them, stops duplicates (memo "From quotation ..."), and copies every price and tax rate. Tested on a freee developer test company with made-up data: eight mails, including a real Gmail mail; freee's totals matched the workflow's own. An n8n automation workflow template by 久保田 卓磨.
- 5 nodes
- Automation
- AI
By Adam
Quick overview This workflow monitors SSL certificate expiry and security headers for a list of websites using Apify, stores the last known state in an n8n Data Table, and sends change-based alerts and a weekly summary to Slack, Gmail, and an optional webhook. How it works Runs on a daily schedule, on demand, or on Mondays for the weekly summary, and loads the site list and notification settings from the CONFIG block. Creates (if needed) and reads the ssl_monitor_state n8n Data Table to keep track of each site’s last known grade, certificate status, and open issues. On daily/manual runs, calls the Apify “Security Headers & SSL Audit” Actor to audit each site’s HTTPS/certificate status, redirects, and security headers. Compares the latest audit results with the stored state to detect new, changed, reminder-due, and resolved issues, with “site unreachable” only alerting after consecutive failed checks. Saves the updated per-site state back to the ssl_monitor_state Data Table and builds a single consolidated alert message when any changes are detected. Routes alerts by severity and sends them to the enabled channels via Slack, Gmail, and/or an HTTP webhook, retrying sends without blocking other channels. On weekly summary runs, generates a summary from the stored state (without running Apify) and sends it through the same notification channels. Setup Create an Apify account and add an HTTP Header Auth credential with Authorization: Bearer for the Apify request. Add Slack credentials and set the target channel in CONFIG if you want Slack notifications. Add Gmail credentials and set the recipient address and minimum severity in CONFIG if you want email notifications. If using a webhook (for example Discord or Microsoft Teams), enable it in CONFIG and paste the webhook URL. Update CONFIG with your site domains, certificate warning/critical thresholds, minimum headers grade, and reminder/consecutive-failure settings before activating the workflow. Requirements n8n with Data Tables (tested on 2.43), an Apify account ( Security Headers & SSL Audit Actor) and Slack and/or Gmail. Customization criticalReminderDays, email.minSeverity and confirmUnreachableChecks. Set previewWeeklySummary to true to test the summary. About $0.003 per site per check on Apify. Additional info Disclosure: the Apify Actor used here was built and is published by the author of this template (EdenWorks). You pay Apify's usage price when it runs and the author earns part of that fee. Apify's free plan credits cover light use. An n8n automation workflow template by Adam.
- 4 nodes
- Automation
By Daniel Oliveira
Quick overview This workflow runs every weekday (or on demand), checks Equibles for recent open-market insider stock purchases across a ticker watchlist, filters and deduplicates the results, and emails you a single HTML digest of new qualifying trades. How it works Runs every weekday at 8:00 (or manually when you click run) to start the insider-buying check. Loads your configured ticker watchlist, lookback window, minimum trade value, and email addresses. Splits the watchlist into individual tickers and queries the Equibles insider-transactions API for “Purchase” trades since the calculated start date. Filters the results to keep only open-market trades that meet or exceed the minimum value threshold. Removes trades that were already sent in previous workflow executions to avoid repeat alerts. Builds an HTML email summary sorted by trade value and sends the digest via SMTP to your target recipient. Setup Create a free Equibles API key at https://equibles.com/dashboard/apikeys, then add an HTTP Header Auth credential to the Get insider purchases node with the name Authorization and the value Bearer . Add an SMTP email credential for the email-sending step. Update the watchlist tickers, lookbackDays, minValue, and the to/from email addresses in the watchlist settings before activating the workflow. Requirements An Equibles account. The free plan allows 100 requests a day, and each run uses one request per ticker, plus any SMTP account for sending the email. Customization Swap the email node for Slack, Telegram or Gmail, change the cron expression to run weekly, or raise minValue to see only large purchases. Additional info The 14-day lookback catches purchases that are reported a few days after the trade, and the Remove Duplicates node keeps them from being sent twice. A ticker that does not exist is skipped instead of stopping the run. An n8n automation workflow template by Daniel Oliveira.
- 3 nodes
- Automation
By Ali Abdullah
Quick overview Run purchase approvals with policy checks and multi-level routing. A form collects the request, vendor, budget and duplicate checks run, then L1 to L3 approvals by amount, with a purchase order and a full audit trail in Sheets. How it works Receives a purchase request submission from an n8n Form and validates required fields, positive amounts, and an optional future “needed by” date. Reads vendor and budget data plus recent requests from Google Sheets to flag unpreferred/new vendors, over-budget requests, and possible duplicates from the last 30 days. Calculates the total amount and determines whether the request is auto-approved or routed through L1/L2/L3 approval levels based on amount thresholds and any policy flags. For routed requests, generates a request ID, appends a “submitted” entry to a Google Sheets audit log, and sends the first approval request by Gmail. Receives approver decisions through a webhook, rebuilds the request state from the Google Sheets audit log, and ignores duplicate/late decisions. If approved and more approval levels remain, sends the next approval request by Gmail; if rejected, emails the requester the rejection outcome. When final approval is reached (or the request is auto-approved), creates a purchase order in Google Docs, writes the PO text into the document, emails the requester the PO link, logs the approval event to Google Sheets, and posts an approval message to Slack. Setup Connect credentials for Google Sheets, Google Docs, Gmail, and Slack in n8n. Create and populate the Google Sheets documents/tabs used for Vendors, Budgets, and AuditLog, then set the sheet IDs in the workflow configuration values. Update the approver email addresses (L1/L2/L3), approval thresholds, Slack channel ID, and the Google Drive folder ID where purchase orders should be created. Publish the purchase request form and copy the approval decision webhook URL (path: /purchase-decision) into whatever approval UI or email-link process you use to POST decisions. An n8n automation workflow template by Ali Abdullah.
- 5 nodes
- Automation
By Ling Li
Quick overview This workflow runs every weekday morning to find LinkedIn conversations awaiting your reply via HeyReagent, drafts responses with OpenAI, and sends each draft to Slack for approval before posting the approved message back to LinkedIn. How it works Runs at 9:00 on weekdays using a schedule trigger. Calls the HeyReagent API to sync your LinkedIn inbox, waits one minute, and fetches a list of people whose messages are waiting on you. Filters out conversations without a profile URL or where the last message is older than the configured maximum waiting days. Processes the remaining conversations one at a time, retrieving the full conversation from HeyReagent and generating a reply draft with an OpenAI chat model using your “about you” and writing style settings. Sends the draft to Slack with “Send it” and “Skip” buttons and waits for your approval. If approved, posts the reply through the HeyReagent API and waits 30 seconds before moving on to the next conversation. Setup Create a HeyReagent account, connect your LinkedIn account, generate an API key, and add it to an n8n HTTP Bearer Auth credential used by the HeyReagent HTTP requests. Add your OpenAI API credentials and keep or change the selected chat model in the OpenAI Chat Model node. Add your Slack credentials, choose the target channel for the approval message, and ensure the workflow can use Slack “send and wait for response” approvals. Update the Settings values (how many conversations to process, maximum waiting days, and your personal and tone instructions) to match your needs. Requirements A HeyReagent account with LinkedIn connected (the free plan works) An OpenAI key, or any other chat model node in its place A Slack workspace Customization Change the hour in Every weekday at 9, and how many people a day in Settings (start with 5; HeyReagent allows 100 messages a day per LinkedIn account) Swap Slack for Gmail, Telegram or Discord: their "send and wait for response" works the same Additional info LinkedIn's User Agreement does not allow automated activity. A person approving every message lowers that risk and does not remove it. HeyReagent is an independent service, not made by, affiliated with or endorsed by LinkedIn. An n8n automation workflow template by Ling Li.
- 4 nodes
- Automation
- AI
By Oneclick AI Squad
Quick overview This workflow captures and stores incoming webhooks in Postgres, then lets you list, recover, and replay events (with optional dry-run and transforms) via a control webhook, while sending Slack and optional PagerDuty alerts when failures or backlog thresholds are exceeded. How it works Receives requests from the ingest webhook, control webhook, a scheduled backlog sweep, or a manual trigger. Ensures the required Postgres tables exist and loads recent webhook history and backlog statistics from Postgres. Determines whether the run is an ingest, control, or sweep action and builds runtime configuration (including alert thresholds and target overrides). For ingest or recover actions, normalizes the incoming payload(s) and upserts the webhook event records into Postgres with full request context. For replay actions, selects events by IDs or filters, optionally applies a transform, and prepares the outbound HTTP requests (or generates dry-run results). Executes persistence updates in Postgres to record replay attempts, update event statuses, and log a replay run summary. Sends alerts to Slack via an incoming webhook and optionally triggers PagerDuty via its Events API when replay failures spike or backlog exceeds thresholds, then returns a JSON summary response. Setup Add Postgres credentials and ensure the database user can create tables and read/write to the webhook_events, webhook_replay_attempts, and webhook_replay_runs tables. Update the CONFIG values in the code step (for example Slack webhook URL, PagerDuty routing key, maxConcurrency, and defaultTarget/targetUrl strategy). Activate the workflow and copy the production URLs for the ingest (/webhook-replay-ingest) and control (/webhook-replay-control) webhooks into the systems that will send events and manage replays. If you enable PagerDuty alerts, set pager.enabled to true and provide a valid PagerDuty Events API v2 routing key. An n8n automation workflow template by Oneclick AI Squad.
- 3 nodes
- Automation
By Oneclick AI Squad
Quick overview This workflow exposes a webhook-based approval gateway that sends approval requests to Slack, Microsoft Teams, and WhatsApp via webhooks/APIs, collects approve/reject responses through resume links, applies a configurable decision policy with timeout/escalation, and returns the final verdict plus an audit trail to the caller. How it works Receives a POST request on the /approval-gateway webhook with approval details (subject, description, approvers, channels, policy, and timeouts). Validates the input, creates an approval session, and generates an HMAC-signed token used to protect approve/reject actions. Builds channel-specific messages for Slack (Block Kit), Microsoft Teams (Adaptive Card), WhatsApp Cloud API (interactive buttons), and an email-friendly HTML payload with approve/reject links. Sends the approval request to Slack and Microsoft Teams via incoming webhooks and to WhatsApp via the WhatsApp Cloud API. Waits for approvers to respond through the workflow resume URL or for the timeout path to trigger escalation. Verifies the signed token, aggregates decisions using the selected policy (any/all/majority/first), finalizes the status, and returns the final decision and full audit object in the webhook response. Setup Replace the signing secret in the workflow’s configuration with a long, random value to secure the HMAC-signed approval tokens. Create and paste your Slack Incoming Webhook URL and Microsoft Teams Incoming Webhook URL into the workflow configuration (or node URL fields). Configure WhatsApp Cloud API access by setting the Graph API messages endpoint (phone number ID) and a permanent access token in the workflow configuration/headers. Ensure the system that calls this workflow can POST the required JSON fields (at minimum subject and approvers) to the /approval-gateway webhook URL. An n8n automation workflow template by Oneclick AI Squad.
- 2 nodes
- Automation
By Oneclick AI Squad
Quick overview This workflow exposes a webhook-based policy-as-code authorization service that evaluates AI agent action requests against prioritized rules stored in Postgres, logs every decision for auditing, and optionally sends Slack and PagerDuty alerts for high-risk denials or approval requirements. How it works Receives a POST request on the /policy-evaluate webhook (or runs manually/on a schedule) to start an authorization evaluation. Ensures the required Postgres tables exist for policies, decisions, and run tracking. Loads enabled policies (ordered by priority) and 24-hour decision statistics from Postgres, then merges them with embedded fallback policies and configuration. Normalizes the incoming request, calculates a risk score, and evaluates policies in priority order to return the first matching effect (allow, deny, or require_approval). Writes the decision and a run summary to Postgres for auditability. If the decision is deny or require_approval and the risk score exceeds the configured threshold, sends a notification to Slack and optionally triggers PagerDuty for severe denials. Responds to the webhook caller with the final decision payload including the matched policy, reason, and risk score. Setup Configure a Postgres credential and ensure the target database is reachable from n8n. Update the embedded CONFIG values (especially the default effect, embedded policies, risk thresholds, Slack incoming webhook URL, and optional PagerDuty routing key). Activate the workflow and copy the webhook URL for /policy-evaluate into the AI agent/tooling that needs authorization checks. (Optional) Seed the agent_policies table with your own enabled policies to override the embedded fallback rules. An n8n automation workflow template by Oneclick AI Squad.
- 3 nodes
- Automation
By Rafael
Quick overview This workflow captures new submissions from an n8n Form, uses OpenRouter to score and draft a personalized reply, logs the lead in Google Sheets, and sends emails via Gmail only for qualified leads, then reminds the owner to follow up after 48 hours. How it works Receives a new lead submission via an n8n Form with contact details, request, and urgency. Sends the lead details and your business context to OpenRouter to return a JSON score, summary, and ready-to-send email reply. Checks whether the lead meets the minimum qualification score. If qualified, sends the drafted reply to the lead via Gmail and appends a “replied” row to the Leads tab in Google Sheets. If not qualified, appends a “not_qualified” row to the same Google Sheets tab without emailing the lead. For qualified leads, waits 48 hours and then emails the owner a Gmail reminder to follow up. Setup Add an OpenRouter HTTP Header Auth credential (Authorization: Bearer YOUR_KEY) and ensure the OpenRouter endpoint is reachable. Connect Gmail OAuth2 credentials for sending replies to leads and reminder emails to the owner. Connect Google Sheets OAuth2 credentials, select the target spreadsheet, and ensure it has a tab named “Leads” with headers Timestamp, Name, Email, Request, Score, Summary, Status. Update the business description, tone, owner email address, and minimum score threshold in the configuration step before activating the workflow. Requirements n8n (self-hosted or Cloud) OpenRouter API key (the default free model costs $0) Gmail account (OAuth2) Google Sheet with a Leads tab and headers: Timestamp, Name, Email, Request, Score, Summary, Status Customization Swap the model in AI Qualify + Draft Reply for any OpenRouter model Raise or lower min_score in Prepare Lead + Config to be stricter or looser Add form fields (budget, suburb) in Lead Form and mention them in the AI prompt Replace Gmail with Outlook or SMTP Change Wait 48 Hours to a different follow-up time Additional info Tested end to end with five sample leads: two real jobs got replies, and a vague question, a one-word “hi” and an SEO sales pitch were filtered out. The lead is only ever emailed once; the follow-up reminder goes to you, never to them. An n8n automation workflow template by Rafael.
- 3 nodes
- Automation
By iamvaar
Quick overview Youtube Video: https://youtu.be/7lmQu9wd46w This workflow runs on a monthly schedule (or manually) to compare SolarEdge energy production against weather-adjusted expectations using Open-Meteo and Postgres history, then uses Google Gemini to attribute losses and, for anomalies, creates Jira work orders and posts alerts to Slack. How it works Runs on a monthly schedule (or when executed manually) and loads site configuration such as date range, expected kWh, and thresholds. Pulls daily energy production for the configured period from the SolarEdge Monitoring API and fetches hourly radiation and cloud cover data from Open-Meteo. Queries Postgres for the site’s last 30 days of performance history and the most recent incidents to build diagnostic context. Calculates actual vs expected production, weather-adjusted losses, performance ratios, anomaly flags, and historical baselines, then upserts the results into a Postgres solar performance table. If the period is anomalous, sends the metrics and historical context to Google Gemini to generate a structured root-cause attribution, confidence, priority, and recommended actions. Stores the AI diagnosis as an open incident in Postgres, creates a Jira task with the diagnosis details, links the Jira key back to the incident, and posts an alert to a Slack channel. If no anomaly is detected, posts a daily/period summary message to Slack. Setup Configure credentials for SolarEdge (OAuth2), Postgres, Google Gemini (PaLM/Generative Language API), Jira Software Cloud, and Slack. Update the Config values for your site (SolarEdge site ID, latitude/longitude, timezone, expected_kwh, loss_threshold_pct, evaluation date and period dates, and Jira base URL). Ensure Postgres has the required tables and constraints used by the queries (solar_daily_performance and solar_incidents, including the ON CONFLICT keys). Select the target Slack channel and confirm the Jira project and issue type used for creating work orders match your Jira setup. Activate the workflow and adjust the schedule trigger interval if you want a different cadence than monthly. An n8n automation workflow template by iamvaar.
- 8 nodes
- Automation
- AI
By 久保田 卓磨
Quick overview This workflow turns Gmail or form-submitted quotation requests into unsent freee Invoice quotation drafts by extracting requested items with Anthropic Claude and pricing them from a Google Sheets price list, then notifies staff with the result. How it works Triggers when a new matching email arrives in Gmail or when someone submits the n8n form with a pasted quote request. Normalizes the request into a common structure and loads configuration values like freee company ID, spreadsheet ID, and staff notification email. Fetches your price list from Google Sheets and retrieves your partner list from the freee API. Sends the request text plus a catalog view of the price list (without prices) to Anthropic Claude to extract requested items, quantities, units, and supporting quotes from the original text. Validates Claude’s extraction against the original request, prices only verifiable items using the sheet’s unit_price and tax_rate, and resolves the customer to a freee partner by sender email or exact company-name match. Creates an UNSENT quotation draft in freee Invoice with priced lines and adds “※要確認 / To check” note lines for ambiguous or unpriceable items. Sends a detailed result to staff via Gmail or shows it as the form completion message, including the freee draft link when available and any items that were dropped or need review. Setup Create and authorize a freee Developers app with access to partners (read) and freee Invoice quotations (read/write), then add an OAuth2 credential in n8n for the freee API. Add credentials for Gmail (trigger and send), Google Sheets OAuth2 (to read the price list via the Sheets API), and Anthropic (Claude) in n8n. Prepare a Google Sheet tab with headers: code, name, aliases, unit, unit_price, tax_rate, and fill it with your catalog and pricing. Update the workflow’s Config values (freee_company_id, price_sheet_id, price_sheet_tab, staff_email, tax settings, timezone) and adjust the Gmail trigger search query to match your incoming request emails. If using the form entry path, publish the form and share its URL with your team for manual request pasting. Requirements freee with freee Invoice (freee請求書) and an app in freee Developers (permissions: partners read, [請求書] all document types read/write); an n8n OAuth2 API credential for freee. Gmail and Google Sheets (OAuth2), an Anthropic API key (one Claude call per request). A price list sheet with the header code, name, aliases, unit, unit_price, tax_rate. Customization Set the freee company ID, sheet, staff e-mail, honorific, tax entry method, rounding and expiry in Config. Change which mails count in the Gmail search of New request mail (or use a label). Change how strict the checks are in Check and price. Send the notice to Slack or Teams instead of Gmail. Additional info The AI never sets prices: Claude lists items, quantities and the exact words; code checks them and takes every unit price from the sheet. Unknown items and quantities not written in the mail become "To check" lines without a price. Tested on a freee developer test company (corporate Starter) with a made-up price list: five requests including a real Gmail mail and the form; freee's totals matched the workflow's own every time. An n8n automation workflow template by 久保田 卓磨.
- 5 nodes
- Automation
- AI
By Quirino Scaramastra
Quick Overview This workflow ingests documents from an FTP server into MariaDB Vector using Ollama embeddings, then provides a local chat interface that answers questions with retrieved context and caches repeated questions in a MariaDB Q&A table. How it works Starts a manual ingestion run that lists and downloads a file from an FTP server and extracts its text. Sends the extracted text to an Ollama chat model to generate a short summary and assign a category from an allowed list. Splits the document text into chunks, creates embeddings with Ollama, and inserts each chunk plus its vector and metadata into a MariaDB documents table. Receives a question via an n8n Chat trigger and normalizes it to look up a matching answer in the MariaDB qa_cache table. If there is no cached answer, embeds the question with Ollama and retrieves the top similar chunks from MariaDB using vector distance. Builds a context-cited prompt from the retrieved chunks and uses an Ollama chat model to answer strictly from that context. Stores the new answer back into qa_cache and returns either the cached or newly generated answer to the chat. Setup Set up a MariaDB 11.7+ database with the documents (VECTOR column) and qa_cache tables, and add an n8n MySQL/MariaDB credential. Run Ollama and ensure the chat and embedding models are available, then set the Ollama base URL and model names in the workflow settings nodes. Add an FTP credential and update the FTP path to point to the document(s) you want to ingest. Adjust the allowed category list for classification and the top_k retrieval value to match your use case. An n8n automation workflow template by Quirino Scaramastra.
- 13 nodes
- Automation
- AI
By Nuvetra Automation Lab
Quick overview This read-only workflow compares Paddle Billing subscription data against a Postgres subscription cache using two observations taken ~10 seconds apart, then generates a private HTML report highlighting stable mismatches in status, plan, and access decisions. How it works Starts manually and loads the review configuration (demo/live mode, Paddle environment, settle window, price-to-plan mapping, and access policy rules). In demo mode, loads two fictional Paddle and Postgres observations taken 15 seconds apart. In live mode, validates the configuration, then fetches up to 200 subscriptions from the Paddle API and up to 200 rows from Postgres to capture the first observation. Waits 10 seconds and repeats the Paddle API and Postgres reads to capture a second observation. Compares Paddle subscriptions to the Postgres cache using the configured mappings, deferring records updated too recently (or with overdue scheduled changes) and keeping only discrepancies that appear identically in both observations. Renders the results into an HTML report and outputs it as a downloadable file. Setup Set demoMode=true to run without credentials, or set demoMode=false and choose environment=sandbox or production in the configuration. For live mode, add a Paddle API key as an HTTP Header Auth credential (Authorization: Bearer ) and ensure it has permission to read subscriptions. Add Postgres credentials with SELECT-only access and either create a view/table named public.billing_subscription_cache or update both Postgres queries to return subscription_id, status, plan, access (boolean), and updated_at. Update the pricePlans mapping to include every Paddle price ID you use and review the accessPolicy rules for active, trialing, past_due, paused, and canceled. Keep both data sources under the 200-record limit (Paddle first page only and up to 200 cache rows) to avoid the workflow blocking the run. An n8n automation workflow template by Nuvetra Automation Lab.
- 3 nodes
- Automation
By Amir Anwar
Quick overview Monitors FortiGate SD-WAN link health and real-time bandwidth usage. Sends Gmail reports and alerts for WAN outages, congestion, and slow connections. Supports secure, passphrase-verified email commands to identify the top bandwidth user and optionally clear their sessions through SSH, enabling automated network visibility, troubleshooting, and traffic management. How it works Triggers either when a matching Gmail message is received or every 10 minutes on a schedule. Parses the newest allowed email command to decide whether to run a read-only report or request a session clear, and loads the full email to verify the sender for kill requests. Queries the FortiGate REST API for SD-WAN members, health-check status, interface bandwidth capacity, and FortiView top sources and destinations. Analyzes WANs as OK/SLOW/CHOKED/DOWN based on capacity, latency, and packet loss thresholds, and selects an eligible top private-IP bandwidth user that is not in the protected list. If a verified email command requests it, connects to the FortiGate via SSH to clear sessions for the selected top source, waits 10 seconds, and re-queries top sources and SD-WAN members. Builds an HTML email report and sends it via Gmail for every email command, or only on WAN problems and once on recovery for scheduled monitoring. Setup Create a FortiGate REST API admin and add an n8n HTTP Header Auth credential with an Authorization Bearer token for the FortiGate API requests. Create a FortiGate CLI admin with SSH access from your n8n host and configure an SSH credential for the session-clearing step. Connect a Gmail account for reading command emails and sending reports, then update the Gmail search query to include your chosen passphrase. In the workflow settings values, set your FortiGate URL, allowed sender emails, report recipient, WAN interface names, protected IPs, and any thresholds (choke/latency/loss, cooldown, top N). An n8n automation workflow template by Amir Anwar.
- 3 nodes
- Automation
By Socialrobot.io
Quick overview This workflow runs daily (or manually) to pull products from Etsy (RSS or API) or Shopify, generate Pinterest and Instagram copy with OpenAI (optional), then publish a Pinterest pin and an Instagram photo via SocialRobot while tracking posted products in an n8n Data Table. How it works Runs on a daily schedule at 10:00 (or via manual trigger) and loads your catalog, posting, and copy settings. Uses SocialRobot to identify the connected Pinterest account and select the target Pinterest board. Fetches product listings from Etsy RSS, the Etsy API, or Shopify (based on your configuration) and normalizes them into a consistent product format with images and product links. Checks an n8n Data Table to skip products that have already been posted and limits the run to the configured number of products. If enabled, uses OpenAI to write Pinterest titles/descriptions and Instagram captions from the listing facts and falls back to template copy when AI output is unsuitable. Publishes a Pinterest pin (via the SocialRobot API) and an Instagram photo (via SocialRobot), then records successful posts in the Data Table or stops with a readable error if nothing was posted. Setup Install the SocialRobot community node (@socialrobot-io/n8n-nodes-socialrobot) and add your SocialRobot API key credentials (SocialRobot node credential plus an HTTP Header Auth credential with x-api-key) for the SocialRobot API requests. Connect your Pinterest and Instagram accounts in SocialRobot, and select the correct Instagram account in the Instagram posting step. Configure a product source: set your Etsy shop name for RSS, add an Etsy API key (x-api-key) for the Etsy API option, or add Shopify access token credentials with read_products scope for the Shopify option. Create an n8n Data Table named socialrobot_posted_products with the columns used for tracking (product_key, source, title, product_url, pinterest_post_id, instagram_post_id, posted_at). Update Set Catalog Configuration with your source, shopify_store_url (if using Shopify), pinterest_board_name (and optionally account/board IDs), and any copy preferences such as language, tone, and hashtags. Add an OpenAI credential for the OpenAI Chat Model node (or set use_openai to false), run the workflow once manually to verify output, then activate the schedule. An n8n automation workflow template by Socialrobot.io.
- 6 nodes
- Automation
- AI
By AI Flow Packs
Quick overview This workflow accepts KYB ownership-review requests via webhook, pulls corporate ownership-chain data from the GLEIF API, generates a structured risk memo with OpenAI, and manages human approvals and notifications through Gmail, while logging outcomes in n8n Data Tables and re-checking accepted clients weekly for changes. How it works Receives a header-authenticated webhook request containing an LEI (or legal name and country) and validates the input, including ISO 17442 check digits for LEIs. Looks up the entity in the GLEIF API, ensures the match is unambiguous, and checks n8n Data Tables to prevent duplicate open reviews or reuse a recent accepted decision. Walks the GLEIF direct-parent chain up to a configured maximum depth, captures reporting exceptions, and also fetches the ultimate-parent relationship to complete the chain context. Applies rule-based KYB flags (for example FATF-listed country links, lapsed/withheld registry data, circular ownership, or declaration discrepancies) and calculates a minimum risk-rating floor plus a suggested document list. Uses an OpenAI agent (with optional GLEIF lookups and prior-review retrieval) to produce a structured memo and then emails a review pack to the reviewer via Gmail with a decision form link. Routes the reviewer’s decision to accept, request documents, escalate, or ask up to two follow-up questions to the OpenAI agent, and requires a second approver via Gmail for accepting high-risk cases. Writes the final decision to the kyb_reviews table, optionally upserts a monitoring baseline in kyb_monitoring for accepted cases, and notifies the requester and (if escalated) the compliance officer by email. Runs every Monday on a schedule to re-check monitored clients in GLEIF and, when the ownership fingerprint changes, reopens a review by posting back into the same webhook. Setup Run the manual setup trigger once to create the kyb_reviews and kyb_monitoring n8n Data Tables (or confirm they already exist). Create credentials for Gmail, an OpenAI API key (Chat model), and an HTTP Header Auth credential for the intake webhook and for the “reopen review” HTTP request. Replace the placeholder reviewer, senior approver, compliance officer, and ops alert email addresses in the workflow settings nodes. Copy the production webhook URL for the intake endpoint into the monitoring configuration so the weekly checker can reopen reviews through the webhook. (Recommended) Set this workflow as its own error workflow so failures trigger the Gmail ops alert message. Requirements A recent n8n version with Data Tables, cloud or self-hosted (tested on n8n 2.44.4) An OpenAI API key (gpt-4.1-mini by default, about 2 model calls per review) A Gmail account for the review pack, the senior approval and the notifications; no key needed for GLEIF (free public API) Customization Edit severities, suggested documents, legal-form patterns and the rating thresholds in "Assess ownership risk flags", and REUSE_DAYS / OPEN_REVIEW_DAYS in "Check open reviews and reuse window". Update fatf_black_list, fatf_grey_list and fatf_list_date after each FATF plenary, and add your own list in extra_high_risk_countries (for example the EU list of high-risk third countries). Change MAX_FOLLOW_UPS and the senior approval rule in "Apply review policy", and the waiting times in the Wait and Gmail approval nodes. Change the weekly schedule, or send the alerts to Slack or Microsoft Teams instead of Gmail. Replace the OpenAI model with Anthropic, Gemini, Mistral or a local model through Ollama. Additional info Limitations: GLEIF Level 2 data shows accounting-consolidation parents, not beneficial owners; the workflow never names a natural person as beneficial owner and asks for a UBO declaration instead. Only entities with an LEI are covered (others get HTTP 422 and need a manual check). Parent data is self-reported and can be lapsed or uncorroborated; it is flagged but not corrected. No sanctions, PEP or adverse media screening is included. The FATF lists in the settings are dated 19 June 2026 and must be kept up to date. Client names, GLEIF data and declared owners are sent to your AI provider. This is decision support for trained compliance staff, not legal advice; a person always makes the decision. An n8n automation workflow template by AI Flow Packs.
- 6 nodes
- Automation
- AI
By 久保田 卓磨
Quick Overview This workflow turns a Slack thread or a pasted conversation into a downloadable PowerPoint (.pptx) brief using Anthropic Claude, and verifies each slide item against quoted source messages before posting the deck back to Slack or returning it via an n8n form. How it works Triggers when someone mentions the Slack app in a thread or submits the n8n form with a pasted conversation. For Slack, it fetches all thread replies from Slack, looks up participant names via the Slack Web API, and builds a cleaned transcript that excludes bots and the request message. It applies limits and formatting to create a numbered transcript and sets the slide purpose (from the Slack mention text or the form field). Anthropic Claude generates a JSON brief (title, background, discussion points, decisions needed, next steps) where each item includes exact quotes and message numbers as sources. The workflow validates Claude’s output by checking that each quote appears in the transcript and that any numbers/dates and owners are actually supported by the cited messages, dropping untraceable items or fields. It generates a PowerPoint file by writing Office Open XML slide parts, zips them into a .pptx, and then either uploads the file to the originating Slack thread (with a summary of included vs. dropped items) or returns the .pptx as the form response. Setup Add an Anthropic API credential for the Claude chat model used in the workflow. Add Slack credentials for both the Slack Trigger and Slack Web API actions, and ensure the Slack app has the scopes app_mentions:read, channels:history, chat:write, files:write, and users:read. Configure Slack Event Subscriptions to send app_mention events to the Slack trigger webhook URL, and install the app to the workspace/channel(s) you want to use. Update the allowed Slack user IDs list to control who can request slide creation. Optionally adjust slide limits, timezone, fonts, accent color, and section labels in the workflow configuration values. An n8n automation workflow template by 久保田 卓磨.
- 6 nodes
- Automation
- AI
By Wongsakorn Phasawet
Quick overview This workflow lets customers book, reschedule, or cancel appointments by messaging your LINE Official Account, uses OpenAI to extract booking details, checks availability in Google Calendar, logs bookings in Google Sheets, and sends automated LINE reminders for upcoming appointments. How it works Receives incoming LINE webhook events and verifies the request signature before acknowledging valid requests with a 200 response. Splits the webhook payload into individual text messages and uses OpenAI to extract the customer’s intent (book/cancel/reschedule) and booking details. Validates the requested service and time against your opening hours, then either asks the customer for missing details or continues. Checks Google Calendar for busy times on the requested day and, if the slot is taken, replies on LINE with up to three alternative times as quick-reply buttons. If the slot is free, creates or updates the Google Calendar event and writes the booking status and metadata to a Google Sheets “Bookings” tab. Sends a confirmation message to the customer on LINE (and pushes an alert to the owner for new bookings), or deletes the calendar event and marks the booking cancelled for cancellation requests. Runs hourly to find bookings starting within the next 24 hours in Google Sheets, pushes a LINE reminder to the customer, and marks the booking as reminded. Setup In the LINE Developers Console, enable webhooks, generate a Channel access token, and add your Channel secret to the signature verification code. Create an HTTP Header Auth credential for LINE (Authorization: Bearer ) and select it in the LINE HTTP request steps. Add OpenAI, Google Calendar OAuth2, and Google Sheets OAuth2 credentials, then select the target booking calendar and set the Google Sheets document URL/ID used by the workflow. Create a Google Sheet with a “Bookings” tab and the required columns (including bookingId, status, service, date, time, startISO, userId, eventId, reminded, and rawMessage). Update the booking settings (time zone, opening/closing hours, appointment length, services list, and owner LINE user ID) to match your business. Copy the production webhook URL from n8n into LINE as the webhook URL and verify it receives events successfully. An n8n automation workflow template by Wongsakorn Phasawet.
- 6 nodes
- Automation
- AI
By AI Automation Playbook
Quick overview Dental and medical clinics, salons and spas, home-service businesses, consultants — anyone whose revenue depends on people showing up for appointments — plus agencies that want a sellable no-show recovery automation for local clients. How it works Every 30 minutes the workflow reads today’s appointments from Google Sheets and flags no-shows — appointments whose time passed 15+ minutes ago and were never marked checked-in. For each no-show it pulls up to 3 open slots, an AI agent drafts a personal rescue SMS, and Twilio sends it within minutes. When the customer replies, YES rebooks the chosen slot automatically (new appointment row plus log entry), NO is logged as lost with no further messages, and anything unclear is logged for human review. A second schedule sends exactly one gentle nudge after 2 hours of silence, then stops forever — the nudge logic is self-limiting by design, so nobody ever gets messaged twice. Reply matching is phone-number based and tolerant of formatting differences. Setup Connect your own Google Sheets OAuth2, Twilio and OpenAI credentials (all slots are placeholders — none are included) Fill the three CONFIG nodes (business name, Twilio number, sheet ID, and your business timezone, e.g. America/Vancouver — no-show detection compares appointment times against “now” in this timezone) Create Google Sheets tabs named Appointments (date, time, customer_name, phone, status, notes), OpenSlots (date, time, available) and RescueLog (sent_at, phone, customer_name, original_slot, slots_offered, status, notes) Paste the Twilio SMS Webhook production URL into your Twilio number’s messaging webhook Activate the workflow Mark check-ins in the Appointments sheet (status = checked-in) — that’s how the workflow knows who showed up Store phone numbers in E.164 format (+1...) so Twilio replies match Requirements An OpenAI API key A Twilio account with a phone number A Google account for Sheets Customization Change the 15-minute no-show threshold and the 2-hour nudge delay in the Code nodes Adjust the AI model’s SMS voice in the agent’s system prompt Swap the OpenAI model via the ai_model field in CONFIG Extend reply handling (e.g. route unclear replies to Slack instead of just logging them). An n8n automation workflow template by AI Automation Playbook.
- 5 nodes
- Automation
- AI
By cleanrowdata
Quick overview This workflow runs every Monday, finds companies currently hiring for selected job functions using Apify, logs new companies to Google Sheets, and optionally looks up work emails for named contacts and posts a weekly summary to Slack. How it works Runs every Monday at 8:00 based on a schedule. Loads your search criteria and reads the existing company domains from Google Sheets to use as a deduplication ledger. Collects rows in Google Sheets where you entered a contact first/last name and domain but no work email, then sends them to Apify Work Email Finder to retrieve verified or catch-all work emails. Writes any found emails (or a “not found” status and last-checked date) back to Google Sheets by matching on the company domain. Calls the Apify Hiring Intent Contacts actor to fetch companies hiring in your chosen locations and time window, including public-site emails and sample job details. Filters out companies already present in Google Sheets, flags whether only generic inbox emails were found, and appends new companies as new rows. Builds a weekly run summary and, if enabled, posts it to a Slack channel, while sending a Slack alert and failing the run if the Apify company search fails. Setup Create an Apify API token and configure an HTTP Header Auth credential that sends Authorization: Bearer for both Apify HTTP requests. Connect Google Sheets credentials and set the target spreadsheet URL and sheet tab name in the workflow settings, ensuring the tab includes columns like domain, contact name fields, and email/status fields. (Optional) Add an Abstract Email Validation API key in abstract_api_key if you want Apify Work Email Finder to use it for verification. (Optional) Connect Slack credentials, set send_slack_summary to true, and choose the target slack_channel for summaries and failure alerts. Adjust the job functions, locations, time window, and per-run limits in the workflow settings to control volume and cost. An n8n automation workflow template by cleanrowdata.
- 4 nodes
- Automation
By Palatine Speech
Quick overview This workflow watches a Google Drive folder for new call recordings, downloads each audio/video file, transcribes and analyzes sentiment with Palatine Speech, summarizes the transcript, and appends the date, filename, summary, sentiment, and transcript to a Google Sheets call log. How it works Triggers when a new file is created in a specific Google Drive folder. Filters the event to only continue for audio or video files based on MIME type or file extension. Downloads the call recording from Google Drive. Sends the recording to Palatine Speech to generate a transcription and a sentiment analysis in parallel. Combines the transcription and sentiment results and asks Palatine Speech to summarize the transcript as a meeting summary. Formats the date, original filename, summary, sentiment JSON, and full transcript into a single record and appends it as a new row in Google Sheets. Setup Install n8n-nodes-palatine-speech on self-hosted n8n, or select the verified package if it is available in your n8n Cloud workspace. Add Google Drive credentials, select the folder to watch, and ensure the trigger has permission to read new files. Add Palatine Speech credentials for the transcription, sentiment, and summarization steps. Connect Google Sheets credentials and select the target spreadsheet and sheet. Create these exact headers: Date, File, Summary, Sentiment, Transcript. Test a short recording, verify all five cells and the output format, then publish the workflow. Test with a non-media file to confirm it is ignored. Requirements Google Drive read access to the recordings folder, Google Sheets write access to the call log, and a Palatine Speech API account with transcription, sentiment and text summarization available. Install the Palatine Speech community node and select credentials in each relevant node. Customization Adapt the summary prompt for sales or support calls, add a review queue or notification based on the returned sentiment data, or store long transcripts separately and add a link to the sheet. Check AI-generated analysis against the recording. Additional info The Summary and Sentiment columns preserve structured results as JSON text when the service returns objects. The workflow appends a row per processed recording; it does not deduplicate repeat runs. Need help with Palatine Speech? Check info here: speech.palatine.ru Documentation: docs.speech.palatine.ru. An n8n automation workflow template by Palatine Speech.
- 2 nodes
- Automation
By James Brown
Quick Overview This workflow runs hourly to scrape product prices from web pages using HTTP requests and CSS selectors, compares them to previously stored values, and sends Telegram alerts when prices change or drop. How it works Runs every hour on a schedule trigger. Loads your product list (name, URL, and CSS selector), plus alert preferences like chat ID and whether to alert only on drops. Downloads each product page via HTTP and extracts the price text from the HTML using the provided CSS selector. Parses the extracted price into a number, compares it with the last stored price in workflow static data, and keeps only real changes (optionally only decreases). Sends a formatted Telegram message with the old price, new price, percentage change, and a link to the product page. Setup Create a Telegram bot and add Telegram API credentials in n8n. Update the Telegram chat ID, the onlyDrops setting, and the products list (URL and CSS selector) in the alert settings. Execute the workflow once manually to initialize stored prices, then activate it to run on the hourly schedule. An n8n automation workflow template by James Brown.
- 4 nodes
- Automation
By María Laura Vitelli
Quick overview This workflow watches a Google Sheets intake form for new CTD dossier requests, creates a structured folder set in Google Drive, uses Google Gemini to draft module assignment emails for human approval in Gmail, logs assignments to a tracking sheet, and sends scheduled reminder emails as due dates approach. How it works Triggers when a new row is added to a Google Sheets intake spreadsheet. Reads all registrations, identifies rows with the same product and dosage form (or missing required fields), and deletes the duplicate/invalid rows from Google Sheets. Creates a CTD dossier root folder in Google Drive and builds a list of CTD modules with their checklist filenames. For each module, creates a subfolder in Google Drive, downloads the module checklist via HTTP, uploads it to the module folder, and emails an error alert via Gmail if the upload fails. Uses Google Gemini (with a Google Sheets lookup tool) to find the module owner and draft an HTML assignment email with folder links and a due date. Sends the drafted email to a reviewer via Gmail for approval, then emails the module owner with the checklist attached and appends a tracking row to a Google Sheets tracking spreadsheet. On a schedule, reads the tracking sheet, calculates days remaining to each due date, and sends reminder emails via Gmail for incomplete modules that are due soon or overdue. Setup Configure Google credentials for Google Sheets, Google Drive, and Gmail, plus a Google Gemini (Google AI) connection for the LangChain agent. Select the Google Sheets documents and sheet tabs for the intake sheet, the module-owners sheet (Module, Owner, Email), and the tracking sheet, and ensure the intake sheet includes “Nombre del Producto” and “Forma Farmacéutica” columns. Update the workflow settings values such as reviewer email, parent Google Drive folder ID, checklist base URL, deadline days, initial/completed status labels, and reminder threshold days. Host the module checklist .xlsx files at the configured base URL with filenames that match the module list, and ensure the workflow’s module names exactly match the “Module” values in the owners sheet. An n8n automation workflow template by María Laura Vitelli.
- 8 nodes
- Automation
- AI
By Romuald Członkowski
Quick overview Connect Claude, ChatGPT or any MCP client to wFirma, the Polish invoicing and accounting service. Nine tools cover about 40 API modules: search and edit invoices, contractors, payments and expenses, read the official API docs live and save PDFs to Google Drive, with a guard for irreversible KSeF actions. How it works An MCP Server Trigger with n8n User Auth (OAuth2) exposes 9 tools. Users sign in with their n8n account, and only people allowed to run the workflow can connect. Every tool calls a gateway inside the same workflow ($workflow.id), so you import one file. The Plan node builds the wFirma API URL and checks whether the call needs approval; Route sends it to the API, the approval guard or the docs branch. For API calls, the XML node converts the request into wFirma's XML format, the HTTP Request node sends it, and the answer is parsed back into clean JSON with ok, status, records and pagination. If wFirma rate-limits a read (find/get), the workflow waits 35 seconds and retries once. Writes are never retried automatically. Deleting records, e-mailing invoices, fiscalization and final invoices (sent to KSeF, irreversible) need confirmed=true. Without it the server returns CONFIRMATION_REQUIRED, so the model must ask the user first. Drafts, pro forma invoices and offers go through directly. wfirma_docs fetches the official wFirma Postman collection and returns the module's fields and XML examples as Markdown, so the model uses correct field names before writing. wfirma_download_pdf saves the invoice or document PDF to your Google Drive folder and returns the link to the file. Setup Create a Custom Auth credential with {"headers":{"accessKey":"…","secretKey":"…","appKey":"…"}}. Generate accessKey and secretKey in wFirma (Ustawienia → Bezpieczeństwo → Aplikacje → Klucze API) and request the appKey from wFirma. Select the credential in the wFirma API and Download PDF nodes. In the Config node, set drive_folder_id to the Google Drive folder for PDFs. Set company_id only if your login has several companies; you can find it with wfirma_find on module user_companies. Select your Google Drive credential in the Upload PDF to Drive node. Activate the workflow, copy the MCP URL from the MCP Server Trigger, add it to your MCP client and log in with your n8n account. Requirements n8n with the MCP Server Trigger v2 or newer A wFirma account with API keys (accessKey, secretKey) and an appKey from wFirma A Google Drive credential (only for saving PDFs) An MCP client that supports OAuth, such as Claude or ChatGPT Customization Change which operations need confirmation in the needs_confirmation field of the Plan node Switch the MCP Server Trigger to Bearer auth if your client does not support OAuth Add shortcut tools by copying a tool node and fixing its module and action Replace the Google Drive node to store PDFs somewhere else Additional info The official wFirma API docs are in Polish, so wfirma_docs returns Polish field descriptions; tool descriptions and messages are in English Invoice drafts created through the API are not sent to KSeF; only final invoice types are, and those need confirmed=true Keep per-tool approval on in your MCP client for the write tools. An n8n automation workflow template by Romuald Członkowski.
- 3 nodes
- Automation
- AI
By Ad Astra Connect
Quick overview Track published AI crawler rules on selected websites and optionally monitor llms.txt presence and content hashes. Receive one email for baselines or changes, with persistent snapshots in a Data Table. How it works A manual trigger or hourly tick gated by policyCheckHour in Config loads per-site snapshots once daily from a Data Table. Fetch public files using a descriptive User-Agent, a 20-second timeout, paced requests and up to three transient attempts. Preserve successful responses during retries. Parse case-insensitive user-agent groups, select the most specific match, merge equally specific groups and fall back to *. Strip comments, handle BOM and CRLF, ignore empty restrictions, and use the longest matching root rule with Allow winning ties. Compare each bot's status and canonical path lists, plus optional llms.txt presence and hash. A robots.txt 404 means allow all. Other fetch errors are reported without changing that site's saved snapshot. Send one SMTP email if required, then upsert successful snapshots by siteKey. No change sends no email. New baselines can be silent through Config. Setup Create a Data Table with siteKey, robotsHash, policyJson and llmsTxt as String columns and checkedAt as Date. Enter its ID, site origins, bot tokens and email addresses in Config, then select an SMTP credential. Run twice manually before publishing the daily schedule. See SETUP.md for details. Requires n8n 2.8.4, Data Tables, an SMTP credential and outbound public HTTP access. Requirements n8n 2.8.4, Data Tables, an SMTP credential and outbound public HTTP access. Public GET requests require no API credentials. Keep workflow executions sequential. The included test harness requires Node 20 and cached n8n 2.8.4. Customization Edit Config for origins, crawler tokens, llms.txt checks, baseline emails, request pacing, addresses and policyCheckHour (0 to 23, default 9). The fixed hourly trigger checks the selected hour in the workflow or instance timezone; manual checks run immediately. A fuller version could also audit meta robots tags and X-Robots-Tag headers across many pages. Additional info Who is this for Website owners, marketing teams and IT teams tracking published AI crawler preferences on a small list of public websites. What it does Fetches robots.txt and evaluates configured crawler tokens as blocked, allowed or partial, with their allow and disallow paths. Optionally checks llms.txt presence and SHA-256 hash without storing its content. Sends one escaped HTML summary for new baselines or meaningful changes, including short added and removed robots.txt lines. robots.txt is a voluntary convention; this template reports what sites publish and does not assess legal compliance. Tested: parent-run mock and live suites passed on 2026-10-23 with n8n 2.8.4, including real import, Data Tables, SMTP rejection recovery, unchanged-run silence and three public sites. The review subsequently added a Config schedule gate and disabled duplicate native HTTP retries; its offline checks pass, but the final export needs a parent end-to-end rerun. See TESTING.md. Third-party product names are used only to describe compatibility. This template is not affiliated with or endorsed by those companies. An n8n automation workflow template by Ad Astra Connect.
- 4 nodes
- Automation