Agent Directory
Browse 160,118 AI agents
3889–3936 of 160,109
By sergebulaev
Instagram marketing skills for Claude Code and Codex: captions, carousels, hooks, hashtag strategy, and a weekly plan. Draft, humanize, and publish via Publora. MIT. Content engineering by Creative Content Crafts. An open-source AI framework/SDK by sergebulaev, hosted on GitHub.
- 648 stars
- Python
- AI Frameworks
By JustFill
Quick overview This workflow watches a Google Sheets spreadsheet for new rows, downloads a blank PDF from Google Drive, uses JustFill to populate the PDF form fields with the row values, and then uploads the flattened filled PDF back to a target Google Drive folder. How it works Triggers whenever a new row is added to the specified Google Sheets worksheet. Downloads the blank PDF template file from Google Drive. Sends the PDF and mapped Google Sheets column values to JustFill to fill matching PDF form fields and flatten the result. Uploads the filled PDF to a chosen Google Drive folder using the generated filename. Setup Install the community node n8n-nodes-justfill and add a JustFill API credential. Add Google credentials for Google Sheets and Google Drive access. Update the Google Sheet document ID and sheet (gid) in the trigger. Set the Google Drive file ID for the blank PDF template and the folder ID where filled PDFs should be saved. Ensure the keys in the JustFill field mapping match your PDF form field names (use JustFill’s “List Fields” once to discover them) and that your Google Sheets columns use the expected headers (for example, Full Name, Company, Email, Phone, Date). An n8n automation workflow template by JustFill.
- 2 nodes
- Automation
By Matt Michels
Pulls new Form D filings from SEC EDGAR through Apify, skips amendments and pooled funds, dedupes, scores each raise by size, company age, industry and state, and adds the named executives plus EDGAR links. Built for B2B sales, investors and service providers selling to newly funded companies. How it works Daily schedule / manual run reads every setting from Config. A weekly schedule uses the same Config to send a report instead of running the actor. Starts the Apify actor asynchronously, then waits and polls the run; FAILED, ABORTED, TIMED-OUT or too many polls stop with an error. Downloads the dataset, validates rows and dedupes within the run and across runs (workflow static data, dedupeMemoryDays). A transparent rule score runs first, then an LLM chain with a structured output parser reads each record against your plain-English aiCriteria and returns a fit score, verdict, summary, outreach angle and red flags. Calls are batched with a delay for rate limits, retried, and fall back to the rule score if the model fails. Upserts every row to Google Sheets. Hot rows go to Slack as one approve / dismiss message (send-and-wait, 24 h limit) and the decision is written back to the sheet; warm rows go to an HTML email digest; cold rows stay in the sheet. Weekly report: reads the sheet, summarises the last 7 days (tiers, approvals, top 10) and emails it. A separate Error Trigger branch posts any failure to Slack. Setup (about 15 minutes) Create an HTTP Header Auth credential: name Authorization, value Bearer (Apify Console > Settings > API & Integrations). Select it on the 3 Apify HTTP nodes. Create a Google Sheet with a tab named in sheetTab and a header row matching the sheet columns (see Upsert to Google Sheets, plus status and reviewedAt). Paste its ID into googleSheetId. Connect OpenAI (or swap the chat model sub-node for Anthropic, Gemini, Ollama...), Slack and Gmail; set slackChannelId and digestEmail in Config (also the channel on Slack: error alert). In Config set targetIndustries, targetStates (2-letter), minAmountSold, and actorInput.lookbackDays (match it to the schedule). Write your ideal-lead description in aiCriteria; set aiWeight (0 = rules only, 1 = AI only). Run once manually, check the sheet, then activate. Customize Edit weights in Score and enrich filings (amount 30, first filing 10, young company 15, industry 20, state 10, operating company 10, investors 5). Use industryGroups, states or minAmountSold in actorInput to filter at the source. Swap Gmail/Slack for Teams, Discord, HubSpot, Airtable, etc. Each delivery node only reads $json. Disclosure: I maintain these Apify actors (account transparent_meteorite). The actor is a paid pay-per-event Apify tool; check its Store page for current pricing before scheduling. An n8n automation workflow template by Matt Michels.
- 8 nodes
- Automation
- AI
By Matt Michels
Pulls businesses by category and city from OpenStreetMap through Apify, drops chains, dedupes against earlier runs, enriches (domain, clean phone, maps link) and scores each lead for your offer. Built for agencies, local service sellers and SDRs. How it works Daily schedule / manual run reads every setting from Config. A weekly schedule uses the same Config to send a report instead of running the actor. Starts the Apify actor asynchronously, then waits and polls the run; FAILED, ABORTED, TIMED-OUT or too many polls stop with an error. Downloads the dataset, validates rows and dedupes within the run and across runs (workflow static data, dedupeMemoryDays). A transparent rule score runs first, then an LLM chain with a structured output parser reads each record against your plain-English aiCriteria and returns a fit score, verdict, summary, outreach angle and red flags. Calls are batched with a delay for rate limits, retried, and fall back to the rule score if the model fails. Upserts every row to Google Sheets. Hot rows go to Slack as one approve / dismiss message (send-and-wait, 24 h limit) and the decision is written back to the sheet; warm rows go to an HTML email digest; cold rows stay in the sheet. Weekly report: reads the sheet, summarises the last 7 days (tiers, approvals, top 10) and emails it. A separate Error Trigger branch posts any failure to Slack. Setup (about 15 minutes) Create an HTTP Header Auth credential: name Authorization, value Bearer (Apify Console > Settings > API & Integrations). Select it on the 3 Apify HTTP nodes. Create a Google Sheet with a tab named in sheetTab and a header row matching the sheet columns (see Upsert to Google Sheets, plus status and reviewedAt). Paste its ID into googleSheetId. Connect OpenAI (or swap the chat model sub-node for Anthropic, Gemini, Ollama...), Slack and Gmail; set slackChannelId and digestEmail in Config (also the channel on Slack: error alert). In Config set actorInput.categories and locations, then leadGoal: website (no-website businesses score highest, for web/SEO offers) or outreach (reachable businesses score highest). List chains to skip in excludeChains. Write your ideal-lead description in aiCriteria; set aiWeight (0 = rules only, 1 = AI only). Run once manually, check the sheet, then activate. Customize Edit weights in Score and enrich leads. Set enrichFromWebsite: true in actorInput to have the actor look for emails on each site (more requests per lead). Swap Gmail/Slack for Teams, Discord, HubSpot, Airtable, etc. Each delivery node only reads $json. Disclosure: I maintain these Apify actors (account transparent_meteorite). The actor is a paid pay-per-event Apify tool; check its Store page for current pricing before scheduling. An n8n automation workflow template by Matt Michels.
- 8 nodes
- Automation
- AI
By Mateusz Skorupa
Quick overview When a writer submits a WordPress post for review, Gemini checks it and an editor gets it in Slack with one Review button. Publish it, or send it back with a note: the post returns to drafts and the author gets the note by email. How it works Review Request Webhook receives {"post_id": 123} from WordPress the moment a post moves to Pending, so there is no schedule to tune. Header Auth keeps the endpoint private. Settings holds the Slack channel, your house style, the minimum word count, whether a featured image or excerpt is required, the answer time and the sender address. Get Post reads the pending post through the WordPress API (a pending post is not public, so this uses your WordPress credential) and Get Author reads the writer's name and email. Post Checks is a short Code node that tests what Settings requires: a title, the word count, the featured image and the excerpt. Route Post sends a complete post to review, an incomplete one straight back to the author, a post that is no longer pending to Ignore Post, and a read error to the channel as a setup warning. Review Post sends the post and your house style to Gemini Chat Model and gets back a verdict (ready or needs work), a one-line summary and up to five concrete issues, checked against a JSON schema. If Gemini fails, Review Verdict still sends the post on, marked for review by hand. Ask Editor posts the summary, the issues, the checks and the preview and edit links to Slack with a Review button, then waits. The button opens a short form: Publish, or Send back with a note for the author. Editor Decision and Route Decision read the answer. Publish: Recheck Post reads the post again and Still Pending lets Publish Post set it live only if nobody changed it while it waited. Send back: Author Note writes the email, Back to Draft returns the post to drafts and Email Author sends the note. Incomplete posts take the same route with the list of what is missing. Publish Result and Return Result word the outcome and Post Update posts it to the channel: published with the link, sent back with the note, no answer in time, or what failed. Setup Open Settings. Set review_channel, describe your house style in house_style (Gemini reviews against it), and adjust min_words, require_featured_image, require_excerpt, answer_within_hours (default 48) and from_email. Open Review Request Webhook, add a Header Auth credential (for example X-Webhook-Token with a long random value) and copy the production URL. In WordPress, go to Users, open an administrator, create an application password and connect it as a WordPress credential on Get Post, Get Author, Recheck Post, Publish Post and Back to Draft. With an editor account everything works except the author's email, and Slack tells you so. Create a Gemini API key and connect it on Gemini Chat Model. The template uses gemini-3.1-flash-lite, which is enough for a copy check. Create a Slack app with the chat:write scope, connect its bot token on Ask Editor and Post Update, and invite the app to the channel (/invite @your-app), or Slack answers not_in_channel. The Review button opens an n8n form, so no Slack interactivity setup is needed. Connect your mail server as an SMTP credential on Email Author. Use an address your server may send from in from_email. In WordPress, send {"post_id": 123} to the webhook URL when a post moves to Pending. The free Webhook Actions plugin does it without code: new webhook on wp_after_insert_post, map args.0 to post_id, add the conditions args.1.post_status equals pending, args.3.post_status is not pending and args.1.post_type equals post, and attach the header credential. Or import the ready-made build with exactly this setup. A short PHP snippet that does the same is under Additional info. Activate the workflow, log in as a contributor (or any user) and click Submit for Review on a post. The Review button in Slack opens the form. Requirements WordPress 5.6 or later, with application passwords (built in) and an administrator account A Gemini API key, a Slack workspace and an SMTP mail account Customization Change what Gemini looks for by editing house_style in Settings, or the issue descriptions in Review Post's schema, for example to check SEO titles or banned words. Swap Gemini Chat Model for OpenAI, Anthropic or a local model; Review Post works with any chat model node. Review pages or a custom post type: change the post type in the WordPress condition and the resource in Get Post, Recheck Post, Publish Post and Back to Draft. Schedule instead of publishing: set a date in Publish Post, or add a date field to the Ask Editor form. Additional info Who is this for. Blogs where contributors, freelancers or guest authors submit posts for review. WordPress has the Pending status but never tells the editor, so pending posts wait until someone looks. Why wp_after_insert_post. It fires once the post, its featured image and its categories are all saved. transition_post_status fires earlier, so with the block editor a post submitted together with its featured image would be reported as having none. WordPress side without a plugin. Put this in functions.php or a custom plugin, and replace the URL and the token with yours (the token must match the Header Auth credential in n8n): add_action( 'wp_after_insert_post', function ( $post_id, $post, $update, $post_before ) { // Only the moment a post is submitted for review, not each save while it waits. $before = $post_before ? get_post_status( $post_before ) : ''; if ( 'post' !== get_post_type( $post_id ) || 'pending' !== get_post_status( $post_id ) || 'pending' === $before ) { return; } $payload = []; $payload['post_id'] = $post_id; $args = []; $args'headers' = 'application/json'; $args'headers' = 'YOUR-TOKEN'; $args['body'] = wp_json_encode( $payload ); $args['blocking'] = false; // do not make the writer wait for n8n wp_remote_post( 'https://YOUR-N8N/webhook/wordpress-post-review', $args ); }, 10, 4 ); `. An n8n automation workflow template by Mateusz Skorupa.
- 6 nodes
- Automation
- AI
By SpecStream
Quick overview This workflow runs every morning at 7:00 to query SpecStream for open federal grants matching your field, appends newly found grants to a Google Sheets log, and posts a single Slack message listing the new opportunities with links, funders, and deadlines. How it works Runs every day at 7:00 on a schedule. Reads your search parameters and loads the existing grant log from Google Sheets to determine whether to start a new SpecStream search or extend the most recent results list. On the first run, SpecStream reads the search request; on later runs, it reopens the previous SpecStream list so only new grants come back. Requests a SpecStream price quote for the run and stops with an error if the maximum cost exceeds your configured spending limit. Approves the quote so SpecStream starts the run, then checks every 30 seconds until the run finishes. Fetches all result rows from SpecStream, normalizes them into one item per grant (including the official source link and list ID), and appends them to Google Sheets. Formats a single Slack message containing one bullet per new grant and posts it to your chosen Slack channel. Setup Create a SpecStream API key and add it to an n8n HTTP Bearer Auth credential used by the SpecStream HTTP Request steps. Connect Google Sheets credentials and select the target spreadsheet and sheet for both reading and appending the grant log. Connect Slack credentials and choose the channel to post the daily grant digest to. Update the search text, result count, and maximum spend (in cents) in the search parameters to match your field and budget. Requirements A SpecStream account and API key (specstream.ai, under Agents & API). New accounts get $10 of work free, no card. Google Sheets and Slack credentials in n8n. The workflow uses only core nodes, so it runs on n8n Cloud and self-hosted n8n. Customization Change the request in Your grant search, for example "Open federal grants for rural broadband" or "Open federal grants that tribes can apply for". Use a new empty sheet for each field. Run it weekly instead of daily by changing the schedule trigger to Monday morning. Send the digest by email: replace Post to Slack with a Gmail or Outlook node and use the text field as the body. Additional info Each grant costs 10¢, and the price shows before anything runs. You pay only for new grants, so a morning with nothing new costs nothing. The default maximum is $2.50 a morning. An n8n automation workflow template by SpecStream.
- 4 nodes
- Automation
By Socialrobot.io
Quick overview This workflow collects Etsy-style product and packaging photos via an n8n form, uploads and crops them on fal, optionally uses OpenAI to write shot prompts and captions, renders a vertical unboxing/reveal video with Kling 3.0, and delivers it to TikTok as a draft via SocialRobot. How it works Receives product details and image uploads through an n8n form submission. Sorts the uploaded images into product, optional packaging, and extra reference photos, then plans a 9:16 crop for the packaging and product frames. Uploads the photos to fal storage and runs fal’s crop utility to generate cropped frame images. Validates that the photos are usable and chooses an unboxing plan (with packaging photo) or a product-reveal plan (without packaging), optionally generating shot prompts and multi-platform captions with OpenAI. Submits a Kling image-to-video job on fal using the packaging photo as the first frame and the product photo as the last frame, then polls fal until the render completes or times out. Downloads the completed video from fal, checks the MP4 duration and file size limits, and uploads it to TikTok as a draft with a prepared caption via SocialRobot. Stops the run with a readable error message if any step fails (photo validation, fal upload/crop, Kling render, download, checks, or SocialRobot delivery). Setup Create a fal API key and add it as an HTTP Header Auth credential (Authorization: Key YOUR_FAL_KEY) on all fal HTTP Request steps. Add an OpenAI credential for the OpenAI chat model (or disable caption/prompt generation by setting use_openai to false). Install the community node @socialrobot-io/n8n-nodes-socialrobot, add your SocialRobot credential, connect your TikTok account in SocialRobot, and select the TikTok account ID in the TikTok draft upload step. (Optional) Enable the Instagram/Facebook/Threads/Pinterest posting steps and set the required SocialRobot account IDs, plus Pinterest account and board IDs if you turn on the Pinterest API request step. Review and adjust the settings in the video configuration step (video length, shot count, cropping, prompt guardrails, hashtags, polling interval, timeouts, and file size limits) before activating the workflow. An n8n automation workflow template by Socialrobot.io.
- 5 nodes
- Automation
- AI
By Intuz
Quick overview This workflow receives patient WhatsApp messages via WAHA, uses OpenAI to extract structured administrative triage details, stores each case in an n8n Data Table, posts human-review items to Slack, and either replies with safe clinic info or runs scheduled Slack follow-ups until the clinic team closes the case. How it works Receives inbound WhatsApp messages via a WAHA webhook (or a manual test trigger) and filters out outbound, group, and empty events. Normalizes the payload and sends the message text to OpenAI to classify intent, urgency, and whether the case requires human review, returning a strict JSON result. Builds a case record (including follow-up settings) and upserts it into the n8n Data Table named “Clinic Demo Cases”. If human review is required, posts the case details to a Slack channel for escalation (either tagged for Dot review or marked as n8n-owned fallback monitoring) and sends an acknowledgement back to the patient via WAHA. If human review is not required, sends the schema-validated administrative reply back to the patient via WAHA. Runs every 10 minutes to find due n8n-owned cases in the Data Table, uses OpenAI to generate a structured operational reminder, posts it to Slack, and updates reminder counters and status until max reminders are reached. Accepts clinic staff updates through an n8n Form, updates the corresponding Data Table row, and posts a confirmation to Slack to stop further scheduled reminders. Setup Add an OpenAI credential and select it in the OpenAI Chat Model used by both the triage and follow-up reminder steps. Add a Slack credential and set the target channel (for example, #clinic-escalations) in all Slack message steps. Set up WAHA and create an HTTP Header Auth credential with header X-Api-Key, then update the WAHA base URL and configure WAHA to send inbound messages to the workflow’s webhook URL. Create or update the n8n Data Table “Clinic Demo Cases” to include the required columns (including monitoring fields like monitor_owner, next_followup_at, reminder_count, and max_reminders). Review “Workflow Configuration” values (especially coordinationMode, reminderIntervalMinutes, and maxReminders) and keep the Clinic Case Update Form URL private for internal use. Requirements n8n – Workflow automation orchestrator. WAHA – Receives WhatsApp messages and sends patient responses. OpenAI – Provides structured administrative classification and fallback reminder decisions. Dot – Proactive agent responsible for monitoring Slack cases, following unresolved responsibilities, escalating important cases, and preparing summaries. Slack – Shared coordination channel for initial escalations, Dot monitoring, fallback reminders, and case updates. n8n Data Table – Stores cases, monitoring ownership, reminder state, team notes, and resolution status. n8n Form Trigger – Provides the internal Clinic Case Update Form. Credentials – OpenAI, Slack OAuth, and WAHA X-Api-Key credentials must be configured. Dot setup – Dot must have access to #clinic-escalations and must confirm its monitoring responsibility. Demo safety – Dummy patient data should be used until applicable privacy, access-control, consent, retention, security, and regulatory requirements are completed. Additional info Connect with us: Website: https://www.intuz.com/n8n-workflow-automation-templates/ Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz For Custom Workflow Automation Get Started: https://n8n.partnerlinks.io/intuz. An n8n automation workflow template by Intuz.
- 4 nodes
- 5 views
- Automation
- AI
By iamvaar
Quick overview Youtube Video: https://youtu.be/hq4jZv8EZYg?si=aU_0S13Zvbo30IS- This workflow runs every 15 minutes to poll FHIR Observation data from mock.health, uses Google Gemini to triage each new observation, escalates high-severity findings to Slack, and logs all processed observations and recommendations to a Google Sheets tracking sheet. How it works Runs every 15 minutes on a schedule. Reads the last successful sync timestamp from workflow static data and polls the mock.health FHIR Observation endpoint for the most recently updated records since that time. Parses the FHIR bundle, normalizes each Observation into a consistent alert payload, and stops if no valid observations are returned. Checks Google Sheets for matching observationId values and filters out observations already marked as processed. Sends each unprocessed observation to Google Gemini to assign a severity, headline, clinical rationale, and recommended action, then merges the triage back into the observation record. Routes CRITICAL and HIGH observations to Slack as an escalation message, then restores the original payload for downstream logging. Appends or updates the observation in Google Sheets (marking it processed) and advances the stored sync cursor to the newest processed observation timestamp. Setup Create or select a mock.health API bearer token credential and ensure it can access the FHIR Observation endpoint used in the HTTP request. Add a Google Gemini (Google PaLM) API credential for the Gemini chat model used to generate triage JSON. Add a Google Sheets Service Account credential, grant it access to the target spreadsheet, and ensure the “Observations” sheet has columns matching the fields written (including observationId and processed). Add a Slack OAuth credential and set the target channel for escalations (the workflow currently posts to channel ID C0B8VH1M5PX). An n8n automation workflow template by iamvaar.
- 6 nodes
- Automation
- AI
By WeblineIndia
Quick overview This workflow polls Salesforce Opportunity updates, validates Closed Won deals, pulls CRM data and attached PDF files, uses OpenAI to extract contractual commitments, scores conflicts and evidence gaps, and then updates Salesforce with a PROCEED/REVIEW/BLOCK handover outcome. How it works Triggers every minute when a Salesforce Opportunity is updated and fetches the full Opportunity record. Checks whether the Opportunity stage is exactly “Closed Won”, then initializes a handover record and sets a Salesforce handover status field to “Processing”. Retrieves Salesforce CRM evidence for the deal by loading Opportunity products, the related Account, and Opportunity contact roles, then packages the data as evidence. Finds files linked to the Opportunity in Salesforce, downloads the latest file versions, extracts text from PDFs, and classifies each document type based on keywords. Sends each document’s text to OpenAI to extract explicit commitments, parses the JSON output, normalizes the commitments, and builds a combined commitment registry. Validates commitment evidence completeness, detects potential conflicts across commitments, applies rule-based risk scoring, and builds a risk register. Sends the consolidated CRM evidence, document evidence, commitment registry, and risk register to OpenAI for an overall risk assessment, then calculates a final PROCEED/REVIEW/BLOCK decision. Updates the Salesforce Opportunity with the resulting handover status and AI risk fields and returns a final handover response containing the decision, risk summary, and identified risks. Setup Add Salesforce OAuth2 credentials and ensure the integration user can read Opportunities, Accounts, OpportunityLineItems, OpportunityContactRoles, and Opportunity Files (ContentDocumentLink/ContentVersion), and can update the Opportunity fields used for handover status. Update the Salesforce file download base URL in the HTTP request step to match your Salesforce org domain and confirm it uses the same Salesforce credential. Add OpenAI (or OpenAI-compatible) credentials for both AI steps and choose a model available in your environment. Create or map the Salesforce custom fields referenced by the workflow (for example Handover_Status__c, AI_Deal_Risk__c, AI_Decision_Timeline__c, and AI_Next_Steps__c) to valid field types and allowed values. Ensure Closed Won Opportunities have an Account, products, contact roles, and readable PDF attachments (not scanned images) so the PDF text extraction and commitment parsing can succeed. An n8n automation workflow template by WeblineIndia.
- 4 nodes
- Automation
- AI
By AI Flow Packs
Quick Overview This workflow receives counterparties via a header-authenticated webhook, screens them against OFAC SDN/alias and UN consolidated sanctions lists, uses an OpenAI-powered agent to pre-assess possible hits, routes the case through a human review with optional four-eyes approval, and logs outcomes in an n8n Data Table. How it works Receives a POST request on a header-authenticated webhook with counterparty details, validates the payload, and generates a stable match key. Looks up prior cases in the n8n Data Table and immediately returns an existing open case or a recent clear result instead of re-screening. Opens a new case in the Data Table, acknowledges the request with a case ID, downloads the OFAC SDN, OFAC alias, and UN consolidated lists, and runs fuzzy name matching to find candidate hits. If there are possible matches, sends the subject and candidates to an OpenAI agent that also checks prior decisions from the Data Table and optionally queries the GLEIF LEI register for entities to produce a structured assessment. Emails the case summary to a reviewer via Gmail and waits for a decision in an n8n form to clear as false positive, escalate, or ask up to two follow-up questions to the agent. If a clearance requires four-eyes approval, requests confirmation from a second approver via Gmail approval and escalates the case if the approval is rejected, times out, or violates the reviewer/approver separation. Writes the final decision to the Data Table, emails escalations to the compliance officer, and notifies the original requester of the screening outcome. Setup Run the one-time setup path to create (or reuse) the screening_cases n8n Data Table. Create and select a Header Auth credential for the webhook so your onboarding/source system can call the endpoint. Add OpenAI credentials (Chat Model) and Gmail credentials for sending reviewer, approver, requester, and escalation emails. Replace the placeholder email addresses in the settings (reviewer, second approver, compliance officer) and set the ops email used for workflow error alerts. Copy the production webhook URL into your onboarding tool so it POSTs name, type (person/entity), requested_by, and any optional fields like date_of_birth, country, and reference. Set this workflow as its own error workflow (or ensure the error trigger workflow is active) so failed runs alert compliance ops. An n8n automation workflow template by AI Flow Packs.
- 7 nodes
- Automation
- AI
By WeblineIndia
Quick Overview This workflow classifies procurement transactions stored in Google Sheets using Google Gemini with an approved spend taxonomy and prior human feedback, then either auto-updates the transactions and logs results or routes uncertain cases to a reviewer by Gmail and captures the final decision via an n8n form. How it works Runs daily on a schedule trigger and loads workflow settings such as confidence threshold, statuses, and the review recipient email. Reads pending transactions, active spend categories, and approved historical classification feedback from Google Sheets and builds a taxonomy plus a limited set of feedback examples. For each pending transaction, sends the transaction context, allowed taxonomy, and feedback examples to Google Gemini and parses a structured classification output. Validates that the predicted category code and name exist in the active taxonomy and that the confidence score and reasoning fields are present and well-formed. If the result is valid, meets the minimum confidence threshold, and has no stated ambiguity, it logs the decision to a Google Sheets audit log and updates the transaction row as Classified with AI details and final category. Otherwise, it marks the transaction as Review Required in Google Sheets, logs the event, and emails the reviewer via Gmail with the suggested category, confidence, and validation/ambiguity notes. When a reviewer submits the n8n form, the workflow looks up the transaction, validates the chosen category code against the active taxonomy, records the decision as feedback in Google Sheets, updates the transaction with the final category, and appends a human-review audit log entry. Setup Create and connect credentials for Google Sheets, Google Gemini (PaLM/AI Studio), and Gmail. Update the Google Sheets document and ensure it contains the required tabs and columns used by the workflow (Procurement Transactions, Spend Categories, Classification Feedback, and Classification Log). Set your confidence threshold, status values, max feedback examples, and the reviewer email address in the workflow settings fields. Configure the scheduled trigger time and confirm your n8n timezone matches your intended daily run. Enable the Human Spend Classification Review form and share its production form URL with reviewers so they can submit final category decisions. An n8n automation workflow template by WeblineIndia.
- 6 nodes
- Automation
- AI
By Kingsley Ken
Quick overview This workflow runs every Monday to audit published Shopify products, compare each live product page’s JSON-LD data with Shopify, log per-product scores to Google Sheets, post a summary to Slack, and use Anthropic Claude to propose description rewrites that only update Shopify after Slack approval. How it works Runs every Monday morning and validates the required configuration values (store URL, Google Sheet, and Slack channel). Fetches published products from Shopify (up to the configured limit) and checks core catalog data like description length, barcodes/GTINs, product type, image alt text, and title. Loads each public product page via HTTP, parses JSON-LD structured data, and flags issues like missing Product/Offer data or mismatched price and availability compared to Shopify. Calculates a score out of 100 per product, then appends a detailed row for each product to a Google Sheets tab. Builds and posts a Slack summary with the average score, most common problems, lowest-scoring products, and a link to the Google Sheet report. Selects a small set of products with short descriptions, asks Anthropic Claude to rewrite each description, and programmatically rejects rewrites that add unsupported numbers, facts, claims, or disallowed HTML. Sends passing rewrites to Slack with Approve/Decline buttons and updates the product description in Shopify only when someone approves within the configured wait period. Setup Create or connect Shopify OAuth2 credentials with read_products and write_products scopes, and select them for the Shopify nodes that read products and update descriptions. Add Google Sheets OAuth credentials, create a spreadsheet, and set its URL and the target tab name (for example, “AI readiness”) in the Config values. Add Slack OAuth credentials, invite the Slack app to your target channel, and set the channel ID in the Config values. Add Anthropic credentials (or n8n AI credits) and confirm the Claude model selection used for generating rewritten descriptions. Replace the placeholder values in the Config node (storeUrl, reportSheetUrl, slackChannelId, and any limits/thresholds) before enabling the schedule. Requirements A Shopify store with public product pages (live checks are skipped on password-protected stores) Google Sheets and Slack An Anthropic API key or n8n AI credits Customization In Config, change how many products are checked and rewritten, the minimum description length and the approval wait. Change the points per problem in Check Product Data and Compare Live Page With Shopify. Add words to the claims list in Check Rewrite Against Product. Additional info Who is it for: Shopify store owners and e-commerce agencies who want products described correctly when shoppers ask ChatGPT, Gemini or Google AI Mode what to buy. These assistants rely on product data and on the structured data in each product page. An n8n automation workflow template by Kingsley Ken.
- 8 nodes
- Automation
- AI
By Benjamin Mossier | Webbasesolution
Quick Overview This workflow watches for newly created timed events in Google Calendar, upserts the external guest as a contact in HubSpot, sends a confirmation email via Gmail, then waits until 24 hours before the meeting to re-check the event status in Google Calendar and send a reminder. How it works Triggers every minute when a new event is created in the selected Google Calendar. Extracts the external guest, meeting title, start time, and a join link (Google Meet, conferencing add-on, or URL in the location) and calculates the reminder send time. Creates or updates the guest as a contact in HubSpot using the attendee email, first name, and last name. Sends a confirmation email to the guest via Gmail with the meeting time and join link. If the reminder time is at least 30 minutes in the future, waits until the calculated reminder timestamp. Fetches the event from Google Calendar again and, if it is still confirmed, sends a reminder email via Gmail with the join link. Setup Add Google Calendar credentials and set the correct calendar ID in the trigger and the event lookup step (defaults to primary). Add a HubSpot private app token credential with contacts read/write permissions for the contact upsert step. Add a Gmail credential for both email steps and replace YOUR_COMPANY_NAME in the email bodies. Update the reminder timing and formatting values in the code step (for example REMINDER_HOURS_BEFORE, TIMEZONE, LOCALE, and an optional fallback meeting link). An n8n automation workflow template by Benjamin Mossier | Webbasesolution.
- 4 nodes
- Automation
By Clientify
Quick overview This workflow triggers on newly created Clientify contacts, uses OpenAI to draft a personalized welcome email and schedules a welcome meeting in Google Calendar, then sends the email via Gmail, assigns the contact owner in Clientify, and logs an onboarding note to prevent duplicates. How it works Triggers when a contact is saved in Clientify and continues only if the contact is newly created (within 60 seconds) and has a non-bounced email address. Loads company, sender, calendar, time zone, and meeting-length settings used across the onboarding steps. Checks the contact’s Clientify timeline for an existing “Welcome email sent” note and stops if the contact was already onboarded. Uses OpenAI with Google Calendar tools to look up the sender’s next 7 days of events, pick an available slot, create a calendar meeting with the contact as an attendee, and return an email subject/body plus meeting start and end times. Converts the AI-generated Markdown email body to HTML and sends the welcome email to the contact via Gmail. Looks up Clientify users, assigns the contact owner to the user whose email matches the configured sender email, and records an onboarding note in Clientify with the email subject and meeting details. Setup Install the community node n8n-nodes-clientify and add a Clientify API credential, then select it in the Clientify trigger and all Clientify API steps. Add credentials for OpenAI, Google Calendar, and Gmail. Update the “Company and sender settings” values (company name/activity, sender name/email, calendar ID, time zone, and meeting duration) and ensure the sender email matches an existing Clientify user if you want owner assignment. Ensure n8n can receive Clientify webhooks (public HTTPS URL) and then activate the workflow and test by creating a new Clientify contact with an email address. An n8n automation workflow template by Clientify.
- 4 nodes
- Automation
- AI
By Ad Astra Connect
Quick overview Record production workflow failures in a Data Table and group recurring errors into one HTML email digest. Mark only the delivered snapshot as sent, with optional webhook delivery. How it works Error Trigger receives failures from monitored production workflows. A Code node removes changing numeric values, UUIDs and common long ID forms from the fingerprint input. The core Crypto node hashes the input and the Data Table node inserts a pending event. An hourly scheduler or manual trigger reads pending events and sends one escaped HTML digest. An optional webhook receives the digest. Only row IDs from the delivered snapshot are marked sent. Setup Create the Data Table columns listed in SETUP.md, enter its ID and email settings in Config, and select SMTP credentials. Publish this workflow and select it as the error workflow in each monitored workflow's settings. Test with a production trigger; manual failures do not represent normal production error handling. Then activate the workflow. Requirements n8n 2.8.4 with Data Tables, SMTP and permissions to save operational failure information. No external database or community node is required. Keep digest sends sequential. Customization Set digestEveryHours to 1, 2, 3, 4, 6, 8, 12 or 24 in Config. Set the instance URL for execution links, recipients and optional webhook. Normalization groups errors that differ only in numbers or common IDs; adapt it if numeric codes distinguish incidents in your system. Additional info Who is this for: Owners of multiple workflows who want grouped notifications rather than one email per failure. What it does: Records workflow name, failing node, raw error, execution link and timestamp. Groups unsent events using a SHA256 hash of workflow ID, node and normalized error message. Each group includes a count and first and last seen times. Empty digests send nothing. Tested: n8n 2.8.4 with real production failures, Error Trigger, Data Table storage, Crypto, successful and rejected local SMTP delivery, optional local webhook, and an empty repeat digest. Production SMTP providers and wall-clock schedules were not tested. 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
By Socialrobot.io
Quick overview This workflow collects a dish photo via an n8n form, crops and hosts it on fal, optionally uses OpenAI to generate shot prompts and social captions, renders a short Kling 3.0 ASMR-style vertical video, then delivers it to your TikTok inbox as a draft via SocialRobot. How it works Receives a dish photo and menu facts (dish name, ingredients, price, availability, business name, and location/link) through an n8n form trigger. Validates that an image was submitted, then reads the file metadata and plans a centered 9:16 crop for vertical video output. Uploads the image to fal storage and uses fal’s crop-image utility to produce a cropped JPG for video generation. Optionally sends the cropped image and the submitted facts to OpenAI to generate 1–3 Kling shot prompts plus TikTok/Instagram/Facebook/Threads captions, otherwise falls back to built-in template prompts and captions. Submits an image-to-video job to Kling 3.0 on fal and polls the job status until it completes, fails, or times out. Downloads the finished video from fal, checks its file size and actual MP4 duration, and then uploads it to TikTok as an inbox draft using SocialRobot (with optional, disabled-by-default posting to Instagram Reels, Facebook Reels, and Threads). Setup Add a fal API key using an HTTP Header Auth credential (Authorization: Key YOUR_FAL_KEY) and select it in all fal HTTP Request steps. Install the community node @socialrobot-io/n8n-nodes-socialrobot, add your SocialRobot API key, connect your TikTok account in SocialRobot, and select the target TikTok account in the TikTok draft step. Add an OpenAI credential for the OpenAI chat model step (or set use_openai to false in the configuration step to run without OpenAI). Review and adjust the settings in the configuration step (video model, shot count, duration, audio, polling/timeout limits, captions, and the AI label line), and enable the optional Instagram/Facebook/Threads SocialRobot steps if you want them to publish. An n8n automation workflow template by Socialrobot.io.
- 5 nodes
- Automation
- AI
By pdfRest API Toolkit
Quick overview Prepare PDFs for RAG with a low-code workflow that extracts Markdown, applies OCR when needed, and creates page-referenced text chunks. Resume processing from checkpoints, review flagged pages, and download the results before indexing in your chosen system. How it works Receives a PDF (and optional prior checkpoint.json), OCR strategy, and optional page exclusions through an n8n form. Validates file size/type, exclusion input, and (if provided) verifies the checkpoint matches the same PDF and extraction settings. Uses pdfRest PDF Info to read the PDF page count and confirm the document is not password-protected. Selects up to a configured batch of unprocessed pages (reusing READY pages from the checkpoint and skipping excluded pages) and processes them one page at a time. Reads each page as Markdown and checks for sparse or damaged text. Auto mode applies OCR when needed; Force mode applies OCR to every selected page before extracting Markdown. Builds a review package with page-referenced source.md, chunks.json (only READY pages, chunked within each page), manifest.json, and an updated checkpoint.json, then compresses everything into a ZIP for download. Stops with an error after delivering the ZIP if any page failed processing, or returns a status like READY/NEEDS_REVIEW/PARTIAL to guide the next resume run. Setup Install the @pdfrest/n8n-nodes-pdfrest community node package, or update your existing installation to the latest available version. Create a pdfRest API credential using your pdfRest Pro API key, then select it on all five pdfRest nodes. Ensure the API base URL matches the environment associated with your key. Review and adjust the processing limits and chunk settings (pages per run, max PDF size/pages, OCR languages, chunk size/overlap) in the workflow’s settings code. Start by submitting a small test PDF via the form, then download and inspect the ZIP outputs (README.txt, source.md, chunks.json, manifest.json, checkpoint.json) before running on real documents. To continue processing a large PDF across multiple runs, resubmit the exact same PDF along with the previously generated checkpoint.json and keep the same OCR strategy and extraction settings. Requirements A pdfRest Pro account and API key with OCR and Markdown access and unredacted output. The @pdfrest/n8n-nodes-pdfrest community node package installed in n8n. PDF file and page limits are configurable in the Settings node. PDFs requiring an opening password must be unlocked before upload; this template does not include a decryption step. For self-hosted n8n, access to the built-in crypto module in Code nodes. Customization Adjust pages per batch, file-size limits, and text thresholds in the Settings node. Choose OCR languages and Auto or Force OCR. Adjust chunk size and overlap while retaining original page references. Connect reviewed READY output to your preferred indexing workflow. Configure a separate error workflow for production failure notifications. Additional info READY means automated text checks passed; it does not guarantee complete or accurate extraction. Review text before indexing. Blank or sparse pages remain flagged unless explicitly excluded with a reason. This template prepares downloadable files only; no vector database, embedding service, or indexing credentials are required. Checkpoints are saved in completed ZIP packages, not continuously during processing. An n8n automation workflow template by pdfRest API Toolkit.
- 2 nodes
- Automation
By Pratham Israni
Quick overview very morning, pull new jobs from 30,000+ company career sites, drop the ones you have already seen, score the rest against your profile with the AI model you choose (or by keywords, with no AI key), and get the best ones on Telegram, Gmail or Discord. How it works A daily schedule starts the run. The Apify Jobs API Actor returns jobs posted since yesterday: nearly 1 million live jobs from Greenhouse, Lever, Ashby, Workday, Keka and other career-site platforms. Every job links to the company's own apply page. Jobs already logged in your Google Sheet are dropped, so nothing is sent twice. Optional hard rules (mustHaveWords, excluded words, country, level, work mode) cut the list before any AI is used. One AI node scores the rest 0-10 against your profile and quotes the job words behind each score. It calls Claude directly, or any OpenAI-compatible API (OpenAI, Gemini, Groq, OpenRouter, Mistral, a local Ollama). No AI key? Set useAI to false and jobs are ranked by keyword matches instead. The top N go to Telegram, Gmail, Discord, or any mix. Every new job is logged to the sheet with a blank status column for you to track. Setup Apify token (Header Auth credential) Google Sheet with a tab Jobs and this header row: id, title, company, location, applyUrl, score, reason, sent, status, loggedAt Your AI key as a Header Auth credential (only if useAI is on) At least one channel: Telegram bot, Gmail OAuth, or a Discord webhook Fill in Search Settings (everything you change lives there), run once, then activate. An n8n automation workflow template by Pratham Israni.
- 6 nodes
- Automation
By Shyne Sheets
Quick Overview This workflow captures website enquiries via an n8n Form, logs each lead to Google Sheets, and sends a business-hours-aware auto-reply and owner alert through Gmail while flagging and logging spam without responding. How it works Receives a new lead submission from an n8n Form. Normalizes and validates the lead details, calculates priority from keywords, determines whether it is outside business hours, and flags likely spam. If the submission looks like spam, appends it to a Google Sheets “Leads” tab with a spam status and stops without sending any emails. If it is not spam, looks up prior rows in Google Sheets by email to identify returning contacts and count how many times they have reached out. Appends the lead to the Google Sheets “Leads” tab with an ID, timestamp, priority, after-hours flag, and contact count. Sends a tailored HTML auto-reply to the lead via Gmail based on business hours and returning-customer status. Sends an HTML alert email to the business owner via Gmail with the lead details and quick mailto/tel links. Setup Create a Google Sheet with a “Leads” tab and the required headers (Lead ID, Received At, Name, Email, Phone, Service, Message, Source, Priority, After Hours, Status, Times Contacted, Notes). Connect Google Sheets OAuth2 credentials and update the Config sheet URL to your spreadsheet. Connect Gmail OAuth2 credentials for sending emails and set the owner email, business name, timezone, business hours, and optional booking link/phone in the Config values. Publish the n8n Form and share its URL (or replace the form trigger with your existing website form/webhook and map the incoming fields accordingly). An n8n automation workflow template by Shyne Sheets.
- 3 nodes
- Automation
By Margaux Faurie
Quick overview This workflow runs hourly to find new open Salesforce opportunities, uses Claude (Anthropic) with Crossbeam MCP to recommend the best partner and draft an intro email, then posts the recommendation to Slack for approval before drafting/sending via Gmail and logging the outcome back to Salesforce and an n8n Data Table. How it works Runs every hour (or manually) and checks that required configuration values like the Slack channel ID and Salesforce base URL are set. Queries Salesforce for recently created, open opportunities and shapes the key opportunity, account, and owner fields needed for partner matching. Applies filters for stages, record types, excluded opportunity types, optional subsidiary-account skipping, dedupes against an n8n Data Table, and caps how many opportunities are processed per run. For each remaining opportunity, Claude calls Crossbeam MCP read-only tools to find overlapping partners and returns structured JSON with a single recommended partner, confidence, reasoning, and a draft intro email. Posts qualified recommendations to Slack (optionally mentioning the opportunity owner) and waits for an approval-form decision to draft an email, only log the recommendation, or skip. If not in dry-run mode, creates a Gmail draft or sends the email (depending on settings), logs a Salesforce Task on the opportunity, records the outcome in the n8n Data Table, and replies in the Slack thread with the result. Setup Add credentials for Salesforce OAuth2, Anthropic (Claude) API, Crossbeam MCP OAuth2, Slack OAuth2 (with Interactivity enabled and optionally users:read.email), and Gmail OAuth2. Create an n8n Data Table (for example “Opportunity partner recommendations”) with columns: opportunity_id, opportunity_name, account_name, partner_name, partner_owner_email, confidence, status, mode, decided_at, and select it in all three Data Table steps. In the configuration step, set slack_channel_id, salesforce_base_url, and your_company_name, then adjust lookback_hours, min_amount, stage/record type filters, partners_to_ignore, min_confidence, and approval_wait_hours as needed. Invite the Slack app to the target channel and use the manual test run with dry_run enabled to validate Slack interactivity and the approval form. Set dry_run to false before activating the workflow to allow writes to Gmail and Salesforce. An n8n automation workflow template by Margaux Faurie.
- 7 nodes
- Automation
- AI
By Fabrikit
Quick overview This workflow runs twice a day to fetch the latest App Store and Google Play reviews via Apify, classifies and drafts replies with OpenAI (or rule-based fallback), logs new reviews to Google Sheets, and routes low-star, unanswered reviews to the right Slack channels. How it works Runs every 12 hours on a schedule. Calls the Apify “App Reviews Unified” actor to fetch recent reviews for the configured iOS and Android app IDs and alerts Slack if the request fails or returns no reviews. Reads the existing review log from Google Sheets and filters the Apify results to keep only reviews that have not been logged yet. Optionally sends each new review to OpenAI to assign a topic and sentiment, generate a short summary, and draft a public reply, falling back to keyword rules if AI is disabled or returns invalid JSON. Appends all newly found reviews (with classification fields) to Google Sheets. Filters to low-star, unanswered reviews and routes them to different Slack channels based on topic (bugs/login/performance to engineering, billing to billing, everything else to support). Setup Add an Apify API token using HTTP Header Auth with header name Authorization and value Bearer . Connect your Google Sheets OAuth account and select the target spreadsheet and sheet tab for both the read and append steps (ensure it contains a “Review ID” column for deduplication). Connect your Slack account and set the target channels (for example #app-bugs, #billing, and #app-reviews). (Optional) Add an OpenAI API credential and confirm the model selection, or set useAI to false to use the built-in keyword rules only. Update the Config values for apps, country, language, maxReviewsPerApp, maxStars, and maxCostUsd to match your apps and alerting preferences. Requirements An Apify account and API token (the free plan's monthly credit covers the default schedule) Google Sheets connected in n8n (the review log) Slack connected in n8n with three channels: engineering, billing and support Optional: an OpenAI API key for topics and reply drafts (keyword rules are used without it) n8n cloud or self-hosted; only built-in nodes, no community nodes Customization List several apps in Config as ios: or android:, comma-separated Raise maxStars to 3 to also route neutral reviews, or set it to 1 for only the angriest ones Add rules to "Route by topic", for example Ads or Feature request to a product channel Describe your app and support link in aboutApp so the reply drafts point users to the right place Replace a Slack node with Jira, Linear or Zendesk to open tickets instead Additional info Cost: US$0.50 per 1,000 reviews fetched on Apify (same price on all plans); the defaults (50 reviews x 2 apps, twice a day) cost about US$0.10 per day, and maxCostUsd caps each run. AI costs well under US$0.001 per review. Every new review is logged in Google Sheets with topic, sentiment, summary and a reply draft; only new, unanswered reviews at or below maxStars alert, and the first run only alerts on the last 3 days. Actor: https://apify.com/fabrikit/app-reviews-unified. An n8n automation workflow template by Fabrikit.
- 6 nodes
- Automation
- AI
By Gabe
Quick overview This workflow runs every weekday morning to check new HubSpot contacts with Precleared for GDPR/PECR-style cold email compliance, then writes the verdict, rule/source, next steps, footer requirements, and receipt back to HubSpot, optionally setting a legal basis, adding allowed contacts to a list, and creating follow-up tasks. How it works Runs every weekday at 8am on a schedule trigger. Searches HubSpot for the newest contacts that have an email address and do not yet have a “Precleared checked at” value, up to the configured per-run limit. Builds a Precleared check request for each contact using sender country, recipient country (or fallback), lifecycle stage, unsubscribe status, and address source (including HubSpot form submissions). Sends each contact to the Precleared API (one request per second) and interprets the response as a compliance verdict with supporting rule/source text, next-step guidance, footer text, and a signed receipt link. Updates the HubSpot contact with the Precleared fields and routes outcomes so out-of-quota or failed checks are left unchanged for the next run. For contacts marked “ok_to_email”, optionally sets the HubSpot legal basis and adds the contact to a specified HubSpot list, and for non-allowed verdicts optionally creates a HubSpot task for the contact owner. Generates a run summary and can optionally post it to a Slack channel. Setup Create a HubSpot private app (or token) with permissions to read and write contacts (and list access if you use the list step) and add it in n8n as a HubSpot App Token credential. Run the manual “Run once to set up HubSpot” path to create the Precleared property group and contact properties in HubSpot. Get a Precleared API key and configure the HTTP Header Auth on the Precleared request with Authorization: Bearer . Update the “Your settings” values (sender country, default/fallback country, max checks per run, optional legal_basis, optional list_id, and task settings) before activating. (Optional) Enable the Slack node and connect Slack credentials, then set the target channel for posting the daily summary. An n8n automation workflow template by Gabe.
- 4 nodes
- Automation
By Workflow Deli
Quick overview This workflow captures real estate seller leads via an n8n form or webhook, validates and deduplicates them against Google Sheets, generates a structured pre-call brief with OpenAI, and routes alerts and lists via Gmail (and optional Slack) for follow-up. How it works Receives a seller lead from the n8n form or a POST webhook request. Normalizes the fields, validates required contact and value data, and emails you a rejection notice (and returns HTTP 422 for webhook callers) when the lead is invalid. Reads the existing Leads tab in Google Sheets to detect repeat leads by phone/email and calculates rule-based underwriting “stoplights” (cash, subject-to, seller finance) plus a max cash offer estimate. Uses an OpenAI chat model to produce a structured pre-call brief (summary, motivation score, questions, risks, next step), falling back to a rules-only brief if the AI step fails. Writes the result to Google Sheets by updating the existing lead row or appending a new one. Routes the lead by priority: sends a hot-lead alert via Gmail (optional Slack), adds warm leads to a Daily Call List sheet, adds cold leads to a Nurture sheet, and returns a JSON triage response to webhook callers. Runs every morning at 8am to email a Gmail digest of warm leads added to the Daily Call List in the last 24 hours. Setup Create a Google Sheet with Leads, Daily Call List, and Nurture tabs and add the column headers the workflow expects, then paste the spreadsheet URL into each Google Sheets node. Add Google Sheets OAuth2 credentials for all Google Sheets steps. Add Gmail OAuth2 credentials and replace YOUR_EMAIL@example.com in the Gmail nodes (hot lead alert, rejected lead notice, and daily digest). Add an OpenAI API credential for the OpenAI chat model used by the AI agent. If using the webhook intake, copy the production webhook URL and configure your CRM/website to POST the expected lead fields to it. (Optional) Enable the Slack node, connect Slack credentials, and set the target channel for hot-lead alerts. An n8n automation workflow template by Workflow Deli.
- 7 nodes
- Automation
- AI
By Chris Grant
Quick overview This workflow runs every weekday morning to monitor new Federal Register FAR/DFARS and SBA-related documents via an Apify Actor, dedupes and prioritizes them by urgency, then sends deadline alerts and a daily digest to Slack or Gmail. How it works Runs on a weekday schedule at 07:00. Validates the watch configuration (watch packs/filters, limits, regex patterns, and Slack/email routing) and stops with an error before any Apify charge if settings are invalid. Starts the Apify Actor cce_partners/federal-register-govcon-watch, polls until it finishes (or polling limit is reached), and fetches the run dataset of new documents. Dedupes documents by document number, persists “seen” state and open comment deadlines in workflow static data, and creates reminders when previously seen items enter the urgent window. Classifies each document (final rule, proposed rule, RFI-like notice, or other) and assigns priority based on comment deadlines, effective dates, contract clause parts, and priority agencies. Sends an urgent alert for items with comment deadlines within the configured urgent window, and compiles the remaining items into a single run digest with categorized sections and run/cost stats. Delivers alerts/digests to Slack or Gmail based on the configured channels, and sends failure/crash notifications to the configured alert destination if Apify calls or the workflow execution fails. Setup Add an Apify API token as an HTTP Header Auth credential (header Authorization: Bearer ) and select it in the Apify HTTP request steps. Connect Slack credentials (for Slack delivery) and/or Gmail credentials (for email delivery) depending on which channels you choose. Update the Config values for what to monitor (watch packs, agencies/CFR/keywords, lookback and item limits) and set alertChannel/alertTo and digestChannel/digestTo to your real Slack channel names or email addresses. Activate the workflow to persist dedupe and deadline-tracking state across scheduled runs (manual test runs do not persist static data). Requirements Your own Apify account and API token. The Actor cce_partners/federal-register-govcon-watch is paid per result row: $0.01 per run start + $0.002 per document (pricing: https://apify.com/cce_partners/federal-register-govcon-watch/pricing) Your own Slack and/or Gmail credentials n8n with the core nodes only (no community nodes) No Federal Register API key needed Customization Custom watch: set watchPack to [] and use agencies (slug or full name), cfrTitle + cfrParts and keywords. Keywords don't narrow a pack. rfiPattern and lowPriorityPattern are regular expressions that control the RFI branch and which notices count as routine. Edit the four branch Set nodes to change each digest section's action line, or attach a Sheets/Notion/Jira node to any branch. Additional info Tested on n8n 2.44.5: live Actor runs (new documents, an empty run, a failed run caused by an unknown agency), the polling loop including the give-up path, the HTTP error output after retries, Config fail-fast, and the Error Trigger firing for an active workflow. No credentials are embedded. The only external ID is the public Apify Actor ID. An n8n automation workflow template by Chris Grant.
- 4 nodes
- Automation
By Milos Mrsovic
Quick overview This workflow listens for failed Stripe invoice payments, classifies the decline reason, and then either emails the customer via Gmail, alerts your billing team, and/or updates your CRM through an inbound webhook, including follow-up retries and status rechecks. How it works Triggers when Stripe sends an invoice.payment_failed event and only continues on the first failure attempt to avoid duplicate outreach. Fetches the latest Stripe charge for the customer and classifies the decline into retryable, needs card update, needs manual review, or unknown based on the charge outcome/failure code. Sets a recovery schedule (max attempts and recheck delays) and routes the case based on the decline category. For retryable declines, emails the customer via Gmail that Stripe will retry and then waits and rechecks the Stripe invoice status on day 1, 3, and 7. If the invoice becomes paid, posts a “recovered” status to your CRM webhook; otherwise, after the final attempt it alerts your team via Gmail and posts an “at risk” status to the CRM. For needs-update declines, emails the customer a hosted Stripe invoice link to pay with a new card and posts a “needs payment update” status to your CRM webhook. For risky or unclassified declines, emails your team for manual follow-up and posts a “needs manual review” or “unclassified” status to your CRM webhook. Setup Add Stripe API credentials for the Stripe trigger and the Stripe API requests that fetch the latest charge and recheck the invoice. Add a Gmail credential for the customer and team notification emails. Update the Config values (team email, company name, CRM inbound webhook URL, and maximum payment attempts). Ensure your CRM can receive the posted JSON payload via an inbound webhook endpoint and map fields like customer, invoice, failure code, and status to your records. Requirements • Stripe account (test mode works for setup) • Gmail account for customer and team emails • Optional: any CRM with an inbound webhook, such as GoHighLevel or HubSpot Customization • Move decline codes between the soft, hard and risky lists in Classify Decline Reason • Change the recheck days (1, 3 and 7 by default) in Set Recovery Schedule • Swap Gmail for Slack, Outlook or SMS for team alerts Additional info Full write-up with the decline code table: https://heaqdigital.com/failed-payment-recovery-automation. An n8n automation workflow template by Milos Mrsovic.
- 3 nodes
- Automation
By Felix
Quick overview This workflow polls Gmail for unread emails with attachments, extracts invoice fields using easybits Extractor, deduplicates by invoice number, logs new invoices to Google Sheets, and sends a Telegram alert with key totals. How it works Triggers every minute by polling Gmail for unread emails and downloading their attachments. Filters out small inline/junk files (under 10 KB) and splits each remaining attachment into its own item for processing. Iterates through attachments, marks the source email as read in Gmail, and keeps only supported file types (PDF, JPEG, PNG, WebP). Sends each supported attachment to easybits Extractor to classify the document and extract invoice fields like vendor, invoice number, and totals. Continues only when the extracted document is classified as an invoice and looks up the invoice number in Google Sheets. Appends a new row to Google Sheets for invoices not already present and sends a formatted Telegram message with the vendor and amounts. Setup Connect a Gmail OAuth2 credential and ensure the workflow has access to the mailbox you want to monitor. Add an easybits Extractor credential and configure your extractor pipeline to return document_class, invoice_number, vendor_name, service_name, service_period, total_net, vat_amount, and total_gross. Connect a Google Sheets credential, replace YOUR_GOOGLE_SHEET_ID, and ensure the target sheet tab contains matching column headers (for example, invoice_number, vendor_name, total_gross). Connect a Telegram bot credential and replace YOUR_TELEGRAM_CHAT_ID with your chat or channel ID. An n8n automation workflow template by Felix.
- 4 nodes
- Automation
By Searcherries
Quick overview For marketing teams and SEO specialists who track their brand with Searcherries. Every Monday the workflow compares your AI visibility in ChatGPT, Perplexity, Google AI Overviews, Gemini, Claude and Grok with last week, alerts Slack when you lose ground and emails an OpenAI-written report. How it works Runs every Monday at 8:00 on a scheduled trigger. Creates (or reuses) an n8n Data Table to store weekly Searcherries snapshots and then fetches your Searcherries project list via the Searcherries REST API. Matches the configured brand name or project ID to a single Searcherries project and stops with an error if no match is found. Retrieves the visibility summary, competitor ranking, answers where AI platforms leave the brand out or mention it only in passing, and the most cited domains from the Searcherries REST API. Compares this week's metrics with the last saved snapshot and builds an alert when named share drops, a competitor gains or appears, or a new question leaves the brand out. Sends a Slack message to the configured channel when an alert is triggered. Uses OpenAI to write a Markdown weekly report from the comparison data, converts it to HTML and emails it. This week's snapshot is saved to the Data Table for the next comparison. Setup In Searcherries, open MCP → Other clients → Access tokens and create a token. In n8n, add it as a Bearer Auth credential and select it in the five Searcherries HTTP Request nodes. Add an OpenAI API credential for the chat model, a Slack API credential (a bot token with the chat:write scope, with the bot invited to the channel) and an SMTP credential for the email. In Configure Report Settings, set the project (brand name or project ID), the report and sender emails, the Slack channel and the alert thresholds. Run the workflow once. The first run creates the history table and saves the baseline, so alerts start from the second week. Requirements A Searcherries Starter or Pro plan (AI visibility tracking) An OpenAI API key, or another chat model A Slack workspace with a bot token that has chat:write An SMTP account for the email report n8n Cloud or a recent self-hosted n8n with Data tables Customization Change alert_drop_points and competitor_gain_points to make alerts more or less sensitive Change the day and time in the Every Monday at 8AM trigger Replace the OpenAI Chat Model with another chat model, or Email Weekly Report with Gmail or Outlook Edit the prompt in Write Weekly Report to change the report sections or language Delete the Slack branch if the weekly email is enough Additional info The Searcherries REST API is read-only, so the workflow never changes your project. Numbers come from Searcherries' stored checks: the main tracked question is checked daily, the others weekly. API docs: https://searcherries.com/docs/api/overview. An n8n automation workflow template by Searcherries.
- 6 nodes
- Automation
- AI
By Vivere
Quick Overview This workflow runs every morning to read multiple RSS feeds, summarise the last 24 hours of headlines with Google Gemini, email you an HTML digest, and report success or failure (including empty results) to a Vivere heartbeat monitor. How it works Runs every day at 07:00 and sends a start ping to a Vivere heartbeat monitor. Splits your configured RSS feed list into individual URLs and fetches each feed while continuing even if some feeds error or return no items. Filters feed items to the last configured time window, deduplicates and caps the list of headlines, then routes the run based on whether there are headlines, no new headlines, or all feeds failed. If headlines exist, calls the Google Gemini (Generative Language API) to generate an HTML briefing based only on the provided headlines. Builds the email content and calculates estimated token usage and cost from Gemini’s usage metadata and your configured pricing. Sends the digest via SMTP email and posts a success ping to Vivere with item count, model, token counts, cost, and a run log line. If there are no headlines or any step errors (feed failures, Gemini errors, or email failures), sends a failure ping to Vivere with the reason and marks the execution as failed. Setup Create a Vivere Heartbeat monitor and paste its ping URL into the workflow configuration (the pingUrl value). Add Google Gemini(PaLM) API credentials (Google AI Studio key) for the Gemini HTTP request and set the desired model name in the workflow configuration. Add an SMTP credential for sending email and set the recipient and sender addresses in the workflow configuration (emailTo and emailFrom). Replace the RSS feed URLs, topic, time window (hoursBack), and headline cap (maxHeadlines) in the workflow configuration to match your needs. (Optional) Align the Vivere monitor period/grace and any cost threshold with the workflow schedule and configured token pricing values. An n8n automation workflow template by Vivere.
- 3 nodes
- Automation
By Dele Tosh @ Protomated
Quick Overview This workflow runs daily to read an immigration case tracker in Google Sheets, poll USCIS case-status pages for active receipt numbers, email clients when statuses change (after a compliance sub-workflow check), alert staff about approaching RFE deadlines, and write the latest results back to the sheet. How it works Runs every morning at 6am on a schedule. Reads all case rows from a Google Sheets “Case Tracker” sheet and branches into status polling and RFE-deadline monitoring. Filters to active (not closed) cases, posts each receipt number to the USCIS case status endpoint, and parses the returned HTML to extract the current status text. Compares the newly polled status to the last saved status, detects RFE issuance/resolution, and calculates RFE deadline dates and last-checked timestamps. When a status change is detected, prepares a client email, runs it through an Execute Workflow compliance/opt-out guardrail, and sends the email via SMTP only if approved. Identifies any unresolved RFEs with deadlines within the configured lead time and emails an internal alert to the firm attorney address via SMTP. Appends or updates the matching Google Sheets row (by receipt number) with the latest status, RFE fields, and check timestamps regardless of whether an email was sent. Setup Add Google Sheets credentials and set the IMMIGRATION_CASE_TRACKER_SHEET_ID variable to the spreadsheet that contains a “Case Tracker” sheet. Configure an SMTP email credential and set FIRM_FROM_EMAIL and FIRM_ATTORNEY_EMAIL variables for client updates and internal RFE alerts. Provide a compliance/guardrail workflow and set GUARDRAIL_WORKFLOW_ID so status-update emails can be approved or blocked (for opt-outs). Set USCIS_CASE_STATUS_ENDPOINT (optional) and USCIS_STATUS_REGEX (optional) to match the live USCIS HTML response format. Review and set RFE_RESPONSE_WINDOW_DAYS and RFE_ALERT_LEAD_DAYS variables to match how you want RFE deadlines calculated and when alerts should trigger. An n8n automation workflow template by Dele Tosh @ Protomated.
- 4 nodes
- Automation
By Vladimir
Quick Overview This workflow pulls recent Zoom cloud recordings on a schedule, saves video/audio/transcripts to Google Drive, logs links in Google Sheets, and posts updates to Telegram. It also embeds transcript chunks with OpenAI into a Supabase vector store and runs a Telegram Q&A assistant with Postgres chat memory. How it works Runs on a schedule (hourly between 11:00–23:00) or manually to fetch the last day of Zoom cloud recordings via the Zoom API. Groups Zoom recording files by meeting/session, computes a unique recording key, and skips any recordings already tracked in an n8n Data Table. For each new recording, creates a Google Drive folder and uploads the MP4 video, M4A audio, and a cleaned transcript text file. Writes or updates a row in Google Sheets with the meeting name, date, and Google Drive links, then marks the recording as done in the Data Table. Posts the meeting and recording links to a Telegram chat. Reads newly added sheet rows, downloads each transcript from Google Drive, generates a call_id, splits the text into chunks, creates OpenAI embeddings, and inserts the chunks with metadata into a Supabase vector store. When a Telegram message arrives, an OpenAI-powered agent uses Postgres chat memory plus tools that query Supabase to list meetings and retrieve relevant transcript chunks, then replies in Telegram with cited meeting/date context. Setup Create credentials for Zoom OAuth2, Google Drive OAuth2, Google Sheets OAuth2, OpenAI, Supabase, Postgres (Supabase session pooler connection), and a Telegram bot token from @BotFather. In Supabase, enable pgvector and create the documents table and match_documents function (use vector(1536) or match your chosen OpenAI embedding model dimensions). Run the workflow once to create the n8n Data Table, then select the zoom_recordings_processed table in the “not yet processed”, “processing”, and “done” steps. Choose the target Google Drive parent folder and set the Google Sheets document/sheet, ensuring it has Meeting, Date, Video, Transcript, and Audio columns. Set your Telegram chat ID for the notification message and activate the Telegram Trigger by starting a conversation with your bot. Review the schedule window/time zone and select your preferred OpenAI chat model before activating the workflow. An n8n automation workflow template by Vladimir.
- 13 nodes
- Automation
- AI
By Leonid
Quick overview This workflow uses n8n Data Tables and Google Gemini embeddings to map product listings to the best matching marketplace category, automatically applying high-confidence matches and routing uncertain results to a human review queue. How it works Manually runs a one-time setup that creates two n8n Data Tables and inserts demo categories and products. Manually runs an indexing step that reads all category paths, generates Google Gemini embeddings, and stores them in an in-memory vector store. Manually starts the mapping step that loads pending products from the products Data Table and processes them one at a time. For each product, generates a Google Gemini embedding and retrieves a shortlist of the most similar categories from the in-memory vector store. Uses the Google Gemini chat model to pick a single category_id (or NONE) from the shortlist and returns a structured reason. Validates the pick against the shortlist and a similarity threshold, then updates the product row as either mapped (with category details) or needs_review (with candidates and review reason). Setup Create a Google Gemini (PaLM) API credential and select it for both Gemini embedding nodes and the Gemini chat model node. Run “Run once: create tables and demo data”, then replace the demo rows by importing your own category tree and products into the marketplace_categories and products_to_map Data Tables. Run “Step 1: index the category tree” after any n8n restart or category-tree change, since the in-memory vector store is cleared on restart. Review and adjust the shortlist size and minimum similarity threshold (shortlist_size and min_top_score) to control auto-mapping versus the needs_review queue. Requirements n8n with Data Tables (tested on n8n 2.44.5) and a Google Gemini API key; the free tier is enough to try it. Customization min_top_score (0.62) is only a starting point: run 20-30 products, compare top_score of right and wrong picks and set the threshold between them. The in-memory store is cleared on restart, so re-run Step 1 or swap it for Qdrant, Supabase or PGVector. Additional info Tested end to end on the demo data with a real Gemini key: the cordless drill and the cast iron skillet were mapped to the right leaf categories, and the karaoke microphone (no fitting category in the demo tree) went to needs_review instead of getting a wrong category. The model never decides alone: a Code node checks that the picked id is in the shortlist and that the best similarity clears the threshold. An n8n automation workflow template by Leonid.
- 7 nodes
- Automation
- AI
By Siim
Quick overview This workflow runs daily to fetch Google Maps reviews for a list of places via Scrapewise, appends each review to Google Sheets, and posts a Slack alert for any review at or below a configured star-rating threshold. How it works Runs every day at 09:00 on a schedule. Sends the configured Google Maps place URLs to Scrapewise to start a fresh “mapsreviews” scrape for the specified group. Waits two minutes to allow Scrapewise to collect the reviews. Pulls the collected review rows back from Scrapewise for the configured group. Normalizes the response into one item per review, extracts fields like stars, author, text, and review ID, and flags reviews at or below the star threshold. Appends all reviews to a Google Sheets worksheet. Sends a Slack message to the selected channel for each review flagged as needing attention. Setup Create a Scrapewise API key and add it to both Scrapewise MCP steps using an n8n HTTP Bearer Auth credential. Create a dedicated Scrapewise group, then set its group ID, list name, place URLs (with a Google Maps data_id), and star threshold in the “Places to watch” configuration. Connect your Google Sheets OAuth credentials and set the target spreadsheet ID and worksheet name (for example, a sheet named “Reviews”). Connect your Slack OAuth credentials and set the channel where alerts should be posted (for example, #reviews). An n8n automation workflow template by Siim.
- 4 nodes
- Automation
- AI
By Jesus Rojas
Quick overview Paste a story in, get a 60-second vertical Short out: a post-style title card, six AI pictures that follow the story, a narrator, big word-by-word captions and music. Made for story channels on TikTok, Reels and YouTube Shorts. Self-hosted n8n only. How it works Downloads Shotstack's guide for AI agents once, then makes one video for each story in Your stories. Claude Opus 5.5 trims the story to a minute and writes the whole Shotstack edit: the title card, 6 Nano Banana 2 pictures in story order, an ElevenLabs narration, word-by-word captions and a track from Shotstack's music library. A Code step checks the edit before anything costs money. It fixes small things itself and sends anything else back to Claude. One Shotstack render generates the pictures and the narration and renders the Short, saved to the stories folder. If Shotstack turns the edit down or the render fails, Claude fixes it, up to twice. Setup Install the Shotstack community node from the nodes panel or Settings → Community nodes, then import this workflow. Add your Anthropic API key to Claude and Claude (fixes), and your Shotstack API key to Make the video and Check the render. Free trial: https://shotstack.io/?utm_source=n8n&utm_medium=template&utm_campaign=story-shorts&utm_content=description Paste your stories in Your stories: the title on the first line, then the story, with a line of --- between stories. Use stories you wrote or have permission to use. Make an empty stories folder in n8n's files folder (/home/node/.n8n-files in Docker). Click Execute workflow. Each Short takes 5 to 10 minutes. Requirements Self-hosted n8n, version 2 or later, because the workflow saves files on disk The Shotstack community node, any version An Anthropic API key. Claude Opus 5.5 works best A Shotstack API key with credits for AI generation. The free trial's 10 credits cover two Shorts Customization Read stories from Google Sheets, Notion or a form instead of pasting them Change the length, the picture style or the captions in the brief in Claude makes the video Upload the Shorts to YouTube or TikTok instead of saving them on disk Additional info Each Short costs about 4 Shotstack credits: 3 for the 6 pictures and under 1 for the narration and the render, plus your Claude usage. An n8n automation workflow template by Jesus Rojas.
- 4 nodes
- Automation
- AI
By Jesus Rojas
Quick overview One theme in, a 30-second vertical "Would you rather" Short out: four questions, AI pictures for both options in a split screen, a timer, voice that reads each question and a "Comment A or B" prompt. Made for faceless TikTok, Reels and YouTube Shorts channels. Self-hosted n8n only How it works Downloads Shotstack's guide for AI agents once, then makes one video for each theme in Your channel. Claude Opus 5.5 writes the four questions and the whole Shotstack edit: 8 Nano Banana 2 images, the split-screen layout, the timer, the voices and a track from Shotstack's music library. A Code step checks the edit before anything costs money. It fixes small things itself and sends anything else back to Claude. One Shotstack render generates the images and voices and renders the Short, saved to the would-you-rather folder. If Shotstack turns the edit down or the render fails, Claude fixes it, up to twice. Setup Install the Shotstack community node from the nodes panel or Settings → Community nodes, then import this workflow. Add your Anthropic API key to Claude and Claude (fixes), and your Shotstack API key to Make the video and Check the render. Free trial: https://shotstack.io/?utm_source=n8n&utm_medium=template&utm_campaign=would-you-rather&utm_content=description In Your channel, put your channel name and one theme per line. Each line makes one Short. Make an empty would-you-rather folder in n8n's files folder (/home/node/.n8n-files in Docker). Click Execute workflow. Each Short takes 5 to 10 minutes. Requirements Self-hosted n8n, version 2 or later, because the workflow saves files on disk The Shotstack community node, any version An Anthropic API key. Claude Opus 5.5 works best A Shotstack API key with credits for AI generation. The free trial's 10 credits cover two Shorts Customization Swap the manual trigger for a Schedule trigger to make a Short every day Change the number of questions, the colours or the picture style in the brief in Claude makes the video Upload the Shorts to YouTube or TikTok instead of saving them on disk Additional info Each Short costs about 5 Shotstack credits: 4 for the 8 images and under 1 for the voices and the render, plus your Claude usage. Claude never invents poll results. An n8n automation workflow template by Jesus Rojas.
- 4 nodes
- Automation
- AI
By Jesus Rojas
Quick overview Send every customer their own year in review this December. One CSV row per customer in, a 20-second vertical recap out: their name, their numbers, bold slides in your brand colours, music and a voiceover timed to every slide. About 1 Shotstack credit per video. Self-hosted n8n only. How it works Downloads Shotstack's guide for AI agents once, then reads recaps.csv, one customer at a time. Claude Opus 5.5 writes the whole Shotstack edit from the customer's facts and a plain-English brief: 5 or 6 slides with big numbers, motion graphics, a track from Shotstack's music library and a voiceover with one sentence per slide. Shotstack makes the voiceover with ElevenLabs and transcribes it, and a Code step moves each slide to the moment its sentence is spoken, so the words on screen always match the voice. A Code step checks the edit before anything costs money. It fixes small things itself and sends anything else back to Claude. Shotstack renders the recap and saves it to the recaps folder. If Shotstack turns the edit down or the render fails, Claude fixes it, up to twice. Setup Install the Shotstack community node from the nodes panel or Settings → Community nodes, then import this workflow. Add your Anthropic API key to Claude and Claude (fixes), and your Shotstack API key to Make the voice, Transcribe the voice, Check the transcript, Make the video and Check the render. Free trial: https://shotstack.io/?utm_source=n8n&utm_medium=template&utm_campaign=customer-recaps&utm_content=description Fill in Your business: the name, the year and your brand colours. Save recaps.csv in n8n's files folder (/home/node/.n8n-files in Docker) with two columns, Name and Their year, the facts separated by semicolons. Make an empty recaps folder next to it. Click Execute workflow. Each recap takes 2 to 5 minutes. Requirements Self-hosted n8n, version 2 or later, because the workflow saves files on disk The Shotstack community node, any version An Anthropic API key. Claude Opus 5.5 works best A Shotstack API key. The free trial's 10 credits cover about ten recaps Customization Change the length, the slides or the style in the brief in Claude makes the video Read customers from Google Sheets, your CRM or Stripe instead of a CSV Email each recap with the Gmail or SendGrid node instead of saving it on disk Additional info Each recap costs about 1 Shotstack credit (the voiceover, its transcript and the render; the music comes from Shotstack's free library), plus your Claude usage. Claude only states the facts in your CSV. An n8n automation workflow template by Jesus Rojas.
- 4 nodes
- Automation
- AI
By Batuhan ERKAN
Quick overview This workflow lets users submit flights to FlightByte for monitoring and then delivers verified flight change events to Slack, with optional SendGrid email and Twilio SMS alerts, while storing passenger contact details in an n8n Data Table. How it works Receives flight details via an n8n Form trigger and creates (or reuses) the flightbyte_passengers n8n Data Table. Sends the flight details and the workflow’s webhook URL to the FlightByte API to create a subscription, then stores the returned subscription ID with the passenger’s contact info. Receives FlightByte change events on a webhook, validates the HMAC signature and timestamp, and immediately responds with HTTP 204 to stop retries. Deduplicates events already handled in previous executions and routes the payload by event type (flight update, test, suspended, or completed). For flight update events, looks up the passenger contact row, formats a Slack message, and posts it to Slack. For flight update events, sends an email via SendGrid for selected change types (such as gate, time, delay, cancellation, and diversion) and sends an SMS via Twilio for cancellations/diversions or arrival delays of 60 minutes or more. For completed subscriptions, deletes the passenger row from the n8n Data Table, and for test/suspended events, posts a notification to Slack. Setup Create a FlightByte API key and add an HTTP Custom Auth credential for the FlightByte request, including an x-api-key header and a shared webhook signing secret in the request body. Add a Crypto credential with the same HMAC secret so the workflow can verify FlightByte webhook signatures. Add Slack credentials and select the target channel in each Slack message step. Add SendGrid credentials and set the “from” email/name used to send passenger alerts. Add Twilio credentials and set the Twilio “from” phone number used to send SMS alerts. Requirements n8n 2.x reachable over public HTTPS. n8n Cloud works as is; a self-hosted n8n needs WEBHOOK_URL set to its public address. A FlightByte API key. The Free plan covers three watched flights a month. Slack, SendGrid and Twilio credentials. Delete the channels you don’t use. Customization Edit EMAIL_CHANGES and SMS_DELAY_MINUTES at the top of Write the messages to change who hears about what. Swap the form for Google Sheets, Airtable or your booking system, and map its columns in Build the request. Replace Slack with Microsoft Teams, Discord or Telegram, and SendGrid with Gmail or SMTP. Add an events filter in Watch the flight so FlightByte only sends the change types you need. Additional info Built only from n8n's built-in nodes and tested on n8n 2.44, including a live delivery from FlightByte. Passenger contact details stay in an n8n data table and are deleted when the flight completes; FlightByte only receives the flight and the booking reference. Step-by-step guide: https://flightbyte.dev/guides/flight-change-alerts-n8n?utm_source=n8n&utm_medium=listing&utm_campaign=flight-change-alerts. An n8n automation workflow template by Batuhan ERKAN.
- 6 nodes
- Automation
By SyncMate by Assistro
Quick overview This workflow watches a Google Sheets client list, waits a configurable delay, then sends a WhatsApp review request via SyncMate and logs the status back to the sheet, optionally sending a single reminder after a few days if the client has not marked as reviewed. How it works Triggers when a new row is added to a Google Sheets worksheet. Loads configurable values like the review link, business name, delays, and default country code and combines them with the new row data. Cleans and validates the Phone field into an international digits-only number and updates Google Sheets with an “Invalid phone” status and notes if it cannot be normalized. Waits for the configured number of hours and sends a personalized WhatsApp review request using WhatsApp Notifications by SyncMate, then updates Google Sheets as “Requested” with a timestamp or “Failed” with the error message. Waits for the configured number of days, fetches the latest version of the same row from Google Sheets, and checks whether the Reviewed column equals “Yes”. If the client is not marked as reviewed, sends one WhatsApp reminder via SyncMate and updates Google Sheets with “Reminder sent” or “Reminder failed”. Setup Connect Google Sheets credentials and select the correct spreadsheet and sheet in the Google Sheets trigger and all Google Sheets read/update steps. Install the community node “WhatsApp Notifications by SyncMate” and add your SyncMate (Assistro) API token credentials. Ensure your sheet has the columns Name, Phone, Review Status, Review Requested At, Reviewed, and Notes, and that Phone values are unique enough to be used for matching. Update the Config values for your review link, business name, firstDelayHours, reminderDelayDays, and defaultCountryCode. After a client leaves a review, set Reviewed to “Yes” in Google Sheets to prevent the reminder from being sent. An n8n automation workflow template by SyncMate by Assistro.
- 2 nodes
- Automation
By Olly McBride
Quick Overview This workflow runs twice a day to fetch new remote job listings from Remotive, Remote OK, and We Work Remotely, filters them by your keywords, scores each job against your CV using Google Gemini, and sends high-scoring matches to a Telegram chat. How it works Runs on a schedule at 9am and 5pm. Fetches job listings in parallel from the Remotive API, the Remote OK API, and the We Work Remotely RSS feed, continuing even if one source fails. Normalizes the different job formats, filters to recent listings that match your keywords, sorts newest first, and limits how many jobs get scored per run. Skips jobs that have already been processed in previous executions using the job URL as the unique key. Uses Google Gemini to score each job against your CV and preferences and returns structured JSON with a score, verdict, matching skills, missing skills, and location suitability. Filters to jobs that meet or exceed your minimum score and sends a formatted alert to Telegram, with an optional (disabled) step to append the match to Google Sheets. Setup Update the CV text, keywords, minimum score threshold, job age and batch limits, and your Telegram chat ID in the CV and preferences settings. Add a Google Gemini (PaLM) API credential for the Gemini chat model. Create a Telegram bot with @BotFather, add the Telegram credential in n8n, and set the target chat ID after messaging the bot. Optional: enable the Google Sheets logging step, add a Google Sheets OAuth2 credential, set the spreadsheet ID, and create a sheet tab named “Matches.”. An n8n automation workflow template by Olly McBride.
- 7 nodes
- Automation
- AI
By apimodels
Quick overview This workflow localizes YouTube (or direct media) videos by creating dubbed MP3 audio tracks with ElevenLabs dubbing and translating SRT subtitles with Claude via an OpenAI-compatible API, then saving outputs to Google Drive and logging results to Google Sheets. How it works Triggers on a new YouTube channel upload via RSS or when a user submits the n8n form with a video URL, target languages, and background-audio preference. Validates the input, expands the language list (defaults from settings for RSS runs), and detects whether the source is YouTube or a direct MP4/MP3 link. If the source is YouTube, downloads an audio track and selects an SRT caption track via the apimodels.app media endpoint; otherwise it uses the provided direct file URL and skips captions. Creates one job per target language, starts an ElevenLabs dubbing task via the apimodels.app audio endpoint, and translates the SRT cue-by-cue with Claude while preserving timestamps when captions exist. Polls each dubbing task until it completes, fails, or times out based on the configured maximum wait. For completed tasks, downloads the dubbed audio, saves the MP3 (and translated SRT when available) to Google Drive, and appends a “Done” row with Drive links to Google Sheets. For failures or timeouts, logs a “Failed” row with the error details to Google Sheets and, for form runs, returns an HTML summary page of all languages and links. Setup Create an API key on apimodels.app and add it as an OpenAI credential in n8n with base URL https://api.apimodels.app/v1. Connect Google Drive OAuth2 credentials and set a target Drive folder ID where MP3 and SRT files are saved. Connect Google Sheets OAuth2 credentials, create a spreadsheet tab named Localization log with the required headers, and paste the Sheet ID into the workflow settings. Replace YOUR_CHANNEL_ID in the YouTube RSS feed URL to monitor the correct channel, or use the provided n8n form endpoint to submit videos manually. Review and adjust defaults in the Settings (languages, polling interval, max wait time, and translator model) to match your localization needs. Requirements An apimodels.app account and API key. New accounts get $0.1 of free credit. Google Drive and Google Sheets accounts. Dubbing is billed at $0.55 per minute per language. In our test, a 19-second video in Spanish and Japanese took 84 seconds and cost $0.367 in total. Subtitles need captions on the original YouTube video. Direct MP4 or MP3 links are dubbed without subtitles. Customization Change the default languages, background audio, translation model or maximum wait in the Settings node. Add more languages to the form's checkbox list and to the language map in the Plan the job node. Swap Google Drive for Dropbox or S3, or add a Slack message after Log the language to tell your team a video is ready. Additional info Step-by-step setup guide with screenshots: https://apimodels.app/docs/n8n. An n8n automation workflow template by apimodels.
- 6 nodes
- Automation
- AI
By Monie Tools
Quick Overview This workflow runs daily to read a podcast RSS feed, transcribe new episode audio with Apify’s Whisper-based transcriber, and save each transcript into a new Google Doc in a chosen Google Drive folder. How it works Runs every day on a schedule. Reads the configured podcast RSS feed and keeps only the newest episodes based on your limit. Skips episodes that were already processed in previous executions using the episode GUID or enclosure URL. Sends each new episode’s audio URL to Apify to start a transcription run and polls Apify until the run finishes. Downloads the transcript from the Apify dataset and keeps only successful transcription results. Creates a Google Doc per episode in the target folder and inserts the source URL, language, billed minutes, and full transcript text. Setup Add an Apify API token as an HTTP Header Auth credential (Authorization: Bearer YOUR_TOKEN) and select it on the Apify HTTP Request steps. Add a Google Docs OAuth2 credential and ensure it has access to the destination Google Drive folder. In the Settings step, set the podcast RSS feed URL, the number of recent episodes to check, the Whisper model, and your Google Drive folder ID. An n8n automation workflow template by Monie Tools.
- 2 nodes
- Automation
By PewterDesk
Quick overview This workflow runs every Monday to check a list of domains with Apify for DNS, SSL, RDAP registration, and website health, logs each snapshot to Google Sheets, compares it to the prior check, and sends urgent alerts plus a weekly change summary to Slack. How it works Runs every Monday at 7am and loads the domain list plus warning/critical day thresholds for SSL and domain renewal. Uses the Apify “Bulk Domain Intelligence” actor to fetch DNS, TLS/SSL, RDAP registration, email-auth (SPF/DMARC), and homepage status for each domain. Normalizes the results into a comparable “health snapshot” per domain and flags issues such as non-resolving DNS, SSL invalid/expiring, domain expiry/registry holds, missing or unsafe SPF/DMARC, and website errors. Reads the existing “Domain health” history from Google Sheets and compares each domain’s latest snapshot against its most recent logged row to detect new problems, resolved problems, and key record changes (for example nameservers, registrar, MX, SPF, DMARC strength, SSL issuer, and redirect target). Appends the current snapshot for every domain to Google Sheets to maintain a weekly audit trail. Posts one Slack message per domain for urgent cases (critical new problems or critical changes like nameserver/registrar changes). Posts a single weekly Slack report summarizing domains with changes and listing domains that still have unresolved problems. Setup Add an Apify credential (API token) and ensure the actor ID is set to pewterdesk~bulk-domain-intelligence. Connect Google Sheets OAuth credentials, create a sheet tab named “Domain health”, and set the Google Sheets document URL/ID in both Google Sheets nodes. Connect Slack credentials and set the destination channels for urgent alerts and the weekly report (for example #domain-alerts and #domain-health). Update the domain list and the SSL/domain renewal warning and critical thresholds in the “Client domains and alert rules” step before enabling the schedule. An n8n automation workflow template by PewterDesk.
- 3 nodes
- Automation
By Naveen Vinod
Quick overview This workflow manually checks Amazon ASINs from Google Sheets against a defined MAP price using ScrapeHero’s Amazon Offer Listings API, then writes MAP violation results and seller-level price history back to Google Sheets. How it works Starts when you run the workflow manually. Reads the list of ASINs and MAP prices from a Google Sheets input tab and loads prior seller offer snapshots from an “Offer Price History” tab. Normalizes each product row (ASIN formatting and MAP price parsing) and queries ScrapeHero’s Amazon Offer Listings API for the current seller offers. Compares each offer price to the MAP price, flags violations (offer price < MAP), and calculates per-seller price changes by matching offers to the latest saved history entry. Writes a per-ASIN summary (violation status, counts, lowest price, violating sellers, and JSON details) to a Google Sheets results tab using an upsert by ASIN. Appends one row per seller offer to the “Offer Price History” tab to maintain an append-only audit trail for future change detection. Setup Connect Google Sheets OAuth credentials and update the spreadsheet URL/IDs and sheet/tab names for the input sheet, results sheet, and the “Offer Price History” sheet. Connect your ScrapeHero credentials and ensure the node is set to the Amazon Offer Listings API (amazonOfferListing). Ensure the input sheet has headers for at least “ASIN” and “MAP Price” and the history/results tabs contain the columns expected by the append/upsert steps (including “Offer Key” and “Checked At” in history). An n8n automation workflow template by Naveen Vinod.
- 2 nodes
- Automation
By Tanjimul Islam
Quick Overview This workflow powers an @n8n/chat website widget that answers visitor questions using an n8n Data Table knowledge base via OpenAI, keeps per-session memory, captures leads to Google Sheets only with consent, emails you via Gmail, and logs unanswered questions for follow-up. How it works Receives a new message from the @n8n/chat widget trigger. Cleans and validates the visitor input, returning a prompt if the message is empty. Uses an OpenAI-powered agent with session memory to search the n8n Data Table knowledge_base and generate a structured, grounded reply. If the visitor has explicitly consented and provided a name and valid email, appends the lead details to a Google Sheets “Leads” tab and sends a Gmail notification. If the answer is supported, returns the agent’s reply to the chat widget. If the answer is not supported, logs the question and missing information to the n8n Data Table unanswered_questions and returns a fallback response offering human follow-up. Setup Add OpenAI credentials (or n8n AI Gateway) for the chat model used by the agent. Create n8n Data Tables named knowledge_base and unanswered_questions and ensure they contain the expected string columns (topic/details/last_verified_date and session_id/question/missing_info/asked_at). Connect Google Sheets OAuth credentials, set the target spreadsheet in the Google Sheets node, and create a “Leads” sheet with the mapped columns. Connect Gmail OAuth credentials and replace the placeholder recipient email address in the Gmail node. Configure the Chat Widget Trigger allowed origins and publish the workflow, then embed the @n8n/chat widget on your site using the production chat URL. An n8n automation workflow template by Tanjimul Islam.
- 6 nodes
- Automation
- AI
By Socialrobot.io
Quick overview This workflow collects listing photos and details via an n8n form, uploads and crops images on fal, generates camera-move prompts and social captions with OpenAI, renders short clips with Kling 3.0, merges them into a vertical walkthrough video, and sends it to TikTok as a SocialRobot draft. How it works Receives a listing submission via an n8n form with 3–8 photos plus address, price, specs, features, agent info, and an optional listing link. Sorts the photos, checks they meet the required count and size constraints, then uploads them to fal storage and center-crops them to a 9:16 frame. Pairs each neighboring photo into start/end frames and (when enabled) uses OpenAI to generate a constrained camera-move prompt per pair and fair-housing-safe captions for TikTok, Instagram, Facebook, and LinkedIn. Submits one Kling 3.0 image-to-video render job per photo pair via fal, then polls fal until all clips complete, fail, or hit the timeout (canceling unfinished jobs on failure/timeout). Fetches the completed clip URLs, merges them into a single video using fal’s FFmpeg merge endpoint, and downloads the merged file. Validates the merged video’s file size and duration limits, then uploads it to TikTok via SocialRobot as an inbox draft (with optional, disabled-by-default posting to Instagram, Facebook, and LinkedIn). Setup Create a fal API key and configure an HTTP Header Auth credential (Authorization: Key YOUR_FAL_KEY) used by all fal HTTP Request steps. Add an OpenAI credential for the OpenAI chat model used to write camera-move prompts and captions, or turn off OpenAI by setting use_openai to false in the workflow settings. Install and configure the SocialRobot n8n community node, add your SocialRobot API key, connect your TikTok account in SocialRobot, and select the target TikTok account in the TikTok draft step. Review and adjust the walkthrough settings (model ID, clip duration, prompts/guardrails, hashtags, AI disclosure line, polling interval, timeout, and file limits) before enabling the workflow. If you enable the optional Instagram/Facebook/LinkedIn publishing steps, select the corresponding SocialRobot accounts and set the LinkedIn account ID value used by the SocialRobot API request. An n8n automation workflow template by Socialrobot.io.
- 5 nodes
- Automation
- AI
By Shumon Kobayashi
Quick overview This workflow runs every Monday, reads a client list from Google Sheets, uses an OpenAI chat model to draft personalized win-back messages, and sends them via Gmail while updating the sheet and emailing staff a delivery summary. How it works Runs every Monday morning on a schedule. Validates the configured settings, reads the Clients tab from Google Sheets, and stops if required column headers are missing. Filters for opted-in clients who are lapsed past the configured threshold and not contacted within the cooldown window, prioritizing the highest total visits and limiting the run to a maximum count. Generates a short personalized email draft for each selected client using an OpenAI chat model and pairs each draft with the correct client record. Validates the draft (for length, links, placeholders, offers, and correct salutation), builds the final email with offer, booking URL, postal address, and unsubscribe instructions, and updates Google Sheets to mark the client as being contacted. Sends each win-back email via Gmail (or routes all emails to the staff address in test mode) and then writes the final delivery result back to Google Sheets. Emails staff a campaign summary via Gmail and separately alerts staff about any opted-in rows with invalid IDs, emails, or dates. Setup Create a Google Sheets document with a Clients tab and these exact headers: Client ID, Client Name, Client Email, Last Service, Last Visit Date, Total Visits, Marketing Opt In, Last Win Back At, Last Win Back Error. Use YYYY-MM-DD for Last Visit Date and yes or no for Marketing Opt In. Connect Google Sheets (OAuth2), Gmail and OpenAI credentials. In Set Workflow Settings, set your sheet ID, business name, businessAddress (printed at the bottom of every email), staffEmail, replyToEmail, bookingPageUrl and offerText. The workflow refuses to run while a placeholder is left. Optionally change brandVoice, lapsedAfterDays, contactCooldownDays and maxEmailsPerRun. Set the workflow timezone in Workflow settings. Leave testMode on for the first run (every email goes only to staffEmail and the sheet is not changed), then switch it off and activate the workflow. Requirements Google Sheets account connected with OAuth2 Gmail account OpenAI API key, or any other chat model. Client first names and visit history are sent to it, so mention this in your privacy notice. Customization Change offerText, brandVoice and the lapsed and cooldown days in Set Workflow Settings Swap the OpenAI GPT-4 Mini Chatbot node for Anthropic, Google Gemini or a local model Edit the fallback text and footer in the Assemble Final Email Content node Additional info Only clients whose Marketing Opt In is yes (or ticked) are emailed. Replies saying "unsubscribe" arrive in your inbox: set that client's Marketing Opt In to no. The staff summary repeats this reminder. An n8n automation workflow template by Shumon Kobayashi.
- 6 nodes
- Automation
- AI
By Saki Asano
Quick Overview This workflow runs weekly to download an XML sitemap (including sitemap indexes), checks each listed page URL for its HTTP status code, and posts a single Slack message listing any non-200 responses or a sitemap fetch failure. How it works Runs every Monday at 09:00 using a schedule trigger. Loads the configured sitemap URL via HTTP and, if the request fails, sends a failure notice to Slack. Parses the sitemap XML and either extracts URLs directly from a urlset or expands a sitemap index by fetching and parsing each child sitemap. Splits the collected URLs into individual items and requests each page in batches of 5 with a 10-second timeout, capturing the HTTP response status. Filters to only pages that do not return status code 200 and aggregates them into a single list. Builds a summary message with the failing status codes and URLs and posts it to the selected Slack channel. Setup Update the sitemap URL value in the Config step to point to your site’s sitemap.xml or sitemap index. Add Slack API credentials with permission to post messages (chat:write) and select the Slack channel ID to notify. Adjust the schedule (day/time), HTTP timeout, or batch size if needed for your site’s size and response times. An n8n automation workflow template by Saki Asano.
- 5 nodes
- Automation
By Hamza
Quick overview This workflow turns a Telegram bot into an AI support agent that answers from your Postgres pgvector knowledge base using OpenRouter, and hands off to a human support chat when retrieval or the agent is not confident, while logging Q&A and errors to Postgres. How it works Triggers when a customer sends a new message to your Telegram bot. Searches your Postgres pgvector knowledge base using OpenAI embeddings and scores the best match against a minimum similarity threshold. If retrieval is confident, uses an OpenRouter chat model with Postgres chat memory and a pgvector search tool to answer strictly from your documents. Checks whether the agent responded confidently (not empty and not “HANDOFF”) and sends the answer back to the customer in Telegram. If retrieval or the agent is not confident, notifies the customer that a human will reply and sends the question to a Telegram support chat with a “Respond” button. If the support team replies within 24 hours, forwards the human answer to the customer and saves the Q&A as a new embedded FAQ entry in the pgvector knowledge base. Logs answered/unanswered Q&A to Postgres and records any workflow errors to a Postgres error table with an alert to the support chat. Setup Create and connect a Telegram bot, add it to your support group, and set the support group chat ID in the workflow’s supportChatId setting. Set up Postgres with pgvector plus the required tables/structures (your vectors/knowledge base tables, rag_errors, and a rag_qa_log table for Q&A logging). Add Postgres credentials for logging/chat memory and configure the pgvector connection to point at your knowledge base. Add an OpenAI API credential for embeddings and an OpenRouter credential for the chat model (choose a model that supports tool calling). Update the Agent Settings values (businessName and minSimilarity) to match your organization and desired confidence threshold. An n8n automation workflow template by Hamza.
- 9 nodes
- Automation
- AI