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.
1–12 of 12,955
By Oneclick AI Squad
Quick overview This workflow runs every 15 minutes to incrementally pull updated order records from a REST API into PostgreSQL, automatically mapping and adapting the destination table when the source schema changes, and sending Slack alerts for extract failures, load failures, and detected schema changes. How it works Runs on a schedule every 15 minutes and loads ETL configuration, the last saved watermark, and the current schema registry from PostgreSQL. Calls the source REST API for records updated since the watermark (with a configurable overlap window) and fetches one page of results. Parses the HTTP response, validates the payload, flattens one level of nested objects, de-duplicates records by primary key, and routes errors to a Slack webhook. Infers field types from the extracted data, compares them to the PostgreSQL schema registry, and generates DDL to add new columns, widen column types, or deactivate missing fields. Applies any schema updates in PostgreSQL, logs schema changes to tracking tables, and posts a schema-change notification to Slack. Upserts the page into the PostgreSQL destination table (including a JSONB copy of the original record in _raw) and posts a Slack alert if the load fails. Advances the PostgreSQL watermark only after a successful load and loops to fetch the next page until the source is drained or the per-run page limit is reached. Setup Add PostgreSQL credentials to all PostgreSQL nodes and manually run the workflow once to create the ETL state tables, schema registry tables, and destination table. Update the values in Set ETL Config (sourceUrl, recordsPath, pkField, updatedAtField, destTable, paging settings, and slackWebhookUrl) to match your API and database. Add an HTTP Header Auth credential for the HTTP Request node if your API requires authentication, and adjust the query parameter names in the extract-request logic to match your API. Create and configure a Slack incoming webhook for the target channel and paste its URL into the configuration so extract, schema-change, and load alerts can be delivered. An n8n automation workflow template by Oneclick AI Squad.
- 3 nodes
- Automation
By Oneclick AI Squad
Quick Overview This workflow runs hourly or via a webhook to scan a PostgreSQL table for missing required values, duplicate business keys, numeric anomalies, and table health issues, then stores run history and issues in PostgreSQL and sends Slack alerts only when attention is needed. How it works Runs every hour on a schedule or starts on demand when a POST request is sent to the /dq-run webhook. Loads the data-quality configuration (table name, key columns, required columns, numeric columns, thresholds, and Slack webhook URL) and validates it before building SQL. Queries PostgreSQL to detect missing required values, duplicate business keys (optionally normalized), numeric outliers using a robust z-score, and table health stats (row counts and timestamp freshness). Scores completeness, uniqueness, validity, and timeliness, classifies the run as pass/warn/fail/error, and selects the most important issues for reporting. Writes the run summary to dq_runs, inserts only newly observed issues into dq_issues, and optionally auto-resolves issues that no longer appear after a full scan. Posts a formatted alert to Slack when the run fails/errors, critical issues are found, or new warnings appear; otherwise it stays quiet. Setup Add PostgreSQL credentials for all PostgreSQL nodes and run the manual setup to create the dq_runs, dq_issues, and optional dq_demo_orders tables. Update the configuration values (tableName, pkColumn, timestampColumn, requiredColumns, duplicateKeyColumns, numericColumns, scopeHours, and thresholds) to match your PostgreSQL table. Provide a Slack incoming webhook URL in slackWebhookUrl and ensure your Slack workspace allows incoming webhooks. If using on-demand runs, copy the /dq-run webhook URL from n8n and call it with an HTTP POST from your source system. An n8n automation workflow template by Oneclick AI Squad.
- 3 nodes
- Automation
By Sebastian Schramm
Quick overview Collect participant sign-ups, match people into relevant 1:1 pairs with OpenAI, create Google Meet appointments in Google Calendar, and send invitations automatically. Based on a real-world matching workflow from innovation-networking.de and adaptable for events, communities, cohorts, and internal networking. How it works Receives participant submissions from an n8n Form and loads matching and meeting settings from default values, optionally overridden by a Google Sheets row. Checks whether the current time is before the configured matching deadline and either saves the sign-up as “registered” in an n8n data table or shows a “sign-ups closed” message. Runs every 15 minutes and, once the matching deadline is reached, loads all “registered” participants from the n8n data table. Deduplicates participants by email and sends the participant list and matching criteria to OpenAI to generate pairs (and one group of three only if the count is odd) with a short reason. Creates a Google Calendar event for each group at the configured start time and duration, generating a Google Meet link and adding all group members as attendees. Sends a Gmail message to each group with the match reason, event time, and Google Meet link, then updates each participant’s record to “matched” with their partner emails and meeting link. Setup Create an n8n data table for participants (name, email, description, status, partner_emails, meeting_link) and select it in the nodes that save, load, and update sign-ups. Add OpenAI credentials for the Chat Model used to generate the matching pairs. Add Google Calendar credentials (and choose the target calendar if not using “primary”) and ensure your account can create events with Google Meet conferencing. Add Gmail credentials for sending the invitation emails and adjust the email subject/body text if needed. (Optional) Create a Google Sheets settings spreadsheet with columns for matching_deadline, matching_criteria, meeting_start, meeting_duration_minutes, meeting_title, and timezone, then select the document and sheet in the Google Sheets node. Activate the workflow and share the published n8n Form URL using the configured path (/form/matching-signup). Requirements n8n instance with Data Tables OpenAI API account Google account with Google Calendar and Gmail Google Sheets account only if you want to manage settings externally Customization Change the matching criteria to pair participants by interests, industry, profession, location, complementary skills or any other criteria. Adjust the meeting date, duration, title and timezone. Customize the registration form and invitation email for your event or community. Use Google Sheets to manage new matching rounds without editing the workflow. Additional info This workflow was originally developed for innovation-networking.de, an initiative that connects people from the innovation ecosystem through short 1:1 conversations. The published template generalizes this concept so it can be reused for meetups, conferences, communities, accelerators, cohorts, and internal networking events. Learn more about the original initiative: https://innovation-networking.de. An n8n automation workflow template by Sebastian Schramm.
- 7 nodes
- Automation
- AI
By Vlotstroom
Quick overview This workflow runs every hour to rescue at-risk appointments: it validates every row, sends one WhatsApp check-in to each unconfirmed customer starting in 90-150 minutes, waits for the reply, classifies it, and routes confirmed replies to your calendar and everything else to staff. How it works Runs every hour on a schedule and loads appointments from the demo source (replace with Google Sheets in production). Validates every row: missing ids or phones and unparseable start times go to an error log with the exact reason. Picks appointments that are unconfirmed and start 90-150 minutes from now; a static-data guard guarantees exactly one check-in per appointment even if the workflow fires twice. Sends each customer one WhatsApp check-in asking them to reply YES or NO (placeholder send step in the template). Waits up to 15 minutes for an inbound reply that resumes the execution via a webhook. Classifies the reply as confirmed, cancel_requested, unclear, or no_reply. Confirmed replies mark the calendar; cancel, unclear and no-reply flag staff. Setup Replace the demo appointment source with your real data source (for example Google Sheets) and ensure it provides appointment_id, customer_name, phone, starts_at (ISO), practitioner, treatment, and status. Add WhatsApp Business Cloud credentials and replace the placeholder send step with a Send Message action configured to message the appointment phone number. Configure WhatsApp inbound webhooks to call the n8n Wait node resume URL so customer replies continue the correct execution. Wire the two replace-me end nodes: a calendar or sheet update for confirmed replies, and your staff channel (Slack, email, or a needs-attention sheet) for everything else. Requirements n8n on any plan. The demo run needs no credentials; production needs a Google Sheets or calendar credential plus WhatsApp Business Cloud. Customization Check-in window (90-150 minutes), reply wait (15 minutes), and YES/NO keywords (English and Dutch variants) are plain settings in the named nodes. An n8n automation workflow template by Vlotstroom.
- 1 nodes
- Automation
By takafumi sekine
Quick overview This workflow collects a scene manifest and zipped images from an authenticated n8n form, validates stage order and face-review metadata, renders a narrated process video via a companion renderer service, and optionally schedules the approved 9:16 MP4 to Instagram, YouTube, and TikTok using the Metricool API. How it works Receives an operator submission via an authenticated n8n Form (or runs a manual synthetic demo) containing a scene-manifest JSON and an image ZIP. Validates the manifest for required stages, chronological scene order, safe filenames, text length limits, and explicit reviewed face-box entries for every image. Uploads the manifest and assets to the external renderer service to generate masked preview images, then pauses for the operator to approve face coverage. Generates one narration audio file per scene using OpenAI Text-to-Speech and uploads each clip to the renderer service. Starts the reviewed render and polls the renderer service until the job completes or fails. Prompts the operator to review the encoded video and QA frames via a renderer-provided review URL, then records final approval. If Metricool scheduling is enabled, collects and validates a UTC publish time plus caption/title, releases a public MP4 URL from the renderer, schedules a three-network post in Metricool, and records the scheduler ID and provider statuses. On a 15-minute schedule, fetches recorded scheduled posts and queries Metricool for provider publication status updates, then writes the results back to the renderer service records. Setup Run the included companion renderer service (downloaded from the workflow’s “Export setup files” output) with FFmpeg and required fonts/dependencies, and set the renderer base URL and HTTP header auth in the workflow. Create an OpenAI API key and configure it as an HTTP header credential for the OpenAI Text-to-Speech request. If using Metricool scheduling, obtain Metricool API access and set up an HTTP header credential (X-Mc-Auth), then fill in your Metricool userId/blogId and verify Instagram/YouTube/TikTok account connections and network options. Ensure your renderer can generate a stable public HTTPS MP4 URL for Metricool to ingest, and keep portrait exports at 1080×1920 and under 175 seconds to pass the workflow checks. Requirements Self-hosted companion renderer (complete source and README included in Export setup files), Python 3.10+, FFmpeg/ffprobe with libx264, NumPy, Pillow, a licensed Japanese font, and OpenAI API access. Optional scheduling requires Metricool Advanced or Custom API access, three connected accounts and a stable public HTTPS media origin. Customization Adjust stage labels, scene text, narration voice and portrait/landscape output. Keep every required stage and end with completion. Configure face boxes for every image, using [] only after checking a face-free image. Enable Metricool only after verifying account-specific network settings. Additional info This template accepts an operator-reviewed manifest; automatic photo classification is not included. Face coverage and the final encoded video require human review. Scheduling is disabled by default. Local validation used synthetic photos/audio and mock provider APIs; live OpenAI generation, Metricool authentication and actual social publication were not tested. A scheduled receipt is not proof of publication. Durable claims prevent blind scheduling retries; reconcile uncertain responses before retrying. Companion source and setup instructions are embedded in the JSON and downloadable from Export setup files. No credentials, personal photographs or account IDs are included. An n8n automation workflow template by takafumi sekine.
- 2 nodes
- Automation
By Haopeng Zhang
Quick overview This workflow runs manually and uses OpenAI (GPT-4o-mini) to generate 10 scroll-stopping content hooks from a provided topic, audience, and tone, returning the results as JSON. How it works Runs when you manually execute the workflow. Sets the input values for topic, target audience, and writing tone. Sends the inputs to OpenAI (GPT-4o-mini) with instructions to generate 10 short hooks in mixed styles and return only valid JSON. Outputs the OpenAI response content as a single hooks field for copying or use in downstream steps. Setup Add an OpenAI credential/connection for the OpenAI node. Update the topic, audience, and tone values to match your content needs. Run the workflow manually to test it, then copy the generated JSON output into your content calendar. You can also connect additional nodes to automatically store the hooks in Google Sheets, email them to your team, or publish them straight to your social channels. An n8n automation workflow template by Haopeng Zhang.
- 1 nodes
- Automation
- AI
By Aryan Shinde
Quick overview This workflow runs manually or daily at 4 PM to pull the next pending item from Google Sheets and publish it to Instagram (Reels for MP4 videos or an image post) via the Facebook Graph API, then updates the sheet and sends Gmail success or error notifications. How it works Runs when you click “Test workflow” or on a daily schedule around 4 PM. Reads the first row in Google Sheets (Sheet1) where Status is Pending. Checks whether the queued asset is an MP4 to decide between publishing a Reel (video) or an image post. Creates an Instagram media container via the Facebook Graph API using the provided media URL/filename and caption. Polls the container status via the Facebook Graph API and waits 15 seconds to retry while processing is IN_PROGRESS. Publishes the media to Instagram when the container status is FINISHED. Updates the Google Sheets row to Completed and emails a Gmail success message including remaining pending count, or marks Error Publishing and sends an error email if the container status is ERROR. Setup Connect credentials for Google Sheets OAuth2, Facebook Graph API (with permissions to publish to your Instagram Business account), and Gmail OAuth2. Replace YOUR_SPREADSHEET_ID in all Google Sheets nodes and ensure Sheet1 has at least the columns Status and Filename (optionally Url and Caption) with rows queued as Status = Pending. Replace YOUR_INSTAGRAM_ACCOUNT_ID (or populate an instagram_account_id column) so the Facebook Graph API nodes target the correct Instagram Business Account. Ensure each queued item has a publicly reachable Url (video_url/image_url) or update the S3-style fallback URL pattern to match where your media files are hosted. Update the recipient address in both Gmail nodes (success and error) to your notification email. An n8n automation workflow template by Aryan Shinde.
- 4 nodes
- Automation
By Amplence
Quick overview This workflow monitors a Gmail label for Shopify return-request emails, uses Anthropic Claude to extract key details, checks eligibility against a JavaScript return policy, calculates the refund in Shopify, requests approval in Slack, replies via Gmail, and logs each outcome to Google Sheets. How it works Triggers every minute when a new unread Gmail message arrives with the returns label (or runs a manual test with a built-in sample request). Uses Anthropic Claude to extract the order number, return items, reason, and requested resolution from the email text. If no order number is provided, posts a Slack note for staff, replies asking the customer for the order number, and logs the request to Google Sheets. If an order number is provided, verifies Gmail DMARC pass, fetches the matching order from Shopify via GraphQL, and applies return-policy checks (ownership, status, delivery window, final-sale tags, and item matching) to decide whether it can proceed. For eligible returns, asks Shopify to calculate the suggested refund for the selected line items (and optional shipping), then sends a Slack approval message that waits up to 48 hours for an approver to approve or decline. If approved, creates the refund in Shopify (or simulates it in dry-run/test mode), then posts the result to Slack, optionally replies to the customer in Gmail, and appends a row to a Google Sheets “Returns log”. Setup Connect Gmail OAuth2 credentials for reading labeled emails, checking Authentication-Results headers, and sending reply emails. In the Shopify Dev Dashboard, create and install an app for your store with scopes read_orders, read_all_orders, write_orders and read_products, and request access to the order email field. In n8n, add a Custom Auth credential with {"body": {"client_id": "...", "client_secret": "..."}} and select it in Get Shopify token and Refresh Shopify token. Connect Slack and Anthropic credentials. Enable Slack interactivity for the approval buttons (Interactivity URL and signing secret, per n8n's Slack approvals docs), then set the channel and, optionally, the approver Slack user IDs in Store settings. Connect Google Sheets credentials, paste your spreadsheet ID, and create a sheet/tab named “Returns log” with the expected columns. Update the “Store settings” values (shop domain, API version, return windows, final-sale tags, restocking fee rules, and customer reply templates) and create a Gmail label named returns with a filter that applies it to return-request emails. Requirements Shopify store with a Dev Dashboard app (read_orders, read_all_orders, write_orders, read_products, order email access; Grow plan or higher for protected customer data) Gmail account with OAuth2 credentials in n8n Slack workspace with an app that has interactivity enabled for approval buttons Google Sheets spreadsheet with a "Returns log" tab Anthropic API key (Claude) Customization Change the return window, faulty-item window and shipping grace days in Store settings Choose which reasons count as faulty and which carry a restocking fee, and set the fee percent Set the product tags that mark final-sale items Restock returned items by setting restockType to RETURN and a location ID Rewrite the four customer reply templates in your store's voice Limit who can approve refunds with a comma-separated list of Slack user IDs Swap Claude for another chat model in the extraction step Additional info Every eligibility rule runs in a Code node, not in the model: Claude only extracts details from the email. Refund amounts come from Shopify's suggestedRefund, and refundCreate runs only after a Slack approval, with an idempotency key so a retry cannot refund twice. Runs started from the editor are dry runs that never refund or email customers. Exchanges, store credit, not-received claims, multi-currency orders and senders that fail DMARC go to a person. The workflow refunds money but does not create a Shopify Return, so approve once the item is back or when you accept refunding first. The canvas is laid out left to right in seven labelled sections, with every early exit and failed step collected in one lane before the final Slack post, reply and log. An n8n automation workflow template by Amplence.
- 7 nodes
- Automation
- AI
By Orshot
Quick overview This workflow watches listing status changes in Airtable, renders a branded vertical real estate video in Orshot from the listing and agent details, publishes the MP4 to Instagram and TikTok, and writes the video URL and post time back to the Airtable record. How it works Triggers when the Airtable “Status Updated” field changes for a listing record. Extracts and formats listing details, features, photos, and agent information from the Airtable record to match the Orshot template fields. Routes the record based on the listing Status, sending “Just Listed” to a listing reel render and “Sold” to a just-sold render. Calls Orshot to render the selected studio template and waits for the MP4 output URL. Publishes the rendered video to the selected Instagram and TikTok accounts in Orshot with a status-based caption. Updates the original Airtable record with the published video URL and the post time. Setup Create Airtable personal access token credentials in n8n, then select your base and table in the Airtable trigger and update steps. In Airtable, add a “Status Updated” Last modified time field that watches the Status field, and add “Video URL” and “Posted At” fields to store outputs. Add Orshot credentials in n8n, copy the listing reel template and the Just Sold template into your Orshot workspace, and pick each one in its Orshot render step. Connect your Instagram Business and TikTok accounts in Orshot under Social accounts, then pick them in the publish step. Ensure your Airtable field names (Address, City, Price, Beds, Baths, Square Feet, Acres, Features, Photos, and agent fields) match the mappings used in the workflow or update the field references accordingly. Requirements Orshot account on a plan with video renders and social publishing Airtable base with one record per listing, including a Photos attachment field Instagram Business and TikTok accounts connected in Orshot Customization Add Switch outputs for Open House or Price Improved videos Swap the Airtable trigger for Google Sheets if your listings live in a sheet Turn on Save as Draft in the publish step to review each reel before it goes live Additional info Full walkthrough with a live preview of the template: Real estate listing videos with Orshot. An n8n automation workflow template by Orshot.
- 4 nodes
- Automation
- AI
By Oneclick AI Squad
Quick overview This workflow provides a durable long-running job runner backed by Postgres, executing multi-step tasks with Anthropic Claude and supporting pause/resume/cancel, approvals via WhatsApp, and automatic recovery after crashes or expired leases. How it works Receives a POST request on the /webhook/durable-job webhook to validate the task and steps, create an idempotent job record, and store the initial job state in Postgres. Claims an atomic lease on the job in Postgres and decides what to do next based on the latest saved state and any requested control action. For runnable steps, sends the current step prompt to the Anthropic Messages API (optionally using the web_search tool) and records output, token usage, and cost back to Postgres as a checkpoint. For steps that require approval, marks the job as awaiting approval in Postgres, sends approve/reject links via WhatsApp, and waits up to 24 hours for a webhook-based decision. Receives a POST request on the /webhook/durable-job-control webhook to apply control actions (status, pause, resume, cancel, retry, approve, reject) via guarded SQL updates and re-queues the job when it should resume. Runs every minute on a schedule to find stale or interrupted jobs in Postgres, re-claim them for recovery, and fail jobs that exceed the configured recovery limit. When a job completes or fails, updates the final job state in Postgres and sends a terminal notification via WhatsApp. Setup Configure a Postgres credential, select it on all Postgres nodes, and run the manual “Create Tables” trigger once to create the durable_jobs table and indexes. Configure an Anthropic API key as an HTTP Header Auth credential (using header x-api-key) and select it on the HTTP Request step that calls the Anthropic Messages API. Configure WhatsApp Business credentials for the WhatsApp nodes and set the WhatsApp Phone Number ID and recipient phone number in the workflow’s configuration values. Review and update the durable configuration values (model ID, token limits, max attempts, lease seconds, and pricing catalog) to match your environment. In the workflow settings, set this workflow as the error workflow so failures mark the currently leased job as interrupted for recovery. Activate the workflow and use the provided webhook URLs from n8n in your client that starts jobs and sends control actions. An n8n automation workflow template by Oneclick AI Squad.
- 3 nodes
- Automation
By AI Automation Playbook
Quick overview Never miss a lead again: this workflow texts back missed callers via Twilio SMS and turns voice AI call summaries into Google Calendar bookings — with Sheets logging and owner alerts. How it works Twilio call-status webhooks arrive here; missed inbound calls get an immediate SMS reply, are logged to Google Sheets, and trigger an owner alert. Your voice AI posts its end-of-call summary; the workflow extracts caller name, phone, service and time with AI and builds the event times. The workflow creates a Google Calendar event, texts the caller a confirmation, logs the call, and notifies the owner. Setup Connect your Twilio, Google Sheets, Google Calendar and OpenAI credentials. Fill the two CONFIG nodes (business name, numbers, sheet ID, calendar ID, booking link). Point your Twilio number's voice webhook at the workflow's production URL. Point your voice AI's end-of-call report at the second webhook. Create the MissedCalls and VoiceCalls sheet tabs. Requirements Twilio account with a phone number, a Google account, an OpenAI API key, and — for the voice layer — a Vapi or Retell voice agent. Customization Edit the SMS copy in the Twilio nodes, change the CONFIG fields per client, swap the Sheets logger for your CRM, or extend the AI extraction schema with extra fields. Additional info Who's it for: Local service businesses — plumbers, clinics, salons, contractors — that lose jobs when calls go to voicemail, and anyone running a voice AI receptionist (Vapi, Retell) who wants bookings to land in the calendar automatically. An n8n automation workflow template by AI Automation Playbook.
- 6 nodes
- Automation
- AI
By Mayron Kersbaum
Quick overview This workflow retrieves all child blocks from a Notion page or block ID, handling Notion API pagination by recursively calling itself until all content is collected. How it works Receives an input containing the Notion page or block ID (and optional accumulated results and cursor for pagination). Calls the Notion API to fetch up to 100 child blocks for the given block ID, using the provided cursor when present. Checks the Notion response field has_more to determine whether additional pages of blocks exist. If more blocks exist, re-runs the same workflow with next_cursor and the blocks accumulated so far to continue pagination. When no more pages exist, merges all retrieved blocks into a single results array and outputs the consolidated content. Setup Add a Notion API credential and ensure it has access to the target page or block. Create an n8n variable named Notion_Version and set it to the Notion API version you want to use. In the “Buscar Próxima Página” step, select this same workflow so it can call itself recursively. An n8n automation workflow template by Mayron Kersbaum.
- 2 nodes
- Automation