by AI/ML API | D1m7asis
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. 🌅 Daily AI Inspiration (n8n + AI/ML API + Telegram) This n8n workflow sends a short, original AI‑generated quote and a matching cinematic image to your Telegram chat every morning. It auto‑captures your chat ID from the first message you send to the bot, then runs on a daily schedule. 🚀 Key Features Zero‑Friction Delivery — Just send any message once; the chat ID is saved for daily drops. AI Quote Writer — GPT‑4o crafts concise, uplifting quotes (no author, no quotes). Cinematic Visuals — flux-pro turns each quote into a mood‑rich illustration. Hands‑Off Scheduling — Runs at a set time every day via Schedule Trigger. Telegram Ready — Sends the image + caption directly to your chat. 🛠 Setup Guide Create AI/ML API Credentials Get your API key in AI/ML API. In n8n → Credentials, add AI/ML API (Bearer token, Base URL https://api.aimlapi.com/v1). Create Telegram Credentials In Telegram, open @BotFather → /newbot → save the bot token. In n8n → Credentials → Telegram API, paste the token. Capture Chat ID Start the workflow, message your bot once (Telegram Trigger will store the chat ID automatically). Schedule & Test Set your preferred time in Schedule Trigger (e.g., 07:30). Execute once to confirm delivery, then enable the workflow. 💡 How It Works Trigger — Runs daily via Schedule Trigger (or manually after first chat message to capture chat ID). Quote Generation — AI/ML API (GPT‑4o) produces a short, original, uplifting line. Image Creation — AI/ML API (flux-pro) renders a cinematic image inspired by the quote. Telegram Delivery — Sends the image to your chat with the quote as the caption (🌅 prefix). Optional: tweak image size (1024×1024 by default), add logging (Google Sheets), or extend with moderation, model switching, or multi‑chat routing.
by CryptooChai
This workflow fetches the latest trending cryptocurrency searches from CoinGecko and automatically sends them to your Telegram group/channel. ✅ No account or API key required ✅ Uses CoinGecko’s free public API ✅ Sends formatted daily updates to Telegram ✅ Easy to customize schedule with a Cron node Perfect for community managers, traders, or anyone who wants to keep their Telegram group updated with the hottest crypto trends. How it works Manual Trigger (for testing) & Schedule Trigger (runs automatically at set times) Uses CoinGecko API https://api.coingecko.com/api/v3/search/trending Extracts coin name, symbol, price (if available), and market cap rank Formats into a readable Telegram message & sends the message to your configured group/channel How to use Import the workflow: Download the JSON file and import it into your n8n instance. Connect your Telegram account: Add Telegram credentials in n8n using your Bot Token. Replace the placeholder Telegram Chat ID (chatId) with your group/channel ID. Adjust schedule (optional): By default, the workflow runs at 8:30 AM and 8:30 PM IST. You can change this in the Schedule Trigger node. Activate the workflow: Once configured, activate it, and your Telegram group will start receiving daily trending coin updates. Requirements An n8n instance (self-hosted or cloud) A Telegram Bot Token (create via BotFather) Telegram Group or Channel ID where messages should be sent
by Paul Kobelke
Remove Duplicates & Update Google Sheets How it Works This workflow helps you keep your Google Sheets clean and up-to-date by automatically removing duplicate entries and re-uploading the cleaned data back to your sheet. It’s especially useful for large lead lists, email databases, or any dataset where duplicate rows can cause confusion and inefficiency. The flow: Trigger the workflow manually. Fetch all rows from a specific Google Sheet. Identify and remove duplicate rows based on the profileUrl field. Convert the cleaned dataset into a file. Update the original Google Sheet with the new, deduplicated data. Setup Steps Connect your Google Sheets and Google Drive credentials in n8n. Update the workflow with your desired spreadsheet and sheet ID. Run the workflow by clicking “Execute Workflow” whenever you want to clean up your data. The process only takes a few seconds and ensures your sheet stays organized without any manual effort. Use Cases CRM lead management (avoiding duplicate prospects). Contact lists with scraped or imported data. Marketing databases with overlapping submissions.
by M Sayed
Telegram Restaurant Bot Workflow This workflow creates a Telegram bot that fetches the top 5 rated restaurants for any specified area in Egypt using SerpAPI's Google Maps search. It's designed to provide quick, detailed, and richly formatted information directly in your chat. Key Features Simple Command Trigger**: Activate the search with a straightforward command (e.g., التحرير) Real-Time Restaurant Data**: Utilizes SerpAPI to pull live data, ratings, and details from Google Maps Top 5 Ranking**: Automatically sorts restaurants by their rating in descending order and presents the top five Richly Formatted Replies**: Generates a clean, user-friendly Markdown message with essential details: Rating ⭐ Phone Number ☎️ Website 🌐 Service Options (Dine-in ✅ | Takeaway ❌) A direct link to the location on a map 📍 Arabic Language Focused**: The workflow is initially configured to process requests and format replies in Arabic How It Works A user sends a place name like التحرير to the Telegram bot The Parse Area node extracts the location name from the message text The Geocode (Nominatim) node finds the geographic coordinates for the area (this can be adapted for more precise location searches) The Find Restaurants (SerpAPI) node uses this area to perform a Google Maps search The Format Reply node processes the search results. It sorts them by rating, takes the top 5, and builds a detailed Markdown-formatted string The Send to Telegram node delivers the final formatted message back to the user who made the request Setup Telegram**: Configure your credentials in the Telegram Trigger and Send to Telegram nodes SerpAPI**: Add your free or paid API key in the Find Restaurants (SerpAPI) HTTP Request node
by Jannik Lehmann
GitLab Wrapped Generator ✨ Automatically generate your personalized GitLab Wrapped, a stunning year-in-review of your contributions, activity, and stats. Powered by gitlab-wrapped by @michaelangelorivera. 🚀 How it works Forks the gitlab-wrapped project (or finds your existing fork) Configures CI/CD environment variables Triggers the GitLab pipeline Monitors until completion (polls every 2 minutes) 🎉 Your wrapped will be available at: https://YOUR-USERNAME.gitlab.io/gitlab-wrapped --- ⚙️ Setup Create a GitLab PAT with these scopes: api read_repository write_repository Fill out the form: Your GitLab username Your PAT token GitLab instance URL (defaults to gitlab.com) Year (defaults to 2025) Submit & relax! ☕ The workflow handles everything automatically. --- 💡 Works with GitLab.com and self-hosted instances 📅 Generate wrapped reports for any past year
by Wan Dinie
Simple Profile Picture Generator (No API Keys Needed) Finding the perfect profile picture can be time-consuming and frustrating. Whether you need avatars for testing, placeholder images for development, or simply want to explore different styles before committing to a design, browsing multiple avatar services one by one is tedious. This workflow solves that universal problem by generating 12 different avatar styles instantly from a single trigger, giving you a complete gallery to choose from in seconds. How it works Trigger the workflow manually. The workflow generates a unique seed (random number or custom keyword) and randomly selects a gender. The simple JavaScript code generates 12 different avatar URLs from multiple free APIs using the same seed for consistency. All avatar URLs are passed to an HTML generator that creates a responsive gallery. The final HTML displays all 12 avatar styles in a grid with metadata (seed and gender). Each avatar includes a download button for easy saving. How to Set Up No API keys required. All avatar services used are completely free and public. Simply import the workflow and click "Execute Workflow" to generate your avatar gallery. The workflow works immediately without any configuration needed. The JavaScript code is beginner-friendly, meaning you can understand it just by reading through it. Customize If you are an advanced user, you can use custom seed instead of random: In the "Generate APIs" node (line 1), change const userInput = ''; to const userInput = 'your-name'; to generate consistent avatars based on your chosen keyword. Set fixed gender: In the "Generate APIs" node (line 4), change const gender = Math.random() > 0.5 ? 'male' : 'female'; to const gender = 'female'; or const gender = 'male'; for consistent gender across compatible APIs. Add or remove avatar APIs: Edit the apis array in the "Generate APIs" node to include your preferred avatar services or remove unwanted styles. Change avatar size: Replace size=200 or &size=200 with your desired dimensions (e.g., size=300) in the API URLs within the "Generate APIs" node.
by Robert Breen
This workflow checks a Google Sheet for new tasks (marked Added = No) and automatically creates them in a Monday.com board. Once added, the workflow updates the sheet to mark the task as Added = Yes. ⚙️ Setup Instructions 1️⃣ Prepare Your Google Sheet Copy this template to your own Google Drive: Google Sheet Template First row should contain column names Add your data in rows 2–100. Make sure each new task row starts with Added = No. Connect Google Sheets in n8n Go to n8n → Credentials → New → Google Sheets (OAuth2) Log in with your Google account and grant access. In the workflow, select your Spreadsheet ID and Worksheet Name. Optional: You can connect Airtable, Notion, or your database instead of Google Sheets. 2️⃣ Connect Monday.com Node In Monday.com → go to your Admin → API Copy your Personal API Token Docs: Generate Monday API Token In n8n → Credentials → New → Monday.com API Paste your token and save. Open the Create Monday Task node → choose your credential → select your Board ID and Group ID. 📬 Contact Need help customizing this (e.g., mapping more fields, syncing statuses, or updating timelines)? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com
by Anurag
Description This workflow automates the download of new or updated files from a Google Drive folder, processing only files changed since the last run using a timestamp control file. How It Works Triggered on a schedule. Checks for a n8n_last_run.txt file in your Google Drive to read when the workflow last ran. If missing, defaults to processing changes in the last 24 hours. Searches for new or modified files in your specified folder. Downloads new/changed files. Replaces the timestamp file with the current time for future runs. Setup Steps Set up your Google Drive credentials in n8n. Find the Folder ID of the Google Drive folder you wish to monitor. Edit all Google Drive nodes: Select your credentials Paste the Folder ID Adjust the schedule trigger if needed. Activate the workflow. Features No duplicate file processing (idempotent) Handles missing timestamp files Clear logical sticky notes in the editor Modular, extendable design Prerequisites Google Drive API credentials connected to n8n Target Google Drive folder accessible by the credentials
by Eduard
This n8n workflow template simplifies processing of media group messages sent by users in Telegram. It caches image album messages using Data Tables, and then sends them to a Nano Banana model for processing. This template showcases n8n's new Data Tables feature as a powerful caching layer to process entire image albums from Telegram. How it works Media Group handling**: captures all images and the shared caption when user sends an album via Telegram. Data Table caching**: stores all incoming messages in a Data Table to prevent data loss and allow for batch processing. Scheduled processing**: a timer trigger periodically finds and processes completed image albums from the cache. Multi-modal AI**: sends the full set of images and the text prompt to the NanoBanana model via OpenRouter. User feedback**: automatically notifies the user when processing begins and when the result is ready. How to use Import the workflow template into your n8n instance. Create a new Data Table with the following columns (all of type String): chat_id, message_id, media_group, message, status. Configure your Telegram credentials and connect your bot. Update the "prepare user messages" node with your Telegram bot token to create the image download links. Set up your OpenRouter credentials. Activate the workflow. Now you can send a group of images with a caption to your Telegram bot. Requirements An n8n instance (cloud or self-hosted) with Data Tables enabled. Minimal n8n version is 1.113 A Telegram account and a Telegram bot token. An OpenRouter account with access to the NanoBanana model. Customizing this workflow Adjust the processing schedule: modify the **Schedule Trigger node to change how often the workflow checks for new media groups to process. Handle other message types: The workflow handles only the media groups. You can easily build logic for text messages, documents, or commands by adding nodes instead of the placeholder node ("Process other messages as usual"**). Extend the functionality**: add more nodes after the AI generates an image to perform different actions, such as saving the file, sending it to another service, or creating a social media post.
by David Olusola
🚀 Automated Lead Management: Google Sheets → Instantly + n8n Data Tables 📋 Overview This workflow automates lead management by syncing data from Google Sheets to Instantly email campaigns while maintaining tracking through n8n Data Tables. It processes leads in batches to avoid rate limits and ensures no duplicates are sent. ⚙️ Complete Setup Guide 1️⃣ Create Your Google Sheet Option A: Use Our Template (Recommended) Copy this template with test data: Google Sheets Template Click File → Make a copy to create your own version Populate with your lead data Option B: Create Your Own Create a Google Sheet with these required columns: Firstname - Contact's first name Email - Contact's email address Website - Company website URL Company - Company name Title - Job title/position 💡 Pro Tip: Add as many leads as you want - the workflow handles batching automatically! 2️⃣ Set Up n8n Data Table The workflow uses one Data Table to track leads and their sync status. Create the "Leads" Data Table: In your n8n workflow editor, add a Data Table node Click "Create New Data Table" Name it: Leads Add the following columns: | Column Name | Type | Purpose | |------------|------|---------| | Firstname | string | Contact's first name | | Lastname | string | Contact's last name | | email | string | Contact's email (unique identifier) | | website | string | Company website | | company | string | Company name | | title | string | Job title | | campaign | string | Sync status (e.g., "start", "added to instantly") | | focusarea | string | Enriched data from Title field | Click Save 📌 Important: The campaign field is crucial - it tracks which leads have been synced to prevent duplicates! 3️⃣ Connect Your Google Sheets Account In the "Get row(s) in sheet" node, click "Create New Credential" Select Google Sheets OAuth2 API Follow the OAuth flow: Sign in with your Google account Grant n8n permission to access your sheets Select your spreadsheet from the dropdown Choose the correct sheet name (e.g., "instantly leads") Test the connection to verify it works 4️⃣ Connect Your Instantly Account Go to Instantly.ai and log in Navigate to Settings → API Copy your API Key Back in n8n, open the "Create a lead" node Click "Create New Credential" Select Instantly API Paste your API key Important: Update the campaign ID: Current ID: 100fa5a2-3ed0-4f12-967c-b2cc4a07c3e8 (example) Replace with your actual campaign ID from Instantly Find this in Instantly under Campaigns → Your Campaign → Settings 5️⃣ Configure the Data Table Nodes You'll need to update three Data Table nodes to point to your newly created "Leads" table: Node 1: "Get row(s)" Operation: Get Data Table: Select Leads Filter: campaign = "start" This fetches only new, unsynced leads Node 2: "Update row(s)1" (Top Flow) Operation: Update Data Table: Select Leads Filter: Match by email field Update: Set focusarea to Title value This enriches lead data Node 3: "Update row(s)" (Bottom Flow) Operation: Update Data Table: Select Leads Filter: Match by Email field Update: Set campaign = "added to instantly" This prevents duplicate sends 6️⃣ Configure the Schedule (Optional) The workflow includes a Schedule Trigger for automation: Default: Runs every hour To customize: Click the "Schedule Trigger" node Choose your interval: Every 30 minutes Every 2 hours Daily at specific time Custom cron expression 💡 For testing: Use the "When clicking 'Execute workflow'" manual trigger instead! 🔄 How It Works Flow 1: Data Transfer (Top Path) This flow moves leads from Google Sheets → n8n Data Table Manual Trigger → Get Google Sheets → Batch Split (30) → Update Data Table → Loop Step-by-step: Manual Trigger - Click to start the workflow manually Get row(s) in sheet - Fetches ALL leads from your Google Sheet Loop Over Items - Splits into batches of 30 leads Update row(s)1 - For each lead: Searches Data Table by email Updates or creates the lead record Stores Title → focusarea for enrichment Loop continues - Processes next batch until all leads transferred ⚙️ Why 30 at a time? Prevents API timeouts Respects rate limits Allows monitoring of progress Can be adjusted in the node settings Flow 2: Instantly Sync (Bottom Path) This flow syncs qualified leads from Data Table → Instantly Schedule Trigger → Get Data Table (filtered) → Individual Loop → Create in Instantly → Update Status Step-by-step: Schedule Trigger - Runs automatically (every hour by default) Get row(s) - Queries Data Table for leads where campaign = "start" Only fetches NEW, unsynced leads Ignores leads already processed Loop Over Items1 - Processes ONE lead at a time Create a lead - Sends lead to Instantly: Campaign: "Launchday 1" Maps: Email, Firstname, Company, Website Adds to email sequence Update row(s) - Updates Data Table: Sets campaign = "added to instantly" Prevents duplicate sends on next run Loop continues - Next lead until all processed 🔍 Why one at a time? Instantly API works best with individual requests Ensures accurate status tracking Prevents partial failures Better error handling per lead ✅ Key Features Explained Batch Processing Processes 30 Google Sheet leads at once Configurable in Loop Over Items node Prevents timeouts on large datasets Duplicate Prevention Uses campaign field as status tracker Only syncs leads where campaign = "start" Updates to "added to instantly" after sync Re-running workflow won't create duplicates Data Enrichment Stores job title in focusarea field Can be used for personalization later Extensible for additional enrichment Two-Trigger System Manual Trigger**: For testing and one-time runs Schedule Trigger**: For automated hourly syncs Both triggers use the same logic Error Tolerance Individual lead processing prevents cascade failures One failed lead won't stop the entire batch Easy to identify and fix problematic records 🧪 Testing Your Workflow Step 1: Test Data Transfer (Flow 1) Add 5 test leads to your Google Sheet Click the Manual Trigger node Click "Execute Node" Check your Leads Data Table - should see 5 new rows Verify focusarea field has data from Title column Step 2: Test Instantly Sync (Flow 2) In Data Table, ensure at least one lead has campaign = "start" Click the Schedule Trigger node Click "Execute Node" (bypasses schedule for testing) Check Instantly dashboard - should see new lead(s) Check Data Table - campaign should update to "added to instantly" Step 3: Test Duplicate Prevention Re-run the Schedule Trigger No new leads should be created in Instantly Data Table shows no changes (already marked as synced) 🚨 Troubleshooting Issue: Google Sheets not fetching data ✅ Check OAuth credentials are valid ✅ Verify spreadsheet ID in node settings ✅ Ensure sheet name matches exactly ✅ Check Google Sheet has data Issue: Data Table not updating ✅ Verify Data Table exists and is named "Leads" ✅ Check column names match exactly (case-sensitive) ✅ Ensure email field is populated (used for matching) Issue: Instantly not receiving leads ✅ Verify Instantly API key is correct ✅ Update campaign ID to your actual campaign ✅ Check campaign = "start" in Data Table ✅ Verify email format is valid Issue: Workflow runs but nothing happens ✅ Check if Data Table has leads with campaign = "start" ✅ Verify loop nodes aren't stuck (check execution logs) ✅ Ensure batch size isn't set to 0 💡 Pro Tips & Best Practices For Beginners: Start small - Test with 5-10 leads first Use manual trigger - Don't enable schedule until tested Check each node - Execute nodes individually to debug Monitor Data Table - Use it as your source of truth Keep backups - Export Data Table regularly For Optimization: Adjust batch size - Increase to 50-100 for large datasets Add delays - Insert "Wait" nodes if hitting rate limits Filter in Google Sheets - Only fetch new rows (use formulas) Archive old leads - Move synced leads to separate table Add error notifications - Connect Slack/email for failures For Scaling: Use multiple campaigns - Add campaign selection logic Implement retry logic - Add "IF" nodes to retry failed syncs Add data validation - Check email format before syncing Log everything - Add "Set" nodes to track execution details Monitor API usage - Track Instantly API quota 📊 Expected Results After Setup: ✅ Google Sheets connected and fetching data ✅ Data Table populated with lead information ✅ Instantly receiving leads automatically ✅ No duplicate sends occurring ✅ Campaign status updating correctly Performance Metrics: 100 leads** - Processes in ~5-10 seconds 1000 leads** - Processes in ~15-20 seconds Instantly API** - 1 lead per second typical speed Schedule runs** - Every hour by default 📬 Need Help? Customization Services: Advanced filtering and segmentation Multi-campaign management Custom field mapping and enrichment Webhook integrations for real-time sync Error handling and monitoring setup Scale to 10K+ leads per day Contact: 📧 david@daexai.com 🎥 Watch Full Tutorial 🎓 What You'll Learn By setting up this workflow, you'll master: ✅ n8n Data Tables - Creating, querying, and updating data ✅ Batch Processing - Handling large datasets efficiently ✅ API Integrations - Connecting Google Sheets and Instantly ✅ Workflow Logic - Building complex multi-path automations ✅ Error Prevention - Implementing duplicate checking ✅ Scheduling - Automating workflows with triggers Happy Flogramming! 🎉
by Candra Reza
Stop wasting time on manual data entry and instantly engage with your new leads! This powerful and production-ready n8n workflow automates the entire process of capturing leads from Facebook Lead Ads (or Google Ads Lead Forms), creating a backup in Google Sheets, and adding them directly into your CRM like Salesforce. This template is designed for marketers, sales teams, and agencies who want to ensure every lead is tracked and actioned immediately, improving conversion rates and maintaining a clean, organized database. How It Works This workflow follows a logical and robust sequence: Instant Trigger**: The workflow instantly starts when a new lead is submitted on your connected Facebook Lead Ad form. Smart Data Prep: A **Set node automatically processes the incoming data, intelligently splitting the 'full_name' field into 'First Name' and 'Last Name' to ensure compatibility with standard CRM fields. Reliable Backup**: The lead details are immediately appended to a new row in a specified Google Sheet. This serves as a permanent, easy-to-access log of all your leads. A "Processing" status is added. CRM Integration: The formatted lead data is used to create a new **Lead in Salesforce. This can be easily swapped for other CRMs like HubSpot, Pipedrive, Zoho, or any custom CRM with an API. Status Confirmation**: After the lead is successfully created in the CRM, the workflow goes back to the Google Sheet and updates the lead's status from "Processing" to "Synced," giving you a clear, at-a-glance overview of your sync status. Key Features Multi-Platform Ready: Primarily set up for Facebook Lead Ads, but the trigger can be easily swapped with the **Google Ads Lead Form Trigger node for Google-based campaigns. Data Integrity**: Includes a data preparation step to clean and structure information before sending it to your CRM. Failsafe Logging**: Google Sheets integration ensures you never lose a lead, even if there's a temporary issue with your CRM. Closed-Loop Reporting**: The status update feature provides clear confirmation within your spreadsheet that the automation was successful for each lead. Highly Customizable**: Easily adapt the workflow to handle custom fields from your lead forms and map them to any field in your CRM. Setup Instructions Import Template: Add this workflow to your n8n canvas. Configure Trigger: Select the Facebook Lead Ad node. Create or select your Facebook Lead Ads API credentials. Choose the correct Page and Form you want to track from the dropdown lists. (Optional: To use Google Ads, delete the Facebook node and add the 'Google Ads Lead Form Trigger' node instead, then connect it to the 'Prepare CRM Data' node.) Configure Google Sheets: Select the Log Lead to Google Sheets node. Create or select your Google Sheets API credentials. Enter your Spreadsheet ID and the Sheet Name (e.g., "Leads"). Ensure your sheet has the following headers: Timestamp, FullName, Email, PhoneNumber, LeadID, CRM_Status. The Update Status in Sheet node will automatically use the same credentials and sheet details. Configure Your CRM: Select the Create Lead in Salesforce node. Create or select your Salesforce API credentials. Review the mapped fields. You can add any custom fields from your form by referencing the data from the trigger node (e.g., {{$nodes["Facebook Lead Ad"].json.custom_field_name}}). Activate Workflow: Save and activate your workflow to start automating your lead management! This automation will save you hours of administrative work, eliminate human error, and ensure your sales team can follow up with hot leads faster than ever.
by Robert Breen
This n8n workflow template automatically pulls marketing data from Google Sheets, calculates key performance metrics, and sends beautifully formatted HTML email reports. Perfect for marketing teams, agencies, or businesses that need regular performance reporting without manual data processing. What This Workflow Does This automated workflow: Retrieves marketing campaign data from Google Sheets Calculates 5 key performance metrics (customers, campaigns, clicks, conversions, spend) Merges all statistics into a single data object Sends a professional HTML email report with modern styling Can be run manually or scheduled for regular reporting The workflow processes data including Customer ID, Campaign names, Clicks, Conversions, and Spend amounts to generate comprehensive performance summaries. Tools & Services Used N8N** - Workflow automation platform Google Sheets** - Marketing data source and storage Microsoft Outlook** - Email delivery system HTML/CSS** - Professional report formatting Step-by-Step Implementation Step 1: Set Up Your Google Sheets Data Source Copy the Sample Data Template: Access the template: Marketing Performance Data Template Click "File" → "Make a copy" to create your own version Rename it (e.g., "My Marketing Performance Data") Set Up Your Data Structure: Your Google Sheet should have a "Data" tab with these columns: Customer ID** - Unique identifier for each customer Campaign** - Name of the marketing campaign Clicks** - Number of clicks generated Conversions** - Number of conversions achieved Spend ($)** - Amount spent on the campaign Configure Google Sheets API Access: Go to Google Cloud Console Create a project or select existing one Enable "Google Sheets API" Create OAuth2 credentials or use service account Share your sheet with the service account email (if using service account) Step 2: Import and Configure the N8N Workflow Import the Workflow: Copy the workflow JSON from the template In your N8N instance, go to Workflows → Import from JSON Paste the JSON and import the workflow Step 3: Configure Each Node Node 1: "When clicking 'Execute workflow'" (Manual Trigger) Purpose**: Starts the workflow manually for testing Configuration**: No setup required Note**: You can replace this with a Schedule Trigger for automated reports Node 2: "Get Google Sheets Data" Purpose**: Retrieves all marketing data from your Google Sheet Setup Required**: Click on the node Set up Google Sheets OAuth2 credentials: Click "Create New Credential" Follow OAuth2 setup process Authorize access to your Google account Select your spreadsheet from the dropdown Choose the "Data" sheet Test the connection to ensure data loads Node 3-7: Data Analysis Nodes "Count Unique Customers" Purpose**: Counts how many unique customers were reached Configuration**: Pre-configured to count unique "Customer ID" values No setup required** "Count Unique Campaigns" Purpose**: Counts total number of campaigns run Configuration**: Pre-configured to count unique "Campaign" values No setup required** "Sum Total Clicks" Purpose**: Adds up all clicks across campaigns Configuration**: Pre-configured to sum "Clicks" column No setup required** "Sum Total Conversions" Purpose**: Totals all conversions achieved Configuration**: Pre-configured to sum "Conversions" column No setup required** "Sum Total Spend" Purpose**: Calculates total marketing spend Configuration**: Pre-configured to sum "Spend ($)" column No setup required** Node 8: "Merge" Purpose**: Combines all calculated metrics into one data object Configuration**: Pre-configured to merge by position No setup required** Node 9: "Send Email Report" (Microsoft Outlook) Purpose**: Sends the formatted HTML email report Setup Required**: Click on the node Set up Microsoft Outlook OAuth2 credentials: Click "Create New Credential" Follow OAuth2 setup for your Microsoft account Grant necessary email permissions Configure Email Settings: To Recipients: Change from "rbreen@ynteractive.com" to your recipient email(s) Subject: Modify "Daily Marketing Performance" as needed Body Content: Pre-configured with professional HTML template Email Template Features: Modern glassmorphic design Responsive layout for mobile devices Animated gradient accents Hover effects on metric cards Professional typography For professional setup, customization, or troubleshooting of this workflow, contact: Robert - Ynteractive Solutions Email**: robert@ynteractive.com Website**: www.ynteractive.com LinkedIn**: linkedin.com/in/robert-breen-29429625/ Specializing in AI-powered workflow automation, business process optimization, and custom integration solutions.