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 Milan Vasarhelyi - SmoothWork
What this workflow does This workflow automates backend setup tasks for real estate client portals. When a new property transaction is added to your Google Sheets database with a buyer email but no document folder assigned, the workflow automatically creates a dedicated Google Drive folder, updates the spreadsheet with the folder URL, and adds an initial task prompting the client to upload documents. This automation eliminates manual folder creation and task assignment, ensuring every new transaction has its documentation infrastructure ready from day one. Your clients can access their dedicated folder directly from the portal, keeping all property-related documents organized and accessible in one place. Key benefits Eliminate manual setup**: No more creating folders and tasks individually for each transaction Consistent client experience**: Every buyer gets the same professional onboarding process Organized documentation**: Each transaction has its own Google Drive folder automatically shared with the client Time savings**: Focus on closing deals instead of administrative setup Setup requirements Important: You must make a copy of the reference Google Sheets spreadsheet to your own Google account before using this workflow. Your spreadsheet needs at minimum two tabs: Transactions tab**: Columns for ID, Buyer Email, Documents URL, Property Address, and Status Tasks tab**: Columns for Transaction ID, Task Name, Task Description, and Status Configuration steps Authenticate your Google Sheets and Google Drive accounts in n8n Update the Google Sheets trigger node to point to your copied spreadsheet Set the parent folder ID in the "Create Client Documents Folder" node (where transaction folders should be created) Customize the initial task name and description in the "Add Initial Upload Task" node Verify all sheet names match your spreadsheet tabs The workflow triggers every minute checking for new transactions that meet the criteria (has buyer email, missing documents URL).
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.
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by Davide
This workflow transforms n8n into a call automation system, where AI agents can talk directly with people over the phone using Twilio. This workflow integrates Ultravox AI voice agents with Twilioβs telephony service to fully automate outbound phone calls. Ultravox generates the AI conversation and audio, while Twilio handles the PSTN connection to the actual phone network, with the two services connected in real-time via a media stream. Key Advantages AI-Powered Conversations** β Leverage Ultravox agents to handle natural, real-time dialogues with customers. Seamless Telephony Integration** β Twilio ensures reliable phone call delivery worldwide. Flexible Setup** β You can easily change the target phone number, agent, or Twilio line directly in the workflow. Scalable Outreach** β Automates outbound calls for customer support, sales, or appointment reminders. Step-by-Step Guidance** β The workflow includes clear instructions for: Buying and configuring a Twilio number Creating an Ultravox agent Executing the final call How it Works Manual Trigger: The workflow is started manually by a user within n8n. Set Parameters: The "Set Params" node defines the crucial variables for the call: the Ultravox agent_id, the Twilio phone number to call from (twilio_number), and the destination phone_number to call. Initiate Ultravox Session: The "Create Ultravox Call" node sends an HTTP POST request to the Ultravox API. It specifies the agent to use and, crucially, informs Ultravox that the call will be handled by Twilio (medium: { twilio: {} }). Ultravox responds with a unique joinUrl (a WebSocket stream URL). Place the Twilio Call: The "Twilio Call" node uses the details from the previous steps. It instructs Twilio to make a call from the specified twilio_number to the target phone_number. The key instruction (twiml) tells Twilio to connect the call to the joinUrl provided by Ultravox, effectively streaming the audio between the participant and the AI agent. Set Up Steps Twilio Configuration: Log into your Twilio Console. Buy a phone number under the "Phone Numbers" section. Obtain your "Account SID" and "Auth Token" from the dashboard. In the "Twilio Call" node credentials, add your Twilio Account SID and Auth Token. In the "Set Params" node, set the twilio_number value to your newly purchased Twilio number (e.g., +1xxxxxxx). Ultravox Configuration: Log into your Ultravox App. Create a new AI Agent by configuring its voice, tools, and system prompt. Copy the ID of your newly created agent. In the "Set Params" node, set the agent_id value to your Ultravox agent's ID. Execute the Call: In the "Set Params" node, set the phone_number value to the destination number you wish to call (e.g., +1xxxxxxxx). Execute the workflow manually from the n8n editor. The AI agent will call the specified number through Twilio. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by System Admin
No description available