by Adrian
This workflow automates the assignment of household chores. It reads tasks and a list of people from Google Sheets, pairs each task with someone, updates the spreadsheet with the assignments and emails each person their chores. Each run makes a random assignment so you don’t have to decide who does what. By running on a schedule, it keeps your chore rotation automated. Who is it for? Designed for families, roommates, flat‑shares or property managers who want to keep track of recurring chores without endless group chats or arguments. It’s also helpful for anyone coordinating a team of cleaners or volunteers and wishing to automate a fair distribution of tasks. How it works A Schedule Trigger starts the workflow at a regular interval (default every seven days). Google Sheets node reads the “Tasks” sheet from your spreadsheet. Each row contains a chore with a task. Another Google Sheets node reads the “Persons” sheet to obtain the list of people available to do chores. Next a Code node filters out any people without an email address and any tasks without a task name, then selects a random person for each task. A Gmail node sends each person an email summarising the chore they’ve been assigned. The last Google Sheets node updates the “Tasks” sheet, writing the assigned person’s name into the assigned_to column. Setup steps Spreadsheet – Create a Google Sheets document with two sheets. The first sheet “Tasks” should have columns for task, description, assigned_to and a “hidden row_number”. The second sheet “Persons” should have columns for name and email and “hidden row_number”. Fill them with your current chores and household members. Connect your Google account – In the Get Tasks and Get People nodes, select the credential for your Google account and search for your sheets. Configure the Schedule Trigger – Set the trigger interval (for example, every seven days on a Sunday evening). Edit the assignment logic (optional) – The Code node is preconfigured to filter data and assign tasks randomly. You can modify this script if you prefer a round‑robin approach, weighting by difficulty, or any other logic. Configure Gmail – In the Send a message node, select your Gmail credential. If you want you can customise the subject and body of the email. Update sheet mapping – In the Update assign_to node, ensure the assigned_to column mapping writes the assigned person’s name back to the correct row. The workflow uses the row_number to match the row being updated. Test and activate – Run the workflow manually to verify it reads your sheets, assigns tasks and sends emails. Once satisfied, activate the schedule so it runs automatically. Requirements · A Google account with access to Google Sheets and Gmail. · A spreadsheet containing two sheets as described above (see images), with headers matching the field names used in the workflow. How to customise it Change the schedule interval to suit your rotation, edit the email template to include due dates or motivational messages, or modify the assignment script to weight tasks by difficulty. You could also send notifications via Slack or Telegram.
by Ramsey Njire
Overview Stop digging through execution logs to find out why a workflow failed. This template provides a "set-it-and-forget-it" monitoring system that uses AI to automatically debug your n8n workflows. Instead of just getting a simple error message, you'll receive a detailed email notification with a root cause analysis and a step-by-step suggested fix from a Gemini-powered AI agent. This saves you valuable time, helps you resolve issues faster, and ensures your critical automations are always running smoothly. Prerequisites Before you begin the setup, please make sure you have the following accounts and information ready: An n8n Instance:** This workflow must be hosted on an active n8n instance. n8n API Key:* You'll need to generate an API key from your n8n instance (Settings > API*). OpenRouter Account:** An account with OpenRouter.ai to access various AI models like Gemini. Google (Gmail) Account:** To send and receive the email notifications. n8n Environment Variable:** Your n8n instance must have the N8N_EDITOR_BASE_URL environment variable configured. This is essential for generating correct links to your workflow executions. Use Cases This template is perfect for anyone who wants to proactively monitor their automations. Here are a few examples: Monitoring Critical Webhooks:** Get instant, intelligent alerts if a workflow handling data from a payment gateway (like Stripe) or a form submission fails due to unexpected data, minimizing service disruption. Managing Complex Automations:** For long, multi-step workflows, the AI can immediately pinpoint the exact failing node and suggest fixes for complex data mapping errors or API issues that are otherwise difficult to trace. Developers & Agencies:** If you manage multiple n8n workflows for clients or different projects, this provides a centralized monitoring system that helps you stay on top of all automation issues without having to manually check each one. How it works This workflow acts as an automated debugging assistant for your n8n instance 🤖. When any of your other workflows fail during an automatic (production) execution, this template will: Capture the error and use the n8n API to fetch the complete structure of the failed workflow for full context. Send the error details and workflow structure to a powerful AI agent (via OpenRouter) for a detailed root cause analysis. Format the AI's diagnosis and suggested fix into a clean HTML email and send it to you via Gmail, including a direct link to the failed execution. Important Note: As per the n8n documentation, the Error Trigger node only runs for errors that happen in production executions (e.g., from a webhook call or a schedule). It will not run when you test a workflow by clicking "Execute workflow" manually. Set up steps (Estimated setup time: 10 minutes) There are two main parts to the setup: configuring this workflow, and then connecting it to the workflows you want to monitor. Part A: Configure the AI Debugger Workflow n8n API Credentials: Create an API key in your n8n instance under Settings > API and add it as a "Header Auth" credential for the Get Workflow JSON node. OpenRouter Credentials: Add your OpenRouter API key to the OpenRouter Chat Model node. Gmail Credentials: Authenticate your Gmail account in the Send Debugging Email node. Recipient Email: Update the "To" field in the final Send Debugging Email node with your own email address. Environment Variable: Ensure your N8N_EDITOR_BASE_URL environment variable is correctly set for your n8n instance. This is required for building the API and execution links. Part B: Connect to Your Other Workflows For every workflow you want this debugger to monitor, you must link it in that workflow's settings. Go to the workflow you want to monitor (your "target" workflow). Click the three dots (...) in the top right corner and select Settings. 3. In the Error Workflow dropdown, select this "AI-Powered Workflow Debugger & Notifier" workflow. Click Save. Now, whenever that target workflow fails during a production run, this debugger workflow will automatically be triggered to analyze the error and notify you. Note that the error workflow only gets triggered on automatic runs, not manual ones: This is a feature of how the error trigger works in n8n. To ensure this, make sure the target workflow is active. It won't trigger the error workflow if it's turned off.
by Praneel S
Manage Google Calendar events and Gmail with a customizable AI assistant ⚠️ Disclaimer: This workflow uses Google Calendar and Gmail nodes which you will have to configure yourself Who’s it for This workflow is built for busy professionals, freelancers, and teams who want to automate calendar scheduling and email handling with the help of an AI assistant. Instead of switching between Gmail and Google Calendar, you can delegate tasks like “schedule a meeting,” “send an invite,” or “check my latest emails” directly to the assistant. How it works The AI Agent interprets natural language requests and decides which tool to use. Uses Google Calendar nodes to: Check availability and list events. Create new events with attendees. Update existing events. Uses Gmail nodes to: Send emails with a clear subject and body. Retrieve recent messages or filter by sender/date. The Date & Time node ensures correct time handling for scheduling. Built-in guardrails ensure clarity: if information is missing (e.g., timezone, meeting duration), the AI will ask you instead of guessing. How to set up Import the workflow into your self-hosted n8n. Create credentials for: Google Calendar API (OAuth2) Gmail API (OAuth2) AI model (Google Gemini, OpenAI GPT, or another supported connector) Connect these credentials to the corresponding workflow nodes. Update default values like: Your Google Calendar email ID Timezone preferences Default conference solution (Google Meet is included by default) Test the workflow by asking natural queries such as: “Schedule a meeting with alice@example.com tomorrow at 3 PM.” “Check my emails from this morning.” “What’s on my calendar next week?” Tools 🤖 AI Agent The “brain” of the workflow. Interprets your requests and chooses the right tool. Asks for clarification if details are missing and confirms before important actions. 🧠 Google Gemini Chat Model (or any LLM) The AI language model that powers the assistant. You can swap Gemini with OpenAI, Claude, or another model. 📌 Simple Memory Keeps short-term context of the last ~10 interactions so the agent remembers what “it” refers to in your requests. 📧 Send a message in Gmail Sends emails from your Gmail account. Requires recipient, subject, and body. Generates clear, professional text. 📥 Get many messages in Gmail Checks your inbox. Can filter by timeframe or sender. Returns detailed summaries, not just one-liners. 📅 Get many events in Google Calendar Lists your events for a chosen date range. Useful for “What’s on my schedule this week?” ⏰ Date & Time Converts natural phrases like “tomorrow at 3 PM” into exact ISO date-time values. ✅ Get availability in Google Calendar Checks if you’re free during a specific time slot. Prevents double-booking before scheduling. 📝 Create an event in Google Calendar Schedules a new meeting. Adds title, start/end times, attendees, description, and Google Meet link. ✏️ Update an event in Google Calendar Edits an existing meeting. Change time, attendees, or details without creating a new event. Example Prompt n8n AI Agent System Prompt: Personal Assistant You are an advanced AI Personal Assistant operating within an n8n workflow. Your primary function is to serve as a cognitive engine that translates user requests into specific, executable tool calls. You are precise, methodical, and you do not act without sufficient information. Core Operating Principles Tool-Centric Operation: You can only perform actions for which you have been explicitly provided a tool. Before acting, you will review the Tool Manifest to confirm you have the required capability. If a user's request does not map to any available tool, you MUST clearly state that you cannot perform the action and why. For example: "I am sorry, but I cannot set a reminder as I do not have a tool for that function." Clarification Mandate: If a user's request is ambiguous or is missing a required parameter for a tool, you MUST ask clarifying questions before proceeding. Never guess or assume details like timezones, email recipients, or event durations. Single-Focus Execution: Handle one primary task at a time. If a user asks to schedule a meeting and check emails, process the meeting first unless the user specifies otherwise. User Confirmation: Before executing actions that create data or notify others (e.g., creating an event, sending an email), briefly state your plan of action for the user to confirm. Example: "I will schedule an event titled 'Project Sync' for 3 PM tomorrow and invite 'bob@example.com'. Is that correct?" Tool Manifest & Usage Protocols You have access to the following tools. Adhere strictly to their parameters and usage triggers. Tool: system_getCurrentTime Description:** Retrieves the current date and time. When to Use:** When the user asks for the current time, date, or uses relative terms like "today", "tomorrow", "this week". This tool is often a dependency for other tools. Parameters:** timezone (string, required): The IANA timezone identifier (e.g., 'America/New_York', 'Asia/Kolkata'). Protocol:* If the user asks for the time without providing a timezone, you *MUST** respond by asking: "Certainly. In which timezone would you like the time?" You will output the time in HH:MM format as requested. Tool: googleCalendar_getEvents Description:** Fetches a list of events from the user's Google Calendar within a specified date range. When to Use:** When the user asks "What's on my schedule?", "Am I busy?", or asks about events for a specific day, week, or month. Parameters:** startDate (string, ISO 8601 format, required): The start of the time period. endDate (string, ISO 8601 format, required): The end of the time period. Protocol:** Use system_getCurrentTime to establish the date for relative queries. "This week" means from today's date for the next 7 days. "Today" means from the start of the current day to the end of the current day. Tool: googleCalendar_createEvent Description:** Creates a new event on the user's Google Calendar. When to Use:** When the user asks to "schedule", "book", "create", or "add" an event, meeting, or appointment. Parameters:** summary (string, required): The title of the event. startTime (string, ISO 8601 format, required): The start time of the event. endTime (string, ISO 8601 format, required): The end time of the event. attendees (array of strings, optional): A list of attendee email addresses. Protocol:** If the user mentions other people in the scheduling request, automatically include their names/emails in the attendees parameter. You must have all required parameters before calling this tool. Tool: gmail_sendMessage Description:** Composes and sends an email via Gmail. When to Use:** When the user asks to "email", "send a message", or "contact" someone. Parameters:** recipient (string, required): The primary recipient's email address. subject (string, required): The email subject line. body (string, required): The content of the email. Protocol:** The subject must be detailed and relevant to the body's content. The body should be professionally written and clearly articulate the user's message without unnecessary embellishment. Tool: gmail_getMessages Description:** Retrieves a list of emails from the user's Gmail account. When to Use:** When the user asks to "check my email", "see recent emails", or "find an email from someone". Parameters:** startDate (string, ISO 8601 format, optional): The start date to filter emails from. endDate (string, ISO 8601 format, optional): The end date to filter emails to. from (string, optional): Filter emails from a specific sender. Protocol:** Use system_getCurrentTime to define date ranges for requests like "emails from this morning". Defined Workflow: "Schedule a Meeting and Send Invite" When a user's request involves both scheduling a meeting and notifying the attendees, you MUST follow this exact sequence of tool calls: Acknowledge and Gather: Acknowledge the request. Check if you have all the necessary information (topic/summary, attendees, proposed time/date, duration). If not, ask for the missing details. Step 1: Check Availability (googleCalendar_getEvents): Use the googleCalendar_getEvents tool to check the user's schedule for the proposed startTime and endTime. Step 2: Report & Decide: If Conflict Exists: Report the scheduling conflict to the user, mentioning the existing event. State: "You already have '[Existing Event Title]' scheduled at that time. Would you like to find a different time?" Await further instructions. If No Conflict: Proceed to the next step. Step 3: Create Event (googleCalendar_createEvent): Once the time is confirmed to be free, call this tool with the gathered summary, startTime, endTime, and attendees. Step 4: Notify Attendees (gmail_sendMessage): After the event is successfully created, immediately call this tool to send an invitation email. recipient: The attendees from the event. subject: "Meeting Invitation: [Event Summary]". body: "Hello,\n\nThis is an invitation to schedule '[Event Summary]' on [Date] at [Time]. Please check your calendar for the official Google Calendar invite.\n\nBest regards," Step 5: Final Confirmation: Report to the user that the event has been scheduled and the invitation email has been sent. Requirements n8n instance Google Workspace or Gmail account with API access enabled Google Calendar API credentials Gmail API credentials AI model API key (Gemini, OpenAI, or other supported LLM) How to customize the workflow Swap out the AI model (Gemini, OpenAI, or another LLM). Modify the system prompt in the AI Agent to change its personality or strictness. Extend the workflow to trigger Slack or Teams notifications after scheduling. Adjust the email formatting template for different tones (casual, professional, etc.). Add error-handling logic for more advanced use cases (e.g., auto-rescheduling). Contributions Feel free to contact me for any help. Checkout the github page
by Abideen Bello
Generate daily audio newsletters from news headlines with AI Who's it for Perfect for content creators, podcasters, news enthusiasts, and busy professionals who want to create automated audio news content or stay informed through personalized audio briefings. Ideal for social media managers, newsletter creators, and anyone building audio-first content experiences. How it works This workflow creates a fully automated news-to-audio pipeline: Schedule trigger fetches the latest news headlines from NewsAPI daily AI processing rewrites each article into newsletter-style content using Claude Content aggregation combines all processed articles into a cohesive newsletter Script generation transforms the newsletter into a 2-minute audio-ready script Text-to-speech converts the script into high-quality audio using OpenAI's voice models Email delivery sends the audio newsletter as an attachment to subscribers The workflow runs automatically on your chosen schedule, delivering fresh audio content without any manual intervention. How to set up Requirements NewsAPI account** with API key (free tier available) OpenRouter API access** for Claude model OpenAI API account** for text-to-speech functionality Gmail account** with OAuth2 access for email delivery Basic understanding** of audio file handling (optional) Step-by-step setup 1. Set Your Schedule trigger Configure the Schedule Trigger for your preferred timing (daily at 7 AM recommended) Consider your audience timezone and optimal delivery times Set up monitoring to ensure consistent execution 2. Configure News Source Sign up for NewsAPI at newsapi.org (free tier includes 100 requests/day) Replace YOUR_NEWSAPI_KEY with your actual API key in the HTTP Request node Customize the news query parameters (country, category, sources) to match your audience interests Test the API endpoint to ensure it returns expected data 3. Extract Individual Articles(Split Out) Takes the articles array from NewsAPI response Creates separate items for each news article Enables individual processing of each story Prepares data for AI content generation 4. Set Up AI Model Credentials Create an OpenRouter account for Claude access Add your OpenRouter API credentials in n8n Alternatively, replace with OpenAI GPT-4 if you prefer (update the model node accordingly) Configure rate limits and usage monitoring 5. Combine Newsletter Content" (Aggregate) Collects output from all processed articles Renames field to news for easy reference Prepares combined content for script generation Ensures no articles are lost in processing 6. Audio Script Generation GPT-4 creates 2-minute audio-ready script from newsletter content. Creates script with "Max" presenter persona Script features: 2-minute target duration Audio-friendly text (no special characters) Natural speaking flow and transitions Engaging introduction and conclusion 7. Configure OpenAI Text-to-Speech Add your OpenAI API credentials in n8n Choose your preferred voice model (options: alloy, echo, fable, onyx, nova, shimmer) Set audio quality preferences (standard vs HD) Test voice output with sample text 8. Customize Email Delivery Add your Gmail OAuth2 credentials Replace YOUR_EMAIL@example.com with your actual recipient email Update the sender name and business information in email template Configure attachment settings for audio files 9. Test the Complete Pipeline Run a manual execution to test all components Verify news data is properly fetched and processed Check audio quality and duration Confirm email delivery with audio attachment How to customize the workflow Advanced News Filtering Custom sources**: Replace NewsAPI with RSS feeds from specific publications Topic filtering**: Add keyword filtering to focus on specific industries or topics Multi-country support**: Fetch news from multiple regions and merge content Sentiment analysis**: Filter out negative news or categorize by sentiment Trending topics**: Integrate with social media APIs to include trending discussions AI Content Enhancement Voice persona**: Customize the AI prompt to create different presenter personalities (professional, casual, expert) Length control**: Adjust script length for different formats (1-minute updates, 5-minute deep dives) Multi-language support**: Generate newsletters in different languages based on subscriber preferences Fact-checking**: Add verification steps to ensure accuracy of AI-generated content Source attribution**: Include proper citations and links to original articles Audio Production Features Voice variety**: Rotate between different OpenAI voices for engaging content Background music**: Add intro/outro music using audio editing APIs Speed control**: Adjust playback speed based on content type Chapter markers**: Add timestamps for different news segments Quality optimization**: Implement audio normalization and enhancement Distribution Enhancements Multi-channel delivery**: Send to Slack, Discord, or team communication platforms Podcast publishing**: Automatically upload to podcast platforms via RSS Social media**: Post audio clips to Twitter, LinkedIn, or Instagram Website integration**: Embed audio player on your website automatically Mobile app push**: Send notifications to mobile apps with audio links Subscriber Management Mailchimp integration**: Build and manage subscriber lists automatically Preference tracking**: Allow subscribers to choose news categories or frequency Analytics tracking**: Monitor open rates, listening duration, and engagement A/B testing**: Test different voice styles, content lengths, or delivery times Segmentation**: Send different newsletters to different subscriber segments Content Workflow Customization Editorial review**: Add approval steps before content distribution Content calendar**: Integrate with planning tools for scheduled content themes Collaborative editing**: Include team review processes for content quality Version control**: Maintain archives of previous newsletters for reference Performance metrics**: Track which content types perform best Webhook Integration Examples Website Integration // Add this to your website for manual newsletter requests fetch('/webhook/trigger-newsletter', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ subscriber_email: 'user@example.com', topics: ['technology', 'business'], urgency: 'normal' }) }); Slack Command Integration Create slash commands to trigger newsletter generation on demand Allow team members to request specific topic newsletters Integrate with Slack workflows for automated team briefings Mobile App Integration Use webhooks to trigger newsletters from mobile app interactions Create push notification systems for breaking news alerts Build in-app audio players for seamless listening experience Troubleshooting Common Issues and Solutions NewsAPI quota exceeded: Monitor your daily API usage in NewsAPI dashboard Implement caching to reduce redundant requests Consider upgrading to paid plan for higher limits Add fallback RSS feeds when API limits are reached AI model rate limiting: Implement exponential backoff for API requests Monitor token usage across Claude and OpenAI services Add queue systems for high-volume processing Consider switching to different models during peak times Audio generation failures: Check OpenAI text-to-speech quotas and billing Validate text input for special characters that might cause issues Implement retry logic for failed audio generation Add fallback to text-only newsletters when audio fails Email delivery problems: Verify Gmail API quotas and sending limits Check audio file size limits (Gmail has 25MB attachment limit) Implement compression for large audio files Consider cloud storage links instead of direct attachments Content quality issues: Fine-tune AI prompts for more consistent output Add content validation steps to check for accuracy Implement editorial guidelines in AI instructions Create feedback loops to improve content over time Performance Optimization Workflow efficiency: Process news articles in parallel where possible Implement smart caching for repeated content Optimize API calls to reduce latency Monitor execution times and identify bottlenecks Cost management: Track API costs across all services (NewsAPI, OpenRouter, OpenAI) Implement budget alerts and automatic shutoffs Optimize content length to reduce text-to-speech costs Consider batch processing during off-peak hours Scalability preparation: Design for multiple subscriber support Plan for increased news volume during major events Prepare backup systems for service outages Document processes for team handoffs Security and Compliance API key protection: Never expose API keys in workflow exports Use n8n's credential management exclusively Implement key rotation policies Monitor for unauthorized API usage Content compliance: Review AI-generated content for accuracy and bias Implement content filtering for inappropriate material Ensure proper attribution to original news sources Maintain editorial standards and fact-checking processes
by Oneclick AI Squad
Streamline your hiring process with intelligent AI-powered candidate screening and automated interview scheduling. This workflow receives applications via webhook, evaluates candidates using OpenAI's GPT model, scores them against job requirements, stores data in Google Sheets, and automatically schedules interviews for high-scoring candidates — all while sending personalized email notifications and updating statuses in real time. Reduce manual screening time and ensure only top candidates move forward. 🤖📧 What This Template Does Step 1: Triggers on new application submission via Webhook (e.g., from job portal or form). Step 2: Stores applicant data (resume, contact, role) into Google Sheets for centralized tracking. Step 3: Uses OpenAI GPT to evaluate candidate fit based on resume, skills, and job requirements. Step 4: Applies Scoring Logic: • Score ≥ 70 → Qualified for interview • Score < 70 → Not a fit Step 5: Branches based on score: → High Score Path: • Sends Interview Invitation Email • Creates Google Calendar Event • Updates Sheet: Status → “Interview Scheduled” → Low Score Path: • Sends Polite Rejection Email • Updates Sheet: Status → “Rejected” Step 6: Final metrics logged and webhook response confirms completion. Key Benefits ✅ Eliminates manual resume screening ✅ AI evaluates candidates consistently and objectively ✅ Automates interview scheduling with calendar integration ✅ Real-time status updates in Google Sheets ✅ Personalized email communication at every stage ✅ Full audit trail of decisions and actions Features Webhook-triggered application intake Google Sheets as applicant tracking system (ATS) OpenAI GPT-powered candidate evaluation Dynamic scoring threshold (customizable) Conditional branching (High/Low Score) Gmail integration for email notifications Google Calendar auto-event creation Real-time status updates via sheet write-back Final webhook response for system confirmation Requirements GOOGLE_SHEET_ID**: Your Google Sheet ID Credentials Needed:** Google Sheets OAuth2 Gmail API Key OpenAI API Key Google Calendar OAuth2 Customize:** • Job requirements & AI prompt • Score threshold (currently 70) • Email templates • Interview scheduling time slots Target Audience HR teams managing high-volume applications 👥 Recruiters seeking faster shortlisting ⏱️ Startups automating early-stage hiring 🚀 Tech companies with technical screening needs 💻 Remote-first organizations using digital workflows 🌍 Step-by-Step Setup Instructions Set up Google Sheet → Create a sheet with columns: Name, Email, Resume Link, Role, Status, Score, Timestamp → Replace YOUR_SHEET_ID in the workflow with your actual Sheet ID. Configure Webhook → Connect your job application form (e.g., Typeform, LinkedIn, custom portal) to trigger this workflow. Add OpenAI API Key → Insert your OpenAI key and customize the evaluation prompt under “AI Evaluation” node. Set Scoring Threshold → Adjust the “IF – Check Score Threshold” node (default: ≥70 = pass). Connect Gmail & Calendar → Enable Gmail OAuth2 and Google Calendar OAuth2. → Define interviewer email and default interview duration. Customize Emails → Edit “Interview Invitation” and “Rejection Notice” templates with your branding. Test the Flow → Submit a test application via webhook. → Verify: Sheet update → AI score → Email → Calendar event → Status change. Go Live → Enable automation. Monitor first few runs in Google Sheets. Workflow Complete! Now sit back as AI screens, scores, schedules, and communicates — all without lifting a finger. Metrics to Track: Applications received Average AI score Interview rate Time to process
by Yassin Zehar
Description Automated workflow that creates Jira issues directly from Google Forms. The flow validates and normalizes the data, creates the Jira issue, writes the key back to the Google Sheet, and sends a Gmail notification. Context This template bridges lightweight Google Forms with enterprise Jira. It enables instant ticket creation while keeping Jira the single source of truth. The flow is idempotent (no duplicates) and production-friendly, with clean field normalization and safe mappings. Target Users Product / Ops teams running request portals on Google Forms Engineering managers who need quick Jira integration without custom UI Project managers who track intake in Google Sheets but want Jira as the system of record Orgs that want controlled ticket creation without exposing Jira directly Technical Requirements Jira Cloud project + API email + API token + “Create issues” permission Google Form + response Sheet Gmail credential for notifications Workflow Steps Trigger when a row is added Normalize Fields – Trim/clean text Create Jira Issue – POST to Jira REST; safe mappings Update Google Sheet – Match by Horodateur or rowNumber; write jira_key, issue_url, status, updated_at. Send Gmail – HTML email with key, title, link, priority, requester. Key Features Real-time (no polling): Forms → trigger→ n8n Idempotent updates using the Form timestamp (“Horodateur”) Clean normalization: summary/description/labels all standardized once Safe Jira mappings: priority via ID Notification: branded HTML email with all key fields Expected Output Google Form to create the issue Sheet updated with jira_key, issue_url, status, updated_at A valid Jira issue in the configured project Email sent to stakeholders / requester How it works ⏰ Trigger – As soon as a row is added, the workflow is triggered 🧱 Normalize – Clean summary/description/labels; pick reporter_email 🧾 Create – POST to /rest/api/3/issue, capture { id, key, self } 📗 Update – Write jira_key, issue_url, status, updated_at back to the Sheet ✉️ Notify – Send Gmail HTML confirmation to stakeholders/requester Tutorial video: Watch the Youtube Tutorial video About me : I'm Yassin, IT Project Manager, Agile & Data specialist. Scaling tech products with data-driven project management. 📬 Feel free to connect with me on Linkedin
by Matt
This workflow automates the repair request process between tenants and building managers, keeping all updates organized in a single spreadsheet. It is composed of two coordinated workflows, as two separate triggers are required — one for new repair submissions and another for repair updates. A Unique Unit ID that corresponds to individual units is attributed to each request, and timestamps are used to coordinate repair updates with specific requests. General use cases include: Property managers** who manage multiple buildings or units. Building owners** looking to centralize tenant repair communication. Automation builders** who want to learn multi-trigger workflow design in n8n. ⚙️ How It Works Workflow 1 – New Repair Requests Behind the Scenes: A tenant fills out a Google Form (“Repair Request Form”), which automatically adds a new row to a linked Google Sheet. Steps: Trigger: Google Sheets rowAdded – runs when a new form entry appears. Extract & Format: Collects all relevant form data (address, unit, urgency, contacts). Generate Unit ID: Creates a standardized identifier (e.g., BUILDING-UNIT) for tracking. Email Notification: Sends the building manager a formatted email summarizing the repair details and including a link to a Repair Update Form (which activates Workflow 2). Workflow 2 – Repair Updates Behind the Scenes:\ Triggered when the building manager submits a follow-up form (“Repair Update Form”). Steps: Lookup by UUID: Uses the Unit ID from Workflow 1 to find the existing row in the Google Sheet. Conditional Logic: If photos are uploaded: Saves each image to a Google Drive folder, renames files consistently, and adds URLs to the sheet. If no photos: Skips the upload step and processes textual updates only. Merge & Update: Combines new data with existing repair info in the same spreadsheet row — enabling a full repair history in one place. 🧩 Requirements Google Account (for Forms, Sheets, and Drive) Gmail/email node connected for sending notifications n8n credentials configured for Google API access ⚡ Setup Instructions (see more detail in workflow) Import both workflows into n8n, then copy one into a second workflow. Change manual trigger in workflow 2 to a n8n Form node. Connect Google credentials to all nodes. Update spreadsheet and folder IDs in the corresponding nodes. Customize email text, sender name, and form links for your organization. Test each workflow with a sample repair request and a repair update submission. 🛠️ Customization Ideas Add Slack or Telegram notifications for urgent repairs. Auto-create folders per building or unit for photo uploads. Generate monthly repair summaries using Google Sheets triggers. Add an AI node to create summaries/extract relevant repair data from repair request that include long submissions.
by Ranjan Dailata
Disclaimer Please note - This workflow is only available on n8n self-hosted as it’s making use of the community node for the Decodo Web Scraping This n8n workflow automates the process of scraping, analyzing, and summarizing Amazon product reviews using Decodo’s Amazon Scraper, OpenAI GPT-4.1-mini, and Google Sheets for seamless reporting. It turns messy, unstructured customer feedback into actionable product insights — all without manual review reading. Who this is for This workflow is designed for: E-commerce product managers** who need consolidated insights from hundreds of reviews. Brand analysts and marketing teams** performing sentiment or trend tracking. AI and data engineers** building automated review intelligence pipelines. Sellers and D2C founders** who want to monitor customer satisfaction and pain points. Product researchers** performing market comparison or competitive analysis. What problem this workflow solves Reading and analyzing hundreds or thousands of Amazon reviews manually is inefficient and subjective. This workflow automates the entire process — from data collection to AI summarization — enabling teams to instantly identify customer pain points, trends, and strengths. Specifically, it: Eliminates manual review extraction from product pages. Generates comprehensive and abstract summaries using GPT-4.1-mini. Centralizes structured insights into Google Sheets for visualization or sharing. Helps track product sentiment and emerging issues over time. What this workflow does Here’s a breakdown of the automation process: Set Input Fields Define your Amazon product URL, geo region, and desired file name. Decodo Amazon Scraper Fetches real-time product reviews from the Amazon product page, including star ratings and AI-generated summaries. Extract Reviews Node Extracts raw customer reviews and Decodo’s AI summary into a structured JSON format. Perform Review Analysis (GPT-4.1-mini) Uses OpenAI GPT-4.1-mini to create two key summaries: Comprehensive Review: A detailed summary that captures sentiment, recurring themes, and product pros/cons. Abstract Review: A concise executive summary that captures the overall essence of user feedback. Persist Structured JSON Saves the raw and AI-enriched data to a local file for reference. Append to Google Sheets Uploads both the original reviews and AI summaries into a Google Sheet for ongoing analysis, reporting, or dashboard integration. Outcome: You get a structured, AI-enriched dataset of Amazon product reviews — summarized, searchable, and easy to visualize. Setup Pre-requisite Please make sure to install the n8n custom node for Decodo. Step 1 — Import the Workflow Open n8n and import the JSON workflow template. Ensure the following credentials are configured: Decodo Credentials account → Decodo API Key OpenAI account → OpenAI API Key Google Sheets account → Connected via OAuth Step 2 — Input Product Details In the Set node, replace: amazon_url → your product link (e.g., https://www.amazon.com/dp/B0BVM1PSYN) geo → your region (e.g., US, India) file_name → output file name (optional) Step 3 — Connect Google Sheets Link your desired Google Sheet for data storage. Ensure the sheet columns match: product_reviews all_reviews Step 4 — Run the Workflow Click Execute Workflow. Within seconds, your Amazon product reviews will be fetched, summarized by AI, and logged into Google Sheets. How to customize this workflow You can tailor this workflow for different use cases: Add Sentiment Analysis** — Add another GPT node to classify reviews as positive, neutral, or negative. Multi-Language Reviews** — Include a language detection node before summarization. Send Alerts** — Add a Slack or Gmail node to notify when negative sentiment exceeds a threshold. Store in Database** — Replace Google Sheets with MySQL, Postgres, or Notion nodes. Visualization Layer** — Connect your Google Sheet to Looker Studio or Power BI for dynamic dashboards. Alternative AI Models** — Swap GPT-4.1-mini with Gemini 1.5 Pro, Claude 3, or Mistral for experimentation. Summary This workflow transforms the tedious process of reading hundreds of Amazon reviews into a streamlined AI-powered insight engine. By combining Decodo’s scraping precision, OpenAI’s summarization power, and Google Sheets’ accessibility, it enables continuous review monitoring. In one click, it delivers comprehensive and abstract AI summaries, ready for your next product decision meeting or market strategy session.
by Oneclick AI Squad
This enterprise-grade n8n workflow automates competitor monitoring on Instagram — from post fetching to AI-driven strategy alerts — using Claude AI, Instagram API, and multi-channel notifications. It tracks trends, analyzes performance, and delivers actionable insights via WhatsApp and email, keeping your team ahead with zero manual effort. Key Features Daily competitor scanning** from Google Sheets Post performance metrics** (engagement rate, trends) calculated automatically AI-powered insights* using *Claude 3.5 Sonnet** for content and engagement strategies Dual-channel alerts:** WhatsApp (Twilio) and email for instant delivery Audit logs** in Google Sheets for historical trends Scalable triggers:** Daily schedule or webhook for ad-hoc checks Workflow Process | Step | Node | Description | | ---- | ----------------------------------- | -------------------------------------------------------- | | 1 | Schedule Trigger | Runs daily at 10 AM or via webhook (/competitor-alert) | | 2 | Get Competitor List | Loads competitors from Competitors sheet | | 3 | Loop Over Competitors | Processes each competitor to avoid API limits | | 4 | Get Competitor Posts | Fetches last 10 posts via Instagram Graph API | | 5 | Calculate Performance Metrics | Computes avg engagement and trend using Code node | | 6 | Generate AI Insights (Claude AI)| Analyzes data for 3 strategic bullet-point insights | | 7 | Send Email Alert | Emails detailed report to team | | 8 | Send WhatsApp Alert (Twilio) | Sends concise alert via WhatsApp | | 9 | Log Alert | Records metrics and insights in AlertsLog sheet | | 10 | End Workflow | Terminates execution | Setup Instructions 1. Import Workflow Open n8n → Workflows → Import from Clipboard Paste the JSON workflow 2. Configure Credentials | Integration | Details | | ----------------- | -------------------------------------------------- | | Google Sheets | Service account with spreadsheet access | | Instagram API | Business access token for media fetching | | Claude AI | Anthropic API key for claude-3-5-sonnet-20241022 | | Twilio | Credentials for WhatsApp messaging | | SMTP/Email | SMTP or Gmail for email alerts | 3. Update Spreadsheet IDs Ensure your Google Sheets include: Competitors AlertsLog 4. Set Triggers Webhook:** /webhook/competitor-alert (for on-demand runs) Schedule:** Daily at 10:00 AM 5. Run a Test Use manual execution to confirm: Post fetching and metrics calculation AI insights generation WhatsApp/email delivery and sheet logging Google Sheets Structure Competitors | competitorName | competitorUserId | industryFocus | |----------------|------------------|---------------| | BrandX | 1234567890 | Fashion | AlertsLog | competitor | avgEngagement | trend | insights | timestamp | |---------------|----------------|--------|-----------------------------------|--------------------| | BrandX | 75.5 | Rising | - Bullet 1... | 2023-10-01T12:00:00Z | System Requirements | Requirement | Version/Access | | --------------------- | ---------------------------------------------- | | n8n | v1.50+ (AI and messaging integrations supported)| | Claude AI API | claude-3-5-sonnet-20241022 | | Instagram Graph API| Business account access token | | Twilio API | WhatsApp-enabled phone number | | Google Sheets API | https://www.googleapis.com/auth/spreadsheets | | SMTP | For email (e.g., Gmail OAuth) | Optional Enhancements Add visual charts (e.g., engagement trends via Google Charts) Integrate Slack for team-wide alerts Use advanced metrics like reach/impressions via Instagram Insights API Connect CRM (HubSpot) to tag competitors Enable multi-platform monitoring (e.g., TikTok) Add threshold-based alerts (e.g., only if engagement >20% increase) Export insights to Notion or Airtable for strategy docs Result: A single automated system that monitors competitors, uncovers trends, and arms your team with AI strategies — delivered via WhatsApp and email with zero manual work. Get in touch with us for custom n8n automation!
by Dean Pike
Client Form → Draft → Approve → Sign → Deliver, fully automated This workflow automates the entire agreement lifecycle from client form submission to signed document delivery. It generates personalized agreements from templates, manages internal approvals, orchestrates e-signatures via Signwell, and delivers fully executed documents with complete audit trails in n8n Data Tables. Good to know Handles client data collection via JotForm with custom field mapping Automatically populates Google Doc templates with client-specific details Internal approval workflow with email-based confirmation Signwell integration for embedded e-signatures - test mode enabled by default - disable for legally binding documents Complete lifecycle tracking in n8n Data Tables (draft → approval → sent → signed) Auto-cleanup: removes documents from Signwell after completion to save storage Who's it for Service businesses, consultants, agencies, and freelancers who send agreements to clients regularly. Perfect for anyone wanting to avoid other costly e-signature platforms with limited API and automation capabilities. Signwell has an affordable entry level tier with generous API limits. If you're looking to eliminate manual document preparation, have an approval workflow, and track signatures while maintaining professional client communication, then this solution is a good fit. How it works Phase 1: Draft Creation JotForm trigger captures client submission (company name, address, contact details, position) Standardizes form data and duplicates Google Doc template with custom filename Replaces template variables with client information (company name, address, full name, position, dates) Creates clean document URL and logs initial record to Data Tables Emails internal team with draft review link and client details Phase 2: Approval & Preparation Gmail monitors inbox for "Approved" reply email Fetches agreement record from Data Tables and marks as approved Downloads Google Doc as PDF and uploads to Drive folder Grants temporary public sharing access (required for Signwell file import) Creates Signwell document with embedded signature fields and signing URL Emails client with personalized signing link Revokes public sharing access for security and updates Data Tables with Signwell details Phase 3: Signature & Delivery Gmail monitors for Signwell completion notification Extracts signed document download link from notification email Downloads fully executed PDF from Signwell Uploads to "Final Versions" folder in Google Drive Updates Data Tables with completion status and final document URLs Sends confirmation email to client with signed PDF attached Deletes document from Signwell to free up storage Requirements JotForm account (free tier works) Gmail account with OAuth2 access Google Drive account (OAuth2) Google Docs account (OAuth2) with a draft Agreement template Signwell account with API key n8n Data Tables (built-in, no external service needed) Google Drive folders: "Services Agreements - Drafts" and "Services Agreements - Final Versions" How to set up Add credentials: JotForm API, Gmail OAuth2, Google Drive OAuth2, Google Docs OAuth2, Signwell API key Create JotForm: Build form with fields: Company Name, Company Address (address field), Full Name (name field), Your Position/Job Title, Email In "JotForm Trigger" node: select your form Create Google Doc template: Add variables {{clientCompanyName}}, {{clientFullName}}, {{clientNamePosition}}, {{clientCompanyAddress}}, {{agreementDate1}}, {{agreementDate2}} In "Copy and Rename File" node: select your template document and update folder ID to your "Drafts" folder Create Data Table: Name it "Services Agreements" with columns: documentFileName, clientEmail, clientFullName, clientNamePosition, clientCompanyName, clientCompanyAddress, documentUrl, approvalStatus, sentDocumentPdfUrl, sentDate, signwellUrl, signwellDocID, docSigned, finalExecutedDocGDrive, finalExecutedDocSignwellUrl In "Insert Row" and all "Get/Update Row" nodes: select your Data Table Create Gmail labels: "_AGREEMENTS" with 2 nested (sublabels) Agreement-Approvals" and "Agreement-Completed" for filtering In "Check for Email Approval" node: select your approval label and update internal email address In "Check Email for Completed Notification" node: select your completed label In "Create Document in Signwell" node: update API key and adjust signature field coordinates for your document Set Signwell to live mode: Change "test_mode": true to "test_mode": false when ready for production Activate workflow Customizing this workflow Change template variables: Edit "Update New File" node to add/remove fields (e.g., pricing, terms, scope of work) Modify approval email: Edit "Share Email Draft" node to change recipient, subject line, or message format Adjust Signwell fields: Edit "Create Document in Signwell" node to change signature/date field positions (x, y coordinates) to match your agreement template, and add any other fields you'd like Add approval deadline: Add Wait node with timeout after "Share Email Draft" to auto-remind for pending approvals Multi-signer support: Modify "Create Document in Signwell" recipients array to add multiple signers (e.g., both parties) Change storage folders: Update folder IDs in "Upload PDF File" and "Upload Completed Doc" nodes Add Slack notifications: Add Slack nodes after key milestones (draft created, approved, signed) Custom client messaging: Edit "Send Prepared Agreement to Client" and "Send Client Completed Agreement PDF" nodes for personalized communication Add reminder logic: Insert Wait + Send Email nodes between signing and completion to remind client if not signed within X days Quick Troubleshooting JotForm not triggering: Verify webhook is active in JotForm settings and form ID matches "JotForm Trigger" node Template variables not replacing: Check variable names in template doc exactly match {{variableName}} format (case-sensitive) Wrong internal email for approval: Update email address in "Share Email Draft" node to your own email Approval email not detected: Confirm Gmail label "Agreement-Approvals" exists and reply contains exact word "Approved" Signwell document creation fails: Verify PDF has public sharing enabled before API call AND Signwell API key is valid in "Create Document in Signwell" node Signature fields in wrong position: Adjust x/y coordinates in "Create Document in Signwell" node (test in Signwell UI first to find correct pixel positions) Completed document not downloading: Check Signwell completion email format - Code node extracts link via regex pattern Data Tables errors: Ensure documentFileName exactly matches between "Insert Row" and "Get/Update Row" operations Client emails not sending: Re-authorize Gmail OAuth2 credentials and verify sender name/address in Gmail nodes Drive folder not found: Update folder IDs in "Copy and Rename File", "Upload PDF File", and "Upload Completed Doc" nodes to your own folder IDs Signwell deletion fails: Verify signwellDocID was correctly stored in Data Tables before deletion (check "Update Row - Additional Doc Details" output) 401/403 API errors: Re-authorize all OAuth2 credentials (Gmail, Google Drive, Google Docs) Test mode documents: Change "test_mode": true to "test_mode": false in "Create Document in Signwell" node for production signatures Sample Outputs Agreement Drafts and Final folders/files in Google Drive File References Agreement Template (sample) Final Agreement Signed (sample)
by Hassan
Overview This sophisticated n8n workflow transforms raw LinkedIn leads into personalized, high-converting connection requests using GPT-4O AI and PhantomBuster automation. The system processes LinkedIn profile data, generates authentic icebreakers, and automatically sends connection requests twice daily, creating a hands-off lead generation machine that maintains human authenticity while scaling outreach efforts. Key Benefits 🤖 AI-Powered Personalization Generate unique, human-like icebreakers for every LinkedIn connection request using GPT-4O, ensuring each outreach feels personal and authentic rather than automated. ⚡ Automated Workflow Execution Run your entire lead generation pipeline automatically twice daily (10 AM and 5 PM) USA Time with zero manual intervention required. 📊 Smart Data Management Seamlessly manage leads across multiple Google Sheets with automatic data cleanup, duplicate prevention, and organized lead tracking. 🎯 PhantomBuster Integration Leverage PhantomBuster's powerful LinkedIn automation to send connection requests at scale while maintaining platform compliance. 📈 Scalable Processing Process leads in optimized batches of 10 to maintain quality while scaling your outreach efforts effectively and remain within LinkedIn’s weekly connection request limits. 📧 Real-Time Monitoring Receive email notifications whenever connection requests are sent, keeping you informed of your campaign progress. 🔄 Continuous Operation Self-maintaining system that processes new leads, cleans up completed tasks, and prepares for the next cycle automatically. 💼 Professional Template System Uses proven icebreaker templates that follow the format: "Hey [name], loved seeing [personalized detail]. I'm also into [relevant connection], thought I'd connect." How It Works Phase 1: Lead Acquisition & Processing The workflow begins with scheduled triggers that activate twice daily. Upon activation, the system first cleans up previously processed leads from the source Google Sheet to prevent duplicates. It then retrieves fresh LinkedIn profile data including names, titles, company information, locations, and profile URLs. Phase 2: AI-Powered Personalization Engine Retrieved leads are processed in batches of 10 through a sophisticated GPT-4O integration. The AI analyzes each LinkedIn profile and generates personalized icebreakers following a proven template structure. The system is specifically programmed to paraphrase LinkedIn information rather than copy it directly, ensuring messages feel human-written rather than automated. Phase 3: Data Storage & Campaign Launch Processed leads with their AI-generated icebreakers are stored in a dedicated Google Sheet for tracking and analysis. The system then aggregates all processed data and triggers a PhantomBuster agent that executes the actual LinkedIn connection requests using the personalized messages. Phase 4: Cleanup & Notification After successful campaign launch, the system removes processed leads from the source sheet, sends email confirmation notifications, and prepares for the next scheduled execution cycle. Required Setup & Dependencies Core Integrations: Google Sheets API access with OAuth2 authentication OpenAI API key for GPT-4O access PhantomBuster account with API key and configured LinkedIn agent Gmail account for notifications Google Sheets Structure: Source Sheet: Contains raw LinkedIn data (firstName, lastName, title, companyName, location, etc.) Destination Sheet: Stores processed leads with icebreakers and tracking information PhantomBuster Configuration: LinkedIn connection request automation agent Proper agent ID configuration in the HTTP request node Valid API key with sufficient credits Business Use Cases Sales Development Representatives (SDRs) Automate personalized outreach to potential clients while maintaining the human touch that drives connection acceptance rates. Recruitment Agencies Scale candidate outreach with personalized messages that reference specific experience and skills from LinkedIn profiles. Business Development Generate partnerships and collaboration opportunities through targeted, personalized connection requests to industry leaders. Coaches & Consultants Build professional networks by connecting with potential clients using AI-generated icebreakers that reference their specific challenges and opportunities. Marketing Agencies Develop client relationships through personalized outreach that demonstrates understanding of their business and industry. Revenue Potential Direct Lead Generation: Process 20 leads daily (10 per execution × 2 runs) Average 25% connection acceptance rate = 5 new connections daily Convert 10% of connections to qualified leads = 15 qualified leads monthly Close 20% of qualified leads at $2,000 average deal size = $6,000 monthly revenue Agency Services: Offer as white-label service to clients at $500-1,500 monthly recurring revenue per client Manage 10-20 client accounts for $5,000-30,000 monthly recurring revenue SaaS Model: Package as LinkedIn automation SaaS with tiered pricing ($49-299/month) Target 100+ subscribers for $5,000-30,000 monthly recurring revenue Difficulty Level & Build Time Difficulty: Intermediate to Advanced Estimated Build Time: 4-6 hours Technical Requirements: Understanding of API integrations, Google Sheets operations, and basic workflow logic Setup Complexity: API key management and authentication setup Google Sheets structure creation and permission configuration PhantomBuster agent setup and testing AI prompt engineering for optimal icebreaker generation Detailed Setup Steps 1. Google Sheets Preparation Create two Google Sheets: Source Sheet:** Structure with columns for firstName, lastName, location, title, companyName, titleDescription, linkedInProfileUrl Destination Sheet:** Include all source columns plus id, photo_url, icebreaker, email_status fields 2. API Credentials Configuration OpenAI:** Generate API key with GPT-4O access Google Sheets:** Set up OAuth2 credentials in n8n PhantomBuster:** Create account, set up LinkedIn connection agent, obtain API key Gmail:** Configure OAuth2 for notification emails 3. PhantomBuster Agent Setup Create LinkedIn connection request automation agent Configure with proper message templates and targeting parameters Test agent functionality and note the agent ID for n8n configuration 4. Workflow Import & Configuration Import the provided n8n workflow JSON Update all credential references to match your configured accounts Modify Google Sheet IDs in all relevant nodes Update PhantomBuster agent ID and API key in HTTP request node 5. AI Prompt Optimization Review and customize the GPT-4O prompt for your specific use case Test icebreaker generation with sample data Adjust tone and style parameters as needed 6. Schedule Configuration Set appropriate trigger times based on your target timezone Consider LinkedIn usage patterns for optimal engagement 7. Testing & Validation Run workflow manually with test data Verify Google Sheets integration and data flow Test PhantomBuster integration with small batch Confirm email notifications are working Advanced Customization Options Enhanced AI Personalization Integrate additional data sources (company websites, news articles) for richer context Add industry-specific icebreaker templates Implement A/B testing for message variations CRM Integration Connect to Salesforce, HubSpot, or Pipedrive for seamless lead management Add lead scoring based on profile analysis Implement automated follow-up sequences Analytics & Reporting Add detailed tracking and analytics dashboard Implement conversion tracking from connection to closed deal Generate automated performance reports Multi-Platform Expansion Extend to Twitter/X and Instagram outreach Add email finder integration for multi-channel campaigns Implement unified contact management across platforms Advanced Filtering Add AI-powered lead qualification before outreach Implement company size, industry, and role-based filtering Add sentiment analysis for optimal timing This workflow represents a complete, production-ready solution that can immediately start generating leads and revenue while providing a foundation for advanced customization and scaling.
by WeblineIndia
Job post expiry & refresh reminders from Google Sheets using HTTP Last‑Modified checks This workflow checks each job URL in your Google Sheet and identifies listings that look stale based on the page’s Last‑Modified date. At 10:00 Asia/Kolkata every day, it requests each URL (HEAD, then GET if needed), calculates the age in days, and sends a polite email reminder to the recruiter when age ≥ a configurable threshold (default 30 days). It includes a DRY_RUN mode to preview who would be emailed, and conservative rate limits for both HTTP requests and email sends. Who’s it for Recruitment teams maintaining job links on external boards/career sites. Coordinators who want a daily, hands‑off nudge to refresh or unlist outdated posts. Teams using Google Sheets to store job URLs and owner contacts. How it works Cron (10:00 IST) triggers daily. Google Sheets reads the Job Posts tab (job_url, recruiter_name, recruiter_email). Validate rows (URL + email format, weekend rule via config). HTTP HEAD to fetch headers; if Last-Modified missing, HTTP GET and parse common meta tags (article:modified_time, og:updated_time, lastmod, dateModified). Compute age (days since last modified in your configured timezone). If age_days ≥ THRESHOLD_DAYS, prepare a personalized email using templates. DRY_RUN? If true, output a preview; if false, rate‑limit and send emails via SMTP. How to set up Create the Sheet Tab name: Job Posts Columns: job_url, recruiter_name, recruiter_email Credentials in n8n Google Sheets (OAuth) SMTP (Gmail) (use an app password if 2FA) Open “Set: Config” and set: SPREADSHEET_ID = your Sheet ID SOURCE_SHEET = Job Posts TIMEZONE = Asia/Kolkata THRESHOLD_DAYS = 30 (change if needed) USER_AGENT = n8n-job-checker/1.0 HTTP_TIMEOUT_SECONDS = 10 HTTP_RETRIES = 2 RATE_LIMIT_HTTP_SECONDS = 5 RATE_LIMIT_EMAIL_SECONDS = 2 SMTP_FROM = sender email (e.g., hiring-ops@company.com) SUBJECT_TEMPLATE, HTML_TEMPLATE, TEXT_TEMPLATE (placeholders: {{recruiter_name}}, {{job_url}}, {{age_days}}, {{last_modified}}) INCLUDE_WEEKENDS = true DRY_RUN = false (set true to preview) Activate the workflow. Requirements Google Sheet with Job Posts tab and required columns. SMTP (Gmail) account to send emails. n8n (cloud or self‑hosted) with Google Sheets + SMTP credentials. How to customize Threshold:** Change THRESHOLD_DAYS (e.g., 15, 45). Schedule:** Adjust the Cron time from 10:00 IST to your preferred hour. Templates:** Edit SUBJECT_TEMPLATE, HTML_TEMPLATE, and TEXT_TEMPLATE. Rate limits:** Tune RATE_LIMIT_HTTP_SECONDS and RATE_LIMIT_EMAIL_SECONDS for your environment. Weekend behavior:** Toggle INCLUDE_WEEKENDS. Preview runs:** Use DRY_RUN=true to check recipients before real sends. Add‑ons Helper columns:** Write back last_modified_http, age_days, reminder_sent_at, last_checked_at, notes to the sheet. Per‑row override:** Add threshold_days column to override the global threshold per job. Slack notifications:** DM the recruiter or a channel in addition to (or instead of) email. One‑time reminders:** Email only once until the page updates (track reminder_sent_at). Robots/backoff:** Respect robots.txt or add exponential backoff for high‑traffic sites. Use Case Examples Career site posts** that haven’t been updated in 30+ days. Remind owners to refresh copy or close the listing. Third‑party boards** (e.g., niche communities) where Last‑Modified is available — automate hygiene checks. Agency partnership links** — ensure outdated roles aren’t left live, protecting brand experience. Common troubleshooting | Issue | Possible Cause | Solution | | --- | --- | --- | | No emails sent | DRY_RUN is true | Set DRY_RUN=false to actually send. | | Rows skipped | Invalid/missing job_url or recruiter_email | Fix the row values; ensure valid URL and email. | | “Stale” not detected | Page has no Last-Modified header and no recognizable meta tags | Add manual review; consider the Helper columns add‑on to log missing dates, or track first_seen_at. | | Wrong time math | Timezone mismatch | Confirm TIMEZONE=Asia/Kolkata (or your TZ) in Set: Config. | | Too many requests | Sites rate‑limit frequent checks | Increase RATE_LIMIT_HTTP_SECONDS; consider running less frequently. | | Emails fail to send | SMTP auth or quota issues | Verify SMTP credentials, sender address, and provider limits; try a different sender or schedule. | Need Help? If you’d like help tailoring the templates, adding Slack notifications or writing back helper columns for audit, just message us at WeblineIndia and we will be happy to help you get this running smoothly.