by Sidetool
This workflow is a supporting automation to a common Airtable situation, that as of this writing, has no direct solution but has great demand. Interfaces are your secret weapon for managing a variety of tasks โ from sales funnels and task tracking to creating dynamic dashboards. But here's a common situation: how do you efficiently bulk upload records (like contacts, leads, or clients) from an interface with just a click? Once set up, you'll be able to upload CSV files directly to your tables from the Interfaces with ease. Workflow Key Points: 1. Bulk Upload Functionality: Say goodbye to the limitations of standard Airtable interfaces. Now, you can upload multiple leads or contacts simultaneously, making your work swift and efficient. 2. Customizable Fields: Tailor the base to meet your specific data needs. This ensures seamless integration with your existing systems and simplifies data management. โ Perfect for teams in e-commerce, CRM, or any sector where managing a high volume of leads or contacts is key. Our Airtable Base is designed to eliminate the tediousness of importing contacts. It makes large-scale data management straightforward, saving you precious time and hassle. โ Get ready to streamline your operations and boost your productivity! ๐๐ก
by Oneclick AI Squad
This comprehensive n8n workflow automates the entire travel business call management process, from initial customer inquiries to trip bookings and marketing outreach. The system handles incoming calls, validates trip details, processes bookings, captures leads, and manages outbound marketing campaigns to promote trip organizer services. It streamlines the complete sales cycle while maintaining organized data records for business intelligence. Essential Information The system operates across four distinct workflows to handle different aspects of travel call management. All call data is automatically captured and stored in organized spreadsheets for analysis and follow-up. The workflow validates trip details before processing to ensure data accuracy and prevent booking errors. Outbound marketing campaigns are automatically triggered based on lead detection and formatting. System Architecture Call Handling Pipeline**: The Detect Incoming Call node captures all incoming customer calls, followed by the Validate Trip Details node which verifies and processes trip information, and the Deliver Organizer Info node that provides relevant trip organizer details to callers. Booking Management Flow**: The Capture Voice Input node records customer booking requests, the Update Booking Record node processes and stores booking information, and the Send Booking Confirmation node delivers confirmation details to customers. Lead Generation Process**: The Detect New Lead node identifies potential customers from call data, the Format Lead Information node structures the lead data for marketing use, and the Initiate Marketing Outreach node launches targeted marketing campaigns. Data Management System**: The Receive Call Response node collects call interaction data, the Log User Input node records customer information in spreadsheets, and the Relay Response to System node ensures data synchronization across all components. Implementation Guide Import the workflow into n8n and configure phone system integration for call detection and voice capture. Set up spreadsheet connections for booking records, lead management, and call logging. Configure marketing automation tools for outbound campaign management. Test each workflow section independently before enabling the complete system. Monitor call handling accuracy and adjust validation rules as needed. Technical Dependencies Phone system API or telephony service for call detection and voice processing Spreadsheet service (Google Sheets, Excel Online) for data storage and management Marketing automation platform for outbound campaign execution Voice recognition service for capturing and processing customer input CRM integration for lead management and customer tracking Database & Sheet Structure Call Tracking Sheet**: Columns should include Call_ID, Customer_Phone, Call_Time, Call_Duration, Call_Status, Trip_Interest, Organizer_Assigned Booking Records Sheet**: Required columns are Booking_ID, Customer_Name, Customer_Phone, Destination, Travel_Dates, Group_Size, Booking_Status, Confirmation_Sent Lead Management Sheet**: Essential columns include Lead_ID, Customer_Name, Phone_Number, Email, Trip_Preference, Lead_Source, Lead_Status, Marketing_Campaign_Sent Trip Organizer Database**: Contains Organizer_ID, Organizer_Name, Specialization, Contact_Info, Availability_Status, Performance_Rating Marketing Outreach Log**: Tracks Campaign_ID, Lead_ID, Campaign_Type, Send_Date, Response_Status, Follow_up_Required Customization Possibilities Adjust the Validate Trip Details node to include specific travel validation rules or partner requirements. Modify the Format Lead Information node to match your CRM system's data structure and marketing campaign formats. Configure the Initiate Marketing Outreach node to integrate with your preferred marketing platforms and campaign templates. Customize the data logging structure in the Log User Input node to capture additional customer information or booking details. Add additional validation steps or approval workflows between booking capture and confirmation sending.
by Lorena
This workflow synchronizes data both ways between Pipedrive and HubSpot. Cron node** schedules the workflow to run every minute. Pipedrive* and *Hubspot nodes** pull in both lists of persons from Pipedrive and contacts from HubSpot. Merge1* and *Merge2 nodes** with the option Remove Key Matches identify the items that uniquely exist in HubSpot and Pipedrive, respectively. Update Pipedrive* and *Update HubSpot nodes** take those unique items and add them in Pipedrive and HubSpot, respectively.
by Airtop
About The ICP Company Scoring Automation Sorting through lists of potential leads manually to determine who's truly worth your sales team's time isn't just tedious, it's incredibly inefficient. Without proper qualification, your team might spend hours pursuing prospects who aren't the right fit for your product, while ideal customers slip through the cracks. How to Automate Identifying Your Ideal Customers With this automation, you'll learn how to automatically score and prioritize leads using data extracted directly from LinkedIn profiles via Airtop's integration with n8n. By the end, you'll have a fully automated workflow that analyzes prospects and calculates an Ideal Customer Profile (ICP) score, helping your sales team focus on high-potential opportunities. What You'll Need A free Airtop API key A copy of this Google Sheets Understanding the Process This automation transforms how you qualify and prioritize leads by extracting real-time, accurate information directly from LinkedIn profiles. Unlike static databases that quickly become outdated, this workflow taps into the most current professional information available. The workflow in this template: Uses Airtop to extract comprehensive LinkedIn profile data Analyzes the data to calculate an ICP score based on AI interest, technical depth, and seniority Updates your Google Sheet with the enriched data and the ICP Company score Company ICP Scoring Workflow Our company-focused workflow analyzes company LinkedIn profiles with a comprehensive set of criteria: Company Identity Extraction Company Scale Assessment Business Classification Technical Sophistication Assessment Investment Profile To then calculate the ICP Scoring, it will focus on: AI Implementation Level: Low-5 pts, Medium-10 pts, High-25 pts Technical Sophistication: Basic-5 pts, Intermediate-15 pts, Advanced-25 pts, Expert-35 pts Employee Count: 0-9 employees-5 pts, 10-150 employees-25 pts, 150+ employees-30 pts Automation Agency Status: True-20 pts, False-0 pts Geography: US/Europe Based-10 pts, Other-0 pts Setting Up Your Automation We've created ready-to-use templates for both person and company ICP scoring. Here's how to get started: Configure your connections Connect your Google Sheets account Add your Airtop API key (obtain from the Airtop dashboard) Set up your Google Sheet Ensure your Google Sheet has the necessary columns for input data and result fields Ensure that columns Linkedin_URL_Company and ICP_Score_Company exist at least Configure the Airtop module Set up the Airtop module to use the appropriate LinkedIn extraction prompt Use our provided prompt that extracts company profile data Customization Options While our templates work out of the box, you might want to customize them for your specific needs: Modify the ICP scoring criteria: Adjust the point values or add additional criteria specific to your business Add notification triggers: Set up Slack or email notifications for high-value leads that exceed a certain ICP threshold Implement batch processing: Modify the workflow to process leads in batches to optimize performance Add conditional logic: Create different scoring models for different industries or product lines Integrate with your CRM: Integrate this automation with your preferred CRM to get the details added automatically for you Real-World Applications Here's how businesses are using this automation: AI Sales Platform: A B2B AI company could implement this workflow to process their trade show lead list of contacts. Within hours, they can identify the top 50 prospects based on ICP score. SaaS Analytics Tool: A SaaS company could implement LinkedIn enrichment to identify which companies fit best. The automation processes weekly leads and categorizes them into high, medium, and low priority tiers, allowing their sales team to focus on the most promising opportunities first. Best Practices To get the most out of this automation: Review and refine your ICP criteria quarterly: What constitutes an ideal customer may evolve as your product and market develop Create tiered follow-up processes: Develop different outreach strategies based on ICP score ranges Perform regular data validation: Periodically check the accuracy of the automated scoring against your actual sales results What's Next? Now that you've automated your ICP scoring with LinkedIn data, you might be interested in: Setting up automated outreach sequences based on ICP score thresholds Creating custom reporting dashboards to track conversion rates by ICP segment Expanding your scoring model to include additional data sources Implementing lead assignment automation based on ICP scores Happy automating!
by Davide
Drive-to-Store is a multi-channel marketing strategy that includes both the web and the physical context, with the aim of increasing the number of customers and sales in physical stores. This strategy guides potential customers from the online world to the physical point of sale through the provision of a coupon that can be spent in the store or on an e-commerce site. The basic idea is to have a landing page with a form and a series of unique coupons to assign to leads as a "reward" for filling out the form. This workflow is ideal for businesses looking to automate lead generation and management, especially when integrating with CRM systems like SuiteCRM and using Google Sheets for data tracking. How It Works Form Submission: The workflow starts with the On form submission node, which triggers when a user submits a form on a landing page. The form collects the user's name, surname, email, and phone number. Form Data Processing: The Form Fields node extracts and sets the form data (name, surname, email, and phone) for use in subsequent steps. Duplicate Lead Check: The Duplicate Lead? node checks if the submitted email already exists in a Google Sheets document. If the email is found, the workflow responds with a "duplicate lead" message (Respond KO node) and stops further processing. Coupon Retrieval: If the email is not a duplicate, the Get Coupon node retrieves a coupon code from the Google Sheets document based on the lead's email. Lead Creation in SuiteCRM: The Create Lead SuiteCRM node creates a new lead in SuiteCRM using the form data and the retrieved coupon code. The lead includes: First name, last name, email, phone number, and coupon code. Google Sheets Update: The Update Sheet node updates the Google Sheets document with the newly created lead's details, including: Name, surname, email, phone, coupon code, lead ID, and the current date and time. Response to Webhook: The Respond OK node sends a success response back to the webhook, indicating that the lead was created successfully. Set Up Steps Configure Form Trigger: Set up the On form submission node to collect user data (name, surname, email, and phone) via a web form. Set Up Google Sheets Integration: Configure the Duplicate Lead?, Get Coupon, and Update Sheet nodes to interact with the Google Sheets document. Ensure the document contains columns for email, coupon, lead ID, and other relevant fields. Set Up SuiteCRM Authentication: Configure the Token SuiteCRM node with the appropriate client credentials (client ID and client secret) to obtain an access token from SuiteCRM. Set Up Lead Creation in SuiteCRM: Configure the Create Lead SuiteCRM node to send a POST request to SuiteCRM's API to create a new lead. Include the form data and coupon code in the request body. Set Up Webhook Responses: Configure the Respond OK and Respond KO nodes to send appropriate JSON responses back to the webhook based on whether the lead was created or if it was a duplicate. Test the Workflow: Submit a test form to ensure the workflow correctly checks for duplicates, retrieves a coupon, creates a lead in SuiteCRM, and updates the Google Sheets document. Activate the Workflow: Once tested, activate the workflow to automate the process of handling form submissions and lead creation. Key Features Duplicate Lead Check**: Prevents duplicate leads by checking if the email already exists in the Google Sheets document. Coupon Assignment**: Retrieves a coupon code from Google Sheets and assigns it to the new lead. SuiteCRM Integration**: Automatically creates a new lead in SuiteCRM with the form data and coupon code. Data Logging**: Logs all lead details in a Google Sheets document for tracking and analysis. Webhook Responses**: Provides immediate feedback on whether the lead was created successfully or if it was a duplicate.
by Airtop
About The ICP Person Scoring Automation Sorting through lists of potential leads manually to determine who's truly worth your sales team's time isn't just tedious, it's incredibly inefficient. Without proper qualification, your team might spend hours pursuing prospects who aren't the right fit for your product, while ideal customers slip through the cracks. How to Automate Identifying Your Ideal Customers With this automation, you'll learn how to automatically score and prioritize leads using data extracted directly from LinkedIn profiles via Airtop's built-in integration with n8n. By the end, you'll have a fully automated workflow that analyzes prospects and calculates an Ideal Customer Profile (ICP) score, helping your sales team focus on high-potential opportunities. What You'll Need A free Airtop API key A copy of this Google Sheets Understanding the Process This automation transforms how you qualify and prioritize leads by extracting real-time, accurate information directly from LinkedIn profiles. Unlike static databases that quickly become outdated, this workflow taps into the most current professional information available. The workflow in this template: Uses Airtop to extract comprehensive LinkedIn profile data Analyzes the data to calculate an ICP score based on AI interest, technical depth, and seniority Updates your Google Sheet with the enriched data and the ICP score Person ICP Scoring Workflow Our person-focused workflow evaluates individual LinkedIn profiles to determine how well they match your ideal customer profile by: Extracting data for each individual Analyzing their profile to determine seniority and technical depth The system then automatically calculates an ICP score based on the following criteria: AI Interest: beginner-5 pts, intermediate-10 pts, advanced-25 pts, expert-35 pts Technical Depth: basic-5 pts, intermediate-15 pts, advanced-25 pts, expert-35 pts Seniority Level: junior-5 pts, mid-level-15 pts, senior-25 pts, executive-30 pts Setting Up Your Automation Here's how to get started: Configure your connections Connect your Google Sheets account Add your Airtop API key (obtain from the Airtop dashboard) Set up your Google Sheet Ensure your Google Sheet has the necessary columns for input data and result fields Ensure that columns Linkedin_URL_Person and ICP_Score_Person exist at least Configure the Airtop module Set up the Airtop module to use the appropriate LinkedIn extraction prompt Use our provided prompt that extracts individual profile data Customization Options While our templates work out of the box, you might want to customize them for your specific needs: Modify the ICP scoring criteria: Adjust the point values or add additional criteria specific to your business Add notification triggers: Set up Slack or email notifications for high-value leads that exceed a certain ICP threshold Implement batch processing: Modify the workflow to process leads in batches to optimize performance Add conditional logic: Create different scoring models for different industries or product lines Integrate with your CRM: Integrate this automation with your preferred CRM to get the details added automatically for you Real-World Applications Here's how businesses are using this automation: AI Sales Platform: A B2B AI company could implement this workflow to process their trade show lead list of contacts. Within hours, they can identify the top 50 prospects based on ICP score. SaaS Analytics Tool: A SaaS company could implement LinkedIn enrichment to identify which companies fit best. The automation processes weekly leads and categorizes them into high, medium, and low priority tiers, allowing their sales team to focus on the most promising opportunities first. Best Practices To get the most out of this automation: Review and refine your ICP criteria quarterly: What constitutes an ideal customer may evolve as your product and market develop Create tiered follow-up processes: Develop different outreach strategies based on ICP score ranges Perform regular data validation: Periodically check the accuracy of the automated scoring against your actual sales results What's Next? Now that you've automated your ICP scoring with LinkedIn data, you might be interested in: Setting up automated outreach sequences based on ICP score thresholds Creating custom reporting dashboards to track conversion rates by ICP segment Expanding your scoring model to include additional data sources Implementing lead assignment automation based on ICP scores Happy automating!
by tbphp
Overview This n8n template monitors specified GitHub repositories. When a new release is published, it automatically fetches the information, uses AI (Google Gemini by default) to summarize and translate it into Chinese, and sends a formatted notification to a designated Slack channel. Core Features: Automated Monitoring**: Checks for updates on a predefined schedule. Intelligent Processing**: Uses AI to extract key information and translate. Error Handling**: Sends an error notification if fetching RSS for a single repository fails, without affecting others. Duplicate Prevention**: Remembers the last processed release ID using Redis to ensure only new content is pushed. Prerequisites Slack**: Configure your Slack app credentials in n8n. Redis**: Have an available Redis service and configure its credentials in n8n. AI Provider (Gemini)**: Configure credentials for Google Gemini (or your chosen AI model) in n8n. Configuration Instructions After importing the template, you need to modify the following key nodes: Cron Trigger: Adjust the Rule setting to change the update check frequency (default is 0 */10 9-23 * * *, checking every 10 minutes between 9 AM and 11 PM daily). GitHub Config (Repository List - Code Node): Edit the JavaScript array within this node's code area. Modify or add the repositories you want to follow. Each repository object needs a name (custom display name) and github (format: owner/repo). Example: { "name": "n8n", // Custom display name "github": "n8n-io/n8n" // GitHub path }, { "name": "LobeChat", "github": "lobehub/lobe-chat" } // ... add more repositories Redis and Redis2 (Redis Connection): Select your configured Redis credentials in both nodes. Gemini (AI Model): Select your configured Google Gemini credentials. (Optional) Replace with a different supported AI model node and select its credentials. Information Extractor (AI Processing & Translation): Main Configuration: Review the System Prompt. By default, it asks the AI to extract information and translate it into Chinese. Modify this prompt if you need a different language or summary style. Send Message and Send Error (Slack Notifications): Select your configured Slack credentials in both Slack nodes. Set the target Channel ID for notifications. Workflow Overview Start: Cron Trigger initiates the workflow on schedule. Load Config: GitHub Config provides the list of repositories to monitor. Loop: The Loop node iterates through each repository. Fetch & Check: The RSS node attempts to fetch the repository's releases feed. If No Error checks for success: Failure: Send Error posts an error to Slack, skips this repository. Success: Continues. Check for New Release: The Redis node retrieves the last recorded Release ID for this repository. The If New node compares the latest Release ID with the recorded ID: Different IDs (New Release): Proceeds to processing. Same ID (Already Processed): Skips this repository. Process & Notify (Only for New Releases): Information Extractor (with Gemini) extracts, summarizes, and translates the content. The Code node formats the information into Slack Block Kit. Send Message sends the formatted message to Slack. The Redis2 node stores the current Release ID in Redis. End: The workflow finishes after processing all repositories. Conclusion Once configured, this template automates GitHub release monitoring, uses AI to distill key information, and delivers it efficiently to your Slack workspace.
by Chandan Singh
This workflow creates a daily, automated backup of all workflows in a self-hosted n8n instance and stores them in Google Drive. Instead of exporting every workflow on every run, it uses content hashing to detect meaningful changes and only updates backups when a workflow has actually been modified. To keep Google Drive clean and predictable, the workflow intentionally deletes the existing backup file before uploading the updated version. This avoids duplicate files and ensures there is always one authoritative backup per workflow. A Data Table is used as an index to track workflow IDs, hash values, and timestamps. This allows the workflow to quickly determine whether a workflow already exists, whether its content has changed, or whether it should be skipped entirely. How it works Runs daily using a Cron Trigger. Fetches all workflows from the n8n API. Processes workflows one-by-one for reliability. Generates a SHA-256 hash for each workflow. Compares hashes against a stored Data Table. Deletes existing Google Drive backups when changes are detected. Uploads updated workflows and skips unchanged ones. Store new or updated workflows details in Data Table. Filters workflows based on the configured backup scope (all | active | tagged ). Backs up all workflows, only active workflows, or only workflows matching a specific tag. Applies the scope filter before hashing and comparison, ensuring only relevant workflows are processed. Setup steps Set the Cron schedule** Open the Cron Trigger node and choose the time you want the backup to run (for example, once daily during off-peak hours). Create a Data Table** Create a new n8n Data Table with the title defined in dataTableTitle. This table stores workflowId, workflowName, hashCode, and DriveFiveId. Configure the Set node** In the Set Backup Configuration node, provide the following values: { "n8nHost": "https://your-n8n-domain", "apiKey": "your-n8n-api-key", "backupFolder": "/n8n/workflow-backups", "hashAlgorithm": "sha256", "dataTableTitle": "n8n_workflow_backup_index", "backupScope" : "", "requiredTag" : "" } In the Set Backup Configuration node, choose how workflows should be selected for backup: all โ backs up every workflow (default) active โ backs up only enabled workflows tagged โ backs up only workflows containing a specific tag If using the tagged option, provide the required tag name to match. { "backupScope": "tagged", "requiredTag": "production" } Connect Google Drive credentials** Authorize your Google Drive account and ensure the backup folder exists. Activate the workflow** Once enabled, backups run automatically with no further action required.
by Milo Bravo
Conference Synthetic Personas: Slack โ Gemini โ CRM Insights Who is this for? Event strategists, conference organizers, and marketing teams planning content/networking who want to interview realistic audience personas based on their participantants behavioural data before spending budget. What problem is this workflow solving? Event deisgn and management is guesswork: Content misses audience needs Networking formats flop No pre-validation of concepts This workflow creates interviewable synthetic personas from your real CRM data, test ideas pre-event. What this workflow does Trigger**: Slack /doppelganger "EventX" 5 hubspot CRM Pull**: HubSpot/Salesforce/Sheets attendee data Gemini Analysis**: Generates 5+ realistic personas per event Slack Cards**: Rich persona profiles + 14 auto-interview questions Thread Replies**: Team follow-ups in persona context Sheets Log**: Personas + conversations archived Setup (8 minutes) Slack**: OAuth2 + /doppelganger slash command Gemini**: Google API key (Flash/Pro) CRM**: HubSpot API / Salesforce OAuth / Google Sheets Sheets ID**: Personas + Conversations tabs Fully configurable, no code changes needed. How to customize to your needs CRMs**: HubSpot โ Salesforce โ Sheets CSV Personas**: Speakers/Exhibitors/Attendees Questions**: Edit 14 interview prompts (5 categories) Scale**: Multi-event batching Output**: Add Teams/Notion sync ROI: 40% better content relevance** (pre-validated) 25% lower no-show rates** (targeted comms) 2h โ 2min** persona generation Need help customizing?: Contact me for consulting and support: LinkedIn / Message Keywords: event personas, synthetic audience, conference planning, attendee segmentation, event strategy automation
by TakatoYamada
Log meal nutrition from LINE food photos to Google Sheets using Gemini AI Who is this for Health-conscious individuals, people on a diet, and anyone who wants to track daily nutrition without manual data entry. Designed especially for LINE users (Japan, Taiwan, Thailand, etc.) who want an effortless way to monitor calories and macronutrients from meal photos. What this workflow does Send a meal photo to a LINE bot and Gemini 1.5 Flash automatically identifies the food and estimates calories, protein, fat, and carbohydrates. Each meal is logged to Google Sheets with a timestamp and user ID. The workflow calculates the running daily calorie total and warns when the personal limit is exceeded. Every Monday morning, a weekly nutrition summary with AI-generated advice is pushed via LINE automatically. How to set up Create a LINE Messaging API channel and copy the Channel Access Token Copy your LINE User ID for weekly Push messages Set up a Google Sheet with columns: Timestamp, LINE_UID, Food_Name, Meal_Type, Calories, Protein, Fat, Carbs, Confidence Get a Google Gemini API key (free tier available) Configure CALORIE_LIMIT (default 2000) and LINE_USER_ID in the Set Config Fields node Register the n8n Webhook URL in LINE Developer Console Requirements LINE Messaging API account (free tier) Google Sheets (any Google account) Google Gemini API key (free tier available) How to customize Adjust CALORIE_LIMIT in the Set Config Fields node for different dietary goals. Add a Slack notification node to share weekly reports with a fitness accountability group. Modify the Gemini prompt to track additional nutrients like fiber or sodium. Node List | # | Node Name | Type | Role | |---|-----------|------|------| | 1 | Set Config Fields | Set | Centralizes LINE token, Sheet ID, calorie limit, and user ID | | 2 | When LINE Event Received | Webhook | Receives LINE Webhook (POST) | | 3 | If Image Message | If | Branches on image vs text message | | 4 | If Report Command | If | Checks whether text is a report command | | 5 | Send Help Reply via LINE | HTTP Request | Sends usage guide as reply | | 6 | Fetch LINE Image Data | HTTP Request | Downloads image from LINE Content API | | 7 | Encode Image to Base64 | Code | Converts image binary to Base64 string | | 8 | Gemini Food Analysis Config | Gemini Chat Model | Gemini 1.5 Flash model for food analysis | | 9 | Process Food Analysis | LLM Chain | Estimates nutrition info from meal image as JSON | | 10 | Extract Nutrition Data | Code | Extracts and parses JSON from Gemini response | | 11 | Append Meal to Sheets | Google Sheets | Appends nutrition data to spreadsheet | | 12 | Read Today's Total from Sheets | Google Sheets | Retrieves all records for today | | 13 | Compute Daily Calorie Total | Code | Calculates total calories for the day | | 14 | If Over Calorie Limit | If | Checks whether daily limit is exceeded | | 15 | Send Calorie Warning via LINE | HTTP Request | Sends calorie warning reply via LINE | | 16 | Send Nutrition Info via LINE | HTTP Request | Sends nutrition info and daily total via LINE | | 17 | Weekly 9AM Schedule | Schedule Trigger | Triggers weekly report every Monday at 9 AM JST | | 18 | Read Weekly Data from Sheets | Google Sheets | Retrieves records from the past 7 days | | 19 | Summarize Weekly Stats | Code | Aggregates weekly totals, averages, and peak day | | 20 | Gemini Weekly Report Config | Gemini Chat Model | Gemini 1.5 Flash model for weekly comment | | 21 | Create Weekly Comment with LLM | LLM Chain | Generates personalized nutrition advice | | 22 | Deliver Weekly Report via LINE | HTTP Request | Sends weekly report via LINE Push | | 23 | Send Webhook Response OK | Respond to Webhook | Returns HTTP 200 to Webhook | Total: 23 nodes (+ 9 Sticky Notes) Sticky Note Compliance | # | Sticky Note Title | Color | Role | |---|-------------------|-------|------| | 1 | Main Sticky Note (Overview) | Yellow | Workflow overview, How it works, Setup steps, Customization | | 2 | Set configuration fields | White | Covers configuration setup | | 3 | Receive and verify message type | White | Covers LINE webhook and message type checks | | 4 | Download and convert image | White | Covers image fetch and Base64 encoding | | 5 | Analyze image and parse data | White | Covers Gemini analysis and data parsing | | 6 | Log and calculate nutrition | White | Covers meal logging and daily total calculation | | 7 | Notify via LINE based on calorie | White | Covers calorie warning and nutrition info LINE replies | | 8 | Weekly report scheduling and stats | White | Covers schedule trigger and weekly aggregation | | 9 | Respond to LINE webhook | White | Covers webhook response | All sticky notes use H2 headings (## ) and follow n8n public guidelines. Setup Guide 1. Create a LINE Messaging API channel Log in to LINE Developers Create a new provider and a Messaging API channel Issue a long-lived Channel Access Token and copy it Copy your User ID from the channel basic settings 2. Prepare Google Sheets Create a new spreadsheet Add the following headers in row 1: Timestamp | LINE_UID | Food_Name | Meal_Type | Calories | Protein | Fat | Carbs | Confidence Copy the spreadsheet ID from the URL (between /d/ and /edit) 3. Get a Google Gemini API key Go to Google AI Studio Create an API key (free tier available) Register it as a Google PaLM API credential in n8n 4. Configure the n8n workflow Import the workflow JSON into n8n Open Set Config Fields and enter: LINE_CHANNEL_ACCESS_TOKEN GOOGLE_SHEET_ID CALORIE_LIMIT (default: 2000) LINE_USER_ID Set up Google Sheets OAuth2 and Google PaLM API credentials 5. Register the Webhook URL Activate the workflow in n8n Copy the Webhook URL Paste it into LINE Developers Console โ Messaging API settings Enable Webhook and verify the connection 6. Test Send a meal photo to your LINE bot โ confirm nutrition info is returned Send "report" as text โ confirm weekly summary is returned Send other text โ confirm help message is returned Tags ai gemini line google-sheets health nutrition-tracking image-recognition automation
by Kevin Yu
Quick overview This workflow runs weekly to scan a YouTube playlist, flagging deleted/unavailable/private videos and duplicate entries, optionally removing them from the playlist, and posting a cleanup report to a Slack channel. How it works Runs every week on a schedule trigger. Loads the target YouTube playlist ID, the dry-run toggle, and the Slack channel ID. Retrieves all items from the specified YouTube playlist and looks up each referenced videoโs status. Classifies each playlist item as active or dead (deleted/unavailable/private) and flags duplicates by video ID while keeping the first occurrence. If dry run is disabled, deletes the flagged playlist items from YouTube in batches. Builds a summary of what was found/removed and posts the report to the configured Slack channel. Setup Connect a YouTube (Google) OAuth2 credential with permissions enabled to read playlists and delete playlist items as needed. Connect a Slack credential with permission enabled to post messages to your chosen channel. Set your playlistId, slackChannelId, and (optionally) dryRun in the workflow options before turning on the workflow. Requirements A Google account with YouTube access and an OAuth2 credential authorized to read the playlist and delete playlist items. A Slack workspace and a Slack credential with permission to post to your target channel. A YouTube playlist you own or manage, plus its playlistId. Customization Change how often it runs by editing the Schedule Trigger, for example daily or monthly instead of weekly. Adjust the flagging rules in the Code node, for example to treat unlisted videos as dead too, or to keep the last copy of a duplicate instead of the first. Swap Slack for another notification channel such as email, Discord, or Teams. Leave dryRun set to true permanently to run it as a read-only monitor that reports but never deletes. Additional info Deleting a playlist item is permanent, so the workflow ships with dryRun set to true and only reports what it would remove until you turn that off in the Set Playlist and Options node. Reads and deletes both count against your daily YouTube Data API quota, roughly one video lookup per playlist item per run, so a very large playlist will consume more of your quota. Unlisted videos are treated as valid and kept; only deleted, unavailable, and private videos are flagged as dead. Deletion is keyed on the playlist item ID rather than the video ID, so only the playlist entry is removed and the underlying video is never affected. The video lookup uses an error output, so a single missing video never stops the run.
by Nirav Gajera
๐ฐ AI Expense Tracker โ Chat to Track Spending Instantly Track your expenses by chatting naturally. No forms, no apps โ just type and it's saved. ๐ Description This workflow turns a simple chat interface into a powerful personal expense tracker. Just describe your spending in plain language โ the AI understands it, categorizes it, and saves it to Google Sheets automatically. Example inputs the AI understands: spent 500 on lunch uber 150 paid 1200 electricity bill lunch in feb 25 cost 500 โ handles past dates too netflix 499 $50 hotel booking โ detects currency No rigid formats. No dropdowns. Just type naturally. โจ Key Features Natural language input** โ type expenses exactly how you'd say them AI-powered parsing** โ Claude Haiku extracts amount, category, date, currency automatically 9 auto-detected categories** โ Food, Transport, Shopping, Bills, Entertainment, Health, Business, Education, Other Multi-currency support** โ INR, USD, EUR, GBP Past date handling** โ "lunch in feb 25 cost 500" saves to February 2025, not today Running monthly total** โ each row stores the cumulative month total Monthly summary** โ type SUMMARY or summary february for any month Works on empty sheet** โ no errors on first use Invalid input handling** โ friendly error if no amount detected ๐ฌ Commands | What you type | What happens | | :--- | :--- | | spent 500 on lunch | โ Saved: ๐ Food & Dining โ Lunch ยท โน500 | | uber 150 | โ Saved: ๐ Transport โ Uber ยท โน150 | | 1200 electricity bill | โ Saved: ๐ก Bills & Utilities ยท โน1200 | | lunch in feb 25 cost 500 | โ Saved to February 2025 correctly | | SUMMARY | ๐ Current month report with breakdown | | summary february | ๐ February report (current year) | | summary february 2025 | ๐ February 2025 specific report | | HELP | ๐ Shows all commands and categories | ๐ Setup Requirements 1. Google Sheet Create a new Google Sheet with these exact headers in Row 1: | Col | Header | | :---: | :--- | | A | Date | | B | Amount | | C | Category | | D | Description | | E | Currency | | F | Month | | G | Raw Message | | H | Total | 2. Credentials needed | Credential | Used for | Free? | | :--- | :--- | :--- | | Anthropic API | Claude Haiku AI parsing | Paid (very low cost) | | Google Sheets OAuth2 | Read & write expenses | Free | 3. After importing Connect your Anthropic credential to the Claude Haiku node Connect your Google Sheets credential to all sheet nodes Update the Sheet ID in all Google Sheets nodes to point to your sheet Open the workflow chat and type your first expense ๐ How It Works You type: "spent 500 on car wash" โ Detect Intent โ classified as: expense โ Read All Expenses โ loads sheet (works even if empty) โ Prepare Data โ calculates existing month total โ AI Parse Expense (Claude Haiku) โ amount: 500 โ category: Transport โ description: Car wash โ date: today โ currency: INR โ Parse & Total โ derives Month from parsed date โ computes new running total โ Is Valid? (amount > 0 and is_expense = true) โ YES โ Save to Sheet โ Reply with confirmation โ NO โ Ask user to include an amount Summary flow: You type: "summary february" โ Detect Intent โ classified as: summary โ Read for Summary โ loads all rows โ Build Summary โ detects "february" in message โ filters rows by February (current year) โ calculates total, breakdown by category, daily avg โ Returns formatted report ๐ Sample Summary Output ๐ March 2026 Report ๐ณ Total: โน8,450 ๐ Entries: 12 ๐ Daily avg: โน470 ๐ Top: ๐ Food & Dining Breakdown: ๐ Food & Dining: โน3,200 (38%) ๐ Transport: โน1,800 (21%) ๐ก Bills & Utilities: โน1,200 (14%) ๐๏ธ Shopping: โน1,050 (12%) ๐ฌ Entertainment: โน800 (9%) ๐ฅ Health: โน400 (5%) ๐ Auto-Detected Categories | Emoji | Category | Example keywords | | :---: | :--- | :--- | | ๐ | Food & Dining | lunch, dinner, restaurant, zomato, swiggy, grocery | | ๐ | Transport | uber, ola, petrol, metro, flight, car wash, parking | | ๐๏ธ | Shopping | amazon, flipkart, clothes, electronics, shoes | | ๐ก | Bills & Utilities | electricity, wifi, rent, recharge, emi, gas | | ๐ฌ | Entertainment | netflix, movie, spotify, concert, gaming | | ๐ฅ | Health | medicine, doctor, gym, pharmacy, hospital | | ๐ผ | Business | office, software, domain, hosting, tools | | ๐ | Education | course, books, tuition, udemy, fees | | ๐ฐ | Other | anything that doesn't match above | โ๏ธ Workflow Nodes | Node | Type | Purpose | | :--- | :--- | :--- | | When chat message received | Chat Trigger | Entry point | | Detect Intent | Code | Classify: expense / summary / help | | Intent Switch | Switch | Route to correct path | | Read All Expenses | Google Sheets | Load rows (alwaysOutputData: true) | | Prepare Data | Code | Compute month total, handle empty sheet | | AI Parse Expense | LLM Chain | Extract fields using Claude Haiku | | Claude Haiku | Anthropic Model | AI model for parsing | | Parse & Total | Code | Validate, derive month, compute total | | Is Valid Expense? | IF | Check amount > 0 | | Save Expense to Sheet | Google Sheets | Append new row | | Reply Saved | Code | Format confirmation message | | Reply Invalid | Code | Request amount from user | | Read for Summary | Google Sheets | Load all rows for report | | Build Summary | Code | Filter by month, compute breakdown | | Send Help | Code | Return command reference | ๐ง Customisation Ideas Add a budget alert** โ warn when monthly total exceeds a set limit Telegram integration** โ replace chat trigger with Telegram bot WhatsApp integration** โ use Twilio WhatsApp as the input channel Weekly digest** โ add a Schedule Trigger for automatic weekly reports Multi-user** โ store user ID with each row to support team expense tracking Export to PDF** โ generate monthly expense report as a PDF โ ๏ธ Important Notes The Read All Expenses node has Always Output Data enabled โ this is required so the flow works on an empty sheet Month is derived from the parsed date, not today's date โ so past-dated entries file correctly The Total column stores the running month total at the time of each entry โ it does not update retroactively if you delete rows ๐ฆ Requirements Summary n8n (cloud or self-hosted) Anthropic API key (Claude Haiku โ very low token usage) Google account with Sheets access Built with n8n ยท Claude Haiku ยท Google Sheets By Nirav Gajera