by DIGITAL BIZ TECH
SharePoint → Supabase → Google Drive Sync Workflow Overview This workflow is a multi-system document synchronization pipeline built in n8n, designed to automatically sync and back up files between Microsoft SharePoint, Supabase/Postgres, and Google Drive. It runs on a scheduled trigger, compares SharePoint file metadata against your Supabase table, downloads new or updated files, uploads them to Google Drive, and marks records as completed — keeping your databases and storage systems perfectly in sync. Workflow Structure Data Source:** SharePoint REST API for recursive folder and file discovery. Processing Layer:** n8n logic for filtering, comparison, and metadata normalization. Destination Systems:** Supabase/Postgres for metadata, Google Drive for file backup. SharePoint Sync Flow (Frontend Flow) Trigger:** Schedule Trigger Runs at fixed intervals (customizable) to start synchronization. Fetch Files:** Microsoft SharePoint HTTP Request Recursively retrieves folders and files using SharePoint’s REST API: /GetFolderByServerRelativeUrl(...)?$expand=Files,Folders,Folders/Files,Folders/Folders/Folders/Files Filter Files:** filter files A Code node that flattens nested folders and filters unwanted file types: Excludes system or temporary files (~$) Excludes extensions: .db, .msg, .xlsx, .xlsm, .pptx Normalize Metadata:** normalize last modified date Ensures consistent Last_modified_date format for accurate comparison. Fetch Existing Records:** Supabase (Get) Retrieves current entries from n8n_metadata to compare against SharePoint files. Compare Datasets:** Compare Datasets Detects new or modified files based on UniqueId, Last_modified_date, and Exists. Routes only changed entries forward for processing. File Processing Engine (Backend Flow) Loop:** Loop Over Items2 Iterates through each new or updated file detected. Build Metadata:** get metadata and Set metadata Constructs final metadata fields: file_id, file_title, file_url, file_type, foldername, last_modified_date Generates fileUrl using UniqueId and ServerRelativeUrl if missing. Upsert Metadata:** Insert Document Metadata Inserts or updates file records in Supabase/Postgres (n8n_metadata table). Operation: upsert with id as the primary matching key. Download File:** Microsoft SharePoint HTTP Request1 Fetches the binary file directly from SharePoint using its ServerRelativeUrl. Rename File:** rename files Renames each downloaded binary file to its original file_title before upload. Upload File:** Upload file Uploads the renamed file to Google Drive (My Drive → root folder). Mark Complete:** Postgres Updates the Supabase/Postgres record setting Loading Done = true. Optional Cleanup:** Supabase1 Deletes obsolete or invalid metadata entries when required. Integrations Used | Service | Purpose | Credential | |----------|----------|-------------| | Microsoft SharePoint | File retrieval and download | microsoftSharePointOAuth2Api | | Supabase / Postgres | Metadata storage and synchronization | Supabase account 6 ayan | | Google Drive | File backup and redundancy | Google Drive account 6 rn dbt | | n8n Core | Flow control, dataset comparison, batch looping | Native | System Prompt Summary > “You are a SharePoint document synchronization workflow. Fetch all files, compare them to database entries, and only process new or modified files. Download files, rename correctly, upload to Google Drive, and mark as completed in Supabase.” Workflow rule summary: > “Maintain data integrity, prevent duplicates, handle retries gracefully, and continue on errors. Skip excluded file types and ensure reliable backups between all connected systems.” Key Features Scheduled automatic sync across SharePoint, Supabase, and Google Drive Intelligent comparison to detect only new or modified files Idempotent upsert for consistent metadata updates Configurable file exclusion filters Safe rename + upload pipeline for clean backups Error-tolerant and fully automated operation Summary > A reliable, SharePoint-to-Google Drive synchronization workflow built with n8n, integrating Supabase/Postgres for metadata management. It automates file fetching, filtering, downloading, uploading, and marking as completed — ensuring your data stays mirrored across platforms. Perfect for enterprises managing document automation, backup systems, or cross-cloud data synchronization. Need Help or More Workflows? Want to customize this workflow for your organization? Our team at Digital Biz Tech can extend it for enterprise-scale document automation, RAGs and social media automation. We can help you set it up for free — from connecting credentials to deploying it live. Contact: shilpa.raju@digitalbiz.tech Website: https://www.digitalbiz.tech LinkedIn: https://www.linkedin.com/company/digital-biz-tech/ You can also DM us on LinkedIn for any help.
by Robert Breen
This n8n workflow template automatically monitors your Google Sheets for new entries and uses AI to generate detailed descriptions for each topic. Perfect for content creators, researchers, project managers, or anyone who needs automatic content generation based on simple topic inputs. What This Workflow Does This automated workflow: Monitors a Google Sheet for new rows added to the "data" tab Takes the topic from each new row Uses OpenAI GPT to generate a detailed description of that topic Updates the same row with the AI-generated description Logs all activity in a separate "actions" tab for tracking The workflow runs every minute, checking for new entries and processing them automatically. Tools & Services Used N8N** - Workflow automation platform OpenAI API** - AI-powered description generation (GPT-4.1-mini) Google Sheets** - Data input, storage, and activity logging Google Sheets Trigger** - Real-time monitoring for new rows Prerequisites Before implementing this workflow, you'll need: N8N Instance - Self-hosted or cloud version OpenAI API Account - For AI description generation Google Account - For Google Sheets integration Google Sheets API Access - For both reading and writing to sheets Step-by-Step Setup Instructions Step 1: Set Up OpenAI API Access Visit OpenAI's API platform Create an account or log in Navigate to API Keys section Generate a new API key Copy and securely store your API key Step 2: Set Up Your Google Sheets Option 1: Use Our Pre-Made Template (Recommended) Copy our template: AI Description Generator Template Click "File" → "Make a copy" to create your own version Rename it as desired (e.g., "My AI Content Generator") Note your new sheet's URL - you'll need this for the workflow Option 2: Create From Scratch Go to Google Sheets Create a new spreadsheet Set up the main "data" tab: Rename "Sheet1" to "data" Set up column headers in row 1: A1: topic B1: description Create an "actions" tab: Add a new sheet and name it "actions" Set up column headers: A1: Update Copy your sheet's URL Step 3: Configure Google API Access Enable Google Sheets API Go to Google Cloud Console Create a new project or select existing one Enable "Google Sheets API" Enable "Google Drive API" Create Service Account (for N8N) In Google Cloud Console, go to "IAM & Admin" → "Service Accounts" Create a new service account Download the JSON credentials file Share your Google Sheet with the service account email address Step 4: 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 Configure OpenAI Credentials Click on the "OpenAI Chat Model" node Set up credentials using your OpenAI API key Test the connection to ensure it works Configure Google Sheets Integration For the Trigger Node: Click on "Row added - Google Sheet" node Set up Google Sheets Trigger OAuth2 credentials Select your spreadsheet from the dropdown Choose the "data" sheet Set polling to "Every Minute" (already configured) For the Update Node: Click on "Update row in sheet" node Use the same Google Sheets credentials Select your spreadsheet and "data" sheet Verify column mapping (topic → topic, description → AI output) For the Actions Log Node: Click on "Append row in sheet" node Use the same Google Sheets credentials Select your spreadsheet and "actions" sheet Step 5: Customize the AI Description Generator The workflow uses a simple prompt that can be customized: Click on the "Description Writer" node Modify the system message to change the AI behavior: write a description of the topic. output like this. { "description": "description" } Need Help with Implementation? 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 Muhammad Asadullah
Short Description (for listing) Import products from Google Sheets to Shopify with automatic handling of single products and multi-variant products (sizes, colors, etc.). Includes SKU management, inventory tracking, and image uploads via GraphQL API. Category E-commerce Productivity Data Import/Export Full Description Overview This workflow automates the process of importing products from a Google Sheet into your Shopify store. It intelligently detects and handles both simple products and products with multiple variants (like different sizes or colors), creating them with proper SKU management, pricing, inventory levels, and images. Key Features ✅ Dual Product Support: Handles single products and multi-variant products automatically ✅ Smart SKU Parsing: Automatically groups variants by parsing SKU format (e.g., 12345-SM, 12345-MD) ✅ Inventory Management: Sets stock levels for each variant at your default location ✅ Image Upload: Attaches product images from URLs ✅ GraphQL API: Uses Shopify's modern GraphQL API for reliable product creation ✅ Batch Processing: Process multiple products in one workflow run Use Cases Initial store setup with bulk product import Regular inventory updates from spreadsheet Migrating products from another platform Managing seasonal product catalogs Synchronizing products with external systems Requirements Shopify store with Admin API access Google Sheets API credentials n8n version 1.0+ Basic understanding of GraphQL (helpful but not required) What You'll Need to Configure Shopify Admin API token Your Shopify store URL (in 'set store url' node) Google Sheets connection (Optional) Vendor name and product type defaults Input Format Your Google Sheet should contain columns: Product Name SKU (format: BASESKU-VARIANT for variants) Size (or other variant option) Price On hand Inventory Product Image (URL) Products with the same name are automatically grouped as variants. How It Works Reads product data from your Google Sheet Groups products by name and detects if they have variants Switches to appropriate creation path (single or variant) Creates product in Shopify with options and variants Updates each variant with SKU and pricing Sets inventory levels at your location Uploads product images Technical Details Uses Shopify GraphQL Admin API (2025-04) Handles up to 100 variants per product Processes variants individually for accurate data mapping Includes error handling for missing data Supports one inventory location per run Common Modifications Change vendor name and product type Add more variant options (color, material, etc.) Customize product status (draft vs active) Modify inventory location selection Add product descriptions Perfect For Shopify store owners managing large catalogs E-commerce managers doing bulk imports Agencies setting up client stores Developers building automated product workflows Difficulty: Intermediate Estimated Setup Time: 15-30 minutes Nodes Used: 16 External Services: Shopify, Google Sheets
by Davide
🤖🎵 This workflow automates the creation, storage, and cataloging of AI-generated music using the Eleven Music API, Google Sheets, and Google Drive. Key Advantages ✅ Fully Automated Music Generation Pipeline Once started, the workflow automatically: Reads track parameters Generates music via API Uploads the file Updates your spreadsheet No manual steps needed after initialization. ✅ Centralized Track Management A single Google Sheet acts as your project control center, letting you organize: Prompts Durations Generated URLs This avoids losing track of files and creates a ready-to-share catalog. ✅ Seamless Integration with Google Services The workflow: Reads instructions from Google Sheets Saves the MP3 to Google Drive Updates the same Sheet with the final link This ensures everything stays synchronized and easy to access. ✅ Scalable and Reliable Processing The loop-with-delay mechanism: Processes tracks sequentially Prevents API overload Ensures stable execution This is especially helpful when generating multiple long tracks. ✅ Easy Customization Because the prompts and durations come from Google Sheets: You can edit prompts at any time You can add more tracks without modifying the workflow You can clone the Sheet for different projects ✅ Ideal for Creators and Businesses This workflow is perfect for: Content creators generating background music Agencies designing custom soundtracks Businesses needing AI-generated audio assets Automated production pipelines How It Works The process operates as follows: The workflow starts manually via the "Execute workflow" trigger It retrieves a list of music track requests from a Google Sheets spreadsheet containing track titles, text prompts, and duration specifications The system processes each track request individually through a batch loop For each track, it sends the text prompt and duration to ElevenLabs Music API to generate studio-quality music The generated MP3 file (in 44100 Hz, 128 kbps format) is automatically uploaded to a designated Google Drive folder Once uploaded, the workflow updates the original Google Sheets with the direct URL to the generated music file A 1-minute wait period between each track generation prevents API rate limiting The process continues until all track requests in the spreadsheet have been processed Set Up Steps Prerequisites: ElevenLabs paid account with Music API access enabled Google Sheets spreadsheet with specific columns: TITLE, PROMPT, DURATION (ms), URL Google Drive folder for storing generated music files Configuration Steps: ElevenLabs API Setup: Enable Music Generation access in your ElevenLabs account Generate an API key from the ElevenLabs developer dashboard Configure HTTP Header authentication in n8n with name "xi-api-key" and your API value Google Sheets Preparation: Create or clone the music tracking spreadsheet with required columns Fill in track titles, detailed text prompts, and durations in milliseconds (10,000-300,000 ms) Configure Google Sheets OAuth credentials in n8n Update the document ID in the Google Sheets nodes Google Drive Configuration: Create a dedicated folder for music uploads Set up Google Drive OAuth credentials in n8n Update the folder ID in the upload node Workflow Activation: Ensure all API credentials are properly configured Test with a single track entry in the spreadsheet Verify music generation, upload, and spreadsheet update work correctly Execute the workflow to process all pending track requests The workflow automatically names files with timestamp prefixes (song_yyyyMMdd) and handles the complete lifecycle from prompt to downloadable music file. 👉 Subscribe to my new YouTube channel. Here I’ll share videos and Shorts with practical tutorials and FREE templates for n8n. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Margo Rey
Generate and send MadKudu Account Brief into Outreach This workflow generates an account brief tailored to your company using MadKudu MCP and OpenAI and syncs it to a custom field in Outreach. Its for Sales who want to give reps rich account context right inside Outreach, and draft Outreach email with Outreach Revenue Agent based on MadKudu account brief. ✨ Who it's for RevOps or GTM teams using MadKudu + Salesforce + Outreach Sales teams needing dynamic, AI-generated context for target accounts 🔧 How it works 1. Select Accounts: Use a Salesforce node to define which accounts to brief. Filter logic can be updated to match ICP or scoring rules (e.g., MadKudu Fit + LTB). 2. Generate Brief with MadKudu MCP & AI MadKudu MCP provides the account brief instructions, research online for company recent news and provides structured account context from your integrations connected to MadKudu + external signals (firmographics, past opportunities, active contacts, job openings...) The AI agent (OpenAI model) turns this into a readable account brief. 3. Send to Outreach Match account in Outreach via domain. Update a custom field (e.g., custom49) with the brief text. 📋 How to set up Connect your Salesforce account Used to pull accounts that need a brief. Set your OpenAI credentials Required for the AI Agent to generate the brief. Create a n8n Variable to store your MadKudu API key named madkudu_api_key used for the MadKudu MCP tool The AI Agent pulls the account brief instructions and all the context necessary to generate the briefs. Create an Oauth2 API credential to connect your Outreach account Used to sync to brief to Outreach. Customize the Salesforce filter In the “Get accounts” node, define which accounts should get a brief (e.g. Fit > 90). Map your Outreach custom field Update the JSON Body request with your actual custom field ID (e.g. custom49). 🔑 How to connect Outreach In n8n, add a new Oauth2 API credential and copy the callback URL Now go to Outreach developer portal Click “Add” to create a new app In Feature selection add Outreach API (OAuth) In API Access (Oauth) set the redirect URI to the n8n callback Select the following scopes accounts.read, accounts.write Save in Outreach Now enter the Outreach Application ID into n8n Client Id and the Outreach Application Secret into n8n Client secret Save in n8n and connect via Oauth your Outreach Account ✅ Requirements MadKudu account with access to API Key Salesforce Oauth Outreach Admin permissions to create an app OpenAI API Key 🛠 How to customize the workflow Change the targeting logic** Edit the Salesforce filter to control which accounts are eligible. Rewrite the prompt** Tweak the prompt in the AI Agent node to adjust format, tone, or insights included in the brief. Change the Outreach account field** Update the Outreach field where the brief is sync-ed if you're using a different custom field (e.g. custom48, custom32, etc). Use a different trigger** Swap the manual trigger for a Schedule or Webhook to automate the flow end-to-end.
by Mantaka Mahir
Automate Google Classroom: Topics, Assignments & Student Tracking Automate Google Classroom via the Google Classroom API to efficiently manage courses, topics, teachers, students, announcements, and coursework. Use Cases Educational Institution Management Sync rosters, post weekly announcements, and generate submission reports automatically. Remote Learning Coordination Batch-create assignments, track engagement, and auto-notify teachers on new submissions. Training Program Automation Automate training modules, manage enrollments, and generate completion/compliance reports. Prerequisites n8n (cloud or self-hosted) Google Cloud Console access for OAuth setup Google Classroom API enabled Google Gemini API key** (free) for the agent brain — or swap in any other LLM if preferred Setup Instructions Step 1: Google Cloud Project Create a new project in Google Cloud Console. Enable Google Classroom API. Create OAuth 2.0 Client ID credentials. Add your n8n OAuth callback URL as a redirect URI. Note down the Client ID and Client Secret. Step 2: OAuth Setup in n8n In n8n, open HTTP Request Node → Authentication → Predefined Credential Type. Select Google OAuth2 API. Enter your Client ID and Client Secret. Click Connect my account to complete authorization. Test the connection. Step 3: Import & Configure Workflow Import this workflow template into n8n. Link all Google Classroom nodes to your OAuth credential. Configure the webhook if using external triggers. Test each agent for API connectivity. Step 4: Customization You can customize each agent’s prompt to your liking for optimal results, or copy and modify node code to expand functionality. All operations use HTTP Request nodes, so you can integrate more tools via the Google Classroom API documentation. This workflow provides a strong starting point for deeper automation and integration. Features Course Topics List, create, update, or delete topics within a course. Teacher & Student Management List, retrieve, and manage teachers and students programmatically. Course Posts List posts, retrieve details and attachments, and access submission data. Announcements List, create, update, or delete announcements across courses. Courses List all courses, get detailed information, and view grading periods. Coursework List, retrieve, or analyze coursework within any course. Notes Once OAuth and the LLM connection are configured, this workflow automates all Google Classroom operations. Its modular structure lets you activate only what you need—saving API quota and improving performance.
by SpaGreen Creative
Bulk WhatsApp Campaign Automation with Rapiwa API (Unofficial Integration) Who’s it for This n8n workflow lets you send bulk WhatsApp messages using your own number through Rapiwa API, avoiding the high cost and limitations of the official WhatsApp API. It integrates seamlessly with Google Sheets, where you can manage your contacts and messages with ease. Ideal for easy-to-maintain bulk messaging solution using their own personal or business WhatsApp number. This solution is perfect for small businesses, marketers, or teams looking for a cost-effective way to manage WhatsApp communication at scale. How it Works / What It Does Reads data from a Google Sheet where the Status column is marked as "pending". Cleans each phone number (removes special characters, spaces, etc.). Verifies if the number is a valid WhatsApp user using the Rapiwa API. If valid: Sends the message via Rapiwa. Updates Status = sent and Verification = verified. If invalid: Skips message sending. Updates Status = not sent and Verification = unverified. Waits for a few seconds (rate-limiting). Loops through the next item. The entire process is triggered automatically every 5 minutes. How to Set Up Duplicate the Sample Sheet: Use this format. Fill Contacts: Add columns like WhatsApp No, Name, Message, Image URL, and set Status = pending. Connect Google Sheets: Authenticate and link Google Sheets node inside n8n. Subscribe to Rapiwa: Go to Rapiwa.com and get your API key. Paste API Key: Use the HTTP Bearer token credential in n8n. Activate the Workflow: Let n8n take care of the automation. Requirements Google Sheets API credentials Configured Google Sheet (template linked above) WhatsApp (Personal or Business) n8n instance with credentials setup How to Customize the Workflow Add delay between messages**: Use the Wait node to introduce pauses (e.g., 5–10 seconds). Change message format**: Modify the HTTP Request node to send media or templates. Personalize content**: Include dynamic fields like Name, Image URL, etc. Error handling**: Add IF or SET nodes to capture failed attempts, retry, or log errors. Workflow Highlights Triggered every 5 minutes** using the Schedule Trigger node. Filters messages** with Status = pending. Cleans numbers* and *verifies WhatsApp existence** before sending. Sends WhatsApp messages** via Rapiwa (Unofficial API). Updates Google Sheets** to mark Status = sent or not sent and Verification = verified/unverified. Wait node** prevents rapid-fire sending that could lead to being flagged by WhatsApp. Setup in n8n 1. Connect Google Sheets Add a Google Sheets node Authenticate using your Google account Select the document and worksheet Use filter: Status = pending 2. Loop Through Rows Use SplitInBatches or a Code node to process rows in small chunks (e.g., 5 rows) Add a Wait node to delay 5 seconds between messages 3. Send Message via HTTP Node How the "Send Message Using Rapiwa" Node Sends Messages This node makes an HTTP POST request to the Rapiwa API endpoint: https://app.rapiwa.com/api/send-message It uses Bearer Token Authentication with your Rapiwa API key. When this node runs, it sends a WhatsApp message to the specified number with the given text and optional image. The Rapiwa API handles message delivery using your own WhatsApp number connected to their service. JSON Body**: { "number": "{{ $json['WhatsApp No'] }}", "message": "{{ $json['Message'] }}" } Sample Google Sheet Structure A Google Sheet formatted like this sample | SL | WhatsApp No | Name | Message | Image URL | Verification | Status | |----|----------------|------------------------|----------------------|---------------------------------------------------------------------------|--------------|---------| | 1 | 8801322827799 | SpaGreen Creative | This is Test Message | https://spagreen.sgp1.cdn.digitaloceanspaces.com/... | verified | sent | | 2 | 8801725402187 | Abdul Mannan Zinnat | This is Test Message | https://spagreen.sgp1.cdn.digitaloceanspaces.com/... | verified | sent | Tips Modify the Limit node to increase/decrease messages per cycle. Adjust the Wait node to control how fast messages are sent (e.g., 5–10s delay). Make sure WhatsApp numbers are properly formatted (e.g., 8801XXXXXXXXX, no +, no spaces). Store your Rapiwa API key securely using n8n credentials. Use publicly accessible image URLs if sending images. Always mark processed messages as "sent" to avoid duplicates. Use the Error workflow in n8n to catch failed sends for retry. Test with a small batch before going full-scale. Schedule the Trigger node for every 5 minutes to keep automation running. Useful Links Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Support & Community Need help setting up or customizing the workflow? Reach out here: WhatsApp: Chat with Support Discord: Join SpaGreen Server Facebook Group: SpaGreen Community Website: SpaGreen Creative Envato: SpaGreen Portfolio
by Robert Breen
This n8n workflow template creates an efficient data analysis system that uses Google Gemini AI to interpret user questions about spreadsheet data and processes them through a specialized sub-workflow for optimized token usage and faster responses. What This Workflow Does Smart Query Parsing**: Uses Gemini AI to understand natural language questions about your data Efficient Processing**: Routes calculations through a dedicated sub-workflow to minimize token consumption Structured Output**: Automatically identifies the column, aggregation type, and grouping levels from user queries Multiple Aggregation Types**: Supports sum, average, count, count distinct, min, and max operations Flexible Grouping**: Can aggregate data by single or multiple dimensions Token Optimization**: Processes large datasets without overwhelming AI context limits Tools Used Google Gemini Chat Model** - Natural language query understanding and response formatting Google Sheets Tool** - Data access and column metadata extraction Execute Workflow** - Sub-workflow processing for data calculations Structured Output Parser** - Converts AI responses to actionable parameters Memory Buffer Window** - Basic conversation context management Switch Node** - Routes to appropriate aggregation method Summarize Nodes** - Performs various data aggregations 📋 MAIN WORKFLOW - Query Parser What This Workflow Does The main workflow receives natural language questions from users and converts them into structured parameters that the sub-workflow can process. It uses Google Gemini AI to understand the intent and extract the necessary information. Prerequisites for Main Workflow Google Cloud Platform account with Gemini API access Google account with access to Google Sheets n8n instance (cloud or self-hosted) Main Workflow Setup Instructions 1. Import the Main Workflow Copy the main workflow JSON provided In your n8n instance, go to Workflows → Import from JSON Paste the JSON and click Import Save with name: "Gemini Data Query Parser" 2. Set Up Google Gemini Connection Go to Google AI Studio Sign in with your Google account Go to Get API Key section Create a new API key or use an existing one Copy the API key Configure in n8n: Click on Google Gemini Chat Model node Click Create New Credential Select Google PaLM API Paste your API key Save the credential 3. Set Up Google Sheets Connection for Main Workflow Go to Google Cloud Console Create a new project or select existing one Enable the Google Sheets API Create OAuth 2.0 Client ID credentials In n8n, click on Get Column Info node Create Google Sheets OAuth2 API credential Complete OAuth flow 4. Configure Your Data Source Option A: Use Sample Data The workflow is pre-configured for: Sample Marketing Data Make a copy to your Google Drive Option B: Use Your Own Sheet Update Get Column Info node with your Sheet ID Ensure you have a "Columns" sheet for metadata Update sheet references as needed 5. Set Up Workflow Trigger Configure how you want to trigger this workflow (webhook, manual, etc.) The workflow will output structured JSON for the sub-workflow ⚙️ SUB-WORKFLOW - Data Processor What This Workflow Does The sub-workflow receives structured parameters from the main workflow and performs the actual data calculations. It handles fetching data, routing to appropriate aggregation methods, and formatting results. Sub-Workflow Setup Instructions 1. Import the Sub-Workflow Create a new workflow in n8n Copy the sub-workflow JSON (embedded in the Execute Workflow node) Import as a separate workflow Save with name: "Data Processing Sub-Workflow" 2. Configure Google Sheets Connection for Sub-Workflow Apply the same Google Sheets OAuth2 credential you created for the main workflow Update the Get Data node with your Sheet ID Ensure it points to your data sheet (e.g., "Data" sheet) 3. Configure Google Gemini for Output Formatting Apply the same Gemini API credential to the Google Gemini Chat Model1 node This handles final result formatting 4. Link Workflows Together In the main workflow, find the Execute Workflow - Summarize Data node Update the workflow reference to point to your sub-workflow Ensure the sub-workflow is set to accept execution from other workflows Sub-Workflow Components When Executed by Another Workflow**: Trigger that receives parameters Get Data**: Fetches all data from Google Sheets Type of Aggregation**: Switch node that routes based on aggregation type Multiple Summarize Nodes**: Handle different aggregation types (sum, avg, count, etc.) Bring All Data Together**: Combines results from different aggregation paths Write into Table Output**: Formats final results using Gemini AI Example Usage Once both workflows are set up, you can ask questions like: Overall Metrics: "Show total Spend ($)" "Show total Clicks" "Show average Conversions" Single Dimension: "Show total Spend ($) by Channel" "Show total Clicks by Campaign" Two Dimensions: "Show total Spend ($) by Channel and Campaign" "Show average Clicks by Channel and Campaign" Data Flow Between Workflows Main Workflow: User question → Gemini AI → Structured JSON output Sub-Workflow: Receives JSON → Fetches data → Performs calculations → Returns formatted table Contact Information For support, customization, or questions about this template: Email**: robert@ynteractive.com LinkedIn**: Robert Breen Need help implementing these workflows, want to remove limitations, or require custom modifications? Reach out for professional n8n automation services and AI integration support.
by Robert Breen
This n8n workflow template creates an intelligent data analysis system that converts natural language questions into Google Sheets SQL queries using OpenAI's GPT-4o model. The system generates proper Google Sheets query URLs and executes them via HTTP requests for efficient data retrieval. What This Workflow Does Natural Language to SQL**: Converts user questions into Google Sheets SQL syntax Direct HTTP Queries**: Bypasses API limits by using Google Sheets' built-in query functionality Column Letter Mapping**: Automatically maps column names to their corresponding letters (A, B, C, etc.) Structured Query Generation**: Outputs properly formatted Google Sheets query URLs Real-time Data Access**: Retrieves live data directly from Google Sheets Memory Management**: Maintains conversation context for follow-up questions Tools Used OpenAI Chat Model (GPT-4o)** - SQL query generation and natural language understanding OpenAI Chat Model (GPT-4.1 Mini)** - Result formatting and table output Google Sheets Tool** - Column metadata extraction and schema understanding HTTP Request Node** - Direct data retrieval via Google Sheets query API Structured Output Parser** - Formats AI responses into executable queries Memory Buffer Window** - Conversation history management Chat Trigger** - Webhook-based conversation interface Step-by-Step Setup Instructions 1. Prerequisites Before starting, ensure you have: An n8n instance (cloud or self-hosted) An OpenAI account with API access and billing setup A Google account with access to Google Sheets The target Google Sheet must be publicly accessible or shareable via link 2. Import the Workflow Copy the workflow JSON provided In your n8n instance, go to Workflows → Import from JSON Paste the JSON and click Import Save with a descriptive name like "Google Sheets SQL Query Generator" 3. Set Up OpenAI Connections Get API Key: Go to OpenAI Platform Sign in or create an account Navigate to API Keys section Click Create new secret key Copy the generated API key Important: Add billing information and credits to your OpenAI account Configure Both OpenAI Nodes: OpenAI Chat Model1 (GPT-4o): Click on the node Click Create New Credential Select OpenAI API Paste your API key Save the credential OpenAI Chat Model2 (GPT-4.1 Mini): Apply the same OpenAI API credential This handles result formatting 4. Set Up Google Sheets Connection Create OAuth2 Credentials: Go to Google Cloud Console Create a new project or select existing one Enable the Google Sheets API Go to Credentials → Create Credentials → OAuth 2.0 Client IDs Set application type to Web Application Add authorized redirect URIs (get this from n8n credentials setup) Copy the Client ID and Client Secret Configure in n8n: Click on the Get Column Info2 node Click Create New Credential Select Google Sheets OAuth2 API Enter your Client ID and Client Secret Complete the OAuth flow by clicking Connect my account Authorize the required permissions 5. Prepare Your Google Sheet Option A: Use the Sample Data Sheet Access the pre-configured sheet: Sample Marketing Data Make a copy to your Google Drive Important**: Set sharing to "Anyone with the link can view" Critical: Set sharing to "Anyone with the link can view" for HTTP access Copy the Sheet ID from the URL Update the Get Column Info2 node with your Sheet ID and column metadata sheet 6. Configure Sheet References Get Column Info2 Node: Set Document ID to your Google Sheet ID Set Sheet Name to your columns metadata sheet (e.g., "Columns") This provides the AI with column letter mappings HTTP Request Node: No configuration needed - it uses dynamic URLs from the AI agent Ensure your sheet has proper sharing permissions 7. Update System Prompt (If Using Custom Sheet) If using your own Google Sheet, update the system prompt in the AI Agent3 node: Replace the URL in the system message with your Google Sheet URL Update the GID (sheet ID) to match your data sheet Keep the same query structure format Contact Information Robert Ynteractive For support, customization, or questions about this template: Email**: robert@ynteractive.com LinkedIn**: Robert Breen Need help implementing this workflow, want to add security features, or require custom modifications? Reach out for professional n8n automation services and AI integration support.
by Yatharth Chauhan
Feedback Sentiment Workflow (Typeform → GCP → Notion/Slack/Trello) This template ingests feedback from Typeform, runs Google Cloud Natural Language sentiment analysis, routes based on sentiment, and then creates a Notion database page and posts a Slack notification for positive items, or creates a Trello card for negative items. The flow is designed for quick setup and safe sharing using placeholders for IDs and credentials. How it Works Typeform Trigger Captures each new submission and exposes answers like Name and the long-text Feedback field. Google Cloud Natural Language Analyzes the feedback text and returns a sentiment score in: documentSentiment.score Check Sentiment Score (IF) True branch: Score > 0 → Positive False branch: Score ≤ 0 → Non-positive Add Feedback to Notion (True branch) Creates a new page in a Notion database with mapped properties. Notify Slack (after Notion) Posts the feedback, author, and score to a Slack channel for visibility. Create Trello Card (False branch) Logs non-positive items to a Trello list for follow-up. Required Accounts Google Cloud Natural Language API** enabled (OAuth2 or service credentials). Notion integration** with database access to create pages. Slack app/bot token** with permission to post to the target channel. Typeform account** with a form including: Long Text feedback question Name field Notion Database Columns Name (title):** Person name or responder label Feedback (rich_text):** Full feedback text Sentiment Score (number):** Numeric score from GCP ∈ [-1, 1] Source (select/text):** "Typeform" for provenance Submitted At (date):** Timestamp from the trigger Customization Options Sentiment Threshold:** Adjust IF condition (e.g., ≥ 0.25) for stricter positivity. Slack Routing:** Change channel, add blocks/attachments for richer summaries. Trello Path:** Point to a triage list and include labels for priority. Field Mapping:** Update the expression for feedback question to match Typeform label. Database Schema:** Add tags, product area, or customer tier for reporting. Setup Steps Connect credentials: Typeform, GCP Natural Language, Notion, Slack, Trello. Replace placeholders in workflow JSON: Form ID Database ID Slack Channel Trello List ID Map fields: Set Feedback + Name expressions from Typeform Trigger output into Notion and Slack. Adjust IF threshold for your definition of "positive". Test with a sample response and confirm: Notion page creation Slack notification Trello card logging
by Sayone Technologies
⭐ Google Review Sentiment Analysis & Slack Notification Workflow This workflow automates the process of collecting Google Business Profile reviews 🏪, analyzing customer sentiment with Google Gemini 🤖✨, and sending structured reports to Slack 💬. 🔑 Key Advantages 📥 Fetches Google Business Profile reviews for a given business and time period 🧠 Runs sentiment analysis using Gemini AI 📊 Consolidates comments, ratings, and trends into a JSON-based summary 🧩 Restructures results into Slack Block Kit format for easy readability 🚀 Sends automated sentiment reports directly to a Slack channel ⚙️ Set Up Essentials You’ll Need 🔑 Google Business Profile API access with project approval ✅ Enabled Google Business Profile API service 🔐 Gemini API credentials 💬 Slack workspace & channel for receiving reports 🚀 How to Get Started 🔧 Configure your Google Business Profile API and enable access 👤 Set the owner name and 📍 location to fetch reviews ⏳ Define the review time period using the Set Time Period node 🔗 Connect your Slack account and select a channel for notifications 🕒 Deploy and let the workflow run on schedule for automated insights
by Yanagi Chinatsu
Who it's for This workflow is perfect for space enthusiasts, community managers, and content creators who want to automatically share stunning, curated space imagery with their Slack communities. It's ideal for teams that enjoy a daily dose of scientific inspiration and visually engaging content without any manual effort. What it does This workflow automates the creation and posting of a daily space image gallery to Slack. Every day at a scheduled time, it fetches three distinct images from NASA's public APIs: one from the Mars Rover, one from the EPIC satellite observing Earth, and one from the extensive Image Library. For each image, the workflow uses an AI model to generate a unique and poetic caption, transforming a simple image post into a more engaging piece of content. Finally, it combines these three images and their AI-generated captions into a single, beautifully formatted message and posts it to your designated Slack channel. As a bonus, it also saves a copy of the message to a Google Drive folder for archival purposes. How to set up Configure Variables: In the Workflow Configuration node, enter your NASA API Key in the nasaApiKey field and specify your target Slack channel name in the slackChannel field (e.g., general). Connect Credentials: You will need to add your credentials for the OpenAI Chat Model, Post to Slack, and Google Drive nodes. Activate Workflow: Once your credentials and variables are set, simply save and activate the workflow. Requirements A NASA API Key (free to generate). An OpenAI account and API key. A Slack workspace with permissions to post messages. A Google Drive account. How to customize the workflow Adjust the Schedule: Change the trigger time or frequency in the Daily 10:00 - Start Poll node. Change AI Tone: Modify the system message in the AI Agent node to alter the style, tone, or language of the generated captions. Swap Image Sources: Update the URLs in the Fetch nodes to pull images from different NASA APIs or use different search queries. Add More Channels: Duplicate the Post to Slack node and modify it to send notifications to other services like Discord or Telegram.