Workflows
Browse 12,955 Workflows
Workflows are deterministic, multi-step pipelines that chain models, tools and agents in a fixed order — the predictable counterpart to an autonomous agent. Each entry records its platform and complexity, so the setup cost is visible before you import it.
277–288 of 12,955
By Zvid
Quick Overview This workflow accepts a direct MP4 URL via webhook or manual test, transcribes the opening with ElevenLabs Scribe, uses OpenRouter to pick highlight ranges, and builds Zvid projects to render captioned 1080x1920 Shorts (or save editor drafts) before returning clip links in the webhook response. How it works Receives a direct video URL (and optional title/layout) via a POST webhook, or runs manually with a built-in sample video. Downloads a byte-range sample of the source video and sends it to ElevenLabs Speech-to-Text (Scribe) to get word-level timestamps. Formats the transcript into an indexed prompt and asks OpenRouter (Gemini model) to select non-overlapping highlight ranges and short on-screen titles. Converts the chosen word ranges into exact start/end timestamps, trims clips to the configured min/max duration, and prepares per-clip caption timing. Generates a Zvid render project JSON for each clip (vertical layout, captions, branding, and progress bar) and validates it with Zvid’s render validator. If dryRun is enabled, saves each clip as a Zvid editor draft and returns a summary with credit estimates and editor links. If dryRun is disabled, submits each clip to Zvid for rendering, polls until completion (with safe retry behavior on capacity limits), and responds with the final rendered clip URLs. Setup Install the community node package @zvid/n8n-nodes-zvid and create a Zvid API credential (API key, base URL https://api.zvid.io) for all Zvid nodes. Add an ElevenLabs Header Auth credential (xi-api-key) with Speech-to-Text access for the transcription request. Add an OpenRouter API credential and confirm the selected model in the configuration (default google/gemini-2.5-flash) is available to your account. Set your branding and behavior in the Config node (for example handle, colors, clipCount, clipSeconds, dryRun, pollSeconds, and timeoutMinutes). If using the webhook trigger, copy the production webhook URL and configure your source system to POST JSON like { "videoUrl": "https://...mp4", "title": "...", "layout": "fit|fill" } using a directly downloadable MP4 URL. An n8n automation workflow template by Zvid.
- 2 nodes
- Automation
By Melbin Francis
Quick overview This workflow rotates weekly on-call duty using Google Calendar events, factoring in team history, leave, and public holidays from the Nager.Date API, then announces the assignment and swap outcomes in Slack and updates a channel topic at handover time. How it works Runs every Thursday at 10:00 and also triggers when an on-call Google Calendar event is updated. Reads past on-call events and upcoming leave events from Google Calendar and fetches the next public holidays from the Nager.Date API. Calculates the target on-call week and selects the fairest available person based on recent on-call history, required rest weeks, leave events, and region-specific public holidays. If it is the weekly run and no on-call event exists yet, creates an all-day on-call event in Google Calendar and posts the assignment to a Slack channel. Waits until the configured handover time and then updates the Slack channel topic to reflect the current on-call person. If an on-call event edit looks like a swap, validates the new assignee against the same rules and sends them an approval request in Slack. If the swap is approved, updates the Google Calendar event marker and posts a confirmation to Slack, otherwise reverts the Google Calendar event and posts the reason to Slack. Setup Add Google Calendar OAuth2 credentials and select the on-call calendar and leave calendar in the Google Calendar nodes (including the “On-Call Week Edited” trigger). Add Slack OAuth2 credentials and set the target Slack channel in the message and channel-topic nodes. In the Rota Rules node, define your team as Name; region; Slack member ID, set your holiday country code (for Nager.Date), and optionally set a lead Slack member ID for escalation messages. Ensure leave events in the leave calendar include the person’s name in the event title so the workflow can match leave correctly. Adjust fairness_weeks, rest_weeks, handover_time, and swap_answer_hours in Rota Rules to match your rotation policy and response expectations. Requirements A Google account with Google Calendar A Slack workspace, and each team member's Slack member ID Two calendars: one for on-call weeks, one for leave Customization Change how many weeks count for fairness, and the rest weeks between turns Change the handover time and how long people have to answer a swap Use a different country for public holidays Change the event title if your team calls it something other than "On call" Additional info In plain words: someone on the team has to carry the pager each week, and working out who is fair, free and not on holiday is a weekly chore that is easy to get wrong. This workflow does it from your calendars. People swap simply by editing the on-call event; the workflow checks the swap, asks the new person in Slack, and puts the week back if they say no or the swap breaks the rules. Example: Alex had last week, Robin is on holiday on Tuesday. The workflow books Sam for next week, posts it in Slack and changes the channel topic on Monday morning. Leave counts for a person when the leave event's title contains their name, for example "Robin holiday". An n8n automation workflow template by Melbin Francis.
- 4 nodes
- Automation
By Amplence
Quick overview Answer Shopify support emails from the order record, not from guesswork. Claude drafts each reply from the Shopify order and your store policies; your code decides whether it sends, waits as a Gmail draft for review, or goes to Slack. The model never refunds, cancels or picks the route. How it works Polls Gmail every minute for unread emails in the Inbox. Normalizes the sender, subject and message text (quoted replies stripped), finds an order reference like #1042 in the subject or body, and falls back to searching by the sender's email address when there isn't one. Gets a fresh 24-hour token from your Shopify app, then makes one GraphQL Admin API call for the order's status, fulfillment, carrier, tracking, delivery estimate, line items and the email on the order. Sends the email, the order record and your store facts to Claude (Anthropic Messages API) and gets back JSON that matches a fixed schema: intent, language, confidence, whether a person is needed, a one-line summary and the reply. A Code node applies your rules: the intent must be on your send list, clear the confidence bar and, for order questions, the email on the order must match the sender. Replies inside an existing thread and anything unclear go to a person. Send: Gmail replies in the thread with your disclosure line. Draft: Gmail saves a reply in the thread and Slack tells the team why it is waiting. Escalate: Slack gets the summary, the reason and the thread link. Spam ends at a node that does nothing. Setup Select your Gmail credential on the trigger and on both Gmail nodes. The trigger reads unread mail in the inbox every minute; add a label filter if support shares the mailbox. In Shopify, create an app in the Dev Dashboard with the read_orders scope, release it and install it on your store. On Get a Shopify token, add a Custom Auth credential with the JSON {"body": {"client_id": "your client ID", "client_secret": "your secret"}}. Create an HTTP Header Auth credential named x-api-key with your Anthropic API key as the value, and attach it to Classify and draft with Claude. Select your Slack credential on Ask the team to review and Escalate to a person. The channel name comes from Settings. Edit Settings: store name, shop subdomain, return window, shipping promise, brand voice, the intents allowed to send, the confidence bar, signature and disclosure line. Then click Test workflow: a sample email is pinned, so you can run it end to end before a real customer writes in. Requirements Gmail, Slack, an Anthropic API key and a Shopify app from the Dev Dashboard with the read_orders scope. Core nodes only (Gmail, HTTP Request, Code, Switch, Slack), so it runs on n8n Cloud or self-hosted. Customization Add a class to the send list in Settings once a fortnight of drafts shows the model gets it right, and raise or lower the confidence bar (0.8 by default). To use another model, change the URL, headers and body of the Claude node and keep the JSON schema so the routing code still works. For WooCommerce, replace the two Shopify HTTP nodes with one order lookup. Refunds, credits, cancellations and address changes are always drafted for a person, never sent. Additional info Built by Amplence. The cost per email, the send-or-draft threshold and the reasoning behind each node are explained in the companion article: https://amplence.com/blog/n8n-shopify-customer-support-workflow Want it running on your store? We set up and maintain n8n workflows: https://amplence.com/services/n8n-automation-services All our free templates as JSON on GitHub: https://github.com/muneeb-ashraf/n8n-workflow-templates. An n8n automation workflow template by Amplence.
- 4 nodes
- 13 views
- Automation
By Melbin Francis
Quick overview This workflow monitors Stripe dispute events and runs a daily deadline check, then uses OpenAI to draft a facts-only rebuttal letter, updates dispute evidence in Stripe (draft or submit/accept), and notifies your finance team in Slack about actions taken, upcoming deadlines, and dispute outcomes. How it works Triggers when Stripe sends dispute events (created/closed) or every morning on a schedule. On dispute creation, fetches full dispute details from Stripe (including the charge, refunds, and payment intent) and pulls the customer’s recent charge history when available. Applies rule-based logic to decide whether to fight, accept, or take no action, and compiles the Stripe-backed facts and evidence fields needed for a response. When fighting, uses OpenAI to write a rebuttal letter from the provided facts and falls back to a prebuilt facts-only letter if the model output includes unsupported details. Saves evidence to the Stripe dispute as a draft or submits it to the bank based on your settings, and posts a detailed status update to Slack. Each morning, lists open Stripe disputes approaching their evidence deadline and posts a consolidated warning to Slack. When Stripe closes a dispute, formats the outcome and posts a closure update to Slack. Setup Add a Stripe API credential and ensure your Stripe account can deliver dispute webhooks to the n8n Stripe Trigger. Add an OpenAI API credential for generating the rebuttal letter. Add a Slack OAuth2 credential and set the destination channel in all Slack message nodes. Fill in the "Dispute Rules" values (business name, product description, refund/cancellation policies, minimum amount, and deadline warning window) and decide whether to enable automatic evidence submission or automatic acceptance. Requirements A Stripe account (test mode is fine for trying it out) An OpenAI API key A Slack workspace with a channel for money matters Customization Set the smallest dispute worth fighting in Dispute Rules Turn on automatic submit or accept once you trust the drafts Change how many hours ahead the morning warning looks Edit the rules for each dispute reason in the Decide Fight Or Accept node Additional info When a customer asks their bank for their money back, Stripe takes it out of your balance right away and gives you a few days to reply with proof. Miss the date and you lose. This workflow reads what Stripe already knows about the payment, decides if you have a case, writes a short letter and saves it on the dispute, so someone only has to check it and press submit. Example: a customer says the parcel never came, but the payment has a DHL tracking number. The workflow marks it as a strong case, writes the letter with that number, saves it as a draft and tells you in Slack. Stripe charges an extra fee when you fight a dispute and gives it back only if you win, so small ones may be marked "accept". The bank decides who wins; this just makes sure you answer on time with the right proof. An n8n automation workflow template by Melbin Francis.
- 5 nodes
- Automation
- AI
By Avkash Kakdiya
Quick overview This workflow runs hourly to read unread Gmail messages, uses OpenAI to classify them, and then files expenses, sales orders, and settlements to Google Sheets with supporting PDFs stored in Google Drive, while labeling and marking processed emails as read and sending error alerts to Gmail and Discord. How it works Runs every hour and fetches all unread emails from Gmail. Uses OpenAI to classify each email as sales, expense, settlement, transaction, notification, or other based on the subject and body. For expense emails, OpenAI extracts invoice fields, the workflow downloads any PDF attachment from Gmail, uploads it to Google Drive, appends an expense row to Google Sheets with the Drive link, then labels the email and marks it as read. For sales emails, OpenAI extracts order details, the workflow generates a PDF with PDFBolt, uploads it to Google Drive, appends a sales row to Google Sheets with the Drive link, then labels the email and marks it as read. For settlement emails, OpenAI extracts payout details, the workflow downloads any PDF attachment from Gmail, uploads it to Google Drive, appends a settlement row to Google Sheets with the Drive link, then labels the email and marks it as read. For transaction, notification, and other emails, the workflow only applies the corresponding Gmail label and marks the message as read. If any step errors, an n8n Error Trigger sends the error to OpenAI for a plain-language summary and posts alerts via Gmail and Discord with a link to the failed execution. Setup Connect credentials for Gmail OAuth2, OpenAI, Google Sheets OAuth2, Google Drive OAuth2, Discord OAuth2, and PDFBolt. Update the Google Sheets document ID and sheet names for the Expense, Sales, and Settlement tabs and ensure the columns match the fields being appended. Select the Google Drive folder IDs where expense/settlement attachments and generated sales PDFs should be uploaded. Create or choose the Gmail labels for expense, sales, settlement, transaction, notification, and other, then replace the label IDs used in the workflow. Set the recipient email address for the Gmail error notification and choose the Discord server/channel for error alerts. An n8n automation workflow template by Avkash Kakdiya.
- 6 nodes
- Automation
- AI
By SAMET
Quick Overview This workflow runs every weekday, reads open invoices from Google Sheets, and uses Gmail to send staged overdue payment reminders or escalation emails. It also sends a weekly receivables aging report to a finance inbox and logs each sent reminder stage back to the sheet. How it works Runs every weekday at 9:00 on a schedule. Reads all rows from the Invoices tab in Google Sheets using unformatted values for consistent date handling. For each invoice that is not marked Paid or Cancelled, calculates days overdue and selects the next unsent reminder stage (for example day 0, 7, and 14) or triggers escalation once the escalation day is reached. Sends the selected email via Gmail either to the customer (or to the finance inbox when test mode is enabled) or to the escalation contact for manual follow-up. Updates the corresponding Google Sheets row with last_stage_sent and last_sent_at so the same stage is not sent twice. On the configured weekday, builds a receivables aging summary (Not yet due, 0–30, 31–60, 61–90, 90+) from the same invoice data and emails it to the finance inbox via Gmail. Setup Create a Google Sheets spreadsheet with an Invoices tab containing the required columns (including invoice_id, due_date, status, last_stage_sent, and last_sent_at). Add Google Sheets credentials in n8n and select the target spreadsheet in both Google Sheets nodes. Add Gmail credentials in n8n for sending customer reminders, escalation emails, and the aging report. Update the reminder settings (finance_email, escalation_email, reminder_days, escalation_day, closed_statuses, and aging_report_weekday) and keep test_mode enabled for initial testing. An n8n automation workflow template by SAMET.
- 3 nodes
- Automation
By Melbin Francis
Quick overview This workflow runs weekly to audit all workflows in your n8n instance via the n8n API, identifies which external processors they send data to, optionally deactivates non-compliant workflows, and posts a consolidated compliance report to Slack. How it works Runs every Monday morning on a schedule. Loads your processor allow/block rules (including optional DPA end dates, exempt tags, and whether to auto-deactivate) and fetches all workflows from the n8n API. Analyzes each workflow’s published version (or saved version if unpublished) to detect where data is sent, including service nodes, HTTP Request destinations, URLs embedded in Code, and any called sub-workflows or error workflows. Classifies each workflow as clean, exempt, needs review, or switch off based on your approved/blocked processor lists, unresolved destinations, and DPA end dates. If enabled, deactivates any active workflows that are marked “switch off” using the n8n API and records whether the deactivation succeeded. Builds a single Slack report summarizing actions taken, workflows needing human review, upcoming DPA expirations, and configuration issues, and posts it only when something needs attention (or when forced to post). Setup Create an n8n API credential with permission to read and deactivate workflows, and select it in the n8n nodes used to list and deactivate workflows. Add a Slack OAuth2 credential, set the target channel name/ID in the Slack message step, and ensure the workflow can post to that channel. Fill in “Processor Rules” with your approved processors (optionally as Name until YYYY-MM-DD), blocked processors, and any hosts that are not processors (for example, your own systems). Set your n8n editor base URL in editor_url so the report can link to workflows and so calls to your own instance are treated as non-processors. Decide whether to auto-enforce by setting switch_off_blocked and whether unknown destinations should be treated as blocked with unknown_means_blocked. Requirements An n8n API key for this n8n instance (create it under Settings, then n8n API), added as an n8n credential. A Slack workspace and a channel where the weekly report can go. Your list of approved outside services and the date each one's data contract (DPA) ends. Nothing else: no AI and no paid add-ons. Customization Everything is set in the Processor Rules step. It starts in report-only mode; once the report looks right, turn on switch_off_blocked and it switches off rule-breaking workflows by itself. Only want to check some workflows? Give them a tag and put that tag in only_tag. Workflows they call are still checked. Tag a workflow no-personal-data if it never handles personal data, and it will be skipped. Turn on unknown_means_blocked to treat any service you have not approved, or any address the check cannot read, as blocked. Change dpa_warning_days (30 by default) to be warned earlier before a contract ends, and turn on post_when_clean if you also want a message in quiet weeks. Additional info Why this exists: under GDPR, the EU privacy law, every outside company that receives personal data from you needs a contract with you, called a DPA. In n8n it is easy to lose track: one person adds a Slack step, another adds an AI model or calls a web address, and suddenly data goes somewhere nobody signed off. This workflow looks inside all your workflows every week and works out where each one really sends data, so the list comes from the workflows themselves instead of from memory. What it will not do: it never deletes or edits a workflow. It only switches off workflows that are running, one at a time, and only after you turn that on. It never switches itself off. A change someone has saved but not published yet is reported, not acted on. Good to know: if a workflow builds a web address while it runs, the check cannot read it, so that workflow goes on the review list. Workflows your API key cannot see are not checked. And if someone switches a workflow back on after a check, it keeps running until the next Monday. An n8n automation workflow template by Melbin Francis.
- 2 nodes
- Automation
By Melbin Francis
Quick overview This workflow triggers when Stripe drafts an invoice, re-checks the customer’s EU VAT number against the EU Commission’s VIES API, updates Stripe’s tax treatment or holds the draft when needed, writes the VIES result into invoice metadata, and emails finance via Gmail. How it works Triggers on Stripe’s invoice.created event and de-duplicates events so each invoice is processed only once. Loads your VAT policy settings (seller country/VAT number, retry rules, and notification email) and fetches the latest Stripe Customer details for the invoice. Classifies the invoice as a cross-border EU VAT check, a reverse-charge state to stop/flag without VIES, or a non-applicable case based on the customer’s address, VAT ID, and current Stripe tax settings. For cross-border EU cases, sends the VAT number to the EU VIES REST API, interprets the response (including optional name matching), and retries after a wait while holding the draft if VIES is temporarily unavailable. Decides whether to confirm reverse charge, remove reverse charge, or hold the draft (for invalid VAT under Stripe Tax, name mismatches, or VIES errors) and prepares updates for Stripe. Updates Stripe by adjusting the customer’s tax treatment when applicable, writing the VIES proof and decision into the invoice metadata (and toggling auto-finalization when the invoice is held/unheld), then emails finance via Gmail when the decision isn’t a “quiet” confirmation. Setup Connect a Stripe account credential with permission to read customers and update customers/invoices, and ensure Stripe is sending invoice events to this n8n workflow. Connect a Gmail OAuth2 credential for sending notification emails. In the VAT Rules step, set your seller country, seller VAT number (to receive a VIES consultation number), finance email address, and any optional rules like name-match threshold and retry/hold behavior. Requirements A Stripe account. Test mode is fine while you try it out. A Gmail account to send the short note to your finance team. Your own EU VAT number, so the EU check gives you an official reference number for your records. Internet access to the EU's free VAT checking service (VIES). n8n Cloud already has it. Nothing else: no AI and no paid add-ons. Customization All settings are in the VAT Rules step: your own country, and which countries count as EU customers. Company-name check: if names often differ a little (for example "Ltd" and "Limited"), lower the match level, or let a mismatch through with a note instead of stopping the invoice. Want a person to approve every change? Turn on the option that holds every invoice whose VAT treatment changes. Choose how long to keep retrying when the EU service is down before the invoice is held for a person. Send the finance note to Slack or Microsoft Teams instead by swapping the Gmail step. Additional info Why this exists: Stripe checks a customer's EU VAT number only once, when it is first added. If that business later closes or loses its VAT number, Stripe keeps sending it invoices without VAT (the "reverse charge" rule), and you end up owing the VAT that was never charged. This workflow asks the EU's official service again every time Stripe prepares a new invoice, before the invoice goes out. What it will not do: it never deletes anything and never sends an invoice on its own. It only changes a customer's VAT status when the answer is clear. Anything unclear, such as a company name that does not match or the EU service being down, pauses the draft invoice so a person can look at it. If you use reverse charge inside your own country (for example for building work), it only flags that for a person. Good to know: Germany and Spain do not share company names through the EU service, and Greek names come back in Greek letters, so for those customers only the number is checked, and the proof written onto the invoice says so. The EU service can be slow at busy times, so some invoices may wait for a retry. An n8n automation workflow template by Melbin Francis.
- 4 nodes
- Automation
By Michael Cedeño
Quick overview Answers customer emails in Gmail using only a knowledge base you keep in Google Docs. When the answer isn't there, it asks you, turns your answer into a reply, and sends you a ready-to-paste entry so it can answer that question next time. How it works Checks your Gmail inbox every minute for unread emails in the Primary category while excluding your own messages and common automated senders. Extracts key email fields (sender, subject, body, thread/message IDs) and classifies the message with Google Gemini to continue only for genuine customer emails. Retrieves your Google Docs knowledge base and asks Google Gemini to decide whether it can answer using only that content, returning a structured draft reply plus an escalation reason and summary. If the email can be answered, either replies immediately or saves a draft reply in the same Gmail thread based on your configured reply mode. If the email cannot be answered, sends you a Gmail message that includes context and waits up to three days for your factual response. Uses Google Gemini to turn your response into a customer-ready reply and optionally emails you a suggested knowledge base Q&A entry to paste into your Google Doc. Setup Connect Gmail credentials for reading inbox messages, sending replies, creating drafts, marking messages as read, and sending you escalation emails. Connect Google Docs credentials and replace the knowledge_base_url with your Google Doc link. Connect Google Gemini (Google AI) credentials for the classifier and drafting steps. Update owner_email and set reply_mode to draft or send in the Support Settings step before activating the workflow. Requirements Gmail account (the inbox where your customers write to you) Google Docs account with your knowledge base in a Google Doc Google Gemini API key (the free tier works), or any other chat model supported by n8n An n8n instance reachable from the internet, so the Respond button in the escalation emails can open the response form Customization Start with reply_mode set to draft and switch to send once you trust the replies. Use the AI model you prefer: replace the three Gemini model nodes with OpenAI, Anthropic or any other chat model. Update your knowledge base Doc at any time. Changes apply to the next email, with no changes to the workflow. Change how long the workflow waits for your answer (3 days by default) in the Ask You node. Edit the Gmail Trigger search query to watch a specific label or alias, for example only emails sent to support@yourcompany.com. Additional info Not sure what to write in your knowledge base? Use this interview prompt with any AI chat. It asks you only what it needs, and it can read your existing PDFs or FAQs: https://docs.google.com/document/d/1oIcMRiOlRwCpZbbjZJokxYanBw07CxlKTMXvQNhnYgc/edit?usp=sharing Each escalated email waits for your answer in its own execution, so other emails keep being answered in the meantime. In draft mode nothing is ever sent to a customer without your review. An n8n automation workflow template by Michael Cedeño.
- 6 nodes
- Automation
- AI
By Peter - getregdata
Quick overview Every weekday, add the companies incorporated in Spain on the previous business day to Google Sheets. Apify reads the official BORME gazette, n8n turns each incorporation into one row (name, province, purpose, address, capital, PDF link) and Gmail sends a short summary. How it works Runs on a schedule at 09:00 Monday to Friday. Sends the selected provinces and act types to the Apify BORME Corporate Acts Scraper actor and retrieves the resulting dataset for the most recent business day. Extracts one structured row per company (company name, province, registry number, start of operations, corporate purpose, address, share capital and a link to the official BORME PDF) from the notice text. People named in the notice are not copied. Appends the company rows to the Google Sheets spreadsheet and sheet you select. Builds an HTML summary with counts per province and a preview list of companies. Sends the summary email through Gmail to the configured recipient. Setup Create an Apify API token, add it as an Apify credential in n8n (and on self-hosted n8n install the verified community node @apify/n8n-nodes-apify). Connect Google Sheets credentials and select the target spreadsheet and sheet in the Google Sheets append step. Create a sheet whose header row is exactly: date, province, companyName, registryNumber, actType, startOfOperations, corporatePurpose, address, capital, otherActs, bormeId, sourceUrl (the append step maps columns by name). Connect Gmail in the e-mail step and set your own recipient address, or delete that step if you only want the sheet. Update the provinces and actTypes values in the Settings step to match the regions and corporate acts you want to track. Requirements Apify account (the free plan includes monthly usage credit). Billed per corporate act returned plus a small start fee per run: https://apify.com/regdata/borme-corporate-acts-scraper?fpr=getregdata Google Sheets, and optionally Gmail for the summary e-mail Uses the verified Apify node: available on n8n Cloud; on self-hosted n8n install @apify/n8n-nodes-apify Customization provinces: ["MADRID", "BARCELONA"], or [] for all of Spain (300-450 incorporations a day, so raise the $1 cost cap in the Apify node to about $3) actTypes: ["Nombramientos"], ["Disolución"] or ["Ampliación de capital"] to track appointments, dissolutions or capital increases instead of new companies Send the rows to HubSpot, Pipedrive or Airtable instead of Google Sheets Additional info Typical cost: Madrid alone has about 80-120 new companies per business day, so one run costs roughly $0.40-0.60 on your Apify account. The Apify node stops a run above $1. On Spanish public holidays BORME is not published and the workflow sends nothing. An n8n automation workflow template by Peter - getregdata.
- 3 nodes
- Automation
By Huseyin Hobek
Quick overview This workflow accepts a prompt from n8n Chat or another workflow, calls OpenAI with automatic retries, falls back to Anthropic on hard failures, logs each run to an n8n Data Table with token and cost estimates, and sends a Telegram alert if all providers fail. How it works Triggers when a chat message is received or when another workflow calls it and passes in a prompt (and optional system prompt). Builds a provider-specific request for the current role (OpenAI primary or Anthropic fallback), including model and max token settings. Sends the request to the active provider via its API and evaluates the HTTP response to extract the answer, token usage, and any error details. Retries rate limits, server errors, and timeouts with exponential backoff (respecting any Retry-After header), or switches to Anthropic after exhausted retries or non-retryable errors. Produces a final result payload with success status, provider/model used, attempts, latency, token totals, estimated cost, and an attempt history log. Ensures the llm_call_log n8n Data Table exists, writes one log row per run, and posts a Telegram message if the run failed on every provider before returning the result to the caller. Setup Add credentials for OpenAI (OpenAI API) and Anthropic (Anthropic API) to enable primary and fallback calls. Ensure your instance supports n8n Data Tables, or change/remove the logging steps if you do not want to store logs in the llm_call_log table. Add a Telegram credential and set telegramChatId in the settings to receive failure alerts, or remove the Telegram alert step. Update the settings for models, maxAttemptsPerProvider, timeouts, and token pricing (primary/fallback price per 1M tokens) to match the models you use and your billing assumptions. Requirements n8n 2.3 or newer (Data Table create operation). On older versions, create the llm_call_log table by hand. OpenAI and Anthropic API keys. Telegram is optional. Customization Swap the roles by setting primaryProvider to anthropic and fallbackProvider to openai. Change models and update the token prices in the settings node. To use it from another workflow, add an Execute Workflow node, select this workflow and pass prompt (and optionally systemPrompt). The result contains output, status, provider and estimatedCostUsd. An n8n automation workflow template by Huseyin Hobek.
- 3 nodes
- Automation
By Florian
Quick overview This workflow tracks return shipments and refunds by extracting data from scanned return receipts in Google Drive, enriching it via Gmail and Kontoflux, storing everything in an n8n Data Table, and then monitoring DHL delivery status and refund payments with daily follow-ups and approval-based reminder emails. How it works Triggers when a new receipt scan file is created in a specific Google Drive folder. Downloads the file, runs Mistral OCR to extract text, and uses an LLM to parse the carrier, tracking ID, recipient/shop name, and drop-off date. Uses Gmail and the Kontoflux transactions API (via an LLM agent) to find the matching order confirmation, determine the expected refund amount and payment method split (bank vs PayPal balance), and creates a tracking row in an n8n Data Table with expected delivery and refund dates. Every day at 08:00, reads overdue (not yet delivered) shipments from the Data Table and, for DHL/Deutsche Post tracking IDs, queries the DHL Tracking API and updates the Data Table and emails you a delivery notification when a shipment becomes delivered. Every day at 08:00, reads overdue (not yet refunded) returns from the Data Table, searches for matching incoming credits in Kontoflux (bank and PayPal), and records any received amounts back to the Data Table. If the refund fully matches what was originally paid (by channel), it requests approval by email to mark the return as refunded; otherwise it looks for refund announcements in Gmail, postpones the next check date, or drafts a friendly reminder (optionally using Firecrawl to find a service email address) and sends it after approval. Setup Create an n8n Data Table with the required columns (carrier, tracking_id, recipient, amount, handed_over, expected_delivered_date, expected_refund_date, shipment_delivered, delivered_date, refunded, refund_status, friendly_reminder_sent_date, paid_paypal_balance, paid_bank, refunded_paypal_balance_amount, refunded_bank_amount) and set its ID in all Data Table nodes currently using YOUR_DATA_TABLE_ID. Add credentials for Google Drive OAuth2, Gmail OAuth2 (for searching, approvals, and sending emails), and Mistral Cloud (OCR). Provide API access for the DHL Tracking API (replace YOUR_DHL_API_KEY), Kontoflux (HTTP Header Auth plus YOUR_KONTOFLUX_WORKSPACE_ID), and Firecrawl API (for finding contact emails when needed). Add an OpenAI-compatible LLM credential (used by the agents) and, if desired, an Anthropic-compatible credential for fallback models. Replace placeholders such as YOUR_GOOGLE_DRIVE_FOLDER_ID, your.email@example.com, YOUR-N8N-INSTANCE, and the prompt variables like [YOUR_NAME], [YOUR_BANK], and [YOUR_BANK_ACCOUNT_NAME]. An n8n automation workflow template by Florian.
- 7 nodes
- Automation
- AI