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.
73–84 of 12,955
By youssef farhan
Quick overview This workflow runs every Monday, reads target account domains from Google Sheets, uses Apify to collect each company’s current job postings, and uses OpenAI to score buying signals and draft short outreach openers, saving all results back to Google Sheets and sending the best opportunities to Telegram. How it works Runs every Monday at 8am on a schedule. Reads a list of company domains from a Google Sheets tab and aggregates them into a single domain list. Uses Apify (Company Domain to Job Postings actor) to resolve each domain to its job board and fetch open roles with descriptions. Skips job postings that were already processed in previous executions, then groups the remaining postings by company domain. Sends each account’s grouped postings to OpenAI to generate a 0–100 score, a short “signal” phrase, and an evidence quote from the posting text. Appends an account brief row for every scored account to a Google Sheets “Briefs” tab. Filters to accounts meeting the minimum score (and caps the count), has OpenAI write a subject line and 80-word opener, and sends each brief plus opener to a Telegram chat. Setup Create/connect Google Sheets credentials, then paste your spreadsheet URL and set the Accounts/Briefs tab names and domain column header in the workflow’s target settings. Create a free Apify account at https://apify.com/?fpr=youssef and connect it in the Apify node. The node runs the Company Domain to Job Postings Actor (https://apify.com/fayoussef/company-domain-to-job-postings?fpr=youssef), which resolves each domain to the applicant tracking system that company actually uses and returns the open roles with their descriptions. Add OpenAI credentials (Chat Completions) and select the model you want to use. Create a Telegram bot, connect Telegram credentials, and paste your target chat ID into the workflow’s target settings. Requirements An Apify account (https://apify.com/?fpr=youssef). The free plan covers a short account list per run. An OpenAI account for the two AI steps, a Google Sheet holding your target account domains, and a Telegram bot created with @BotFather. No LinkedIn or Sales Navigator access is needed: the postings come from each company's own job board. Customization minScore sets how strict the qualification is. 60 to 70 is the useful band, and most accounts scoring under 40 in a given week is correct behaviour rather than a broken run, because the scorer is told that growth on its own is not a buying signal. titleKeywords narrows which roles are fetched at all, which is the cheapest filter available since it runs before any AI reads anything. maxAccounts caps how many openers one run writes. Change the Save every account brief node to Append or update, matching on your domain column, if you would rather write results back into your own account list; those columns have to exist in that tab first. The OpenAI model node can be swapped for Anthropic, Gemini or any other chat model without touching the rest. Additional info Read every opener before you send it. The prompt forbids the model from stating the account's goals, headcount, funding, tooling or timeline unless the words appear in the quoted evidence, and the evidence has to be a phrase from the postings themselves rather than a mission statement. That removes most invented detail, but no prompt makes it guaranteed, and the message goes out under your name. Remove Duplicates sits before the scoring step on purpose, so a weekly run that finds no new postings spends nothing on AI tokens. Every account is written to the Briefs tab including the ones that score too low, which is how you tune minScore after a week of real data. An n8n automation workflow template by youssef farhan.
- 6 nodes
- Automation
- AI
By Benian Technologies
Quick overview Turn confirmed appointment requests into private Google Calendar events. This webhook workflow validates the request, checks availability, verifies the created event and returns clear outcomes for invalid, busy or unconfirmed bookings. How it works Receives a POST webhook request containing start, end, summary, request_id, and confirmed fields. Validates that the request is confirmed, uses RFC3339 timestamps with seconds and an explicit offset, enforces a future start time and a maximum 1-day duration, and verifies request_id format. Checks Google Calendar availability for the requested start/end interval. Returns a 502 response if Google Calendar availability cannot be confirmed. Creates a private Google Calendar event with the provided summary and uses request_id as the event ID when the interval is available. Verifies the returned event ID, confirmed status and requested time range before returning 201. Invalid input returns 400, a busy interval returns 409, and a provider failure or unconfirmed creation returns 502. Setup Create and select a Webhook Header Auth credential, and set a unique webhook path to receive booking requests. Add a Google Calendar OAuth2 credential and replace YOUR_CALENDAR_ID with your target calendar ID in both Google Calendar nodes. Keep the workflow inactive while configuring it. Use a dedicated test calendar and test invalid, busy, successful and unconfirmed requests. Send confirmed=true, explicit-offset RFC3339 timestamps with seconds, a summary of up to 160 characters, and a stable request_id of 16–64 lowercase characters a–v or digits. Requirements An n8n instance, Webhook Header Auth credential, Google Calendar OAuth credential and a calendar the credential can write to. Serialize all calendar writers if overlapping reservations are unacceptable. Customization Adjust request validation and event-summary rules for your scheduling process. Keep provider-result validation and explicit error responses when adapting the workflow. Additional info Availability checks and event creation are separate operations, so concurrent writers can create overlapping bookings. A repeat request may report busy after an earlier success. Reconcile the stable request_id before retrying; this is not an exactly-once guarantee. The event has no guests and this workflow sends no booking confirmation. Local synthetic validation has passed, but a real n8n import and Google Calendar integration test remain required before use. Created by Benian Technologies. An n8n automation workflow template by Benian Technologies.
- 2 nodes
- Automation
By Onur Olgun
Quick overview This workflow uses a Telegram bot, Google Gemini, Google Calendar, and Google Sheets to automatically reply to customers, answer FAQ/price questions, and create appointments in Google Calendar, while notifying the business owner when an appointment is booked or human support is needed. How it works Triggers when a new Telegram message is received. Extracts the Telegram chat ID, message text, and sender name and passes them to a Google Gemini-powered AI agent with short-term conversation memory. Depending on intent, the AI agent queries Google Calendar for availability and creates a Google Calendar event when the user confirms a time, or searches a Google Sheets FAQ/pricing document to draft a concise answer. Sends the AI-generated reply back to the customer on Telegram, removing internal tags from the visible message. If the reply indicates an appointment was created, sends a Telegram notification to the business owner with the customer details. If the reply indicates a complaint or a need for human support, sends a Telegram alert to the business owner with the message details. Setup Create and connect Telegram credentials, then enable the Telegram Trigger so your bot can receive messages. Add Google Calendar OAuth2 credentials, ensure the target calendar (for example, "primary") is correct, and confirm the workflow has permission to read availability and create events. Add Google Sheets OAuth2 credentials and replace GOOGLE_SHEETS_FAQ_DOC_ID and the target sheet name with your FAQ/pricing spreadsheet details. Add Google Gemini (Google AI) credentials for the chat model used by the AI agent. Replace BUSINESS_OWNER_TELEGRAM_CHAT_ID with the Telegram chat ID that should receive appointment and complaint notifications. An n8n automation workflow template by Onur Olgun.
- 4 nodes
- Automation
- AI
By Amelqa
Quick Overview This workflow schedules batch voice-over production by pulling queued topics from an n8n Data Table, generating and validating scripts with Google Gemini, creating WAV narration with Gemini TTS, optionally running a transcription listen-back QA, and sending audio and script files to Telegram for approve/redo decisions. How it works Runs every morning on a schedule, ensures the vs_queue n8n Data Table exists, and pulls the next queued topics up to the configured batch size. For each topic, builds a niche- and format-specific prompt and uses Google Gemini to generate a structured JSON script, falling back to a backup Gemini model if needed. Checks the script for length, hook, scene structure, clichés, visuals, and facts to verify, and optionally asks Gemini to fix issues once and keeps the better version. Sends the narration to Google Gemini TTS to generate a WAV voice-over with a backup TTS model if the first request fails, then derives scene timing from real pauses and builds SRT captions. If enabled, transcribes the audio with Google Gemini and compares it to the script to compute a word-level match score and identify missing or extra words. Writes the results (checks, listen-back score, package JSON, and metadata) back to the vs_queue row and starts a separate review run for each voice-over. Sends the audio and a detailed script text file to Telegram and waits for an approval or redo response, then marks the row as approved with the Telegram file ID or re-queues the topic. Setup Add a Google Gemini (PaLM) API credential and select it for the Google Gemini nodes and the HTTP requests that call the Gemini TTS endpoint. Create a Telegram bot with @BotFather, add the Telegram credential in n8n, and start a chat with the bot so it can message you. Update the channel settings (Telegram chat ID, optional approver user ID, batch size, schedule hour, and whether to run listen-back QA) in the workflow’s settings step. Ensure your n8n instance is reachable over public HTTPS so the Telegram approval buttons can resume the waiting execution. Use the built-in “Add topics” form URL to submit topics (one per line) and verify they appear as queued rows in the vs_queue Data Table. An n8n automation workflow template by Amelqa.
- 4 nodes
- Automation
- AI
By Zvid
Quick overview Turn fresh reporting snapshots into KPI exception videos and an owner action register. Validate completed periods, calculate changes and target misses, prioritize the video, and retain every metric in a review CSV. Optional narration and Slack delivery are disabled by default. How it works Start manually or on schedule and load reporting rules, credit limits and the recovery log. Fetch the configured reporting-system snapshot. Explicit sample mode creates clearly labeled SAMPLE DATA and blocks Slack; live failures never substitute samples. Validate freshness, completed periods, unique metric IDs and numeric values. Calculate changes and target misses, showing N/A for zero baselines. Rank exceptions for the five-metric video and retain every metric, source owner and action in the CSV. Optional narration uses checked values and ElevenLabs timestamps. Validate the Zvid design and quote against the ceiling. In dry-run mode, return the plan and quote without rendering or writing log rows. Resume saved accepted jobs or reserve a new report key, submit one render and persist its ID. Retry only explicit capacity rejections and poll accepted jobs within limits. Record the actual render outcome. Offer Watch video and the action CSV, with optional Slack delivery tracked separately from successful rendering. Setup Install @zvid/n8n-nodes-zvid from Settings → Community nodes before credentials; a workspace owner/admin may need to install it. Create a Zvid API credential using https://app.zvid.io/api-keys and Base URL https://api.zvid.io. Select it on all Zvid nodes and the optional voiceover upload. Connect Google Sheets credentials. Create a KPI Reports log tab with RenderKey, Status, JobId, CreditsQuoted, PlanJson, VideoUrl, CompletedAt, DeliveryStatus headers. Select the same document and tab on all recovery and delivery-log nodes. Set metricsUrl to your reporting system HTTPS endpoint and configure authentication on Fetch the reporting source snapshot if needed. Return company, periodStart, periodEnd, generatedAt and metrics[]. Each metric needs a unique id, label, numeric value and previous, and boolean lowerIsBetter. Optional fields are unit, target, owner, action and numeric history ending at value. The period must end before today; generatedAt must meet maxDataAgeHours. For a demonstration explicitly set metricsSource=sample: the video and CSV show SAMPLE DATA and Slack is blocked. Live-source failures never substitute samples. Edit Set reporting period and exception thresholds and test manually. dryRun=false spends Zvid credits and maxCreditsPerVideo defaults to 65. dryRun=true returns design JSON and a quote without rendering, creating an editor draft, writing log rows or delivering to Slack. Adjust alertPercent, maxDataAgeHours and onlyExceptions. Narration and Slack are off by default. Optional narrate=true requires an ElevenLabs Header Auth credential (xi-api-key) and a Zvid credential on Upload voiceover; voice synthesis can charge even during previews. Upload uses HTTP because the published Zvid node lacks multipart uploads. Optional sendSlack=true also needs slackWebhookUrl; inspect uncertain delivery before resending. Requirements Self-hosted n8n with community nodes enabled, Zvid credits, Google Sheets access, and a compatible reporting endpoint or explicit sample mode. No OpenAI or OpenRouter account is required. Optional voice generation can incur ElevenLabs charges even in a dry run. Customization Change branding, alertPercent, maxDataAgeHours and onlyExceptions. Optional history needs at least two numeric points and must end at value. Missing owners remain Unassigned; action text comes from the reporting source. Additional info Open Watch video → Binary → data → View and review the CSV before sharing. Keep one execution running at a time because Sheets is not an atomic lock. Completed report keys are skipped and accepted saved jobs resume without a new paid request. Inspect failed or uncertain submissions before resetting a log row. Delivery acknowledgement is separate from render completion; uncertain sends are not automatically repeated. Current setup is described above; the linked repository guide provides background. Support: https://zvid.io/contact. An n8n automation workflow template by Zvid.
- 3 nodes
- Automation
By Zvid
Quick overview Create balanced three-round quiz videos from a reviewed Google Sheets question bank. Rotate topics and answer positions, prevent question reuse, and deliver a Zvid video with a source-backed answer CSV for editorial review. How it works Start manually or on the schedule and read quiz rules, the question bank and episode history. Select one approved easy, medium and hard question. Reject duplicate text, exclude used questions, and prefer less-used topics. Rotate answer positions reproducibly while preserving the correct answer; prepare the question, countdown and reveal scenes. Resume an accepted saved job or skip a completed episode instead of spending credits again. Check optional music, build the video design, and use the Zvid node to validate and quote it against the credit ceiling. In live mode, reserve the episode key, submit one render and save its job ID. Retry only explicit capacity rejections, within bounded limits. Poll the accepted job, persist its actual outcome, and offer a completed MP4 through Watch video plus a CSV answer and source pack. Setup Install @zvid/n8n-nodes-zvid from Settings → Community nodes before configuring credentials; a workspace owner/admin may need to install it. Create a Zvid API credential with your key from https://app.zvid.io/api-keys and Base URL https://api.zvid.io, then select it on all Zvid nodes. Connect Google Sheets credentials and select your question-bank document/tab. Create a separate Quiz Episodes log tab and select the same log document/tab on every recovery read and write node. Connect the question-bank read node to a separate source tab with QuestionKey, Question, OptionA, OptionB, OptionC, CorrectLetter, FunFact, Topic, Difficulty, SourceUrl and Approval. QuestionKey is recommended; blank keys are derived from question text. Use easy/medium/hard, A/B/C, an HTTPS SourceUrl and Approval=approved after reviewing the facts. Provide all three difficulties. Questions must be at most 130 characters, options 40 and FunFact 200. Keep existing completion markers. Create exact recovery-log headers: RenderKey, Status, JobId, CreditsQuoted, PlanJson, VideoUrl, CompletedAt. Preserve the log history during upgrades. Edit Set quiz episode and rotation rules and test manually before enabling the schedule. dryRun=false is the default and spends Zvid credits; maxCreditsPerVideo defaults to 60. dryRun=true returns design JSON, review rows and a quote, without rendering, creating an editor draft or changing the log. Requirements Self-hosted n8n with community nodes enabled, a funded Zvid account and Google Sheets access. Supply at least one approved question at each difficulty and retain HTTPS source references. Customization Set branding, optional topic filtering, rotationEpisodes and timings in Set quiz episode and rotation rules. Increase episodeRevision only for an intentional extra episode. The template does not publish to social channels. Additional info Open Watch video → Binary → data → View after completion and download the source-specific review CSV before sharing. Preview downloads time out after 30 seconds and retry at most three times; the saved URL remains available. Run one execution at a time: Google Sheets is not an atomic lock. Inspect submitting, failed, timed_out or uncertain jobs before resetting any log row. Completed episodes are skipped and saved rendering jobs resume without another paid request. Current setup is described above; the linked repository guide supplies background. Support: https://zvid.io/contact. An n8n automation workflow template by Zvid.
- 3 nodes
- Automation
By Adrian Voss
Quick overview Watches multiple Vinted searches, tracks each search's 14-day median price, scores new or cheaper listings against it, skips anything an AI check flags as fake, damaged or mis-sized, and sends real deals to Discord: the best instantly, the rest in a daily digest. How it works You keep a Google Sheet of searches — one row per search, each with its own Discord channel webhook, so different searches can alert different channels or people. Every 15 minutes the workflow reads your active rows, builds the actor's watchlist input from each row's columns, and calls vinted-listing-lookup once per search in delta mode — so a listing you've already seen is never billed or alerted on twice. Every listing found is logged to a History tab first. A Code node then reads back the last 14 days of that exact search's history and computes the median price, so “underpriced" is measured against real recent prices, not a guess. A deal score is built from how far below that median the listing is, a weight for its condition, and (if you turn on the actor's includeDetails option) a weight for the seller's rating. An OpenAI step reads the title and description and is asked to flag anything that looks fake, replica, damaged, "for parts" or missing its size — flagged listings are dropped before anyone sees them. The step ships wired but with an empty credential, so it does nothing until you add your own key. A routing step sends the genuinely hot ones (30%+ below median) straight to Discord with a photo and the numbers; the merely good ones (10–29% below median) are queued for one 8am digest message instead of a constant drip of pings; everything else is already logged to History with no further alert. If a search fails, or comes back with nothing, three runs in a row, you get a one-off Discord warning and the Sheet row is marked needs attention, so a dead search or a target that's started blocking requests doesn't just go silently quiet. Setup Apify token. Get one at Apify Console → Settings → API & Integrations. Create a Header Auth credential named Apify token (Authorization / Bearer YOUR_TOKEN) and select it on the "Search Vinted (delta mode)" node. Build your Google Sheet, with 3 tabs Searches needs the columns searchInput, country, maxPrice, conditions, brands, discordWebhook, active, failCount, status — one row per search you want watched, active set to yes or no. History and Digest start empty with their own column headers (listed under Requirements) — the workflow fills them in as it runs. Add a Google Sheets credential and pick this document on all 5 Google Sheets nodes in the workflow. Add a Discord webhook per search row. No Discord app or bot is needed: open your channel's Integrations → Webhooks → New Webhook, copy the URL, and paste it into that row's discordWebhook column. Different rows can point at different channels. Optional: turn on the AI check by adding your own OpenAI credential to the “OpenAI Chat Model" node. Left empty, the red-flag check is skipped safely rather than breaking the run — a missing or malformed AI reply is always treated as "not flagged". Activate the workflow. Both schedules start running: every 15 minutes for searches, and once a day at 8am for the digest. Requirements An Apify account and API token (free tier works for testing). A Google account, a Google Sheet with 3 tabs, and the Google Sheets node's OAuth2 credential set up in n8n. Searches tab columns: searchInput, country, maxPrice, conditions, brands, discordWebhook, active, failCount, status`. History tab columns: searchLabel, listingId, title, price, priceEur, currency, condition, country, url, imageUrl, discordWebhook, checkedAt. Digest tab columns: searchLabel, title, priceEur, dealScorePct, medianPriceEur, url, imageUrl, discordWebhook, checkedAt. A Discord webhook URL per search row (no bot token, no Discord app). Optional: an OpenAI API key, only if you want the red-flag check to actually run. Customization Change the HOT (default 30%) and GOOD (default 10%) deal-score thresholds in the "Route by deal score" Switch node. Turn on includeDetails in the "Build Apify input" Code node to get seller ratings factored into the score, and the listing description for a sharper AI red-flag check (costs a per-listing details fetch on the actor). Edit the system prompt on "AI red-flag check" to flag other things you personally care about (e.g. a brand you don't trust, a size you can never return). Add more columns to "Queue for daily digest" / "Build digest message" if you want the digest to include a photo link or the seller's country. Change the 15-minute and 8am schedules on either Schedule Trigger node. An n8n automation workflow template by Adrian Voss.
- 5 nodes
- Automation
- AI
By Sherwood
Quick overview This workflow reads product image URLs from Google Sheets, removes their backgrounds and upscales the cutouts in bulk using Apify actors, then writes the processed image URL, dimensions, and status back to the same sheet. How it works Starts manually and reads rows from a Google Sheets spreadsheet containing an image_url column. Deduplicates the image URLs and sends them as a single batch to Apify’s Background Remover API actor to generate transparent PNG cutouts. Maps background-removal results back to the original sheet row numbers and collects only successful cutout URLs for further processing. If any cutouts succeeded, sends the cutout URLs to Apify’s Image Upscaler API actor to upscale them 2× and return final image URLs and dimensions. Combines upscale results and any failures, then updates the matching rows in Google Sheets with result_url, width, height, status, and error. Setup Create a Google Sheet with columns image_url, result_url, width, height, status, and error, and populate image_url with publicly accessible image URLs. Add Google Sheets credentials in n8n and select the target spreadsheet and sheet in both the read and update steps. Add an Apify API token credential and connect it to both Apify actor steps (Background Remover Batch and Image Upscaler Batch). (Optional) Adjust the upscaling scale value (for example, change from 2 to 4) and the Apify maximum charge limits to match your quality and cost requirements. Requirements An Apify account (pay per image, no subscription to the actors) and a Google account. Customization Replace Google Sheets with Airtable, Google Drive or a webhook; remove the upscaling step if you only need cutouts. Additional info Failed images are marked in the sheet with the reason and are never charged. Each Apify node has a maximum cost per run of $5 that you can raise. An n8n automation workflow template by Sherwood.
- 2 nodes
- Automation
By Prudhvi_N8N_official
Quick overview This workflow captures bank SMS alerts via a secured webhook, parses them into structured transactions, and stores them in Google Sheets, while also running a Telegram bot powered by Anthropic Claude to answer spending questions using the ledger and a review queue. How it works Receives forwarded bank SMS messages through an authenticated webhook request. Parses and normalizes the SMS text to extract fields like amount, debit/credit, date, merchant, payment method, reference ID, and account last 4, while rejecting OTPs and non-allowlisted senders. If the SMS is a complete, valid transaction, upserts it into the Google Sheets Expenses ledger and returns a 200 JSON confirmation to the sender. If the SMS is incomplete but not rejected, upserts it into a Google Sheets Review_Queue tab and returns a 200 JSON response indicating manual review is needed. If the SMS is rejected (for example OTP or unknown sender), returns a 422 JSON rejection response. Triggers on incoming Telegram messages and sends the user’s question to a LangChain agent using Anthropic Claude with short-term conversation memory. The agent reads transactions and the review queue from Google Sheets (and uses a calculator tool for exact math) and sends a plain-text reply back to the same Telegram chat. Setup Create a Google Sheets spreadsheet with Expenses and Review_Queue tabs (with columns matching the workflow fields) and connect a Google Sheets OAuth2 credential, then select the correct document and sheet in all Google Sheets nodes/tools. Create an HTTP Header Auth credential for the webhook and configure your Android SMS forwarder to POST to the webhook URL with the required header plus message, sender, event_id, and sent_at in the request body. Update the allowedSenders list in the parsing code to include your bank’s sender IDs so legitimate alerts are accepted. Create a Telegram bot with BotFather, add your Telegram credential in n8n, and enable the Telegram trigger and reply nodes for your bot. Add an Anthropic credential (or AI Gateway-managed access) for the Claude chat model used by the agent. An n8n automation workflow template by Prudhvi_N8N_official.
- 7 nodes
- Automation
- AI
By Marek Stokowski
Quick overview This workflow runs monthly to audit whether popular AI and search crawlers can access a specific page by comparing robots.txt rules with real HTTP responses, then emails a verdict report via Gmail. How it works Runs on a monthly schedule trigger. Sets the target URL, the bot user-agent list, a browser user-agent control, and the delay between requests. Fetches the site’s robots.txt and evaluates, for each bot, whether the target page is allowed based on longest-match and wildcard fallback rules. Requests the target page once per bot using that bot’s User-Agent, pacing requests to reduce rate limiting. Makes one additional request as a normal browser and compares each bot’s HTTP status and response size against the control response. Classifies each bot as ALLOWED, BLOCKED, PARTIAL, CONTRADICTION, RATE_LIMITED, or UNKNOWN and aggregates the results into a summary. Sends the full audit report to the configured recipient using Gmail. Setup Add a Gmail OAuth2 credential and set the recipient address in the email step. Update the testUrl value to the page you want to audit. Adjust the schedule timing and the secondsBetweenRequests delay to match your site’s rate limiting behavior. Optionally edit the bot list and user-agent strings to add or remove specific crawlers you want to test. An n8n automation workflow template by Marek Stokowski.
- 3 nodes
- Automation
By Yash Chauhan
Quick overview Autonomous enterprise AI customer support copilot protected end-to-end by SoterAI. Features zero-trust prompt injection firewall, multi-turn memory, verified live ERP tools (order lookup & calculator), and real-time output DLP data redaction. Native dual-branch routing blocks attacks instantly while saving 100% of LLM compute costs. How it works Receives a customer message from the interactive chat trigger, a POST webhook endpoint, or a manual test run. Normalizes the incoming payload into a consistent structure with message text, session ID, email, and channel metadata. Sends the message to SoterAI Input Threat Shield to allow only support-related topics and block or route prompt-injection, sensitive-data, or off-policy content. For safe messages, uses an OpenAI chat model–backed agent with conversation memory plus an order lookup tool and calculator tool to generate a concise support reply. Scans the AI reply with SoterAI Output Guardrail (DLP) and redacts detected sensitive data before delivery. Returns the sanitized reply (and security metadata) to the caller via webhook/chat, and when a threat is flagged it sends an incident payload to a configurable HTTP endpoint and returns a rejection message to the customer. Setup Install the community node package n8n-nodes-soterai and add a SoterAI API credential. Add an OpenAI API credential for the OpenAI Chat Model node (or replace it with your preferred compatible model node). If using the production endpoint, copy the POST webhook URL for /webhook/soterai-secure-agent and configure your support channel to send requests with a message/prompt field (and optionally sessionId). Replace the SecOps alert HTTP request URL (currently https://httpbin.org/post) with your Slack/Teams/SIEM webhook or incident intake endpoint. Update the order lookup tool implementation to query your real order/ERP system instead of the included mock database. Requirements • n8n version 0.8.7 or higher (v2.x recommended) • n8n-nodes-soterai community node installed • OpenAI, Groq, or compatible Chat Model credentials (optional for offline testing) Customization • Tool Customization: Edit the JavaScript in the Order Lookup Tool to connect directly to your real PostgreSQL, MySQL, Shopify, or ERP database. • Topic Scope: Customize the allowedTopics parameter in SoterAI Input Threat Shield to fit your specific industry (e.g. FinTech, Healthcare, E-Commerce). • SecOps Alerts: Point the Dispatch SecOps Alert node to your internal Slack, Discord, Microsoft Teams, or PagerDuty webhook. Additional info • Tested with 100% pass rate in real Docker production environments across prompt injection attacks, legitimate customer support queries, and sensitive data leakage scenarios. • OWASP for LLMs Compliance: Defends against LLM01 (Prompt Injection), LLM02 (Sensitive Information Disclosure), and LLM06 (Insecure Tool Execution). An n8n automation workflow template by Yash Chauhan.
- 7 nodes
- Automation
- AI
By Chandler Etienne
Quick overview This workflow connects CallNode and OpenAI to automatically reply to incoming SMS/MMS with a short AI-generated message, optionally describing attached images and generating requested images, and it also provides an n8n form to send outbound texts (with optional image links) via the CallNode API. How it works Receives an incoming message from CallNode via a header-authenticated webhook. If the message includes media URLs, OpenAI analyzes the image(s) and produces a short description to add context for the reply. OpenAI generates a brief, plain-text response using a business-specific system prompt and keeps conversation context per sender/recipient with buffer memory. Returns the response to CallNode as the webhook reply so it is delivered back in the same SMS thread. If the response includes an image request marker, OpenAI generates an image, converts it to base64, and sends it as an MMS through the CallNode Messages API using HMAC-signed headers. Alternatively, a user submits an n8n form with a phone number, message, and optional image URL, and the workflow signs and sends that message via the CallNode Messages API. Setup Create a CallNode number with messaging enabled, configure its inbound webhook URL to this workflow’s production webhook URL, and set up the matching custom header name/value used by the webhook authentication. Add OpenAI API credentials for the chat model, image analysis, and image generation steps, and ensure your OpenAI account is enabled for the required image model. In the Settings values, update the business name and edit the assistant’s system prompt to include only the business facts you want it to use. Create a CallNode API key/secret, then fill in the apiKey, apiSecret, and fromNumber values used to sign and send outbound messages and generated pictures. Share or open the n8n form’s production URL if you want to use the built-in “Send a text message” form for outbound SMS/MMS. Requirements A CallNode account with funds and a phone number that can text (a local number is ready for texting when you buy it; a toll-free number must pass Toll-Free Verification first) An OpenAI API key for the replies, picture reading and picture generation (picture generation uses GPT Image 1, which needs a verified OpenAI organization) A CallNode live API key and secret, needed only to send generated pictures and messages from the form (answering incoming texts works without one) An n8n instance with a public URL, such as n8n Cloud, so CallNode can reach the webhook Customization Replace the ABOUT YOUR BUSINESS lines in the AI Assistant's system message with your hours, services and common questions Swap the OpenAI Chat Model for any chat model n8n supports Replace the form with any trigger that provides a phone number and a message, such as a new order or booking Delete the PICTURES THEY ASK FOR section of the system message to turn picture generation off. An n8n automation workflow template by Chandler Etienne.
- 6 nodes
- Automation
- AI