Marketplace
3.557 fertige Workflow-Dateien zum Download, plus 10.661 quellenverknüpfte n8n-Referenzen.
Handle WhatsApp customer service chats with Google Gemini and Google Sheets
Quick Overview This workflow handles WhatsApp customer service via OpenWA, using Google Gemini and a Google Sheets knowledge base to answer personal chats, while routing conversations to a human queue in Google Sheets when escalation is needed. How it works Triggers on OpenWA WhatsApp events and ignores message reactions except for specific ✅/☑ reactions used to re-enable AI handling. Normalizes incoming event fields and processes only personal chats (IDs ending with @c.us) that are not sent by your own WhatsApp account. Checks a Google Sheets “Session Chat” list to decide whether the conversation is currently handled by a human, and only continues to AI when no active human session is found. Uses a Google Gemini chat model with short-term memory and a Google Sheets “Database Company” tool to draft a friendly Indonesian response based only on the sheet data. If the AI response does not contain the #admin escalation token, it sends the reply back to the customer via OpenWA. If the AI response contains #admin, it appends the chat to the Google Sheets “Session Chat” sheet to flag it for human follow-up. When a ✅/☑ reaction is received for a chat, it finds and deletes the corresponding
Generate Seedance videos with the Vancine Doubao API using polling
Quick overview Generate Seedance videos through the Vancine API, automatically poll asynchronous tasks, return the final video URL, and handle failed or timed-out generations with bounded retries. How it works Starts manually to define the Seedance model, prompt, video size, base URL, and polling limits. Sends a POST request to the Vancine /v1/video/generations endpoint to create a video generation task. Extracts and stores the returned task ID and initializes polling state (interval and maximum attempts). Waits for the configured interval, then sends a GET request to /v1/video/generations/{task_id} to check task status. Repeats polling until the task status is completed or until the maximum poll count is reached. Outputs the generated video result_url when completed, or stops with an error if the task fails or times out. Setup Create an HTTP Header Auth credential with Name set to Authorization and Value set to Bearer YOUR_VANCINE_API_KEY. Assign the same credential to both HTTP Request nodes: submitTask and pollTask. Confirm the Vancine API base URL in the workflow (default https://vancine.com) matches your environment. Update the prompt, model, size, and polling settings (interv
Monitor competitor pricing page changes with Snapshot Site and Slack
Quick overview This workflow runs daily and uses Snapshot Site to compare a stored baseline screenshot against a live competitor pricing page, then posts change alerts or failure notifications to Slack. How it works Runs every day at 7:00 AM (UTC) on a scheduled trigger. Calls Snapshot Site to capture the live pricing page and compare it against a baseline screenshot using a mismatch threshold. Checks whether the Snapshot Site response indicates an API-level error (for example, a malformed URL returned as {error: true}). Sends an alert to a Slack channel if the compare call fails or returns an error message. If the compare succeeds, evaluates the mismatch percentage to determine whether the pricing page changed. Posts a Slack message with mismatch stats and links to the diff, baseline, and live capture when a change is detected, otherwise it ends without action. Setup Add a Snapshot Site credential and set the baseline (beforeUrl/beforeOptions) and live target (afterUrl/afterOptions) URLs to the competitor pricing page images/URL. Add a Slack credential and set the target channels for change notifications (for example, #competitor-watch) and failure alerts (for example, #competitor
Clone brand voices and generate voiceovers with Smallest AI and Google Drive
Quick Overview This workflow receives a webhook request with an audio sample URL, voice name, and script, clones a voice and generates a matching voiceover using Smallest AI, uploads the MP3 to Google Drive, logs the voice ID in Google Sheets, and returns a public link in the webhook response. How it works Receives a POST webhook request containing an audio_url, voice_name, and script text. Downloads the provided voice sample file from the audio_url. Sends the sample to Smallest AI Voice Cloning to create a new voice profile and extracts the returned voiceId. Truncates the script text to a safe length and synthesizes speech with Smallest AI using the cloned voice ID. Uploads the generated MP3 voiceover to Google Drive and updates its sharing settings to be publicly readable. Appends the cloned voice ID and voice name to a Google Sheets “voice library” spreadsheet and returns a JSON response with the voice ID, Drive link, and timestamp. Setup Create a Smallest AI API key, store it securely in n8n, and replace the hardcoded Authorization: Bearer ... header used for voice cloning. Add a Smallest AI credential in n8n for the speech synthesis step and ensure it has access to the same Sm
Handle NPS survey responses with OpenAI, Gmail, and Google Sheets
Quick Overview This workflow runs every 6 hours to read new NPS survey responses from Google Sheets, generates a personalized reply with OpenAI, and sends the email via Gmail. It then routes promoters, passives, and detractors for follow-up actions and marks each response as processed. How it works Runs on a schedule every 6 hours. Reads NPS responses from a Google Sheets tab and keeps only rows where Status equals "new". Validates required fields, parses the 0–10 NPS score, and classifies each response as Promoter, Passive, or Detractor. Sends the response context to OpenAI (Chat Completions) to generate a concise, personalized email body and builds a segment-specific subject line. Sends the personalized reply to the respondent using Gmail. For promoters, appends the comment as a quote to a separate Google Sheets testimonials tab and updates the original row’s Status to "Processed". For passives, updates the original Google Sheets row’s Status to "Processed", and for detractors, emails an alert to a support inbox via Gmail and then updates Status to "Processed". Setup Add credentials for Google Sheets, Gmail, and OpenAI in n8n. Replace YOUR_NPS_SHEET_ID with your Google Sheets doc
Handle NPS survey replies and routing with OpenAI, Gmail, and Google Sheets
Quick Overview This workflow runs every 6 hours to read new NPS responses from Google Sheets, uses OpenAI to draft a personalized reply, sends it via Gmail, routes respondents by NPS segment, logs promoter quotes back to Google Sheets, alerts support on detractors, and marks each row as processed. How it works Runs on a schedule every 6 hours and reads NPS response rows from a Google Sheets document. Filters the sheet to keep only rows where Status equals “new” to avoid reprocessing. Validates required fields, parses the 0–10 NPS score, and classifies each response as Promoter, Passive, or Detractor. Calls the OpenAI Chat Completions API to generate a warm, personalized email body based on the score segment and the customer’s comment. Sends the generated reply to the customer via Gmail and then routes the workflow by segment. For promoters, appends the customer comment as a quote to a “promoter-quotes” tab in Google Sheets and marks the original row as Processed; for passives, it marks the row as Processed. For detractors, sends an alert email to your support team via Gmail and then updates the original Google Sheets row status to Processed. Setup Create credentials for Google Shee
Answer Slack knowledge base questions with Notion, Pinecone, and OpenAI
Quick overview This workflow syncs an internal Notion knowledge base to Pinecone on a daily schedule, then runs a Slack bot that answers questions in a specific channel using Pinecone retrieval and an OpenAI chat model, replying in a thread with citations back to the source Notion pages. How it works Runs on a daily schedule to sync your Notion knowledge base into a Pinecone vector index. Fetches all pages from a specified Notion database and then pulls each page’s full block content (including nested blocks). Combines each page’s blocks into a single document and attaches metadata such as the Notion title, URL, and last edited time. Splits each document into overlapping text chunks, generates OpenAI embeddings, and inserts them into Pinecone while clearing and rebuilding the target namespace. Triggers when a new message is posted in the configured Slack channel and ignores bot/system messages to prevent reply loops. Uses an OpenAI-powered agent that always queries Pinecone for relevant chunks (including source metadata) and generates an answer in the user’s language. Posts the response back to Slack as a threaded reply, including cited Notion sources. Setup Create a Notion interna
Tailor ATS-ready resumes and cover letters with Gemini, Google Drive, Notion, and Gmail
Quick overview Transform any resume into a professional, ATS-compliant document with AI. Supports Global ATS, German, and Japanese resume formats, generates personalized cover letters, and automates PDF creation and delivery for every job application. How it works Receives an n8n form submission with the company name, job description, selected ATS type, and an optional request to generate a cover letter. Lists resume PDF files from a specified Google Drive folder, downloads each file, extracts the PDF text, and cleans it into a single plain-text resume input. Uses Google Gemini to rewrite the resume into pure-HTML output tailored to the job description, choosing Global ATS, German Lebenslauf, or Japanese Rirekisho formatting based on the selected ATS type. Converts the generated HTML resume into a PDF using the PDF.co HTML-to-PDF API and retrieves the resulting PDF from the returned URL. Uploads the generated resume PDF to a Google Drive output folder, then reads the existing Notion database entries to compute the next serial number and creates a new Notion database page linking to the uploaded file. If cover letter generation is requested, uses Google Gemini to write a localized c
Text back missed callers with Twilio, CallRail, and email alerts
Quick overview This workflow receives missed-call webhooks from Twilio or CallRail, normalizes call details, and instantly sends a compliant text-back via Twilio when allowed, then emails your firm a delivery-status summary. How it works Receives an incoming call event via a webhook from Twilio StatusCallback or a CallRail missed-call webhook. Extracts and standardizes the caller number, caller name, firm number, source, timestamp, and whether the event is a true missed call. Stops processing if the event is not a valid missed call (for example, an answered-call status from Twilio). Determines whether the call occurred outside your configured business hours and adjusts the text wording accordingly. Builds a personalized SMS message using your firm name and booking link and submits it to a separate Bar-Compliance Guardrail workflow for opt-out and TCPA checks. If approved, sends the SMS via Twilio and then emails the firm a summary including the caller details, message text, and whether Twilio returned a delivery SID. Setup Create and connect a Twilio account credential and configure your Twilio phone number StatusCallback URL to point to the n8n webhook (enable no-answer, busy, fai
Assess visa eligibility and send PDF checklists with Claude and SendGrid
Quick overview This workflow receives visa eligibility requests via webhook, uses Anthropic Claude to extract passport details and assess visa requirements, generates a purpose-specific document checklist, converts it to a PDF via PDFShift, logs each request to Google Sheets, and emails the PDF to the applicant using SendGrid. How it works Receives a webhook POST with applicant details, travel plan, and raw passport OCR text. Uses Anthropic Claude to extract and validate passport data (name, nationality, passport number, expiry) and scores whether the passport text is readable. If passport data is insufficient, immediately returns a webhook response asking the applicant to resubmit a clearer passport scan. If passport data is sufficient, waits briefly and uses Anthropic Claude again to determine whether a visa is required, the visa category, a recommended visa type, processing time, risks, and confidence. Builds a document checklist from a standard base list plus purpose-specific items and any AI-flagged eligibility risks, then renders it into HTML. Sends the HTML to PDFShift to generate a PDF, formats a summary row, and appends the application record to a Google Sheets tab. Emails
Detect LLM prompt regressions with Data Tables, OpenAI APIs, and Telegram
Quick overview Continuous quality checks for your production LLM prompts. Keeps a golden test set in n8n Data Tables, runs it on a schedule against any OpenAI-compatible API, compares each run to a blessed baseline, and pings Telegram only when quality actually changes. How it works A Schedule Trigger starts each run. The Execute workflow button runs it on demand. Prompt profiles (system prompt, model, temperature) and test cases (input, expected output, check type) load from two Data Tables. When both tables are empty the workflow seeds demo rows, so the first run works immediately. Every case calls its own model through a generic OpenAI-compatible HTTP request with retries. Failed calls are recorded and reported, never silently dropped. Deterministic checks (exact, contains, regex, numeric) grade most answers for free. An LLM judge scores only the free-form cases marked llm-judge on a 1-5 scale. The run is aggregated, snapshotted to an eval history table, and compared to the blessed baseline: a flipped case must fail two runs in a row to count, while a broad pass-rate or judge-score drop alerts at once. A Telegram digest goes out on baseline capture, regression, recovery, or an o
Translate audio transcripts with Gladia, Google Drive, and Google Sheets
Quick overview This workflow collects a public media URL and target language via an n8n form, sends the audio/video to Gladia for transcription and translation, then saves a Markdown transcript file to Google Drive and logs the outcome (success or failure) to Google Sheets. How it works Receives a form submission containing a publicly reachable audio/video URL and a target language code. Starts a Gladia pre-recorded job with transcription enabled and translation configured for the requested target language. Waits and repeatedly polls Gladia’s result URL until the job finishes, errors, or reaches the maximum number of attempts. When Gladia reports the job as done, builds a Markdown file containing the original transcript, the translated transcript, and language metadata. Uploads the Markdown file to Google Drive. Appends a “Translated” row to Google Sheets with the media URL, detected language, target language, and a Drive link, or logs a “Failed” row with error details if any step fails. Setup Add a Gladia API key using an HTTP Header Auth credential (header name x-gladia-key) and select it for both Gladia HTTP Request steps. Connect Google Drive OAuth credentials and choose the de
Transcribe speaker-labeled recordings with Gladia, Google Drive, and Slack
Quick overview This workflow collects a public media URL via an n8n form, sends it to Gladia for diarized transcription, formats the result as a speaker-labeled Markdown note, saves it to Google Drive, and posts the Drive link (or any failure reason) to a Slack channel. How it works Receives a form submission containing a public audio/video URL and an optional hint for the number of speakers. Starts an asynchronous Gladia pre-recorded transcription job with speaker diarization enabled. Waits and repeatedly polls Gladia for the job status until it is done, errors, or reaches the configured maximum number of attempts. When complete, converts Gladia’s diarized utterances into a readable Markdown transcript grouped by speaker and timestamped. Uploads the transcript file to Google Drive and posts a Slack message with the share link. If the Gladia requests fail or the job times out/errors, posts a Slack message describing the failure. Setup Create an HTTP Header Auth credential for Gladia (header x-gladia-key) and select it on both Gladia HTTP Request steps. Connect a Google Drive OAuth2 account and choose the target Drive/folder where transcripts are uploaded. Connect a Slack account an
Rotate YouTube channel banners on a schedule with Google Sheets and Drive
Quick Overview This workflow runs daily at 8am to rotate a YouTube channel banner based on a schedule stored in Google Sheets, downloading the banner image from Google Drive, applying it via the YouTube API, and updating the sheet to mark the banner as applied. How it works Runs every day at 8am on a schedule trigger. Reads the banner rotation plan from Google Sheets, including swap date, Google Drive file ID, label, and status. Filters the sheet rows to keep banners due today or overdue that are not yet marked as Applied, and sorts them oldest-first. Downloads the selected banner image from Google Drive and uploads it as a YouTube channel banner. Fetches the current YouTube channel branding settings and updates the channel to activate the new banner while preserving existing branding fields. Updates the matching Google Sheets row to set Status to Applied and outputs a log record with the swap timestamp, channel ID, and banner details. Setup Add Google OAuth credentials for YouTube Data API and connect them to the YouTube nodes. Add Google Sheets and Google Drive credentials and connect them to the respective nodes. Set your YouTube channel ID in the banner configuration step. Upda
Extract and log Gmail admin tasks with OpenAI, Google Sheets and Airtable
Quick overview This workflow monitors Gmail for messages labeled “Admin”, redacts sensitive data, uses OpenAI to extract structured admin tasks and reminders, skips duplicates by checking Google Sheets and/or Airtable, sends optional Slack or Microsoft Teams alerts for urgent items, and logs the clean task details. How it works Triggers every minute when a new Gmail message matches the query label:Admin newer_than:7d. Loads configurable settings (log destination, alert channels, due-soon window, dedupe window, and redaction toggle) and normalizes the email into a clean text body. Redacts sensitive patterns (such as SSNs, card-like numbers, phone numbers, email addresses, and addresses) and generates an “admin hash” fingerprint for deduplication. Checks Google Sheets and/or Airtable for recent matching Message IDs or admin hashes and skips processing if the email appears to be a duplicate. Sends the redacted email content to OpenAI to classify whether it is an admin item and to extract fields like task title, summary, priority, due date/time, and recommended next step. If the item is valid, optionally posts an alert to Slack and/or Microsoft Teams for urgent/high-priority, due-soon,
Extract and log Gmail receipt expenses with OpenAI, Sheets and Airtable
Quick overview This workflow monitors a Gmail “Receipts” label, downloads attachments, uses OpenAI to extract expense data from receipt emails and images, skips duplicates and non-receipts, fails safely when extraction is unreadable, sends Slack/Teams alerts for high-value, warranty, or review-needed receipts, and logs valid receipts to Sheets or Airtable. How it works Triggers every minute when Gmail finds new emails matching the query label:Receipts newer_than:2d. Normalizes the email into consistent fields (message ID, subject, sender, received date, plain-text body) and generates a receipt hash for stable matching. Searches Airtable and/or Google Sheets for existing records matching the message ID or receipt hash and marks the email as a duplicate if it falls within the configured duplicate window. For new receipts, sends the email content to OpenAI to extract receipt details like merchant, total, category, line items, tax hints, and return/warranty dates. Evaluates the extraction to flag high-value, warranty/return-relevant, or needs-review receipts and formats alert messages. Posts alerts to Slack and/or Microsoft Teams when enabled and the receipt is not “standard.” Appends
Create personalized videos from Google Sheets with iLoveVideoEditor and Gmail
Quick overview This workflow watches Google Sheets for new rows, renders a personalized video with iLoveVideoEditor using the row data, uploads the finished MP4 to Google Drive, writes the Drive link back to the same sheet row, and emails the link to the recipient via Gmail. How it works Triggers on a schedule when a new row is added to a specified Google Sheets worksheet. Skips rows where the Title field is empty. Starts a video render in iLoveVideoEditor from the cinematic-title template using the row’s Title and Subtitle as template variables. Polls iLoveVideoEditor every 60 seconds (up to 20 attempts) until the render status becomes completed, or stops early if the status becomes failed. When completed, downloads the MP4 from the render URL, uploads it to a specified Google Drive folder, and generates a shareable Drive view link. Updates the original Google Sheets row (matched by ID) with the Video URL and sends the Drive link to the row’s Email address via Gmail. If the render fails, times out, or errors, sends a failure alert email via Gmail with the row details. Setup Install the community node n8n-nodes-ilovevideoeditor (required for self-hosted n8n) and add your iLoveVideo
Start ScraperAPI crawler jobs from webhooks and store results in data tables
Quick Overview This workflow starts a ScraperAPI crawler job from an incoming webhook request and stores each crawled page returned via a callback webhook into an n8n Data Table. How it works Receives a POST request on a webhook with crawl inputs like startUrl, optional includeRegexp, and optional maxDepth. Builds ScraperAPI crawler parameters, including defaults (includeRegexp scoped to the start URL, maxDepth 1, country code, and render setting) and a callback URL for results. Creates a ScraperAPI crawler job and returns the job details in the webhook response. Receives per-page crawl results from ScraperAPI on a second webhook callback endpoint. Filters out job-summary payloads and failed page fetches, then extracts each page’s URL, markdown content, status code, and scrape timestamp. Upserts the parsed page results into an n8n Data Table named crawl_results keyed by URL. Setup Create and connect your ScraperAPI credentials in n8n so the workflow can create crawler jobs. Run the manual storage setup once (or ensure it exists) to create the crawl_results Data Table with the required columns. Replace the CALLBACK_URL in the crawl-parameter code with your “Receive crawl results” pr
Scrape and score Amazon products with Apify, OpenAI, and Google Sheets
Quick overview This workflow manually scrapes product results from an Amazon search URL via the Apify Amazon Crawler actor, uses OpenAI to generate a structured product analysis (category, key feature, verdict, value score), and appends the enriched results to a Google Sheets spreadsheet. How it works Runs when you manually click “Test workflow” in n8n. Sends the configured Amazon search URL and scraping limits to the apify Amazon Crawler actor and retrieves the dataset items. Filters out any scraper items that are missing a title or contain an error. Uses OpenAI to analyze each product’s title, brand, price, rating, and review count and returns a structured category, key feature, buyer verdict, and 1–10 value score. Combines the scraped fields and AI analysis into a single row format and adds a timestamp. Appends each enriched product as a new row in Google Sheets. Setup Create an apify API token and add it as an HTTP Header Auth credential used by the Apify request. Add an OpenAI API key as an OpenAI credential and choose the model to use in the configuration. Connect a Google Sheets OAuth2 account and select the target spreadsheet, sheet tab, and columns for appending rows. Upda
Generate weekly Pinterest content opportunity briefs with Apify, OpenAI and Google Sheets
Quick overview Research a Pinterest niche with FetchCat's Pinterest Search Scraper, preserve every source pin in Google Sheets, and use one evidence-controlled OpenAI call to identify recurring themes, underrepresented angles, and five production-ready content briefs without claiming search volume or trend growth. How it works Starts manually with one research niche and one to five exact Pinterest search phrases, plus locale, country, and a configurable result limit. Runs fetch_cat/pinterest-search-scraper through a Cloud-compatible HTTP Request and collects 20 to 500 public pins per search with public detail enrichment enabled. Validates, normalizes, and deduplicates returned pins. It stops before AI or destination writes when fewer than ten usable pins remain. Builds stable Google Sheets rows, deterministic phrase counts, and a bounded evidence packet, then uses one structured gpt-5.4-mini request for analysis. Removes invalid pin citations and rejects any finding that retains no supplied evidence, preventing unsupported recommendations from reaching the destination. Upserts source pins and a readable brief into separate Pins and Research Brief tabs using stable same-day research
Find and verify business emails with ScraperCity, OpenAI, Google Sheets, and Gmail
Quick overview This workflow reads contacts from Google Sheets, finds and verifies their business emails via the ScraperCity Email Finder API, generates a short personalized icebreaker with OpenAI, appends the enriched leads to another Google Sheet, and emails a run summary via Gmail. How it works Starts manually to run an email enrichment job. Reads contacts (first name, last name, domain) from an input Google Sheets worksheet and aggregates them into a single payload. Submits the contacts to the ScraperCity Email Finder API, then waits and repeatedly checks the job status until it succeeds or fails/times out. When the job succeeds, downloads the result CSV from ScraperCity, parses it, normalizes key fields (name, domain, email, verification status, provider), and keeps only rows with an email. For each verified contact, prompts OpenAI to generate one short, company-referencing cold-email opening line in the configured language. Appends the enriched lead (including email, status, and icebreaker) to an output Google Sheets worksheet and sends a summary email via Gmail. Setup Create a ScraperCity account with Email Finder credits and add an HTTP Header Auth credential that sends you
Find YouTube creator emails with Apify, OpenAI and Google Sheets
Quick overview This workflow searches YouTube via Apify for videos matching a keyword, deduplicates the resulting channels, scrapes each channel’s About description, uses OpenAI to extract contact email addresses, and appends channels with emails to a Google Sheets tab. How it works Starts when you manually execute the workflow. Sends a keyword-based search request to the Apify YouTube Scraper to retrieve recent YouTube results and their channel URLs. Deduplicates the results so each channel URL is processed only once. Scrapes each channel’s About/description data using an Apify YouTube Scraper request. Uses OpenAI to extract and de-obfuscate any email addresses found in the channel description. Keeps only channels where at least one email address was extracted. Appends the channel name, channel URL, extracted emails, search query, and the current date to Google Sheets. Setup Add an Apify API token using an HTTP Header Auth credential (Authorization: Bearer ) and connect it to both Apify HTTP Request steps. Add an OpenAI API key credential and choose the model name you want to use in the Configuration values. Connect your Google Sheets OAuth credential, then set the target spreadsh
Turn support emails into FAQ drafts with Gmail, OpenAI, Sheets and Docs
Quick overview This workflow monitors a Gmail inbox for new support-style emails, uses OpenAI to extract a reusable FAQ question and safe draft answer, logs results to Google Sheets, and then creates a Google Docs draft and/or Gmail review drafts for a human reviewer. How it works Polls Gmail every 5 minutes for unread emails matching the configured support-related search query. Cleans the email content by stripping quoted replies, signatures, and HTML to produce a concise plain-text body. Sends the cleaned email and product context to OpenAI to extract a structured FAQ candidate (question, draft answer, category, score, sensitivity flag, tags, and recommended action). Calculates a routing status based on the FAQ score threshold and sensitivity/recommended action, and prepares draft text for a Google Doc and reviewer email. Appends every processed email and extracted fields to a Google Sheets tab for tracking and reporting. If the candidate is strong, creates a Google Docs FAQ draft, inserts the draft content, and creates a Gmail draft notification to the reviewer with the document link. If the candidate needs manual handling, creates a Gmail draft to the reviewer with the review n
Draft and stage LinkedIn re-engagements with HeyReach, Twain, and Slack
Quick overview This workflow runs weekly (or manually) to pull tagged “cold” HeyReach conversations, uses Twain to draft context-aware re-engagement messages, then stages leads in a HeyReach list and notifies Slack for review while tagging processed leads to avoid duplicates. How it works Runs on a weekly schedule or via a manual trigger. Fetches all conversations from the HeyReach Inbox API using pagination. Filters conversations by HeyReach lead tags (include tags like “Cold”/“Not interested” and exclude tags like “Re-engaged”) and extracts each lead’s LinkedIn URL, name, and prior message thread. Sends the conversation context to Twain to generate a re-engagement sequence draft and add the contact to the specified Twain campaign. Adds the lead to a HeyReach re-engagement list and stores the first Twain draft message in a custom user field. Posts the drafted re-engagement message to a Slack channel for review. Tags the lead as “Re-engaged” in HeyReach to prevent reprocessing. Setup Add HeyReach API credentials for HTTP Header Auth and ensure the header matches HeyReach requirements (for example, X-API-KEY). Add Twain API credentials for HTTP Header Auth and ensure the header matc