by Avkash Kakdiya
How it works This workflow starts whenever a new lead comes in through Typeform (form submission) or Calendly (meeting booking). It captures the lead’s information, standardizes it into a clean format, and checks the email domain. If it’s a business domain, the workflow uses AI to enrich the lead with company details such as industry, headquarters, size, and website. Finally, it merges all the data and automatically saves the enriched contact in HubSpot CRM. Step-by-step Capture Leads The workflow listens for new form responses in Typeform or new invitees in Calendly. Both sources are merged into a single stream of leads. Standardize Data All incoming data is cleaned and formatted into a consistent structure: Name, Email, Phone, Message, and Domain. Filter Domains Checks the email domain. If it’s a free/public domain (like Gmail or Yahoo), the lead is ignored. If it’s a business domain, the workflow continues. AI Company Enrichment Sends the domain to an AI Agent (OpenAI GPT-4o-mini). AI returns structured company details: Company Name Industry Headquarters (city & country) Employee Count Website LinkedIn Profile Short Company Description Merge Lead & AI Data Combines the original lead details with the AI-enriched company information. Adds metadata like timestamp and workflow ID. Save to HubSpot CRM Creates or updates a contact record in HubSpot. Maps enriched fields like company name, LinkedIn, website, and description. Why use this? Automatically enriches every qualified lead with valuable company intelligence. Filters out unqualified leads with personal email addresses. Keeps your CRM updated without manual research. Saves time by centralizing lead capture, enrichment, and CRM sync in one flow. Helps sales teams focus on warm, high-value prospects instead of raw, unverified leads.
by Guillaume Duvernay
Never worry about losing your n8n workflows again. This template provides a powerful, automated backup system that gives you the peace of mind of version control without the complexity of Git. On a schedule you define, it intelligently scans your n8n instance for new workflow versions and saves them as downloadable snapshots in a clean and organized Airtable base. But it’s more than just a backup. This workflow uses AI to automatically generate a concise summary of what each workflow does and even documents the changes between versions. The result is a fully searchable, self-documenting library of all your automations, making it the perfect "single source of truth" for your team or personal projects. Who is this for? Self-hosted n8n users:** This is an essential insurance policy to protect your critical automations from server issues or data loss. n8n developers & freelancers:** Maintain a complete version history for client projects, allowing you to easily review changes and restore previous versions. Teams using n8n:** Create a central, browseable, and documented repository of all team workflows, making collaboration and handovers seamless. Any n8n user who values their work:** Protect your time and effort with an easy-to-use, "set it and forget it" backup solution. What problem does this solve? Prevents catastrophic data loss:** Provides a simple, automated way to back up your most critical assets—your workflows. Creates "no-code" version control:** Offers the benefits of version history (like Git) but in a user-friendly Airtable interface, allowing you to browse and download any previous snapshot. Automates documentation:** Who has time to document every change? The AI summary and changelog features mean you always have up-to-date documentation, even if you forget to write it yourself. Improves workflow discovery:** Your Airtable base becomes a searchable and browseable library of all your workflows and their purposes, complete with AI-generated summaries. How it works Scheduled check: On a recurring schedule (e.g., daily), the workflow fetches a list of all workflows from your n8n instance. Detect new versions: It compares the current version ID of each workflow with the snapshot IDs already saved in your Airtable base. It only proceeds with new, unsaved versions. Generate AI documentation: For each new snapshot, the workflow performs two smart actions: AI Changelog: It compares the new workflow JSON with the previously saved version and uses AI to generate a one-sentence summary of what’s changed. AI Summary: It periodically re-analyzes the entire workflow to generate a fresh, high-level summary of its purpose, ensuring the main description stays up-to-date. Store in Airtable: It saves everything neatly in the provided two-table Airtable base: A Workflows table holds the main record and the AI summary. A linked Snapshots table stores the version-specific details, the AI changelog, and the actual .json backup file as an attachment. Setup Duplicate the Airtable base: Before you start, click here to duplicate the Airtable Base template into your own Airtable account. Configure the workflow: Connect your n8n API credentials to the n8n nodes. Connect your Airtable credentials and map the nodes to the base you just duplicated. Connect your AI provider credentials to the OpenAI Chat Model nodes. Important: In the Store workflow file into Airtable (HTTP Request) node, you must replace <AIRTABLE-BASE-ID> in the URL with your own base ID (it starts with app...). Set your schedule: Configure the Schedule Trigger to your desired frequency (daily is a good start). Activate the workflow. Your automated, AI-powered backup system is now live! Taking it further Add notifications:* Add a *Slack* or *Email** node at the end of the workflow to send a summary of which workflows were backed up during each run. Use different storage:* While designed for Airtable, you could adapt the logic to store the JSON files in *Google Drive* or *Dropbox* and the metadata in *Google Sheets* or *Notion**. Optimize AI costs:* The *Check workflow status** (Code) node is set to regenerate the main AI summary for the first few snapshots and then every 5th snapshot. You can edit the code in this node to change this frequency and manage your token consumption.
by Jose Cuartas
Sync Gmail emails to PostgreSQL with S3 attachment storage Automated Gmail Email Processing System Who's it for Businesses and individuals who need to: Archive email communications in a searchable database Backup email attachments to cloud storage Analyze email patterns and communication data Comply with data retention policies Integrate emails with other business systems What it does This workflow automatically captures, processes, and stores Gmail emails in a PostgreSQL database while uploading file attachments to S3/MinIO storage. It handles both individual emails (via Gmail Trigger) and bulk processing (via Schedule Trigger). Key features: Dual processing: real-time individual emails + scheduled bulk retrieval Complete email metadata extraction (sender, recipients, labels, timestamps) HTML to plain text conversion for searchable content Binary attachment processing with metadata extraction Organized S3/MinIO file storage structure UPSERT database operations to prevent duplicates How it works Email Capture: Gmail Trigger detects new emails, Schedule Trigger gets bulk emails from last hour Parallel Processing: Emails with attachments go through binary processing, others go directly to transformation Attachment Handling: Extract metadata, upload to S3/MinIO, create database references Data Transformation: Convert Gmail API format to PostgreSQL structure Storage: UPSERT emails to database with linked attachment information Requirements Credentials needed: Gmail OAuth2 (gmail.readonly scope) PostgreSQL database connection S3/MinIO storage credentials Database setup: Run the provided SQL schema to create the messages table with JSONB fields for flexible data storage. How to set up Gmail OAuth2: Enable Gmail API in Google Cloud Console, create OAuth2 credentials PostgreSQL: Create database and run the SQL schema provided in setup sticky note S3/MinIO: Create bucket "gmail-attachments" with proper upload permissions Configure: Update authenticatedUserEmail in transform scripts to your email Test: Start with single email before enabling bulk processing How to customize Email filters**: Modify Gmail queries (in:sent, in:inbox) to target specific emails Storage structure**: Change S3 file path format in Upload node Processing schedule**: Adjust trigger frequencies based on email volume Database fields**: Extend PostgreSQL schema for additional metadata Attachment types**: Add file type filtering in binary processing logic Note: This workflow processes emails from the last hour to avoid overwhelming the system. Adjust timeframes based on your email volume and processing needs.
by Sulieman Said
How it Works This workflow automates the process of discovering companies in different cities, extracting their contact data, and storing it in Airtable. City Loop (Airtable → Google Maps API) Reads a list of cities from Airtable. Uses each city combined with a search term (e.g., SEO Agency, Berlin) to query Google Maps. Marks processed cities as “checked” to allow safe restarts if interrupted. Business Discovery & Deduplication Searches for businesses via Google Maps Text Search. Checks Airtable to avoid scraping the same company multiple times. Fetches detailed info for each business via Google Maps Place Details API. Impressum Extraction (Website → HTML Parsing) Builds an Impressum page URL for each business. Requests the HTML and cleans out ads, headers, footers, etc. Extracts relevant contact info using an AI extractor (OpenAI node). Contact Information Extraction Pulls out: Decision Maker (Name + Position in one string, if available). Email address (must be valid, containing @). Phone number (international format if possible). Filters out incomplete results (e.g., empty email). Database Storage Writes company data back into Airtable: Company name Address Website Email Phone number Decision Maker (Name + Position) Search term & city used Setup Steps 1. Prerequisites Google Maps API Key with access to: Places API → Text Search + Place Details Airtable base with at least two tables: Cities (with columns: ID, City, Country, Status) Companies (for scraped results) OpenAI API key (for decision maker + contact extraction). 2. Authentication Configure your Airtable API credentials in n8n. Set up HTTP Query Auth with your Google Maps API key. Add your OpenAI API key in the OpenAI Chat node. 3. Configuration In the Airtable “Cities” table, list all cities you want to scrape. Define your search term in the “Execute Workflow” node (e.g., SEO Agency). Adjust the batch sizes and wait intervals if you want faster/slower scraping (Google API has strict rate limits). 4. Execution Start manually or from another workflow. The workflow will scrape all companies in each city step by step. It can be safely stopped and resumed — cities already marked as processed will be skipped. 5. Results Enriched company dataset stored in Airtable, ready for CRM import, lead generation, or further automation. Tips & Notes Always respect GDPR and local laws when handling scraped data. The workflow is modular → you can swap Airtable with Google Sheets, Notion, or a database of your choice. Add custom filters to limit results (e.g., only companies with websites). Use sticky notes inside the workflow to understand each step (mandatory for template publishing). Keep an eye on Google Places API costs** — queries are billed after the free quota. If you are still within the first 2 months of the Google Cloud Developer free trial, you can benefit from free credits. Questions or custom requests? 📩 suliemansaid.business@gmail.com
by PhilanthropEAK Automation
Who's it for Customer support teams, SaaS companies, and service businesses that need to quickly identify and respond to urgent customer issues. Perfect for organizations handling high ticket volumes where manual prioritization creates delays and missed critical issues. How it works This workflow automatically analyzes incoming Zendesk tickets using OpenAI's GPT-4 to determine urgency levels and routes high-priority issues to your team via Slack notifications. The system monitors new Zendesk tickets via webhook, extracts key information (subject, description, customer details), and sends this data to OpenAI for intelligent analysis. The AI considers factors like emotional language, business impact keywords, technical severity indicators, and customer context to assign an urgency score from 1-5. Based on the AI analysis, the workflow automatically updates the ticket priority in Zendesk, adds detailed reasoning as a private note, and sends formatted Slack notifications for high-priority issues (score 4+). The Slack alert includes ticket details, urgency reasoning, key indicators found, and direct links to the ticket for immediate action. How to set up Prerequisites: Zendesk account with API access OpenAI API key (GPT-4 access recommended) Slack workspace with webhook permissions n8n instance (cloud or self-hosted) Setup steps: Configure credentials in n8n: Add OpenAI API credential with your API key Add Zendesk API credential (email + API token) Add Slack API credential (bot token with chat:write permissions) Update Configuration Variables node: Set your Zendesk subdomain (e.g., "yourcompany" for yourcompany.zendesk.com) Configure Slack channel for urgent alerts (e.g., "#support-urgent") Adjust urgency threshold (1-5, default is 4) Set default assignee email for fallback scenarios Set up Zendesk webhook: Copy the webhook URL from the trigger node In Zendesk Admin, go to Settings > Extensions > Add target Create HTTP target with the copied URL and POST method Create a trigger for "Ticket is created" that sends to this target Test the workflow: Create a test ticket with urgent language ("system is down", "critical issue") Verify the AI analysis runs and priority is updated Check that Slack notifications appear for high-priority tickets Confirm ticket updates include AI reasoning in private notes Requirements Zendesk** account with API access and admin permissions for webhook setup OpenAI API key** with GPT-4 access (estimated cost: $0.01-0.05 per ticket analysis) Slack workspace** with bot creation permissions and access to notification channels n8n instance** (cloud subscription or self-hosted installation) How to customize the workflow Adjust AI analysis parameters: Modify the system prompt in the OpenAI node to focus on industry-specific urgency indicators Add custom keywords or phrases relevant to your business in the prompt Adjust the temperature setting (0.1-0.5) for more consistent vs creative analysis Configure priority mapping: Edit the Code node to change how urgency scores map to Zendesk priorities Add custom business logic based on customer tiers or product types Implement time-based urgency (e.g., higher priority during business hours) Enhance Slack notifications: Customize the Slack message blocks with additional fields (product, customer tier, SLA deadline) Add action buttons for common responses ("Acknowledge", "Escalate", "Assign to me") Route different urgency levels to different Slack channels Extend integrations: Add email notifications using the Email node for critical issues Integrate with PagerDuty or Opsgenie for after-hours escalation Connect to your CRM to enrich customer context before AI analysis Add Teams or Discord notifications as alternatives to Slack Advanced customizations: Implement machine learning feedback loops by tracking resolution times vs AI scores Add sentiment analysis as a separate factor in priority calculation Create daily/weekly summary reports of AI analysis accuracy Build approval workflows for certain priority changes before auto-updating
by Yusuke Yamamoto
This n8n template creates an automated alert system that checks NASA's data for near-Earth asteroids twice a day. When it finds asteroids meeting specific criteria, it sends a summary alert to Slack and creates individual events in Google Calendar for each object. Use cases Automated Monitoring**: Keep track of potentially hazardous asteroids without manually checking websites. Team or Community Alerts**: Automatically inform a team, a group of friends, or a community about significant celestial events via Slack. Personalized Space Calendar**: Populate your Google Calendar with upcoming asteroid close approaches, creating a personal "what's up in space" agenda. Educational Tool**: Use this as a foundation to learn about API data fetching, data processing, and multi-channel notifications in n8n. Good to know This workflow runs on a schedule (every 12 hours by default) and does not require a manual trigger. NASA API Key is highly recommended**. The default DEMO_KEY has strict rate limits. Get a free key from api.nasa.gov. The filtering logic for what constitutes an "alert-worthy" asteroid (distance and size) is fully customizable within the "Filter and Process Asteroids" Code node. How it works A Schedule Trigger starts the workflow every 12 hours. The "Calculate Date Range" Code node generates the start and end dates for the API query (today to 14 days from now). The NASA node uses these dates to query the Near Earth Object Web Service (NeoWs) API, retrieving a list of all asteroids that will pass by Earth in that period. The "Filter and Process Asteroids" Code node iterates through the list. It filters out objects that are too small or too far away, based on thresholds defined in the code. It then formats and sorts the remaining "interesting" asteroids by their closest approach distance. An If node checks if any asteroids were found after filtering. If true (asteroids were found), the flow continues to the alert steps. If false, the workflow ends quietly via a NoOp node. The "Format Alert Messages" Code node compiles a single, well-formatted summary message for Slack and prepares the data for other notifications. The workflow then splits into two parallel branches: Slack Alert: The Slack node sends the summary message to a specified channel. Calendar Events: The Split Out node separates the data so that each asteroid is processed individually. For each asteroid, the Google Calendar node creates an all-day event on its close-approach date. How to use Configure the NASA Node: Open the "Get an asteroid neo feed" (NASA) node. Create new credentials and replace the default DEMO_KEY with your own NASA API key. Customize Filtering (Optional): Open the "Filter and Process Asteroids" Code node. Adjust the MAX_DISTANCE_KM and MIN_DIAMETER_METERS variables to make the alerts more or less sensitive. // Example: For closer, larger objects const MAX_DISTANCE_KM = 7500000; // 7.5 million km (approx. 19.5 lunar distances) const MIN_DIAMETER_METERS = 100; // 100 meters Configure Slack Alerts: Open the "Send Slack Alert" node. Add your Slack OAuth2 credentials. Select the channel where you want to receive alerts (e.g., #asteroid-watch). Configure Google Calendar Events: Open the "Create an event" (Google Calendar) node. Add your Google Calendar OAuth2 credentials. Select the calendar where events should be created. Activate the workflow. Requirements A free NASA API Key. Slack credentials** (OAuth2) and a workspace to post alerts. Google Calendar credentials** (OAuth2) to create events. Customising this workflow Add More Notification Channels**: Add nodes for Discord, Telegram, or email to send alerts to other platforms. Create a Dashboard**: Instead of just sending alerts, use the processed data to populate a database (like Baserow or Postgres) to power a simple dashboard. Different Data Source**: Modify the HTTP Request node to pull data from other space-related APIs, like a feed of upcoming rocket launches.
by Oneclick AI Squad
This workflow automatically sends timely medication reminders to patients after a prescription is marked as sent in the system. It reads the medication schedule from prescription data, schedules reminders for each dosage time, and delivers notifications via WhatsApp, SMS, or email. All reminders are tracked and logged, ensuring patients stay on track with their treatment while providing healthcare providers with acknowledgment records. 📋 Simple Google Sheets Structure "Prescriptions" Sheet - Required columns: prescription_id patient_name patient_phone patient_email medication dosage times_per_day (1, 2, 3, or 4) duration_days (7, 14, 30, etc.) start_date (YYYY-MM-DD) prescription_status (set to "sent") reminders_created (auto-updated to "yes") "Reminders" Sheet (auto-created): Simple tracking of all scheduled reminders 🔧 Workflow Components (Only 10 Nodes!) Part 1: Schedule Creation Watch Sheet → Monitors for "sent" prescriptions Filter New → Only processes unscheduled prescriptions Create Schedule → Generates reminder times automatically Save Reminders → Stores schedule in sheet Mark Processed → Prevents duplicate scheduling Part 2: Send Reminders Cron Timer → Checks every 10 minutes Get Reminders → Retrieves all scheduled reminders Find Due → Identifies reminders due now Send Messages → WhatsApp + Email simultaneously Mark Sent → Updates status to prevent duplicates ⚙️ Simple Setup Replace these values: YOUR_GOOGLE_SHEET_ID YOUR_WHATSAPP_PHONE_NUMBER_ID Email sender address Add credentials: Google Sheets API WhatsApp API SMTP for email Sample data: prescription_id: RX001 patient_name: John Doe patient_phone: +1234567890 patient_email: john@email.com medication: Amoxicillin 500mg dosage: 1 tablet times_per_day: 3 duration_days: 7 start_date: 2025-01-15 prescription_status: sent reminders_created: no 📱 Default Schedule 1x daily:** 9:00 AM 2x daily:** 9:00 AM, 9:00 PM 3x daily:** 8:00 AM, 2:00 PM, 8:00 PM 4x daily:** 8:00 AM, 12:00 PM, 4:00 PM, 8:00 PM
by Rapiwa
Who Is This For? This n8n workflow enables automated cross-selling by identifying each WooCommerce customer's most frequently purchased product, finding a related product to recommend, and sending a personalized WhatsApp message using the Rapiwa API. It also verifies whether the user's number is WhatsApp-enabled before sending, and logs both successful and unsuccessful attempts to Google Sheets for tracking. What This Workflow Does Retrieves all paying customers from your WooCommerce store Identifies each customer's most purchased product Finds the latest product in the same category as their most purchased item Cleans and verifies customer phone numbers for WhatsApp compatibility Sends personalized WhatsApp messages with product recommendations Logs all activities to Google Sheets for tracking and analysis Handles both verified and unverified numbers appropriately Key Features Customer Segmentation:** Automatically identifies paying customers from your WooCommerce store Product Analysis:** Determines each customer's most purchased product Smart Recommendations:** Finds the latest products in the same category as customer favorites WhatsApp Integration:** Uses Rapiwa API for message delivery Phone Number Validation:** Verifies WhatsApp numbers before sending messages Dual Logging System:** Tracks both successful and failed message attempts in Google Sheets Rate Limiting:** Uses batching and wait nodes to prevent API overload Personalized Messaging:** Includes customer name and product details in messages Requirements WooCommerce store with API access Rapiwa account with API access for WhatsApp verification and messaging Google account with Sheets access Customer phone numbers in WooCommerce (stored in billing.phone field) How to Use — Step-by-Step Setup 1. Credentials Setup WooCommerce API: Configure WooCommerce API credentials in n8n (e.g., "WooCommerce (get customer)" and "WooCommerce (get customer data)") Rapiwa Bearer Auth: Create an HTTP Bearer credential with your Rapiwa API token Google Sheets OAuth2: Set up OAuth2 credentials for Google Sheets access 2. Configure Google Sheets Ensure your sheet has the required columns as specified in the Google Sheet Column Structure section 3. Verify Code Nodes Code (get paying_customer): Filters customers to include only those who have made purchases Get most buy product id & Clear Number: Identifies the most purchased product and cleans phone numbers 4. Configure HTTP Request Nodes Get customer data: Verify the WooCommerce API endpoint for retrieving customer orders Get specific product data: Verify the WooCommerce API endpoint for product details Get specific product recommend latest product: Verify the WooCommerce API endpoint for finding latest products by category Check valid WhatsApp number Using Rapiwa: Verify the Rapiwa endpoint for WhatsApp number validation Rapiwa Sender: Verify the Rapiwa endpoint for sending messages Google Sheet Required Columns You’ll need two Google Sheets (or two tabs in one spreadsheet): A Google Sheet formatted like this ➤ sample The workflow uses a Google Sheet with the following columns to track coupon distribution: Both must have the following headers (match exactly): | name | number | email | address1 | price | suk | title | product link | validity | staus | | ---------- | ------------- | ----------------------------------------------- | ----------- | ----- | --- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | -------- | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | 850 | | Sharp Most Demanding Hoodie x Nike | https://your_shop_domain/p-img-nike | verified | sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | 850 | | Sharp Most Demanding Hoodie x Nike | https://your_shop_domain/p-img-nike | unverified | not sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | 850 | | Sharp Most Demanding Hoodie x Nike | https://your_shop_domain/p-img-nike | verified | sent | Important Notes Phone Number Format:** The workflow cleans phone numbers by removing all non-digit characters. Ensure your WooCommerce phone numbers are in a compatible format. API Rate Limits:** Rapiwa and WooCommerce APIs have rate limits. Adjust batch sizes and wait times accordingly. Data Privacy:** Ensure compliance with data protection regulations when sending marketing messages. Error Handling:** The workflow logs unverified numbers but doesn't have extensive error handling. Consider adding error notifications for failed API calls. Product Availability:** The workflow recommends the latest product in a category, but doesn't check if it's in stock. Consider adding stock status verification. Testing:** Always test with a small batch before running the workflow on your entire customer list. Useful Links Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Support & Help WhatsApp**: Chat on WhatsApp Discord**: SpaGreen Community Facebook Group**: SpaGreen Support Website**: https://spagreen.net Developer Portfolio**: Codecanyon SpaGreen
by Jose Castillo
Track your daily mood in one tap and receive automated AI summaries of your emotional trends every week and month. Perfect for self-reflection, wellness tracking, or personal analytics. This workflow logs moods sent through a webhook (/mood) into Data Tables, analyzes them weekly and monthly with OpenAI (GPT-4o), and emails you clear summaries and actionable recommendations via Gmail. ⚙️ How It Works Webhook – Mood → Collects new entries (🙂, 😐, or 😩) plus an optional note. Set Mood Data → Adds date, hour, and note fields automatically. Insert Mood Row → Stores each record in a Data Table. Weekly Schedule (Sunday 20:00) → Aggregates the last 7 days and sends a summarized report. Monthly Schedule (Day 1 at 08:00) → Aggregates the last 30 days for a deeper AI analysis. OpenAI Analysis → Generates insights, patterns, and 3 actionable recommendations. Gmail → Sends the full report (chart + AI text) to your inbox. 📊 Example Auto-Email Weekly Mood Summary (last 7 days) 🙂 5 ██████████ 😐 2 ████ 😩 0 Average: 1.7 (Positive 🙂) AI Insights: You’re trending upward this week — notes show that exercise days improved mood. Try keeping short walks mid-week to stabilize energy. 🧩 Requirements n8n Data Tables enabled OpenAI credential (GPT-4o or GPT-4 Turbo) Gmail OAuth2 credential to send summaries 🔧 Setup Instructions Connect your credentials: Add your own OpenAI and Gmail OAuth2 credentials. Set your Data Table ID: Open the Insert Mood Row node and enter your own Data Table ID. Without this, new moods won’t be stored. Replace the email placeholder: In the Gmail nodes, replace your.email@example.com with your actual address. Deploy and run: Send a test POST request to /mood (e.g. { "mood": "🙂", "note": "productive day" }) to log your first entry. ⚠️ Before activating the workflow, ensure you have configured the Data Table ID in the “Insert Mood Row” node. 🧠 AI Analysis Interprets mood patterns using GPT-4o. Highlights trends, potential triggers, and suggests 3 specific actions. Runs automatically every week and month. 🔒 Security No personal data is exposed outside your n8n instance. Always remove or anonymize credential references before sharing publicly. 💡 Ideal For Personal mood journaling and AI feedback Therapists tracking client progress Productivity or self-quantification projects 🗒️ Sticky Notes Guide 🟡 Mood Logging Webhook POST /mood receives mood + optional note. ⚠️ Configure your own Data Table ID in the “Insert Mood Row” node before running. 🟢 Weekly Summary Runs every Sunday 20:00 → aggregates last 7 days → generates AI insights + emails report. 🔵 Monthly Summary Runs on Day 1 at 08:00 → aggregates last 30 days → creates monthly reflection. 🟣 AI Analysis Uses OpenAI GPT-4o to interpret trends and recommend actions. 🟠 Email Delivery Sends formatted summaries to your inbox automatically.
by WeblineIndia
Monthly Energy Generation Report (PostgreSQL → PDF → Email) This workflow automatically collects monthly energy generation data from a PostgreSQL database, converts it into a structured PDF report and emails it to stakeholders. It eliminates manual report creation and ensures timely delivery of performance summaries. Who’s it for Energy companies monitoring solar, wind or hydro generation Operations & maintenance (O\&M) teams needing monthly summaries Managers and executives who require periodic performance reports Data analysts who want automated reporting instead of manual exports How it works Monthly Trigger → Schedules the workflow to run once a month. Postgres Node → Fetches energy data from the energy_data table. Code Node (Transform Data) → Structures the raw records into JSON with metadata (date_range, records, note). HTTP Request (PDF.co API) → Converts structured data into a formatted PDF report. Gmail Node (Send Report) → Sends the PDF report (or link) via email to the configured recipient. How to set up Import the workflow JSON into n8n. Configure credentials: PostgreSQL connection (DB host, user, password, database, schema). Gmail OAuth2 credentials. PDF.co API key (for HTML → PDF conversion). Update: Database table (energy_data). Email recipients in the Gmail node. PDF template (if custom formatting is required). Activate workflow. Requirements n8n (self-hosted or cloud) PostgreSQL database with energy generation data PDF.co API account with valid API key Gmail account with OAuth2 access Internet access for API calls How to customize Change the SQL query in the Postgres node to filter specific plants or date ranges. Update the Code node to add extra fields (e.g., average power, anomalies). Modify the PDF.co request body to use a custom HTML template for branding. Replace Gmail with Outlook, SMTP, or Slack for distribution. Add-ons Add Slack/Teams node to notify teams when reports are sent. Store PDFs in Google Drive or S3 for archival. Add a dashboard (e.g., Grafana or Superset) that references the same DB for real-time view. Integrate with Jira to auto-create tasks for underperformance alerts. Use Case Examples Solar company emailing monthly reports to plant owners. Wind farm operator generating regulatory compliance reports. O&M teams automating KPI summaries for executives. Consulting firms monitoring multiple clients’ energy production. Common Troubleshooting | Issue | Possible Cause | Solution | | ------------------------------ | -------------------------------------- | ------------------------------------------------------- | | Workflow does not trigger | Cron not set correctly | Verify Schedule Trigger node interval is monthly | | No data returned from Postgres | Wrong schema/table or DB creds | Check DB connection and table name | | PDF not generated | Invalid/missing PDF.co API key | Generate a new key in PDF.co dashboard | | Email not sent | Gmail OAuth expired or wrong recipient | Reconnect Gmail credentials and confirm recipient email | | PDF output malformed | Incorrect JSON → HTML conversion | Check Code node formatting and PDF.co request body | Need Help? Our n8n workflow automation experts at WeblineIndia can help you: Set up the PostgreSQL connection securely, Customize the PDF layout with your company branding, Add more delivery channels (Slack, Teams, S3), Extend reporting logic (KPIs, charts, anomaly detection), And so much more.
by Fahmi Fahreza
Create Airtable records from new ClickUp Doc pages This workflow automates the process of turning content from ClickUp Docs into structured data in Airtable. When a new task is created in ClickUp with a link to a ClickUp Doc in its name, this workflow triggers, fetches the entire content of that Doc, parses it into individual records, and then creates a new record for each item in a specified Airtable base and table. Who's it for This template is perfect for content creators, project managers, and operations teams who use ClickUp Docs for drafting or knowledge management and Airtable for tracking and organizing data. It helps bridge the gap between unstructured text and a structured database. How it works Trigger: The workflow starts when a new task is created in a specific ClickUp Team. Fetch & Parse URL: It gets the new task's details and extracts the ClickUp Doc URL from the task name. Get Doc Content: It uses the URL to fetch the main Doc and all its sub-pages from the ClickUp API. Process Content: A Code node parses the text from each page. It's designed to split content by * * * and separate notes by looking for the "notes:" keyword. Find Airtable Destination: The workflow finds the correct Airtable Base and Table IDs by matching the names you provide. Create Records: It loops through each parsed content piece and creates a new record in your specified Airtable table. How to set up Configure the Set Node: Open the "Configure Variables" node and set the following values: clickupTeamId: Your ClickUp Team ID. Find it in your ClickUp URL (e.g., app.clickup.com/9014329600/...). airtableBaseName: The exact name of your target Airtable Base. airtableTableName: The exact name of your target Airtable Table. airtableVerticalsTableName: The name of the table in your base that holds "Vertical" records, which are linked in the main table. Set Up Credentials: Add your ClickUp (OAuth2) and Airtable (Personal Access Token) credentials to the respective nodes. Airtable Fields: Ensure your Airtable table has fields corresponding to the ones in the Create New Record in Airtable node (e.g., Text, Status, Vertical, Notes). You can customize the mapping in this node. Activate Workflow: Save and activate the workflow. Test: Create a new task in your designated ClickUp team. In the task name, include the full URL of the ClickUp Doc you want to process. How to customize the workflow Parsing Logic:* You can change how the content is parsed by modifying the JavaScript in the Parse Content from Doc Pages Code node. For example, you could change the delimiter from * * to something else. Field Mapping:** Adjust the Create New Record in Airtable node to map data to different fields or add more fields from the source data. Trigger Events:** Modify the Trigger on New ClickUp Task node to respond to different events, such as taskUpdated or taskCommentPosted.
by Yusuke Yamamoto
This n8n template demonstrates a “Human-in-the-Loop” workflow where AI automatically drafts replies to inbound emails, which are then reviewed and approved by a human before being sent. This powerful pattern ensures both the efficiency of AI and the quality assurance of human oversight. Use cases are many: Streamline sales inquiry responses, manage first-level customer support, handle initial recruitment communications, or any business process that requires personalized yet consistent email replies. Good to know At the time of writing, the cost per execution depends on your OpenAI API usage. This workflow uses a cost-effective model like gpt-4o-mini. See OpenAI Pricing for updated info. The AI’s knowledge base and persona are fully customizable within the Basic LLM Chain node’s prompt. How it works The Gmail Trigger node starts the workflow whenever a new email arrives in the specified inbox. The Classify Potential Leads node uses AI to determine if the incoming email is a potential lead. If not, the workflow stops. The Basic LLM Chain, powered by an OpenAI Chat Model, generates a draft reply based on a detailed system prompt and your internal knowledge base. A Structured Output Parser is crucially used to force the AI’s output into a reliable JSON format ({"subject": "...", "body": "..."}), preventing errors in subsequent steps. The Send for Review Gmail node sends the AI-generated draft to a human reviewer and pauses the workflow, waiting for a reply. The IF node checks the reviewer’s reply for approval keywords (e.g., “approve”, “承認”). If approved, the ✅ Send to Customer Gmail node sends the final email to the original customer. If not approved, the reviewer’s feedback is treated as a revision request, and the workflow loops back to the Basic LLM Chain to generate a new draft incorporating the feedback. How to use Gmail Trigger** node: Configure with your own Gmail account credentials. Send for Review** node: Replace the placeholder email reviewer@example.com with the actual reviewer's email address. IF** node: You can customize the approval keywords to match your team’s vocabulary. OpenAI Nodes**: Ensure your OpenAI credentials are set up. You can select a different model if needed, but the prompt is optimized for models like GPT-4o mini. Requirements An OpenAI account for the LLM. A Gmail account for receiving customer emails and for the review process. Customising this workflow By modifying the prompt and knowledge base in the Basic LLM Chain, you can adapt this agent for various departments, such as technical support, HR, or public relations. The approval channel is not limited to Gmail. You can easily replace the review nodes with Slack or Microsoft Teams nodes to fit your internal communication tools.