GenAiHub

Workflows

Browse 12,955 Workflows

Workflows Guide

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.

133–144 of 12,955

Hassan logo
Handle WhatsApp HVAC reception with Gemini, Claude, and Meta WhatsApp API
Live

By Hassan

Quick overview This workflow acts as a WhatsApp AI receptionist: it receives text, voice notes, and photos via WhatsApp Cloud API, transcribes audio and describes images through OpenRouter, then uses Anthropic Claude with PostgreSQL chat memory to reply, splitting long answers into up to three WhatsApp messages. How it works Triggers when a new WhatsApp message is received. Routes the inbound message by type, passing text through, transcribing voice notes via OpenRouter (Gemini), and describing photos via OpenRouter (Claude) while preserving any image caption. Stores the resulting normalized text plus the business phone number in an n8n Data Table inbox. Waits briefly to allow the customer to send multiple rapid messages, then checks whether this run is the newest message for that phone number. If it is the newest, collects all saved lines for that phone number, clears them from the Data Table, and marks the WhatsApp message as read while showing a typing indicator. Sends the merged message to a LangChain agent powered by Anthropic Claude with PostgreSQL chat memory and optional SerpAPI web search and calculator tools. Splits the agent’s reply into up to three short messages and sends them back to the customer via the WhatsApp Cloud API. Setup Connect WhatsApp Cloud API credentials (Facebook Graph API header auth) and configure the WhatsApp webhook URL from the trigger in your Meta app. Create an n8n Data Table named “whatsapp inbox” with phone (string) and text (string) columns, or update the workflow to use your own Data Table ID. Add an OpenRouter API key (HTTP Header Auth) for the transcription and image-description requests. Add Anthropic credentials for the Claude chat model used by the agent. Provide a PostgreSQL connection (for example via Supabase) and ensure the whatsapp_chat_history table exists for chat memory storage. (Optional) Add SerpAPI credentials if you want the agent to use web search, and confirm your WhatsApp phone_number_id is available in incoming webhook metadata for sending replies. Additional info i need the title to change to this: AI WhatsApp receptionist with Claude: It read text, voice notes & photos, with memory. and who is it for section to be this: Who's it for Service businesses, agencies and support teams who get customer questions on WhatsApp Business and want an AI receptionist that handles more than plain text. The prompt ships with a demo HVAC company, but the flow works for any business that answers questions and takes bookings over chat. An n8n automation workflow template by Hassan.

N8nUpdated yesterday
Free
No ratings
  • 8 nodes
Workflows
  • Automation
  • AI
Ma
Manage adaptive API rate limiting with a webhook proxy and Redis
Live

By Oneclick AI Squad

Quick overview This workflow exposes a webhook that proxies calls to approved upstream APIs and enforces per-service rate limits in Redis, dynamically adjusting limits based on 429/Retry-After and X-RateLimit-* headers while optionally delaying over-budget requests. How it works Receives a POST webhook request with { service, path, method, payload } to be executed against an upstream API. Validates the requested service and path against an allowlisted service registry and returns a 404 for unknown services or unsafe paths. Loads the service’s current limiter state from Redis, computes the effective request limit, and immediately returns a 429 with Retry-After if an upstream backoff period is still active. Atomically increments a per-window request counter in Redis and either allows the request, delays it until the next window if it can wait, or returns a 429 when it is over budget. Calls the target upstream API with an HTTP request and inspects the response status and rate-limit headers. Updates the adaptive limiter state in Redis using AIMD rules and returns the upstream result (or an upstream 429) with rate-limit and throttle metadata. Setup Add a Redis credential and select it on all Redis nodes used for reading/writing limiter state and window counters. Update the service registry values (base URLs, limits, window seconds, optional headers, and max wait) in the configuration step to match the APIs you want to proxy. Send callers to the workflow’s POST webhook URL (/webhook/rate-limit-manager) and include { service, path, method, payload } in the request body. An n8n automation workflow template by Oneclick AI Squad.

N8nUpdated yesterday
Free
No ratings
  • 3 nodes
Workflows
  • Automation
Pr
Protect external API calls with a webhook circuit breaker and Redis
Live

By Oneclick AI Squad

Quick overview This workflow exposes a webhook-based circuit breaker that routes requests to approved external APIs, tracks failures per service in Redis, and temporarily blocks calls when failure thresholds are exceeded, optionally sending an alert to a Slack-compatible webhook. How it works Receives a POST webhook request with a service name plus the target path, method, and payload. Validates the service against a configured allowlist, builds the target URL, and rejects unknown services or unsafe paths with a 404 response. Reads the service’s circuit state from Redis and either allows the call, rejects immediately with 503 and a Retry-After header, or enters a half-open state after the cool-down. If half-open, claims a single probe slot in Redis so only one request tests recovery while others receive 503. Calls the external API with a configured timeout and classifies failures as network/timeout errors, HTTP 5xx, or HTTP 408 (while other 4xx responses do not count as service failures). On success, returns the upstream response and closes the circuit in Redis if the request was a half-open probe. On failure, increments a Redis failure counter, opens the circuit when the threshold is reached (or on a failed probe), optionally posts an alert via an HTTP webhook, and returns a 502 response describing the failure and circuit status. Setup Configure Redis credentials for every Redis step and ensure your Redis instance is reachable from n8n. Update the service registry in the configuration (service name to base URL, with optional per-service thresholds and open duration) so only approved APIs can be called. Adjust default thresholds and timeouts (failure threshold/window, open duration, request timeout) to match your reliability requirements. If you want notifications, set an alertWebhookUrl for a Slack-compatible incoming webhook endpoint. Copy the production webhook URL for the circuit breaker endpoint and update your calling workflows/apps to send POST requests with { service, path, method, payload }. An n8n automation workflow template by Oneclick AI Squad.

N8nUpdated yesterday
Free
No ratings
  • 3 nodes
Workflows
  • Automation
Re
Resume failed workflow runs from checkpoints with Postgres and Slack
Live

By Oneclick AI Squad

Quick overview This workflow implements a checkpoint-and-resume system for a multi-stage pipeline, storing stage outputs in Postgres and sending failure/recovery alerts to Slack, with manual, webhook, and scheduled triggers to start runs and automatically resume failed or stalled executions. How it works Starts a new run via Manual Trigger, receives a POST request via webhook, or runs every 10 minutes on a schedule to sweep for resumable runs. Ensures the required Postgres tables for runs, checkpoints, and run events exist. For scheduled sweeps, queries Postgres for failed runs whose retry time has passed or running runs whose lease expired, then calls this workflow’s webhook to resume each run. For manual/webhook runs, loads the run state and completed checkpoints from Postgres, restores prior stage outputs into context, and determines the first stage that still needs to run. Acquires a lease-based lock in Postgres to ensure only one execution owns the run, and exits if the run is already completed or currently locked by another execution. Executes the pipeline stages in order (validate order, reserve inventory, charge payment, create shipment, send confirmation), saving a Postgres checkpoint and event after each successful stage. On stage failure, retries the stage inline with exponential backoff when allowed, otherwise marks the run as failed or dead-lettered in Postgres and sends a Slack alert, and on completion marks the run completed and optionally posts a Slack recovery notification when resuming from checkpoints. Setup Add Postgres credentials for the database where the workflow can create and update the workflow_runs, workflow_checkpoints, and workflow_run_events tables. Add Slack credentials and set the target Slack channel in the configuration (and update the Slack nodes if you want a different channel behavior). Update the selfWebhookUrl value in the configuration to this workflow’s production webhook URL ending in /webhook/checkpoint-run so the sweeper can trigger resumes. If you want crash notifications, enable the Error Trigger node and set this workflow as the Error workflow in your n8n instance settings. An n8n automation workflow template by Oneclick AI Squad.

N8nUpdated yesterday
Free
No ratings
  • 4 nodes
Workflows
  • Automation
Hide logo
Curate GitHub release blog drafts with Claude, WordPress, and Google Sheets
Live

By Hide

Quick Overview This workflow runs daily, fetches the latest n8n GitHub releases, and uses Anthropic Claude to decide which ones are newsworthy and turn them into Japanese WordPress draft posts. It tracks processed and skipped releases in Google Sheets and optionally sends a LINE broadcast with an edit link. How it works Runs every day at 8:00 (Asia/Tokyo) and loads the blog configuration values used for writing and linking. Reads previously processed release tag names from Google Sheets and fetches the 10 most recent releases from the n8n GitHub repository. Filters out already-processed, non-version tags, drafts, and releases without a “Features” section, then keeps the three newest candidates. Sends each candidate’s extracted feature notes to Anthropic Claude to judge whether it is worth writing about and parses Claude’s JSON decision. If the release is not worth an article, appends it to Google Sheets as skipped with the reason so it is not rechecked. If the release is worth an article, asks Anthropic Claude to generate a Japanese HTML blog draft, creates a WordPress draft post in the configured category, and logs the post ID to Google Sheets. Optionally sends a LINE broadcast message containing the new draft title and a direct WordPress admin edit link. Setup Add credentials for GitHub, Google Sheets (OAuth2), WordPress, and an Anthropic API key (HTTP Header Auth) used by both Claude HTTP requests. Create and configure a Google Sheets document (or update the document ID/sheet) to store processed and skipped releases with columns like tag_name, title, post_id, and postedAt. Update the GitHub releases API URL if you want to curate releases from a different repository. Open “Config (edit me)” and set your blog name, persona, WordPress site URL, and the target WordPress category ID. (Optional) Add a LINE Messaging API channel access token (HTTP Header Auth) and ensure broadcasting is enabled, or remove the LINE step if you do not need notifications. An n8n automation workflow template by Hide.

N8nUpdated yesterday
Free
No ratings
  • 4 nodes
Workflows
  • Automation
MADIAD logo
Run a RAG Messenger chatbot with Facebook, Google Drive, Supabase, OpenAI and OpenRouter
Live

By MADIAD

Quick overview This workflow powers a Facebook Messenger chatbot that batches incoming user messages, answers with an OpenRouter chat model using RAG retrieval from a Supabase vector store, and keeps the knowledge base synced from PDFs in Google Drive (add, update, and delete). How it works Receives Facebook Messenger webhook requests (including the initial webhook verification challenge) and ignores messages sent by the page itself. Extracts the sender, page, and message text, then stores each incoming message in an n8n Data Table keyed by the sender ID. Re-checks the sender’s pending messages until the latest message is at least 10 seconds old, then combines all pending messages into a single prompt. Sends the combined prompt to an AI agent backed by an OpenRouter chat model, using Supabase Vector Store retrieval as a tool and Postgres chat memory for conversation context. Posts the agent’s response back to the user through the Facebook Graph API. Triggers on new PDFs in a specified Google Drive folder, downloads and extracts text, chunks the content, generates OpenAI embeddings, and inserts the vectors into a Supabase documents table. Triggers on updated PDFs in a specified Google Drive folder, deletes existing vectors matching the file name, then re-downloads, re-extracts, re-chunks, re-embeds, and re-indexes the updated content in Supabase. Triggers when a file appears in a Google Drive Trash folder, deletes matching vectors from Supabase, and then deletes the file from Google Drive. Setup Create a Facebook Page and Meta app, configure the Messenger webhook to point to this workflow’s webhook URL, and add Facebook Graph API credentials with permission to send messages. Connect Google Drive OAuth and set the correct folder IDs for the “new file”, “updated file”, and “trash” triggers. Set up Supabase (with pgvector) and a documents table, then add Supabase API credentials used for vector upserts and deletes. Add an OpenAI API key for embeddings and an OpenRouter API key for the chat model used by the AI agent. Provide a Postgres database for chat memory and ensure the n8n Data Table named conversations exists for temporary message batching storage. An n8n automation workflow template by MADIAD.

N8nUpdated yesterday
Free
No ratings
  • 10 nodes
Workflows
  • Automation
  • AI
Chandler Etienne logo
Run an AI phone receptionist with CallNode and OpenAI
Live

By Chandler Etienne

Quick overview This workflow turns a CallNode phone number into an AI receptionist by sending live call transcripts to OpenAI and returning short spoken replies, with optional call transfer and automatic hangup handling. How it works Receives CallNode conversational webhook events for a live phone call (speech transcripts or keypad presses) via an authenticated webhook. Builds a caller message from the transcript or DTMF input and passes it to an OpenAI-powered agent with business and time context. Uses per-call memory keyed by the CallNode callId so the assistant keeps conversational context across turns. Converts the agent output into CallNode reply fields, stripping control tags and setting hangup or transfer flags when the AI includes [hangup] or [transfer]. Responds to CallNode with replyText (and optional transfer destination) so CallNode speaks the reply, ends the call, or transfers to a human. Setup Create a CallNode account, purchase a phone number, and configure the number to send conversational webhook events to this workflow’s Production webhook URL. Create an n8n Header Auth credential that matches the CallNode custom header name/value (for example, X-CallNode-Secret) and select it on the webhook trigger. Add an OpenAI API credential for the OpenAI Chat Model node and choose the model you want to use. Update the Settings values (businessName, timezone, and optionally transferNumber in +1XXXXXXXXXX format) and customize the “ABOUT YOUR BUSINESS” section in the system message. Requirements To test, import each file into n8n and follow its "Start here" note. The outbound one needs a Live API key, because a Test key never reaches the workflow. An n8n automation workflow template by Chandler Etienne.

N8nUpdated 3 days ago
Free
No ratings
  • 3 nodes
Workflows
  • Automation
  • AI
Tr
Trace simulated card charges with OpenTelemetry and Jaeger
Live

By Elvis Sarvia

Quick overview This workflow simulates a card charge so you can send n8n's OpenTelemetry spans to a local Jaeger collector and compare a successful run with a deliberate failure. It needs no LLM credential. It is Exercise 3 from the n8n Production AI Playbook on Audit & Trace. How it works Receives a POST webhook request with a requestId and amount. Validate Amount, an If node, sends invalid amounts to Reject Request, a Stop and Error node. Normalize Request, an Edit Fields node, converts the amount to cents. Charge Card, an If node, routes requests with trigger_failure to Decline Charge, a Stop and Error node that fails with card_declined. Capture Charge records the successful charge, and Respond returns it. Setup Run Jaeger locally (image jaegertracing/jaeger:2.20.0 with ports 16686 and 4318) and expose port 4318 with cloudflared tunnel --url http://localhost:4318. As an instance owner or admin, open Settings > OpenTelemetry, enter the tunnel URL as the OTLP endpoint, set the sample rate to 1, turn off Track published workflows only, and enable tracing. Select Execute workflow and POST {"requestId":"REQ-3001","amount":49.99}, then {"requestId":"REQ-3002","amount":49.99,"trigger_failure":true}. In Jaeger, search the tag n8n.execution.id with each execution ID and inspect the spans. Requirements n8n Cloud or a self-hosted n8n instance, with owner or admin access to Settings > OpenTelemetry Docker Desktop to run Jaeger locally cloudflared to give n8n Cloud an HTTPS address for the local collector Customization Send spans to your existing OpenTelemetry collector instead of a local Jaeger instance. Additional info OpenTelemetry tracing in n8n is in Preview. No payment provider is called. An n8n automation workflow template by Elvis Sarvia.

N8nUpdated yesterday
Free
No ratings
  • n8n workflow template
Workflows
  • Automation
Ta
Tag and log AI refund decisions as searchable execution data with OpenRouter
Live

By Elvis Sarvia

Quick overview This workflow applies a demo refund policy, asks an AI agent to explain the decision, and saves the case and the final decision as custom execution data so you can find the run later. It is Exercise 2 from the n8n Production AI Playbook on Audit & Trace. How it works Receives a POST webhook request with an orderId, customerTier and message. Order Lookup returns a simulated order record. Policy Decision, an Edit Fields node, selects refund_approved, refund_declined or needs_human_review from the record. Check Tag Length, an If node, sends values over 255 characters to Reject Oversized Tag, a Stop and Error node. Tag Execution, an Execution Data node, saves the case details as custom data. Refund Support Agent explains the decision using an OpenRouter chat model. Record Decision saves the final decision as custom data, and Build Reply returns the response. Setup Add an OpenRouter API credential to OpenRouter - Support. The template uses openai/gpt-4.1-mini, and any supported chat model works. Select Execute workflow and POST {"orderId":"ORD-1001","customerTier":"gold","message":"Please refund this order."} to the Webhook Test URL. Repeat with ORD-1002 and ORD-9999, selecting Execute workflow before each request. The decisions should be refund_approved, refund_declined and needs_human_review. Open each saved execution to inspect the custom data. Filtering the executions list by custom data requires n8n Cloud Pro or Enterprise. Requirements n8n Cloud or a self-hosted n8n instance An OpenRouter API key n8n Cloud Pro or Enterprise to filter executions by custom data (optional) Customization Replace Order Lookup with your own order API and change the Policy Decision expression to match your refund policy. Additional info All order records are synthetic and no payment is processed. An n8n automation workflow template by Elvis Sarvia.

N8nUpdated yesterday
Free
No ratings
  • 3 nodes
Workflows
  • Automation
  • AI
Takahiro Shimizu logo
Clean travel photos by removing people with Google Gemini and Google Drive
Live

By Takahiro Shimizu

Quick overview This workflow provides an upload form that analyzes travel photos with Google Gemini, removes all people or only unselected people, then uploads the cleaned images to Google Drive and returns a results page with preview thumbnails and download links, automatically deleting temporary files after 24 hours. How it works Receives photo uploads and mode/language choices from an n8n Form trigger. Splits the uploaded files into individual photo items and uses Google Gemini to detect and describe real people in each image. Skips image editing and keeps the original photo when no people are detected. If “Remove all people” is selected, uses Google Gemini image editing to remove every detected real person from each photo. If “Keep selected people” is selected, uploads preview images to Google Drive, shows a second form to choose which people to keep per photo, and then uses Google Gemini image editing to remove only the unselected people. Restores the original upload order, uploads the final images to Google Drive, shares them publicly, and displays a results gallery with download links. Waits 24 hours and then deletes the temporary Google Drive files created for delivery. Setup Add Google Gemini (Google PaLM) API credentials for both image analysis and image editing. Add a Google Drive OAuth2 connection and choose the Drive/folder to store the temporary preview and result files. Activate the workflow and open the production URL generated by the “Photo Upload Form” trigger. When “Keep selected people” is chosen, the workflow automatically presents a second form for selecting which detected people should remain. Requirements Google Gemini API credentials configured in n8n. Customization Change the Gemini models used for person detection and image editing to balance image quality, processing speed, and cost. Additional info AI image editing results may vary depending on image complexity, lighting, and how much people overlap with subjects that should remain. When a removed person significantly overlaps with another person, animal, or object, the AI may need to reconstruct hidden areas. Temporary Google Drive files are automatically deleted after 24 hours. An n8n automation workflow template by Takahiro Shimizu.

N8nUpdated yesterday
Free
No ratings
  • 3 nodes
Workflows
  • Automation
  • AI
Ex
Extract website markdown and source chunks with Apify and HTTP Request
Live

By valdeir

Quick overview Prepare public website passages for account research or retrieval workflows. This manual template uses Mako’s Web Content Crawler on Apify, checks coverage, and returns Markdown chunks with source URLs, headings, content hashes and capture times. How it works Runs when you manually execute the workflow and defines 1–10 explicit start URLs plus crawl limits. Starts a bounded Apify Actor run (agency-shift/web-content-crawler) using the Apify REST API. Polls the same run until it finishes, reaches the polling deadline, or a status request fails. The stop path attempts to abort that run; a separate 180-second Actor timeout also applies. Fetches the RUN_SUMMARY report from Apify Key-Value Store and stops if the run failed, coverage is incomplete, or output is truncated/empty. Retrieves the run’s dataset items from Apify and validates each page’s Markdown and chunk schema. Builds and outputs one item per chunk containing the chunk content plus sourceUrl/sectionUrl, heading path, content hash, crawl time, and an oversized flag. Setup Create an Apify account and add an HTTP Header Auth credential in n8n with Authorization: Bearer , then select it in all Apify HTTP Request steps. Update the startUrls list (and any limits like max text length or chunk size) in the configuration step before running. Execute the workflow manually and review the coverage report and any oversized chunk flags before connecting downstream storage, retrieval, or AI steps. Requirements An n8n instance and an Apify account with available credit. The template is free; the author’s Apify Actor is paid. At the checked Free-tier price on 2 October 2026, 512 MB incurs one $0.05 startup event per run, including normal run platform usage. The workflow sets a $0.10 Actor charge ceiling and a 180-second timeout. Post-run data access, storage and n8n hosting can cost extra. No paid AI model or community node is required. Check current Actor pricing before running. Customization Replace the 1–10 public URLs in Configure crawl. Keep explicit page limits and review coverage before adding your own retrieval, storage or AI step. The crawler reads server-rendered HTML and does not render JavaScript, generate answers, create embeddings or write to a CRM. Oversized code and table chunks are retained and flagged. Treat extracted page content as untrusted reference material. Additional info Inspect real output without signing in: https://makorev.com/apis/website-research Detailed setup and support: https://github.com/valdeircs/scraper-fleet/tree/main/examples/website-research The canonical workflow passed a real local n8n 2.41.6 Docker execution: 2 Mako-owned pages, 33 source packets. This submission changes its title, notes and layout only; static comparison confirms the same 16 executable nodes, connections and settings. n8n Cloud UI and customer billing were not tested. The saved sample is dated evidence, not a promise of complete website coverage. An n8n automation workflow template by valdeir.

N8nUpdated yesterday
Free
No ratings
  • 2 nodes
Workflows
  • Automation
youssef farhan logo
Score journalist requests and draft press pitches with Apify, OpenAI, Google Sheets and Telegram
Live

By youssef farhan

Quick overview This workflow runs every morning to pull open journalist requests via Apify, score each request with OpenAI against your expertise, log all scores to Google Sheets, and send high-scoring draft pitch replies to you in Telegram. How it works Runs every morning at 8am on a schedule. Uses Apify (Journalist Request Finder) to fetch open-deadline journalist requests from the configured sources and keywords. Skips requests that were already shown in previous workflow executions. Uses OpenAI to score each request (0–100) and generate a short reason and suggested angle based on your profile. Appends every scored request (including low scores) to Google Sheets for tracking and tuning. Filters requests below your minimum score threshold and limits the number of pitches drafted per run. Uses OpenAI to draft a concise reply in your voice using the suggested angle. Sends each draft to Telegram with the request details and a link to respond. Setup Add an Apify connection and ensure you can run the Journalist Request Finder actor in your Apify account. Add an OpenAI API credential and select the model to use for scoring and drafting. Create a Google Sheet for logging results, then paste its URL into the workflow and ensure the target sheet/tab is accessible. Create a Telegram bot, connect Telegram credentials in n8n, and paste your Telegram chat ID into the workflow. Fill in yourName, yourRole and yourCredentials. Both the scoring and the drafts are built entirely from these three fields, so be specific: numbers, years, what you have actually built or measured. A vague profile produces vague pitches. Then set minScore and maxPitches to control how selective the workflow is and what one day can cost. Requirements An Apify account (https://apify.com/?fpr=youssef): the free plan returns 25 requests per run and holds back the last 48 hours, while a paid plan returns every request as soon as it is posted. An OpenAI account for the scoring and drafting, or any other chat model node you prefer. A Google account for Google Sheets. A Telegram bot created with @BotFather, plus your chat id. Customization Raise minScore if you get too many weak matches, lower it if you get too few. The scorer is strict on purpose: on a real run of ten mixed requests against a well-written profile, the best match scored 60 and everything off-topic landed between 10 and 30, so 55 to 65 is the useful band and 70 or above will often return nothing. maxPitches caps what one day costs in tokens and in replies you have to read. Edit the system prompt in Draft the pitch to change the voice, the length or the sign-off. Swap the OpenAI model node for Anthropic, Gemini or any other chat model and nothing else changes. Additional info HARO closed in December 2024 and the source requests that replaced it are scattered, so this pulls SourceBottle call-outs together with the #journorequest hashtag on Bluesky and Mastodon. Three things worth knowing. Every request is written to the sheet with its score and reason, including the ones that fail, which is how you tune minScore rather than guessing at it. Remove Duplicates sits before the scoring step, so a repeat run costs no AI tokens at all. And the drafting prompt requires every number in a pitch to appear verbatim in your credentials and forbids estimating or rounding, because the draft may be sent to a journalist under your name; even so, read each draft before you send it, since no prompt makes that guaranteed. An n8n automation workflow template by youssef farhan.

N8nUpdated yesterday
Free
No ratings
  • 5 nodes
Workflows
  • Automation
  • AI