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.
85–96 of 12,955
By HasData
Quick overview Find articles mentioning your brand and check whether the inspected pages link to your website. This workflow searches Google News, combines duplicate articles, reads a limited shortlist and saves matching passages, observed links and review statuses in Google Sheets. It prepares research candidates without sending outreach. How it works Load the brand domain, aliases, excluded domains, country and language settings. Validate limits and required values before making paid requests. Read queries from Queries and reject duplicates or oversized batches. Read Results once and check for duplicate saved keys. Every query runs again, rather than skipping previously saved articles. Search Google News with HasData and retain article titles, publishers, publication dates and URLs. Missing responses remain unavailable, not evidence that your brand has no coverage. Combine duplicate article URLs, keep all queries that returned each article and exclude your own domain or configured sources. Prioritize articles returned by several queries, then publication date. Limit page reads across the entire run. Read selected articles and extract text and links. Match brand aliases with word boundaries and look for direct links to your domain or subdomains. Keep failed reads and truncated content distinguishable from usable evidence. Save the discovery inventory and article review queue to Google Sheets. Filter review_unlinked_mention for matching text without an observed direct brand link. Check the complete page, publisher ownership and relevance before contacting anyone. Reviewer columns remain untouched. Setup Install the verified HasData community node. Connect HasData credentials to Fetch search evidence and Read source pages. Connect Google Sheets credentials to Read input, Read Results and Save review queue. Create Queries with the header query and add one brand-focused news search. Create Results with result_key, checked_at, topic, status, title, source_url, publisher, published_at, brand_excerpt, observed_links, citing_queries and evidence_json. Optionally add review_status and editor_notes. In Settings, replace spreadsheet_id, own_domain and brand_aliases. Add excluded domains and aliases one per line. Set gl and hl to the country and language codes you need. Start with one query and max_pages set to 2. Run manually and inspect the article text and links. If extraction fails, check content_selector before considering JavaScript rendering. Requirements An n8n workspace with the verified HasData community node installed. A HasData account with credits for Google News and Web Scraping requests. A Google account with access to the spreadsheet and someone to review candidate articles. Customization Use your brand, product aliases and news queries. Exclude owned publications or sources that are not suitable for your research. Adjust max_items and max_pages from 1 to 10. The page budget covers all queries together. Change the main-content selector for your sources and enable js_rendering only when needed. Export Results before refreshing if you need a permanent archive. Additional info A review candidate means a brand match and no direct brand-domain link in the inspected response. It does not prove that the complete article lacks a link. Redirected links, incomplete text and publisher relevance need manual checks. Each query uses one paid Google News request plus selected page reads. No AI model account is required. Automatic paid retries are disabled. Run one execution at a time. Matching result keys are updated. The workflow does not find contacts, draft pitches or send messages. An n8n automation workflow template by HasData.
- 4 nodes
- Automation
By useapi.net
Quick overview This workflow uses an n8n form or an RSS feed plus the useapi.net Gemini Notebook (NotebookLM) API to create a new notebook from web/YouTube sources, generate an Audio Overview, and either show an in-browser player with download link or output the .m4a file for downstream steps. How it works Starts when a user submits the “Make a podcast” form (or when the optional scheduled trigger runs to read an RSS feed and pick recent posts). Normalizes the input into an episode title, up to 50 source URLs, and the requested format, length, language, optional focus, and optional Google account email. Creates a new Gemini Notebook (NotebookLM) notebook via the useapi.net Gemini Notebook API. Adds the URLs as notebook sources, falling back to adding links one-by-one if Google refuses a batch, then polls the notebook until sources are readable and records which sources were skipped. Displays a “sources” review page for form runs, then starts an asynchronous Audio Overview generation job through the useapi.net API. Polls the job until it completes and either shows a result page with an embedded audio player and download link (form flow) or downloads the .m4a and outputs it as binary data for the next node (scheduled flow). Setup Create a useapi.net account, connect at least one Google account for Gemini Notebook (NotebookLM), and copy your useapi.net API token. In n8n, create an HTTP Header Auth credential with Authorization: Bearer and select it on all useapi.net HTTP Request steps. Activate the workflow and open the published “Make a podcast” form URL to submit links (and optionally provide a connected Google account email to target a specific account). To use the RSS mode, update the feed URL and settings in the workflow and enable the disabled weekly schedule trigger. Requirements A useapi.net API token (https://useapi.net/docs/start-here/setup-useapi?utm_source=n8n&utm_medium=referral&utm_campaign=notebooklm-podcast-app) and at least one Google account connected for NotebookLM (Gemini Notebook), free or paid (https://useapi.net/docs/start-here/setup-gemini-notebook?utm_source=n8n&utm_medium=referral&utm_campaign=notebooklm-podcast-app). Core n8n nodes only, tested on self-hosted n8n 2.41. Customization Change the default format, length or language on the form, add a Google Drive, S3, Telegram or podcast-host node after Episode to publish the weekly episodes, change the schedule (and lookbackDays to match), or connect more Google accounts and leave the email empty to spread episodes across them. Additional info Full walkthrough with screenshots: https://useapi.net/docs/articles/notebooklm-n8n-podcast?utm_source=n8n&utm_medium=referral&utm_campaign=notebooklm-podcast-app . Source and minimal versions on GitHub (MIT): https://github.com/useapi/notebooklm-api/tree/main/n8n . Disclosure: I work on useapi.net, a third-party API that drives your own Google account. It is not affiliated with Google. Google's own NotebookLM API is Enterprise-only (Google Cloud licenses). An n8n automation workflow template by useapi.net.
- 2 nodes
- Automation
By HasData
Quick overview Compare Google search results for paired English queries in two countries before adapting content. This workflow records shared URLs and domains, reads a bounded sample of ranking pages, and saves titles, headings, excerpts and unvisited sources to Google Sheets for an editor's localization review. How it works Read topic IDs and paired queries from the Topics tab. Validate both market settings and reject duplicate topics or oversized batches before making paid requests. Read existing Results once and check saved keys. Search each topic in both markets using the configured location and country code, with desktop device and English interface language. Retain both SERPs and compare their returned URLs and domains. Failed searches or fewer than five usable results in either market produce insufficient evidence, not an intent conclusion. Select unique pages from the top three results of each search in round-robin order. The shared page limit applies across all topics and markets, rather than separately to each query. Read selected pages with HasData and extract main text, titles and headings. Keep source URLs attached to responses. Failed reads and truncated excerpts remain visible. An empty sample skips page requests without discarding the SERPs. Save the paired comparison, page samples, unvisited URLs and editorial questions to Google Sheets. Editors review local terminology, page formats and customer needs before deciding whether to adapt one page or plan separate pages. Optional reviewer columns remain untouched. Setup Install the verified HasData community node. Connect HasData credentials to Fetch search evidence and Read source pages. Connect Google Sheets credentials to Read input, Read Results and Save review queue. Create a Topics tab with topic_id, query_a and query_b. Add one topic with two confirmed English queries. For example, compare football tickets in the US and UK. Create a Results tab with result_key, checked_at, topic, status, summary, market_a_query, market_b_query, shared_url_count, shared_domains, page_samples and evidence_json. Optionally add review_status and editor_notes. Set spreadsheet_id, location, gl, location_b and gl_b. Choose canonical locations in the HasData playground and matching country codes for the two countries. Start with max_pages set to 2, run manually and inspect the search contexts and page excerpts. Check status and unvisited sources before drawing a localization conclusion. Requirements An n8n workspace with the verified HasData community node installed. A HasData account with credits for Google SERP and Web Scraping requests. A Google account with access to the spreadsheet and an editor who can review the two English-language markets. Customization Choose your countries, locations and paired queries. The workflow is designed for English-language comparisons, not automatic translation. Set max_items from 1 to 10 topics and max_pages from 1 to 10 pages across the whole run. Adjust content_selector when page text is missing. Enable js_rendering only for pages that need it. Export Results before rerunning if you need historical snapshots. Additional info Designed for SEO editors planning localization. URL overlap does not prove search intent, and different results do not automatically justify separate pages. Each topic uses two paid Google SERP requests plus the selected Web Scraping reads. No model account is required, and automatic paid retries are disabled. Run one execution at a time. Matching rows retain the latest review, not an archive. The workflow does not measure demand, translate content, publish pages or change hreflang. An n8n automation workflow template by HasData.
- 4 nodes
- Automation
By HasData
Quick overview Check whether your branches' Google Maps listings match your approved names, addresses, phone numbers and websites. This workflow saves differences and missing fields to Google Sheets, then identifies previously different fields that match on later runs. It uses exact place IDs and never edits your listings. How it works Start manually and load the spreadsheet ID, branch limit and country calling code from Settings. Validate them before reading the input table. Read approved branch details from the Branches tab. Validate required values, reject duplicate branch IDs or reused place IDs, and stop oversized batches before paid requests. Read Results once and reject duplicate saved keys. Keep the previous comparison as the baseline for each branch. Every input branch is checked again on each run. Fetch each listing through HasData using its exact Google Maps place ID. Keep each response attached to its branch, and mark failed requests or unexpected place IDs as unknown. Compare configured names, addresses, phone numbers and website hostnames. Accept approved aliases and normalize formatting. Retain expected and observed values alongside the request metadata. Compare the current fields with their saved baseline. A field resolves only when an earlier difference now matches unchanged expected values. Missing values and failed reads cannot resolve an issue. Save differences, missing fields and resolved fields to Google Sheets. Matching result keys update the latest comparison, while optional reviewer columns remain untouched. Setup Install the verified HasData community node. Connect HasData credentials to Fetch search evidence and Google Sheets credentials to Read input, Read Results and Save review queue. Create a Branches tab with branch_id, place_id, expected_name, expected_address, expected_phone, expected_website, name_aliases, address_aliases, phone_aliases and website_aliases. Name and address are required. Phone, website and aliases are optional. Keep place IDs and phone numbers as plain text. Create a Results tab with result_key, checked_at, topic, status, summary, differences, unknown_fields, resolved_fields, place_id and evidence_json. Optionally add review_status and editor_notes for your team. Set spreadsheet_id and country_calling_code in Settings. Add one branch with verified approved details. Put approved aliases on separate lines in their cells. Run manually and inspect the expected and observed values in Results. Filter status to differences_to_review for the review queue. On a later run, check resolved_fields for differences that now match. Requirements An n8n workspace with the verified HasData community node installed. A HasData account with credits for Google Maps Place requests. A Google account with access to the spreadsheet, plus approved details and exact place IDs for your branches. Customization Add approved spelling or formatting alternatives on separate lines in the corresponding alias cells. Set max_items from 1 to 10 branches. Use one country calling code per workflow. Export Results before refreshing if you need a permanent historical archive. Opening hours are retained for manual review, not automatically compared. Additional info Designed for local SEO and operations teams reviewing branch information. A mismatch is a review task, not proof that Google is wrong. Website comparisons use hostnames, not paths. Missing data cannot resolve a difference. Each run uses one paid Maps Place request per branch, with no AI model or automatic retries. Run one execution at a time. No Google Business Profile edits or notifications are sent. An n8n automation workflow template by HasData.
- 2 nodes
- Automation
By Javed Iqbal
Quick overview This workflow watches a Google Drive folder for new PDF contracts, extracts their text, analyzes them with OpenAI, Anthropic Claude, or Google Gemini to produce a structured risk assessment, logs the results to Google Sheets, and sends a Gmail alert when the risk score crosses a threshold. How it works Triggers when a new file is created in a specified Google Drive folder. Filters events to continue only when the uploaded file is a PDF. Downloads the PDF from Google Drive, extracts its text, and trims the content to a configurable maximum length. Sends the contract text to the selected AI provider (OpenAI, Anthropic Claude, or Google Gemini) to extract structured contract fields, risk flags, a summary, and a 0–100 risk score. Normalizes the AI output into a single flat record with a calculated risk level and an alert decision based on your threshold. Appends the normalized analysis as a new row in a Google Sheets tab. Sends a formatted Gmail alert email with the summary and risk flags when the contract meets or exceeds the risk threshold. Setup Connect credentials for Google Drive, Google Sheets, and Gmail in n8n. Add credentials for one AI provider you plan to use: OpenAI, Anthropic, or Google Gemini. Select the Google Drive folder to watch and update the Configuration values (aiProvider, googleSheetId, sheetTabName, alertEmail, riskAlertThreshold, and maxCharacters). Create or choose a Google Sheets spreadsheet and ensure the target tab name (for example, “Contracts”) exists or matches the configured sheetTabName. An n8n automation workflow template by Javed Iqbal.
- 8 nodes
- Automation
- AI
By Kuzey Aras Sakınç
Quick overview This workflow collects a product brief and photo via Telegram, uploads the image to imgbb, analyzes it with OpenAI and Perplexity, generates a multi-shot storyboard with OpenAI, then uses Kie.ai (Nano Banana Pro and Sora 2 Pro Storyboard) to render a video and returns it to Telegram. How it works Triggers when a Telegram user sends a message and presents a form to collect brand details, product info, a product photo, video length, scene count, orientation, concept prompt, and spoken language. Uploads the submitted product photo to imgbb to get a public image URL, then sends a confirmation summary back to the user on Telegram. Uses OpenAI (GPT-4o vision) to describe the product photo and Perplexity to research the product and target audience. Uses OpenAI (GPT-5.1) to generate a Sora-style storyboard with per-shot English text-to-video prompts, durations, and a separate first-frame text-to-image prompt, then normalizes and cleans the output. Sends the first-frame prompt and product image URL to Kie.ai Nano Banana Pro to generate an opening image, polling Kie.ai until the image job succeeds or reporting errors to Telegram. Builds a Kie.ai Sora 2 Pro Storyboard payload using the opening image, aspect ratio, total duration, and shot list, then creates the video job and polls Kie.ai until it completes or reports errors. Downloads the resulting MP4 from Kie.ai and sends the video file and a clickable video link back to the user on Telegram. Setup Create a Telegram bot with @BotFather and add Telegram credentials in n8n for the Telegram Trigger and Telegram send nodes. Create an imgbb API key and replace the placeholder value in the imgbb upload request (the key query parameter). Add OpenAI API credentials for GPT-4o image analysis and GPT-5.1 chat-based storyboard generation. Add a Perplexity API key credential for the Perplexity research step. Create a Kie.ai API key and configure an HTTP Header Auth credential (Authorization: Bearer ) for all Kie.ai HTTP Request nodes, and update the callback URL if your Kie.ai model requires a reachable endpoint. An n8n automation workflow template by Kuzey Aras Sakınç.
- 9 nodes
- Automation
- AI
By Friedrich Bremer
Quick overview This workflow receives Telegram messages or voice notes, uses OpenAI to parse the requested date range and preferred time windows, checks busy times via Google Calendar FreeBusy, then replies with available slots in Telegram and logs each request to Google Sheets. How it works Triggers on any new Telegram update and, if the message is a voice note, downloads it and transcribes it with OpenAI. Normalizes the incoming Telegram text into a consistent payload (chat ID, detected language, and request text) and sends a short “finding slots” acknowledgement back to Telegram. Uses OpenAI to parse the request into a bounded date range, time windows (in Europe/Berlin time), and a minimum slot length. Queries Google Calendar’s FreeBusy endpoint for the requested range to get the user’s busy intervals. Calculates free time blocks by merging overlapping busy intervals, subtracting them from each requested window, filtering out slots shorter than the minimum, and excluding time that has already passed. Formats the availability grouped by day and window, sends the result to Telegram, and appends an audit log entry to a Google Sheets tab. Setup Create and connect a Telegram bot, then enable the Telegram Trigger so Telegram can deliver updates to your n8n instance. Add OpenAI credentials for audio transcription and request parsing, and select an appropriate model in the OpenAI nodes. Add Google Calendar credentials and select the calendar to check in the FreeBusy request. Add Google Sheets credentials, set the spreadsheet document ID, and create a sheet/tab named calendar_availability with the expected header columns. Optionally customize the timezone, default time windows, minimum slot length, and a fallback chat ID in the Config node. An n8n automation workflow template by Friedrich Bremer.
- 5 nodes
- Automation
- AI
By Kanishq Sharma
Quick overview Run an approved recovery job for a Supabase row update captured with Rewind. Check for later edits, conditionally restore the saved fields, and report the outcome. Capture and human approval happen separately; verify the restored row directly in Supabase. How it works Run manually during setup; enable the schedule after the disposable-data checks pass. Validate the two service origins and connection name. Claim one human-approved Rewind recovery job. Validate its supported update, table alias and row ID. Read Supabase and compare the current revision and recorded fields. Restore conditionally when they match; preserve newer edits otherwise. Report the outcome to Rewind, then independently inspect Supabase. Setup Connect Rewind before the write, capture a supported update, and approve recovery separately. Install the connector and disposable demo table from https://rewind.kanishq.dev/#connect in a development project. Select Rewind worker Header Auth on Claim approved job and Report outcome. Select Supabase apikey Header Auth on Read current resource and Conditional restore. Configure both service origins and the capture connection name. Keep inactive; test an approved restore, then a newer-edit conflict. Verify both directly in Supabase before enabling the schedule. Requirements A Rewind account, registered Supabase row, installed connector RPCs, and separate worker/server credentials stored in n8n. No credentials are included. Additional info Supports registered Supabase row updates and supported scalar fields. It does not undo inserts, deletes, trigger side effects, sent messages, or other workflow actions. A worker success report is not independent verification. Inspect unknown outcomes manually before attempting any further restore. An n8n automation workflow template by Kanishq Sharma.
- 2 nodes
- Automation
By Christoph Dibbern
Quick overview This workflow lets you upload one or more PDF timesheets in n8n chat, extracts the text, uses an Azure OpenAI model to total onsite/remote/unknown hours per consultant, appends the results to a Microsoft Excel workbook and an n8n Data Table, then sends a confirmation email via Microsoft Outlook. How it works Receives an n8n chat message with one or more PDF file uploads. Splits the uploaded files so each PDF is processed as its own item. Extracts plain text from each PDF. Sends the extracted text to an Azure OpenAI-powered agent to classify entries and return total onsite, remote, and unknown hours plus the consultant name as JSON. Parses the agent response into structured JSON and stops with an error if the output is not valid JSON. Appends one row per timesheet to a Microsoft Excel worksheet and also inserts the same values into an n8n Data Table. Sends a Microsoft Outlook email after all rows are saved to confirm processing is finished. Setup Configure credentials for Azure OpenAI (chat model), Microsoft Excel, and Microsoft Outlook. In Microsoft 365 Excel, select the target workbook and worksheet and ensure it has columns named name, onsite, remote, and unknown. Create or select an n8n Data Table with matching columns (name, onsite, remote, unknown) and set it in the Data Table node. Update the Outlook recipient address (and optionally subject/body) in the email step. Use the n8n chat to upload a test PDF with a text layer (scanned PDFs require OCR first) and verify rows are written to Excel and the Data Table. An n8n automation workflow template by Christoph Dibbern.
- 5 nodes
- Automation
- AI
By Pulsy Labs LLC
Quick overview This workflow listens for events from an Atria feed, extracts key fields from the incoming payload, and forwards the data to a custom HTTP endpoint; it also includes a manual path to automate Atria lifecycle instances. How it works Receives incoming feed events from Atria via a webhook trigger. Extracts the event metadata and count from the Atria payload and formats the output. Sends the formatted event data as a JSON string in a POST request to a configured webhook.site (or any HTTP) endpoint. Optionally, when run manually, fetches the feed details from Atria to verify the feed configuration. Setup Create an Atria API credential in n8n and replace the placeholder credential ID/name in the Atria nodes. Replace REPLACE_WITH_FEED_UUID with your Atria feed ID in both the trigger and the feed retrieval step. Replace the webhook.site/REPLACE_WITH_YOUR_TOKEN URL with your target HTTP endpoint that should receive the POSTed payload. Requirements Atria free account and Atria api-key. An n8n automation workflow template by Pulsy Labs LLC.
- 1 nodes
- Automation
By Oneclick AI Squad
Quick overview This workflow captures INSERT/UPDATE/DELETE changes from PostgreSQL via an outbox table and syncs them to HubSpot, Mailchimp, and Slack on a 1-minute schedule, with leasing, retries with exponential backoff, dead-letter alerting, and a webhook endpoint to requeue failed events. How it works Runs every minute and loads sync settings such as batch size, enabled targets, and retry/backoff limits. Claims a batch of eligible rows from the PostgreSQL cdc_outbox table using a lease so multiple workers can process safely while preserving per-row ordering. Expands each claimed change into one delivery task per enabled target (HubSpot upsert, Mailchimp member sync/unsubscribe, and/or Slack notification), skipping targets that already succeeded. Sends each task sequentially to HubSpot, Mailchimp, or Slack via HTTP requests and records whether the call succeeded, failed temporarily, or failed permanently. Updates each outbox event in PostgreSQL as delivered, scheduled for retry with exponential backoff, or dead-lettered, and posts a Slack alert when any events become dead. Accepts POST /cdc-requeue requests to reset dead-lettered event IDs back to pending in PostgreSQL and returns how many were requeued. Setup Add PostgreSQL credentials, update the source table name in the setup query (default public.customers), and run the manual setup once to create cdc_outbox plus the capture function and trigger. Create HubSpot authentication using HTTP Header Auth (Authorization: Bearer ) and Mailchimp authentication using HTTP Basic Auth (any username, API key as password). Set your Mailchimp data center and list ID, and provide Slack incoming webhook URLs for both change notifications and dead-letter alerts. Adjust the field mapping used for HubSpot and Mailchimp payloads (for example email, first_name, last_name, phone, company) to match your PostgreSQL row schema. Copy the workflow’s cdc-requeue webhook URL and use it to requeue dead-letter IDs after fixing the underlying error. An n8n automation workflow template by Oneclick AI Squad.
- 3 nodes
- Automation
By Jitterflow
Quick overview This workflow verifies Shopify orders/create webhooks, transforms each order into an ERP import payload, and queues it in Jitterflow for rate-limited delivery with retries and idempotency, then posts a daily Slack summary of orders that ended up in Jitterflow’s dead-letter queue. How it works Receives a Shopify orders/create webhook request and keeps the raw request body for signature verification. Computes the Shopify HMAC signature and rejects the request with a 401 response if the signature does not match the x-shopify-hmac-sha256 header. Maps the Shopify order data into an ERP-friendly payload including order identifiers, customer and shipping details, totals, and line items. Sends the mapped order to Jitterflow with an idempotency key based on the Shopify order ID, then responds 200 to Shopify only after the order is successfully queued. Runs every morning at 8:00 to list unresolved items in the Jitterflow dead-letter queue and keeps only those originating from Shopify. Aggregates the failed Shopify orders into a single list and posts a Slack message summarizing which orders did not reach the ERP and the associated HTTP status or failure reason. Setup Install the n8n-nodes-jitterflow community node and create a Jitterflow API credential in n8n. In Jitterflow, create an endpoint that targets your ERP’s order-import URL, configure its delivery cadence to match the ERP rate limit, and copy the endpoint key into the workflow. Create a Crypto credential in n8n with your Shopify webhook signing secret and select it for the HMAC computation step. Add a Slack credential, set the target channel (for example, orders-ops), and ensure the workflow has permission to post messages. Activate the workflow and register its production webhook URL in Shopify for the orders/create topic using JSON format. Requirements A Jitterflow account and API key (the free Developer plan works). The n8n-nodes-jitterflow node, which is verified and available on n8n Cloud. Shopify admin access to add an orders/create webhook and copy its signing secret. A Slack workspace for the failure alerts. Customization Change the fields in Map order to ERP format to match your ERP's import schema. Set Target Identifier to the shop domain to pace each store separately. Send the daily alert to email or Microsoft Teams instead of Slack. An n8n automation workflow template by Jitterflow.
- 2 nodes
- 1 views
- Automation