by Manav Desai
This n8n template demonstrates how to build a weekly Hollywood film industry briefing using Tavily for real-time search and Google Gemini for summarization. It sends a concise, emoji‑styled email with movie releases, box office results, industry news, and must‑watch recommendations every week automatically. Use cases: Great for film journalists, entertainment bloggers, or movie enthusiasts who want automated weekly updates without manually checking multiple sources. Good to know Free to use: Tavily provides **1,000 API credits per month on their free plan (no credit card required), so this workflow can run at zero cost. Real-time data**: Tavily’s search API is optimized for up-to-date information — perfect for weekly movie releases and box office stats. Google Gemini is used for summarization, and you only need basic API access (no paid tier required). How it works Trigger**: Scheduled every Thursday morning (configurable). Search**: Four Tavily API calls gather: Movies releasing this week Last week’s box office results Hollywood industry news Must‑watch movies currently in theatres Summarization**: Google Gemini turns this into Gmail‑friendly HTML with emojis and bullet points. Email**: The formatted newsletter is sent via Gmail node. How to use Configure Tavily API and Gmail OAuth2 credentials in n8n’s credential manager. (Optional) Edit Tavily queries to focus on specific genres or add filters. Adjust the schedule trigger to any day/time you prefer. Requirements Tavily API account (free plan – 1,000 monthly requests) Google Gemini API key for summarization Gmail account (OAuth2 credentials for sending emails) Want insane output quality? You can swap Gemini for OpenAI’s ChatGPT models: GPT‑3.5 Turbo** – \~\$0.002/run (crazy cheap) GPT‑4o** – \~\$0.009/run (latte price) GPT‑4.5** – \~\$0.15/run (god‑mode quality) This upgrade gives you cleaner, richer, “did‑a‑human‑write‑this?” vibes — perfect for journalist‑grade Hollywood briefings. Just note: OpenAI API requires a \$5 minimum credit to activate usage. Example Output (ChatGPT version) Subject: Daily Hollywood Film Industry Briefing – August 3, 2025 Good morning, Here's your daily Hollywood film briefing for August 3, 2025: 🎬 Releases The Bad Guys 2 – Released Friday, August 1, 2025 The Naked Gun – Released Friday, August 1, 2025 These are the confirmed new wide theatrical Hollywood releases this week (Monday through Sunday of current week). No additional new Hollywood theatrical releases found for this week. 📊 Box Office Highest‑grossing Hollywood films of 2025 (worldwide): Ne Zha 2 – approx. \$1.90 billion (non‑Hollywood Chinese animated film leads) Lilo & Stitch – approx. \$1.02 billion A Minecraft Movie – approx. \$955 million Jurassic World Rebirth – approx. \$731 million How to Train Your Dragon – approx. \$610 million Last week’s box office performance (Monday–Sunday): The Fantastic Four: First Steps – domestic debut \\$118 M; global \\$218 M, Marvel’s biggest opening of 2025 Superman – added \~\$94 M worldwide last week, passing \$500 M global total Jurassic World Rebirth – up \\$70 M worldwide last week, despite \40 % drop week‑on‑week F1: The Movie – up \~\$48 M last week internationally/domestically growth visible Lilo & Stitch – added \~\$10 M worldwide last week, slower tail but still billion‑plus gross Highlights & trends: Fantastic Four’s strong debut reboots Marvel success, signaling resumed audience interest; Superman continues to hold strong; Jurassic World Rebirth remains durable after holiday surge; surge in box office recovery noted across key titles. Overall box office up \~12–15 % year‑on‑year. 📰 Industry Buzz Christopher Nolan has signed to direct a massive \$250 million adaptation of Homer’s The Odyssey, starring Matt Damon and Tom Holland, with Imax pre‑sales at 95 % capacity across major locations. Marvel has relaunched the Fantastic Four franchise successfully with First Steps; positive CinemaScore and strong visuals marking a fresh start. DC’s Superman continues strong with over \$500 M global, solidifying DC’s summer comeback. Universal’s Jurassic World Rebirth continues strong overseas, especially in China, contributing to \$318 M global in opening holiday weekend. Warner Bros.–Discovery stock surges (\~30 %) amid box office rebound, with Disney, IMAX and Cinemark also seeing robust growth in 2025. Ne Zha 2 becomes highest‑grossing animated and non‑Hollywood film ever, crossing \$2 billion globally—though not Hollywood, its impact on global trends is notable. Mission: Impossible – The Final Reckoning quietly solidifies strong global numbers (\~\$562 M) and continues reliable franchise performance. 🎥 Must‑Watch in Theatres (Surat, India) The Fantastic Four: First Steps** – Currently showing in English/Hindi/Tamil/Telugu in Surat cinemas; hyped globally, strong visuals, action‑heavy, best experienced in IMAX or premium formats if available in Surat multiplexes. Runs this week. F1: The Movie** – Available in Surat in multiple languages, strong reviews praising adrenaline‑fuelled direction and visuals and growing fan hype; ideal in standard or Dolby formats for immersive sound and speed feel. Jurassic World Rebirth** – Still playing in Surat, popular with family audiences; grand visuals and dinosaur action well‑suited to IMAX or large format screens. That’s all for today’s briefing. Have a great theatrical weekend ahead!
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 go-surfe
🚀 What this template does Automatically finds and enriches key contacts in a deal’s buying group by combining the company domain from the HubSpot deal with the buying group criteria you define (departments, seniorities, countries, job titles). It then pushes these contacts into HubSpot and emails your team a clean summary with direct HubSpot links—so no decision-maker falls through the cracks. Before starting, make sure you have: Buying Group Criteria Excel – Contains two sheets: Buying group reference values (reference list) Your Buying Group Criterias (where you define your filters) You’ll import the Excel file into Google Sheets during setup. ❓ What Problem Does This Solve? When a new opportunity/deal is created, sales teams often miss adjacent decision-makers (e.g., VP Sales, Head of Marketing). This template searches for those people, enriches their contact data, adds/updates them in HubSpot, and notifies your team with a one-glance table. 🧰 Prerequisites: To use this template, you’ll need: A self-hosted or cloud instance of n8n A Surfe API Key (Bearer token for People Search & Bulk Enrich) A Google Sheets account (OAuth2 or service account) with access to your criteria sheet A HubSpot developer account (for the HubSpot Deal Trigger) A HubSpot normal account (where there is your deals, contacts, companies) A Gmail account to send the enrichment summary email The workflow JSON file (included with this tutorial) Buying Group Criteria Excel (included with this tutorial) 📌 Your input (Google Sheets) This workflow uses a Google Sheet with two tabs: Buying group reference values – A read-only reference list of all available options for the departments and seniorities columns. You’ll use this list to choose your search filters. Your Buying Group Criterias – The sheet where you define the actual filters used in the workflow. ⚠️ Before you start: Import the provided Excel file into your Google Sheets account so both tabs appear exactly as in the template. How to fill it the tab “Your Buying Group Criterias”: departments (Column A) → Select one or more values from the reference tab. Only rows containing a value will be used in the search. seniorities (Column B) → Select one or more values from the reference tab. Only rows containing a value will be used in the search. countries (Column C) → Enter any ISO Alpha-2 country codes (e.g., fr, gb, de). This is a free-text filter. jobTitles (Column D) → Enter any job title keywords you want to search for (e.g., CTO, Head of Marketing). This is also a free-text filter. The workflow will read the filled cells from each column, clean duplicates, and pass them to the Surfe People Search API. ⚙️ Setup Instructions 4.1 🔐 Create Your Credentials in n8n 4.1.1 📊 Google Sheets OAuth2 API Go to n8n → Credentials Create new credentials: Type: Google Sheets OAuth2 API Here a pop-up will open where you can login to your Google account from where you will read the Google Sheets When it’s done you should see this on n8n 4.1.2 📧 Gmail OAuth2 API Go to n8n → Credentials Create new credentials: Type: Gmail OAuth2 API A pop-up window will appear where you can log in with your Google account that is linked to Gmail Make sure you grant email send permissions when prompted 4.1.3 🚀 Surfe API In your Surfe dashboard → Use Surfe Api → copy your API key Go to n8n → Credentials → Create Credential Choose Credential Type: Bearer Auth Name it something like SURFE API Key Paste your API key into the Bearer Token Save 4.1.4 🎯 HubSpot OAuth2 API Go to n8n → Credentials → Create Credential → HubSpot Oauth2 API Here make sure to select your normal hubspot account where your companies, deals and contacts are and not the hubspot-developers-xxx.com Done ✅ 4.1.5 🔓 HubSpot Private App Token Go to HubSpot → Settings → Integrations → Private Apps Create an app with scopes: crm.objects.contacts.read crm.objects.contacts.write crm.schemas.contacts.read Save the App token Go to n8n → Credentials → Create Credential → HubSpot App Token Paste your App Token 4.1.6 🎯 HubSpot Developer Api: In order to Use the HubSpot Trigger node, you need to setup HubSpot Developer Api To configure this credential, you'll need a HubSpot developer account and: A Client ID: Generated once you create a public app. A Client Secret: Generated once you create a public app. A Developer API Key: Generated from your Developer Apps dashboard. An App ID: Generated once you create a public app. To create the public app and set up the credential: Log into your HubSpot app developer account. Select Apps from the main navigation bar. Select Get HubSpot API key. You may need to select the option to Show key. Copy the key and enter it in n8n as the Developer API Key. Still on the HubSpot Apps page, select Create app. On the App Info tab, add an App name, Description, Logo, and any support contact info you want to provide. Anyone encountering the app would see these. Open the Auth tab. Copy the App ID and enter it in n8n. Copy the Client ID and enter it in n8n. Copy the Client Secret and enter it in n8n. In the Scopes section, select Add new scope. Add all the scopes listed in Required scopes for HubSpot Trigger node to your app. Select Update. Copy the n8n OAuth Redirect URL and enter it as the Redirect URL in your HubSpot app. Select Create app to finish creating the HubSpot app. Refer to the HubSpot Public Apps documentation for more detailed instructions. You should see this on n8n at the end. ✅ You are now all set for the credentials 4.2 📥 Import and Configure the N8N Workflow Import the provided JSON workflow into N8N Create a New Blank Workflow click the … on the top left Import from File 4.2.1 🔗 Link Nodes to Your Credentials In the workflow, link your newly created credentials to each node of this list : Google Sheets -> Credentials to connect with → Google Sheets Account Gmail Node Credentials to connect with → Gmail account HubSpot: Create or Update →Credentials to connect with → Huspot App Token Account HubSpot Get Company →Credentials to connect with → Huspot App Token Account HubSpot get deal →Credentials to connect with → Huspot App Token Account HubSpot Trigger →Credentials to connect with → Huspot Developer account HTTP Node GET deal associated companies from HUBSPOT → Credential Type → Hubspot OAuth2 API Surfe HTTP nodes: Authentication → Generic Credential Type Generic Auth Type → Bearer Auth Bearer Auth → Select the credentials you created before Surfe HTTP nodes 4.2.2 🔧 Additional Setup for the node Google Sheets READ CRITERIAS: Paste the url of your google sheets in Document → By URL Select the sheet Your Buying Group Criterias 🔄 How This N8N Workflow Works A new deal is created in HubSpot, which triggers the workflow. The workflow retrieves the company domain linked to that deal. It reads the buying group criteria from your Google Sheet (departments, seniorities, countries, job titles). These criteria are combined with the company domain to create a search payload for Surfe’s People Search API (limited to 200 people per run). Matching contacts are then sent to Surfe’s Bulk Enrichment API to retrieve emails, phone numbers, and other details. n8n polls Surfe until the enrichment job is complete. Enriched contact data is extracted and filtered so that only contacts with at least one valid email or phone number remain. These contacts are created or updated in HubSpot. Finally, a Gmail summary email is sent to your team with a clean table of the new or updated contacts and direct links to view them in HubSpot. 🧩 Use Cases Net-new deal created → instantly surface the rest of the buying group and enrich contacts. 🛠 Customization Ideas 🔁 Add retry logic for failed Surfe enrichment jobs 📤 Log enriched contacts into a Google Sheet or Airtable for auditing 📊 Extend the flow to generate a basic summary report of enriched vs rejected contacts ⏳ Trigger the enrichment not only on deal creation but also at a specific deal stage change 📧 Send the summary email to multiple recipients or a team mailing list ✅ Summary This template automates buying-group discovery and enrichment off a new HubSpot deal, writes enriched contacts back to HubSpot, and emails a neat table to your team—so reps focus on outreach, not admin. Import it, connect credentials, point at your criteria sheet, and Let Surfe do the rest.
by Oneclick AI Squad
This automated n8n workflow enables an AI-powered movie recommendation system on WhatsApp. Users send messages like "I want to watch a horror movie" or "Where can I watch the Jumanji movie?" The workflow uses AI to interpret the request, searches relevant APIs (e.g., TMDb, JustWatch), and replies with movie recommendations or streaming platform availability via WhatsApp. Fundamental Aspects WhatsApp Webhook Trigger**: Initiates the workflow when a WhatsApp message is received. Analyze WhatsApp Message**: Uses AI (e.g., Ollama Model) to interpret the user's intent and extract request type. Check Request Type**: Determines if the request is for a movie genre or a specific movie title. Check Where Request**: Identifies if the request includes a "where to watch" query. Extract Movie Title**: Extracts the movie title from the message if specified. Extract Genre**: Identifies the movie genre from the message if specified. Search Specific Movie Title**: Queries an API (e.g., TMDb) for details about a specific movie. Search Movies by Genre**: Queries an API (e.g., TMDb) for movies matching the genre. Get Streaming Availability**: Queries an API (e.g., JustWatch) for streaming platforms. Format Streaming Response**: Prepares the response with streaming platform details. Format Genre Recommendations**: Prepares the response with genre-based movie recommendations. Prepare WhatsApp Message**: Formats the final response for WhatsApp. Send WhatsApp Response**: Sends the recommendation or streaming info back to the user via WhatsApp. Setup Instructions Import the Workflow into n8n: Download the workflow JSON and import it via the n8n interface. Configure API Credentials: Set up WhatsApp Business API credentials with a valid phone number and token. Configure TMDb API key (e.g., https://api.themoviedb.org). Configure JustWatch API key (e.g., https://api.watchmode.com). Set up AI model credentials (e.g., Ollama Model). Run the Workflow: Activate the webhook trigger and test with a WhatsApp message. Verify Responses: Check WhatsApp for accurate movie recommendations or streaming info. Adjust Parameters: Fine-tune API endpoints or AI model as needed. Features AI Interpretation**: Uses AI to analyze user intents (genre or movie title). API Integration**: Searches TMDb for movie details and JustWatch for streaming availability. Real-Time Responses**: Sends instant replies via WhatsApp. Custom Recommendations**: Provides genre-based or specific movie recommendations. Technical Dependencies WhatsApp Business API**: For receiving and sending messages. TMDb API**: For movie details and genre searches. JustWatch API**: For streaming availability. Ollama Model**: For AI-based message analysis. n8n**: For workflow automation and integration. Customization Possibilities Add More APIs**: Integrate additional movie databases (e.g., IMDb). Enhance AI**: Train the Ollama Model for better intent recognition. Support More Languages**: Add multilingual support for WhatsApp responses. Add Email Alerts**: Include email notifications for admin monitoring. Customize Responses**: Adjust the format of recommendations or streaming info.
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.