by Aslamul Fikri Alfirdausi
How it works This workflow is a professional-grade market intelligence tool designed to bridge the gap between search interest and social media engagement. It automates the end-to-end process of trend discovery and content strategy. Detection: Polls Google Trends RSS daily for rising regional search queries. Parallel Extraction: Concurrently triggers industrial-grade Apify actors to scrape TikTok, Instagram, and X (Twitter) without the risk of account bans. Data Aggregation: Uses custom JavaScript logic to clean and merge disparate data points, optimizing them for LLM processing. AI Analysis: Google Gemini Flash analyzes the data to identify core topics, sentiment, and trend strength. Granular Delivery: Delivers individual, structured reports for each identified trend directly to Discord via Webhooks. Set up steps API Credentials: Prepare your Apify API Token and Google Gemini API Key. Discord Setup: Create a Webhook in your Discord server and paste the URL into the Discord node. Regional Configuration: Set your target country code (e.g., JP, ID, US) in the "Edit Fields" node at the start of the workflow. Node Settings: Ensure all scraper nodes are set to "Continue on Fail" to maintain workflow resilience. Requirements Apify Account. Google Gemini API Key. Discord Server for report delivery.
by SpaGreen Creative
WhatsApp Bulk Number Verification in Google Sheets Using Unofficial Rapiwa API Who’s it for This workflow is for marketers, small business owners, freelancers, and support teams who want to automate WhatsApp messaging using a Google Sheet without the official WhatsApp Business API. It’s suitable when you need a budget-friendly, easy-to-maintain solution that uses your personal or business WhatsApp number via an unofficial API service such as Rapiwa. How it works / What it does The workflow looks for rows in a Google Sheet where the Status column is pending. It cleans each phone number (removes non-digits). It verifies the number with the Rapiwa verify endpoint (/api/verify-whatsapp). If the number is verified: The workflow can send a message (optional). It updates the sheet: Verification = verified, Status = sent (or leaves Status for the send node to update). If the number is not verified: It skips sending. It updates the sheet: Verification = unverified, Status = not sent. The workflow processes rows in batches and inserts short delays between items to avoid rate limits. The whole process runs on a schedule (configurable). Key features Scheduled automatic checks (configurable interval; recommended 5–10 minutes). Cleans phone numbers to a proper format before verification. Verifies WhatsApp registration using Rapiwa. Batch processing with limits to control workload (recommended max per run configurable). Short delay between items to reduce throttling and temporary blocks. Automatic sheet updates for auditability (verified/unverified, sent/not sent). Defaults recommended in this workflow Trigger interval: every 5–10 minutes (adjustable). Max items per run: configurable (example: 200 max per cycle). Delay between items: 2–5 seconds (example uses 3 seconds). How to set up Duplicate the sample Google Sheet: ➤ Sample Fill contact rows and set Status = pending. Include columns like WhatsApp No, Name, Message, Verification, Status. In n8n, add and authenticate a Google Sheets node pointed to your sheet. Create an HTTP Bearer credential in n8n and paste your Rapiwa API key. Configure the workflow nodes (Trigger → Google Sheets → Limit/SplitInBatches → Code (clean) → HTTP Request (verify) → If → Update Sheet → Wait). Enable the workflow and monitor first runs with a small test batch. Requirements n8n instance with Google Sheets and HTTP Request nodes enabled. Google Sheets OAuth2 credentials configured in n8n. Rapiwa account and Bearer token (stored in n8n credentials). Google Sheet formatted to match the workflow columns. Why use Rapiwa Cost-effective and developer-friendly REST API for WhatsApp verification and sending. Simple integration via HTTP requests and n8n. Useful when you prefer not to use the official WhatsApp Business API. Note: Rapiwa is an unofficial service — review its terms and risks before production use. How to customize Change schedule frequency in the Trigger node. Adjust maxItems in Limit/SplitInBatches for throughput control. Change the Wait node delay for safer sending. Modify the HTTP Request body to support media or templates if the provider supports it. Add logging or a separate audit sheet to record API responses and errors. Best practices Test with a small batch first. Keep the sheet headers exact and consistent. Store API keys in n8n credentials (do not hardcode). Increase Wait time or reduce batch size if you see rate limits. Keep a log sheet of verified/unverified rows for troubleshooting. Example HTTP verify body (n8n HTTP Request node) { "number": "{{ $json['WhatsApp No'] }}" } Notes and best practices Test with a small batch before scaling. Store the Rapiwa token in n8n credentials, not in node fields. Increase Wait delay or reduce batch size if you see rate limits or temporary blocks. Keep the sheet headers consistent; the workflow matches columns by name. Log API responses or errors for troubleshooting. Optional Add a send-message HTTP Request node after verification to send messages. Append successful and failed rows to separate sheets for easy review. Support & Community Need help setting up or customizing the workflow? Reach out here: WhatsApp: Chat with Support Discord: Join SpaGreen Server Facebook Group: SpaGreen Community Website: SpaGreen Creative Envato: SpaGreen Portfolio
by isaWOW
Description An intelligent AI-powered workflow that automates HR document creation for new hires. Upload candidate documents via form, and the system extracts details, auto-calculates joining dates, fills professional templates using GPT-4, and saves the final Offer Letter or Employment Contract directly to Google Docs—all in seconds. What this workflow does This automation handles your complete HR onboarding document pipeline: Form-based submission:** HR fills a simple form with candidate's Identity card, Resume, Job Role, Salary, and document type selection Smart data extraction:** Automatically extracts candidate name from uploaded Resume PDF and calculates joining date (1st of next month) Template selection:** Routes to Offer Letter or Employment Contract template based on HR's selection AI-powered filling:** Uses OpenAI GPT-4.1-mini to intelligently fill all placeholders while preserving exact formatting, line breaks, and emojis Google Docs output:** Saves the final professional document directly to Google Docs, ready to send to the candidate Setup requirements Tools you'll need: Active n8n instance (self-hosted or n8n Cloud) Google Docs with OAuth access OpenAI API key (GPT-4.1-mini access) PDF documents: Candidate's Identity card and Resume Estimated setup time: 15–20 minutes Step-by-step setup 1. Connect Google Docs In n8n: Credentials → Add credential → Google Docs OAuth2 API Complete OAuth authentication Open "Save Document to Google Docs" node Create a new Google Doc or use an existing template document Copy the document URL and paste it in the documentURL field 2. Add OpenAI API credentials Get API key: https://platform.openai.com/api-keys In n8n: Credentials → Add credential → OpenAI API Paste your API key Open "OpenAI GPT-4.1 Mini Model" node Select your OpenAI credential Ensure model is set to gpt-4.1-mini 3. Customize document templates The workflow includes two pre-built templates. You can customize them: Offer Letter Template: Open "Load Offer Letter Template" node Edit the template_offer value Available placeholders: [Candidate Name], [Job Role], [Department/Team Name], [Company Name], [Joining Date], [Salary Details], [Work Location], [Reporting Manager/Team Lead], [Probation Period] Employment Contract Template: Open "Load Contract Template" node Edit the template_contract value Uses the same placeholders with additional terms and conditions sections Important: Keep all placeholders in square brackets [Placeholder Name] exactly as shown. The AI will replace them automatically. 4. Configure form fields (optional) Open "Receive Candidate Details via Form" node Default fields: Identity card (file), Resume (file), Job Role (text), Salary Details (number), Type (dropdown) Add optional fields if needed: Department Name, Work Location, Reporting Manager, Probation Period Copy the Form URL from the node settings Share this URL with your HR team 5. Test the workflow Open the Form URL in your browser Upload sample Identity card and Resume PDFs Fill Job Role: "Software Developer" Enter Salary Details: 50000 Select Type: "Offer Letter" Submit the form Check your Google Docs—the filled document should appear automatically Verify all placeholders are replaced correctly 6. Activate the workflow Toggle the workflow to Active at the top The form will now accept submissions 24/7 Each submission generates a new document in Google Docs How it works 1. Form submission HR opens the form link and uploads candidate documents (Identity card + Resume as PDFs), enters job details, and selects document type (Offer Letter or Contract). 2. Document processing The workflow splits uploaded files into separate items and auto-generates two dates: Form Date:** Current submission date Joining Date:** Automatically set to the 1st of next month 3. Text extraction Extracts text from both PDF documents using n8n's built-in Extract From File node. The candidate's name is typically pulled from the Resume. 4. Data aggregation Combines extracted text from both documents into a single data item for processing. 5. Template routing Checks the selected document type: If "Offer Letter" → loads the Offer Letter template If "Contract" → loads the Employment Contract template 6. AI template filling The AI Agent receives: The selected template with placeholders All form data (Job Role, Salary, etc.) Extracted candidate name from Resume Auto-calculated joining date GPT-4.1-mini fills every placeholder with actual data while strictly preserving: Line breaks and paragraph spacing Emojis and special characters Bold/italic formatting markers Email, phone, and web links 7. Google Docs save The final filled document is inserted into your Google Docs document. Each submission appends a new document, so you can maintain a running archive or clear the doc periodically. Key features ✅ Zero manual typing: Extract candidate name automatically from Resume PDF—no copy-paste needed ✅ Smart date calculation: Joining date auto-set to 1st of next month based on submission date ✅ Dual document types: Choose between simple Offer Letter or detailed Employment Contract with terms ✅ AI preserves formatting: GPT-4.1-mini maintains exact line breaks, emojis, and structure from templates ✅ Google Docs integration: Documents saved directly—no downloads, conversions, or file juggling ✅ Customizable templates: Edit both templates to match your company's tone, policies, and branding ✅ Form-based workflow: Share one URL with HR team—no n8n access needed for daily use Troubleshooting Google Docs not saving Re-authenticate OAuth credentials:** Go to Credentials → Google Docs OAuth2 API → Reconnect Check document URL:** Ensure the documentURL field contains a valid Google Docs link (not a Sheets link) Verify permissions:** Make sure the connected Google account has edit access to the document Candidate name not extracting correctly Resume format issue:** The workflow expects candidate name in the Resume PDF text. If your Resume format is unusual, you may need to adjust the extraction logic. Check extraction node:** Open "Extract Text from Identity card and Resume" node → Test execution → Verify text output Manual override:** Add a "Candidate Name" field to the form if automatic extraction fails AI not filling placeholders Check API key:** Verify OpenAI API key is active and has credits at https://platform.openai.com/usage Placeholder mismatch:** Ensure template placeholders exactly match the format [Placeholder Name] with square brackets Test AI node:** Click "Fill Template with AI" → Execute node → Check output for errors Joining date incorrect Timezone issue:** The date calculation uses server timezone. Verify your n8n instance timezone settings. Custom date needed:** If you want a different joining date logic (e.g., 15 days from submission), edit the "Split Documents and Calculate Dates" code node. Form not accepting file uploads File size limit:** Default n8n form limit is 16MB. Compress PDFs if larger. File type validation:** Ensure uploaded files are PDFs, not images or other formats. Browser issue:** Try a different browser (Chrome recommended for file uploads). Use cases HR teams at growing companies: Onboard 5-10 new hires per week without spending hours on document preparation. Generate consistent, professional documents in seconds. Recruitment agencies: Send offer letters to multiple candidates daily. Maintain brand consistency while scaling operations without adding admin staff. Startups and small businesses: Automate HR paperwork from day one. Focus on candidate experience instead of document formatting. Remote-first companies: Enable distributed HR teams to generate documents without shared drives or email chains. Single form link, instant output. Consulting firms: Create client-specific employment contracts with custom templates. Switch between contract types based on project requirements. Expected results Time savings:** 15-20 minutes saved per document (from 20 min manual → 2 min automated) Output quality:** Professional, error-free documents with consistent formatting every time Scalability:** Process 50+ candidates per week without additional HR headcount Error reduction:** Eliminate typos and placeholder mistakes common in manual copy-paste workflows Faster hiring:** Send offer letters within 5 minutes of candidate approval Workflow customization Add more form fields Open "Receive Candidate Details via Form" node and add custom fields: Department Name (dropdown with your teams) Work Location (dropdown: Remote, Office, Hybrid) Reporting Manager (text input) Probation Period (number input) Start Date (date picker for custom joining dates) These values automatically populate in templates if placeholders are added. Create additional templates Duplicate one of the "Load Template" nodes and create: Internship Offer Letters Part-time Contract Freelancer Agreement Probation Extension Letter Add a corresponding option in the form Type dropdown. Send documents via email Add an Email node after "Save Document to Google Docs": Attach the Google Docs link Send to candidate email (add email field to form) CC HR manager automatically Multi-language support Create template variations in different languages. Add a "Language" dropdown to the form and route to appropriate template. Support Need help or custom development? 📧 Email: info@isawow.com 🌐 Website: https://isawow.com/
by Oneclick AI Squad
This workflow automatically processes incoming debate topic requests, generates structured, evidence-backed Pro vs Con debates with balanced arguments, rebuttals, and final verdicts using AI, delivers them via email, and logs everything in Google Sheets. Who’s it for • Students and debaters preparing arguments • Content creators and podcasters • Researchers and analysts needing balanced views • Decision-makers and AI enthusiasts exploring topics How it works / What it does Captures new debate requests (webhook or scheduled poll) Validates the topic and prepares context AI generates full structured debate (Pro/Con arguments with evidence, rebuttals, verdict) Formats professional markdown output Emails the complete debate to the requester Logs topic, verdict summary, and generation details in Google Sheets How to set up Import this workflow Set up credentials (Webhook, Google Sheets, OpenAI/Anthropic) Update default instructions and email sender Activate workflow Requirements • Webhook endpoint for topic submissions • Google Sheets • OpenAI / Anthropic / Grok API • Clear debate topic input How to customize the workflow • Modify AI prompt for depth, tone, or format in the AI node • Adjust Python validation rules • Update Google Sheet columns • Change email templates or add Slack/Teams delivery
by Yasir
🧠 Workflow Overview — AI-Powered Jobs Scraper & Relevancy Evaluator This workflow automates the process of finding highly relevant job listings based on a user’s resume, career preferences, and custom filters. It scrapes fresh job data, evaluates relevance using OpenAI GPT models, and automatically appends the results to your Google Sheet tracker — while skipping any jobs already in your sheet, so you don’t have to worry about duplicates. Perfect for recruiters, job seekers, or virtual assistants who want to automate job research and filtering. ⚙️ What the Workflow Does Takes user input through a form — including resume, preferences, target score, and Google Sheet link. Fetches job listings via an Apify LinkedIn Jobs API actor. Filters and deduplicates results (removes duplicates and blacklisted companies). Evaluates job relevancy using GPT-4o-mini, scoring each job (0–100) against the user’s resume & preferences. Applies a relevancy threshold to keep only top-matching jobs. Checks your Google Sheet for existing jobs and prevents duplicates. Appends new, relevant jobs directly into your provided Google Sheet. 📋 What You’ll Get A personal Job Scraper Form (public URL you can share or embed). Automatic job collection & filtering based on your inputs. Relevance scoring** (0–100) for each job using your resume and preferences. Real-time job tracking Google Sheet that includes: Job Title Company Name & Profile Job URLs Location, Salary, HR Contact (if available) Relevancy Score 🪄 Setup Instructions 1. Required Accounts You’ll need: ✅ n8n account (self-hosted or Cloud) ✅ Google account (for Sheets integration) ✅ OpenAI account (for GPT API access) ✅ Apify account (to fetch job data) 2. Connect Credentials In your n8n instance: Go to Credentials → Add New: Google Sheets OAuth2 API Connect your Google account. OpenAI API Add your OpenAI API key. Apify API Replace <your_apify_api> with your apify api key. Set Up Apify API Get your Apify API key Visit: https://console.apify.com/settings/integrations Copy your API key. Rent the required Apify actor before running this workflow Go to: https://console.apify.com/actors/BHzefUZlZRKWxkTck/input Click “Rent Actor”. Once rented, it can be used by your Apify account to fetch job listings. 3. Set Up Your Google Sheet Make a copy of this template: 📄 Google Sheet Template Enable Edit Access for anyone with the link. Copy your sheet’s URL — you’ll provide this when submitting the workflow form. 4. Deploy & Run Import this workflow (jobs_scraper.json) into your n8n workspace. Activate the workflow. Visit your form trigger endpoint (e.g. https://your-n8n-domain/webhook/jobs-scraper). Fill out the form with: Job title(s) Location Contract type, Experience level, Working mode, Date posted Target relevancy score Google Sheet link Resume text Job preferences or ranking criteria Submit — within minutes, new high-relevance job listings will appear in your Google Sheet automatically. 🧩 Example Use Cases Automate daily job scraping for clients or yourself. Filter jobs by AI-based relevance instead of keywords. Build a smart job board or job alert system. Support a career agency offering done-for-you job search services. 💡 Tips Adjust the “Target Relevancy Score” (e.g., 70–85) to control how strict the filtering is. You can add your own blacklisted companies in the Filter & Dedup Jobs node.
by Daniel Turgeman
How it works A webhook receives a form submission with an email address The email is validated, then Lusha enriches the contact If phone or email is missing, a fallback provider fills the gaps via HTTP request Data from both sources is merged, upserted into HubSpot, and an SDR alert is sent to Slack The webhook returns the enriched lead as a JSON response Set up steps Install the Lusha community node Add your Lusha API, HubSpot, and Slack credentials Configure the fallback HTTP node with your secondary provider's API endpoint and key Point your form's action URL to the webhook endpoint
by Nikan Noorafkan
🧠 Google Ads Monthly Performance Optimization (Channable + Google Ads + Relevance AI) 🚀 Overview This workflow automatically analyzes your Google Ads performance every month, identifies top-performing themes and categories, and regenerates optimized ad copy using Relevance AI — powered by insights from your Channable product feed. It then saves the improved ads to Google Sheets for review and sends a detailed performance report to your Slack workspace. Ideal for marketing teams who want to automate ad optimization at scale with zero manual intervention. 🔗 Integrations Used Google Ads** → Fetch campaign and ad performance metrics using GAQL. Relevance AI** → Analyze performance data and regenerate ad copy using AI agents and tools. Channable** → Pull updated product feeds for ad refresh cycles. Google Sheets** → Save optimized ad copy for review and documentation. Slack** → Send a 30-day performance report to your marketing team. 🧩 Workflow Summary | Step | Node | Description | | ---- | --------------------------------------------------- | --------------------------------------------------------------------------- | | 1 | Monthly Schedule Trigger | Runs automatically on the 1st of each month to review last 30 days of data. | | 2 | Get Google Ads Performance Data | Fetches ad metrics via GAQL query (impressions, clicks, CTR, etc.). | | 3 | Calculate Performance Metrics | Groups results by ad group and theme to find top/bottom performers. | | 4 | AI Performance Analysis (Relevance AI) | Generates human-readable insights and improvement suggestions. | | 5 | Update Knowledge Base (Relevance AI) | Saves new insights for future ad copy training. | | 6 | Get Updated Product Feed (Channable) | Retrieves the latest catalog items for ad regeneration. | | 7 | Split Into Batches | Splits the feed into groups of 50 to avoid API rate limits. | | 8 | Regenerate Ad Copy with Insights (Relevance AI) | Rewrites ad copy with the latest product and performance data. | | 9 | Save Optimized Ads to Sheets | Writes output to your “Optimized Ads” Google Sheet. | | 10 | Generate Performance Report | Summarizes the AI analysis, CTR trends, and key insights. | | 11 | Email Performance Report (Slack) | Sends report directly to your Slack channel/team. | 🧰 Requirements Before running the workflow, make sure you have: A Google Ads account with API access and OAuth2 credentials. A Relevance AI project (with one Agent and one Tool setup). A Channable account with API key and project feed. A Google Sheets document for saving results. A Slack webhook URL for sending performance summaries. ⚙️ Environment Variables Add these environment variables to your n8n instance (via .env or UI): | Variable | Description | | -------------------------------- | ------------------------------------------------------------------- | | GOOGLE_ADS_API_VERSION | API version (e.g., v17). | | GOOGLE_ADS_CUSTOMER_ID | Your Google Ads customer ID. | | RELEVANCE_AI_API_URL | Base Relevance AI API URL (e.g., https://api.relevanceai.com/v1). | | RELEVANCE_AGENT_PERFORMANCE_ID | ID of your Relevance AI Agent for performance analysis. | | RELEVANCE_KNOWLEDGE_SOURCE_ID | Knowledge base or dataset ID used to store insights. | | RELEVANCE_TOOL_AD_COPY_ID | Relevance AI tool ID for generating ad copy. | | CHANNABLE_API_URL | Channable API endpoint (e.g., https://api.channable.com/v1). | | CHANNABLE_COMPANY_ID | Your Channable company ID. | | CHANNABLE_PROJECT_ID | Your Channable project ID. | | FEED_ID | The feed ID for product data. | | GOOGLE_SHEET_ID | ID of your Google Sheet to store optimized ads. | | SLACK_WEBHOOK_URL | Slack Incoming Webhook URL for sending reports. | 🔐 Credentials Setup in n8n | Credential | Type | Usage | | ----------------------------------------------- | ------- | --------------------------------------------------- | | Google Ads OAuth2 API | OAuth2 | Authenticates your Ads API queries. | | HTTP Header Auth (Relevance AI & Channable) | Header | Uses your API key as Authorization: Bearer <key>. | | Google Sheets OAuth2 API | OAuth2 | Writes optimized ads to Sheets. | | Slack Webhook | Webhook | Sends monthly reports to your team channel. | 🧠 Example AI Insight Output { "insights": [ "Ad groups using 'vegan' and 'organic' messaging achieved +23% CTR.", "'Budget' keyword ads underperformed (-15% CTR).", "Campaigns featuring 'new' or 'bestseller' tags showed higher conversion rates." ], "recommendations": [ "Increase ad spend for top-performing 'vegan' and 'premium' categories.", "Revise copy for 'budget' and 'sale' ads with low CTR." ] } 📊 Output Example (Google Sheet) | Product | Category | Old Headline | New Headline | CTR Change | Theme | | ------------------- | -------- | ------------------------ | -------------------------------------------- | ---------- | ------- | | Organic Protein Bar | Snacks | “Healthy Energy Anytime” | “Organic Protein Bar — 100% Natural Fuel” | +12% | Organic | | Eco Face Cream | Skincare | “Gentle Hydration” | “Vegan Face Cream — Clean, Natural Moisture” | +17% | Vegan | 📤 Automation Flow Run Automatically on the first of every month (cron: 0 0 1 * *). Fetch Ads Data → Analyze & Learn → Generate New Ads → Save & Notify. Every iteration updates the AI’s knowledge base — improving your campaigns progressively. ⚡ Scalability The flow is batch-optimized (50 items per request). Works for large ad accounts with up to 10,000 ad records. AI analysis & regeneration steps are asynchronous-safe (timeouts extended). Perfect for agencies managing multiple ad accounts — simply duplicate and update the environment variables per client. 🧩 Best Use Cases Monthly ad creative optimization for eCommerce stores. Marketing automation for Google Ads campaign scaling. Continuous learning ad systems powered by Relevance AI insights. Agencies automating ad copy refresh cycles across clients. 💬 Slack Report Example 30-Day Performance Optimization Report Date: 2025-10-01 Analysis Period: Last 30 days Ads Analyzed: 842 Top Performing Themes Vegan: 5.2% CTR (34 ads) Premium: 4.9% CTR (28 ads) Underperforming Themes Budget: 1.8% CTR (12 ads) AI Insights “Vegan” and “Premium” themes outperform baseline by +22% CTR. “Budget” ads underperform due to lack of value framing. Next Optimization Cycle: 2025-11-01 🛠️ Maintenance Tips Update your GAQL query occasionally to include new metrics or segments. Refresh Relevance AI tokens every 90 days (if required). Review generated ads in Google Sheets before pushing them live. Test webhook and OAuth connections after major n8n updates. 🧩 Import Instructions Open n8n → Workflows → Import from File / JSON. Paste this workflow JSON or upload it. Add all required environment variables and credentials. Execute the first run manually to validate connections. Once verified, enable scheduling for automatic monthly runs. 🧾 Credits Developed for AI-driven marketing teams leveraging Google Ads, Channable, and Relevance AI to achieve continuous ad improvement — fully automated via n8n.
by nXsi
This n8n template builds an automated health monitoring dashboard for your homelab Docker host. It SSHs into your server, collects 30+ system and container metrics, analyzes trends with AI, and delivers a structured multi-embed dashboard to Discord -- plus real-time critical alerts when things go wrong. Stop SSHing into your server every morning to check if everything's still running. AI reads your metrics and tells you exactly what needs attention, with copy-paste fix commands. Good to know Estimated cost is ~$0.003 per daily run using GPT-4o-mini. Compatible with Claude or any OpenAI-compatible LLM -- swap the model sub-node to switch providers. See the setup notes inside the workflow for Claude configuration. Uses Google Sheets for 7-day metric history and trend analysis. A one-click setup trigger auto-creates a formatted tracking spreadsheet with frozen headers and conditional formatting. The critical alert path runs every 5 minutes with a lightweight check (configurable). The daily digest runs once in the morning. Both schedules are adjustable. How it works Daily schedule trigger SSHs into your Docker host and collects system metrics (real CPU % from /proc/stat, memory, all filesystems, swap, network I/O, top processes, zombie processes, failed services) and Docker metrics (container status, CPU, memory, restarts, health checks, disk usage, dangling images) in ~2 seconds A 100-point health score is calculated from weighted metrics across CPU, memory, disk, swap, containers, and system health 7 days of historical data is loaded from Google Sheets for trend comparison AI analyzes current vs. historical metrics and returns structured JSON with severity-tagged findings, CLI fix commands, trend analysis, and a top recommendation A 4-embed Discord dashboard is delivered: status header with inline metrics, actionable findings, Docker ecosystem overview with trends, and a footer with timing and API cost Today's metrics are stored in Google Sheets for future trend tracking A separate lightweight path runs every 5 minutes checking critical thresholds (disk > 90%, memory > 95%, inodes > 90%, containers down) and fires immediate alerts How to use Click "Test workflow" on the first-time setup trigger to auto-create your Google Sheets tracking dashboard Copy the Sheet ID into the configuration node, add your Discord webhook URL, wire your SSH and OpenAI credentials, and activate Full setup guides linked inside the workflow for SSH keys, API keys, and Discord webhooks Requirements SSH access to a Linux Docker host (key-based authentication) (ssh key setup) OpenAI API key or Anthropic API key (OpenAI setup guide | Claude setup guide) Google Sheets OAuth2 credential (n8n docs) Discord webhook URL (setup guide) Customizing this workflow Adjust alert thresholds in the configuration node (disk warning/critical, memory warning/critical, inode critical, restart threshold) Change the daily digest and critical alert schedules in the trigger nodes Swap OpenAI for Claude or Ollama by replacing the LLM sub-node Replace Discord with Slack, Telegram, or ntfy by modifying the webhook payload format Add additional SSH metrics by editing the collection commands
by Surya Vardhan Yalavarthi
What this workflow does This workflow automates the full machine learning lifecycle end-to-end using Claude AI as the intelligent decision-maker at every stage. Send one HTTP request with a dataset URL and a business goal — and the pipeline handles everything from raw CSV to a human-approved, documented model ready for GitHub. The pipeline runs in 5 sequential phases: Phase 1 — Strategy Claude Sonnet 4 receives the dataset URL, target variable, and business goal. It outputs a structured JSON plan covering feature ideas, algorithm choices, and the evaluation metric. A fallback parser ensures the pipeline continues even if the LLM output is slightly malformed. Phase 2 — Data Engineering The workflow fetches the CSV via HTTP Request and runs it through a custom quoted-field CSV parser (handles commas inside quoted name fields, common in datasets like Titanic). It drops rows with missing targets, imputes missing Age values, and encodes categorical columns (Sex, Embarked) into numeric form. Phase 3 — Feature Engineering Claude Haiku reviews the cleaned dataset and confirms the 3 best features to engineer. A Code node then creates FamilySize (SibSp + Parch + 1), IsAlone (binary flag), and TitleEncoded (extracted and mapped from passenger name). A row-count validation gate ensures no data is silently lost. Phase 4 — Training & Evaluation Three algorithms are trained from scratch in pure JavaScript — no external ML libraries required: Logistic Regression** via gradient descent (200 epochs) Random Forest** via 10 bagged decision stumps XGBoost** via gradient boosting with residual-based stump selection Precision, recall, F1, and accuracy are computed for each. Claude Sonnet then acts as an LLM judge: it reads all three result sets alongside the original business goal and selects the winner with a one-sentence justification. A deterministic fallback (highest F1) runs if the LLM response fails to parse. Phase 5 — HITL Deployment Claude Sonnet writes a structured MODEL_CARD.md covering model overview, performance metrics, training data summary, feature engineering decisions, intended use, and limitations. The full results are then posted to a Slack channel as a formatted approval request. A human can review the results and reply to approve or reject deployment. An optional Supabase audit log records each phase transition with timestamp, phase name, status, and run ID. Tested results Tested on the Titanic dataset (891 rows): | Model | F1 Score | Accuracy | |---|---|---| | Logistic Regression | 0.712 | 0.787 | | Random Forest | 0.739 | 0.804 | | XGBoost | 0.761 | 0.821 | Claude correctly identified XGBoost as the winner and generated a complete model card in under 10 seconds. What you need | Requirement | Details | |---|---| | Anthropic API key | Used in P1, P4 (Claude Sonnet 4), and P3 (Claude Haiku). Get at console.anthropic.com | | Slack Bot Token | OAuth bot token with chat:write scope. Bot must be invited to the target channel via /invite @bot-name | | Supabase project (optional) | For audit logging. Replace YOUR_PROJECT.supabase.co and YOUR_SUPABASE_SERVICE_ROLE_KEY in the 5 log nodes, or delete them | | Public CSV URL | The dataset must be reachable by your n8n instance via HTTP GET | Setup steps Import the workflow JSON into your n8n instance Add your Anthropic API credential and assign it to the 3 lmChatAnthropic nodes (P1, P3, P4) Add your Slack Bot Token credential and assign it to the P5 Slack node. Replace YOUR_SLACK_CHANNEL_ID with your real channel ID (e.g. C012AB3CD) (Optional) Set up the Supabase audit log table using the SQL in the setup sticky note, then replace the two placeholder values in the 5 log HTTP Request nodes Activate the workflow and send a test request: POST https://your-n8n-instance.com/webhook/mlops-v2 Content-Type: application/json { "dataset_url": "https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv", "target_variable": "Survived", "business_goal": "Predict passenger survival to optimise lifeboat boarding policy" } Extending the workflow The Phase 5 sticky note includes a tip for extending the HITL loop: add a Webhook node to receive the Slack approval callback and an If node to branch into a GitHub API call that commits the model card to a new repository. The model_card_b64 field (Base64-encoded model card content) is already assembled in the payload, ready to be passed directly to the GitHub Contents API. Node count & complexity 28 nodes** total (22 active, 6 sticky notes) 3 LLM calls** (Claude Sonnet ×2, Claude Haiku ×1) 5 JavaScript Code nodes** (all pure JS, no external libraries) 5 Supabase log nodes** (optional, deletable) 1 Slack node** Fan-out connections** used to run log nodes as parallel dead-ends without blocking the main data path Tags AI, Machine Learning, MLOps, Claude AI, Slack, Automation, Data Science, HITL, LLM
by Pixcels Themes
AI Assignment Grader with Automated Reporting Who’s it for This workflow is designed for educators, professors, academic institutions, coaching centers, and edtech platforms that want to automate the grading of written assignments or test papers. It’s ideal for scenarios where consistent evaluation, detailed feedback, and structured result storage are required without manual effort. What it does / How it works This workflow automates the end-to-end grading process for student assignments submitted as PDFs. A student’s test paper is uploaded via a webhook endpoint. The workflow extracts text from the uploaded PDF file. Student metadata (name, assignment title) is prepared and combined with the extracted answers. A predefined answer script (model answers with marking scheme) is loaded into the workflow. An AI grading agent powered by Gemini compares the student’s responses against the answer script. The AI: Evaluates each question Assigns marks based on correctness and completeness Generates per-question feedback Calculates total marks, percentage, and grade The structured grading output is converted into: An HTML grading report A CSV file for records The final CSV grading report is automatically uploaded to Google Drive for storage and sharing. All grading logic runs automatically once the test paper is submitted. Requirements Google Gemini (PaLM) API credentials Google Drive OAuth2 credentials A webhook endpoint configured in n8n PDF test papers submitted in a supported format A predefined answer script with marks per question How to set up Connect your Google Gemini credentials in n8n. Connect your Google Drive account and select the destination folder. Enable and copy the webhook URL for test paper uploads. Customize the Load Answer Script node with your assignment’s correct answers and marking scheme. (Optional) Adjust grading instructions or output format in the AI Agent prompt. Test the workflow by uploading a sample PDF assignment. How to customize the workflow Update the AI grading rubric to be stricter or more lenient. Modify feedback style (short comments vs detailed explanations). Change grading scales, total marks, or grade boundaries. Store results in additional systems (LMS, database, email notifications). Add plagiarism checks or similarity scoring before grading. Generate PDF reports instead of CSV/HTML if required. This workflow enables fast, consistent, and scalable assignment grading while giving students clear, structured feedback and educators reliable records.
by Bhavy Shekhaliya
Overview This n8n template demonstrates how to use AI to automatically analyze WordPress blog content and generate relevant, SEO-optimized tags for WordPress posts. Use cases Automate content tagging for WordPress blogs, maintain consistent taxonomy across large content libraries, save hours of manual tagging work, or improve SEO by ensuring every post has relevant, searchable tags! Good to know The workflow creates new tags automatically if they don't exist in WordPress. Tag generation is intelligent - it avoids duplicates by mapping to existing tag IDs. How it works We fetch a WordPress blog post using the WordPress node with sticky data enabled for testing. The post content is sent to GPT-4.1-mini which analyzes it and generates 5-10 relevant tags using a structured output parser. All existing WordPress tags are fetched via HTTP Request to check for matches. A smart loop processes each AI-generated tag: If the tag already exists, it maps to the existing tag ID If it's new, it creates the tag via WordPress API All tag IDs are aggregated and the WordPress post is updated with the complete tag list. How to use The manual trigger node is used as an example but feel free to replace this with other triggers such as webhook, schedule, or WordPress webhook for new posts. Modify the "Fetch One WordPress Blog" node to fetch multiple posts or integrate with your publishing workflow. Requirements WordPress site with REST API enabled OpenAI API Customising this workflow Adjust the AI prompt to generate tags specific to your industry or SEO strategy Change the tag count (currently 5-10) based on your needs Add filtering logic to only tag posts in specific categories
by Neeraj Chouhan
Good to know: This workflow creates a WhatsApp chatbot that answers questions using your own PDFs through RAG (Retrieval-Augmented Generation). Every time you upload a document to Google Drive, it is processed into embeddings and stored in Pinecone—allowing the bot to respond with accurate, context-aware answers directly on WhatsApp. Who is this for? Anyone building a custom WhatsApp chatbot. Businesses wanting a private knowledge based assistant Teams that want their documents to be searchable via chat Creators/coaches who want automated Q&A from their PDFs Developers who want a no-code RAG pipeline using n8n What problem is this workflow solving? What this workflow does: ✅ Monitors a Google Drive folder for new PDFs ✅ Extracts and splits text into chunks ✅ Generates embeddings using OpenAI/Gemini ✅ Stores embeddings in a Pinecone vector index ✅ Receives user questions via WhatsApp ✅ Retrieves the most relevant info using vector search ✅ Generates a natural response using an AI Agent ✅ Sends the answer back to the user on WhatsApp How it works: 1️⃣ Google Drive Trigger detects a new or updated PDF 2️⃣ File is downloaded and its text is split into chunks 3️⃣ Embeddings are generated and stored in Pinecone 4️⃣ WhatsApp Trigger receives a user’s question 5️⃣ The question is embedded and matched with Pinecone 6️⃣ AI Agent uses retrieved context to generate a response 7️⃣ The message is delivered back to the user on WhatsApp How to use: Connect your Google Drive account Add your Pinecone API key and index name Add your OpenAI/Gemini API key Connect your WhatsApp trigger + sender nodes Upload a sample PDF to your Drive folder Send a test WhatsApp message to see the bot reply Requirements: ✅ n8n cloud or self-hosted ✅ Google Drive account ✅ Pinecone vector database ✅ OpenAI or Gemini API key ✅ WhatsApp integration (Cloud API or provider) Customizing this workflow: 🟢 Change the Drive folder or add file-type filters 🟢 Adjust chunk size or embedding model 🟢 Modify the AI prompt for tone, style, or restrictions 🟢 Add memory, logging, or analytics 🟢 Add multiple documents or delete old vector entries 🟢 Swap the AI model (OpenAI ↔ Gemini ↔ Groq, etc.)