Daily birthday reminders from Google Contacts to Slack
Ensure you never miss a birthday with this automated workflow designed by WeblineIndia. It retrieves your Google Contacts, identifies birthdays happening today, and sends personalized reminders directly to a designated Slack channel. This daily automation keeps your team informed and makes birthday celebrations effortless. Steps Set Daily Schedule (Cron Node) Configure a Cron node to trigger the workflow daily at a specific time (e.g., 8 AM). This ensures the workflow runs consistently every day to check for birthdays. Retrieve Contacts (Google Contacts - Get Contact Node) Use the Google Contacts (Get Contact) node to fetch your contact list. Ensure your contacts have birthday details stored for accurate filtering. Filter Birthdays (IF Node) Add an IF Node to compare the current date with each contact’s birthday. Only contacts whose birthdays match today’s date will move to the next step. Send Birthday Notifications to Slack (Slack - Send Message Node) Use the Slack node to send a personalized birthday message to your chosen Slack channel (e.g., general or birthdays). Customize the message to include the contact’s name, e.g., "🎉 Today is John Doe's birthday! Let’s celebrate!" Configure the node to target a specific Slack channel for seamless notifications. Activate Workflow Save and activate the workflow. From now on, the workflow will automatically check for birthdays daily and send timely reminders to your Slack team. Outcome This hassle-free automation keeps your team engaged and ensures no birthday goes unnoticed. Celebrate special days of your contacts effortlessly and maintain meaningful connections. About WeblineIndia This workflow showcases our commitment to delivering innovative automation solutions that enhance productivity and foster better relationships. Let us help you build the AI automation tools that make a difference.
Find, scrape & analyze Twitter posts by name with Bright Data & Gemini
This n8n workflow template automates the process of collecting and analyzing Twitter (X) posts for any public profile, then generates a clean, AI-powered summary including key metrics, interests, and activity trends. 🚀 What It Does Accepts a user's full name and date range through a public form. Automatically finds the person’s X (formerly Twitter) profile using a Google search. Uses Bright Data to retrieve full post data from the X.com profile. Extracts key post metrics like views, likes, reposts, hashtags, and mentions. Uses Google Gemini (PaLM) to generate a personalized summary: tone, themes, popularity, and sentiments. Stores both raw data and the AI summary into a connected Google Sheet for further review or team collaboration. 🛠️ Step-by-Step Setup Deploy the public form to collect full name and date range. Build a Google search query using the name to find their X profile. Scrape the search results via Bright Data (Web Unlocker zone). Parse the page content using the HTML node. Use Gemini AI to extract the correct X profile URL. Pull full post data via Bright Data dataset snapshot API. Transform post data into clean structured fields: date_posted, description, hashtags, likes, views, quotedpost.dateposted, quoted_post.description, replies, reposts, quotes, and taggedusers.profilename. Analyze all posts using Google Gemini for interest detection and persona generation. Save results to a Google Sheet: structured post data + AI-written summary. Show success or fallback messages depending on profile detection or scraping status. 🧠 How It Works: Workflow Overview Trigger: When user submits form Search & Match: Google search → HTML parse → Gemini filters matching X profile Data Gathering: Bright Data → Poll for snapshot completion → Fetch post data Transformation: Extract and restructure key fields via Code node AI Summary: Use Gemini to analyze tone, interests, and trends Export: Save results to Google Sheet Fallback: Display custom error message if no X profile found 📨 Final Output A record in your Google Sheet with: Clean post-level data Profile-level engagement summary An AI-written overview including tone, common topics, and post popularity 🔐 Credentials Used Bright Data account (for search & post scraping) Google Gemini (PaLM) or Gemini Flash via - OpenAI/Google Vertex API Google Sheets (OAuth2) account (for result storage) ⚠️Community Node Dependency This workflow uses a custom community node: n8n-nodes-brightdata Install it via UI (Settings → Community Nodes → Install).
Exponential backoff for Google APIs
n8n Workflow: Exponential Backoff for Google APIs Overview This n8n workflow implements an Exponential Backoff mechanism to handle retries when interacting with Google APIs. It ensures that failed API requests are retried with increasing delays, up to a specified maximum retry count. This approach helps mitigate transient errors (e.g., rate limits or temporary network issues) while maintaining workflow efficiency. Key Features: Exponential Backoff Logic: Dynamically increases wait time between retries based on the retry count. Error Handling: Stops the workflow and raises an error after a specified number of retries. Dynamic Waiting: Waits for a calculated duration before each retry. Scalable Design: Modular nodes for easy debugging and customization. --- Workflow Details Nodes in the Workflow: Trigger (When clicking "Test Workflow"): Manually starts the workflow for testing. Loop Over Items: Iterates over multiple input items to process Google API requests row by row. Google API Node (Example: Update Sheet): Sends a request to a Google API endpoint (e.g., updating a row in Google Sheets). On success: Moves to the next item in the loop. On error: Passes the error to the Exponential Backoff node. Exponential Backoff: Calculates the delay for the next retry based on the retry count. Logic: javascript const retryCount = $json["retryCount"] || 0; const maxRetries = 5; const initialDelay = 1; // in seconds if (retryCount < maxRetries) { const currentDelayInSeconds = initialDelay * Math.pow(2, retryCount); return { json: { retryCount: retryCount + 1, waitTimeInSeconds: currentDelayInSeconds, status: 'retrying', } }; } else { return { json: { error: 'Max retries exceeded', retryCount: retryCount, status: 'failed' } }; } Wait: Dynamically waits for the waitTimeInSeconds value calculated in the Exponential Backoff node. Configuration: Resume: After Time Interval Wait Amount: {{ $json["waitTimeInSeconds"] }} Unit: Seconds Check Max Retries: Evaluates whether the retry count has exceeded the maximum limit. Routes the workflow: True: Passes to the Stop and Error node. False: Loops back to the Google API node for retry. Stop and Error: Stops the workflow and logs the error when the maximum retry count is reached. --- Parameters Configurable Settings: Max Retries: Defined in the Exponential Backoff node (const maxRetries = 5). Adjust this value based on your requirements. Initial Delay: The starting wait time for retries, defined as 1 second. Google API Configuration: Ensure your Google API node is properly authenticated and configured with the desired endpoint and parameters. --- How to Use Import the Workflow: Copy the workflow JSON and import it into your n8n instance. Configure Google API Node: Set up the Google API node with your credentials and target API endpoint (e.g., Google Sheets, Gmail, etc.). Test the Workflow: Manually trigger the workflow and observe the retry behavior in case of errors. Monitor Logs: Use the console logs in the Exponential Backoff node to debug retry timings and status. --- Example Scenarios Scenario 1: Successful Execution The Google API processes all requests without errors. Workflow completes without triggering the retry logic. Scenario 2: Transient API Errors The Google API returns an error (e.g., 429 Too Many Requests). The workflow retries the request with increasing wait times. Scenario 3: Maximum Retries Exceeded The workflow reaches the maximum retry count (e.g., 5 retries). An error is raised, and the workflow stops. --- Considerations Jitter: This workflow does not implement jitter (randomized delay) since it's not required for low-volume use cases. If needed, jitter can be added to the exponential backoff calculation. Retry Storms: If multiple workflows run simultaneously, ensure your API quotas can handle potential retries. Error Handling Beyond Max Retries: Customize the Stop and Error node to notify stakeholders or log errors in a centralized system. --- Customization Options Adjust the maximum retry limit and delay calculation to suit your use case. Add additional logic to handle specific error codes differently. Extend the workflow to notify stakeholders when an error occurs (e.g., via Slack or email). --- Troubleshooting Retry Not Triggering: Ensure the retryCount variable is passed correctly between nodes. Confirm that the error output from the Google API node flows to the Exponential Backoff node. Incorrect Wait Time: Verify the Wait node is referencing the correct field for waitTimeInSeconds. --- Request for Feedback We are always looking to improve this workflow. If you have suggestions, improvements, or ideas for additional features, please feel free to share them. Your feedback helps us refine and enhance this solution!
Get multiple clients' data from Invoice Ninja
Companion workflow for Invoice Ninja node docs
Automate solar lead qualification & follow-ups with Google Sheets and Gmail
Automate Solar Lead Qualification & Follow-ups with Google Sheets and Gmail Note: This template is designed for both self-hosted and cloud-based n8n instances. The workflow image above shows the complete automation flow. This n8n workflow automates the entire solar lead qualification process - from capturing lead information through a webhook, storing data in Google Sheets, evaluating qualification criteria, and sending personalized email follow-ups based on qualification status. Who is this for? This workflow is designed for: Solar installation companies Solar sales teams Renewable energy consultants Lead generation specialists in the solar industry What problem does this workflow solve? Managing solar leads efficiently can be challenging. This workflow solves several key pain points: Time-consuming manual lead qualification: Automatically evaluates leads against predefined criteria Inconsistent follow-up: Ensures every lead receives a timely, personalized response Document management: Securely stores and shares utility bill documents Lead tracking inefficiency: Centralizes lead data in Google Sheets with qualification status What this workflow does This workflow creates a complete solar lead management system that: Captures lead information through a webhook endpoint Securely stores utility bill uploads in Google Drive Records all lead data in Google Sheets Automatically evaluates leads based on three qualification criteria: Homeownership status Credit score (must be 650+) Absence of trees on roof Updates qualification status in the Google Sheet Sends personalized email follow-ups based on qualification status: Qualified leads receive a congratulatory email with next steps Disqualified leads receive helpful information about why they didn't qualify and suggestions for remediation Setup Prerequisites Before setting up this workflow, you'll need: A self-hosted n8n instance Google account with access to: Google Sheets Google Drive Gmail A form on your website that can make POST requests to a webhook Step 1: Google Sheets Setup Create a new Google Sheet for storing leads Add the following columns in the first row (exact naming is important): Name Address Has Trees on Roof credit score phone Zip code Email Homeowner utility bill Qualification status Disqualification reason Step 2: Google Drive Setup Sign in to your Google Drive account Create a folder named "Solar Lead Utility Bills" (or your preferred name) Right-click on the folder and select "Share" Set permissions to "Anyone with the link can view" Note the folder ID from the URL for configuration (the long string after /folders/ in the URL) Step 3: Configure Google Credentials in n8n In your n8n instance, go to Settings → Credentials Add credentials for: Google Sheets: Create new credentials, follow OAuth2 authentication Google Drive: Create new credentials, follow OAuth2 authentication Gmail: Create new credentials, follow OAuth2 authentication Ensure all credentials have the necessary scopes: Google Sheets: .../auth/spreadsheets Google Drive: .../auth/drive Gmail: .../auth/gmail.send Step 4: Import and Configure the Workflow In n8n, go to Workflows → Import from File Upload the workflow JSON file Update all Google Sheets nodes with your Google Sheet document ID: Open your Google Sheet Copy the ID from the URL (long string between /d/ and /edit) Update the document ID field in the Google Sheets nodes In the "[STEP 2] Upload Utility Bill" node, set the folder destination to your created folder Step 5: Configure the Webhook Activate the "[STEP 1] Receive Form Submission" webhook node Copy the generated webhook URL Configure your website form to send data to this URL Ensure your form submits the following fields with exact naming: firstName lastName address hasTreesOnRoof creditScore phone zipCode email homeOwnership utilityBill (file upload) Step 6: Customize Email Templates Open the "[STEP 10A] Send Acceptance Email" node Customize the email subject and message to match your company's branding Open the "[STEP 10B] Send Rejection Email" node Customize the rejection email to reflect your company's voice Step 7: Activate and Test Click "Save" on the workflow Toggle the "Active" switch to activate the workflow Submit a test lead through your form Check that: The data appears in your Google Sheet The qualification status is updated correctly The appropriate email is sent How to customize this workflow to your needs Adjusting Qualification Criteria You can modify the qualification logic in the "[STEP 7] Check Qualification Criteria" node: Open the node and click the "Edit Code" button Locate the criteria sections (homeowner, credit score, trees on roof) Modify the conditions as needed: javascript // Example: Change credit score threshold if (creditScoreRaw.includes("600 - 649") || creditScoreRaw.includes("650 - 689") || creditScoreRaw.includes("690 - 719") || creditScoreRaw.includes("720+")) { creditQualified = true; } Add additional criteria if needed Customizing Email Templates Personalize your emails further: Open the email nodes Use variable references to include more customer data: Dear {{ $json.Name }}, We noticed your utility bill shows an average of {{ $json.monthlyBill }} per month. With solar, you could save approximately {{ $json.monthlySavings }}. Adding Integration with CRM Systems Extend this workflow by connecting it to your CRM: Add a Hubspot/Salesforce/etc. node after the "[STEP 8] Update Qualification Status" node Configure the node to create or update contacts in your CRM Map the lead data fields to your CRM fields Troubleshooting Common Issues Webhook not receiving data Verify your form is correctly configured to send POST requests Check CORS settings on your website Ensure all required fields are being sent Google Drive upload failing Check Google Drive permissions Verify your OAuth scopes include drive.file Ensure your Drive has sufficient storage space Email not sending Verify Gmail credentials Check if Gmail API is enabled in your Google Cloud Console Look for Send Rate Exceeded errors in execution logs Google Sheets Column Format If you're having issues with data not appearing correctly: Make sure the column names exactly match those in the code Check that the Google Sheet permissions allow editing Verify the sheet name is correctly referenced in the nodes Getting Help If you encounter issues with this template, you can: Check the n8n documentation on webhooks Review Google Sheets integration documentation Post in the n8n community forum This template was created by David Olusola. If you find it helpful, please consider giving it a star in the n8n template library!
Serve inspirational quotes on-demand via webhook using ZenQuotes API
This n8n template lets you instantly serve batches of inspirational quotes via a webhook using the free ZenQuotes API. It’s perfect for developers, content creators, community managers, or educators who want to add dynamic, uplifting content to websites, chatbots, or internal tools—without writing custom backend code. --- 🔧 How it works A Webhook node listens for incoming HTTP requests on your chosen path. Get Random Quote from ZenQuotes sends an HTTP Request to https://zenquotes.io/api/random?count=5 and retrieves five random quotes. Format data uses a Set node to combine each quote (q) and author (a) into a single string: "“quote” – author". Send response returns a JSON array of objects { quote, author } back to the caller. --- 👤 Who is it for? This workflow is ideal for: Developers building motivational Slack or Discord bots. Website owners adding on-demand quote widgets. Educators or trainers sharing daily inspiration via webhooks. Anyone learning webhook handling and API integration in n8n. --- 🗂️ Response Structure Your webhook response will be a JSON array, for example: json [ { "quote": "Life is what happens when you're busy making other plans.", "author": "John Lennon" }, { "quote": "Be yourself; everyone else is already taken.", "author": "Oscar Wilde" } ] --- ⚙️ Setup Instructions Import the workflow JSON into your n8n instance. In the Webhook node, set your desired path (e.g., /inspire). (Optional) Change the count parameter in the HTTP Request node to fetch more or fewer quotes. Activate the workflow. Test by sending an HTTP GET or POST to https://<your-n8n-domain>/webhook/<path>.
Discover viral social media trends with Gemini Flash & Apify scraping
How it works This workflow is a professional-grade market intelligence tool designed to bridge the gap between search interest and social media engagement. It automates the end-to-end process of trend discovery and content strategy. Detection: Polls Google Trends RSS daily for rising regional search queries. Parallel Extraction: Concurrently triggers industrial-grade Apify actors to scrape TikTok, Instagram, and X (Twitter) without the risk of account bans. Data Aggregation: Uses custom JavaScript logic to clean and merge disparate data points, optimizing them for LLM processing. AI Analysis: Google Gemini Flash analyzes the data to identify core topics, sentiment, and trend strength. Granular Delivery: Delivers individual, structured reports for each identified trend directly to Discord via Webhooks. Set up steps API Credentials: Prepare your Apify API Token and Google Gemini API Key. Discord Setup: Create a Webhook in your Discord server and paste the URL into the Discord node. Regional Configuration: Set your target country code (e.g., JP, ID, US) in the "Edit Fields" node at the start of the workflow. Node Settings: Ensure all scraper nodes are set to "Continue on Fail" to maintain workflow resilience. Requirements Apify Account. Google Gemini API Key. Discord Server for report delivery.
Automatic file renaming with timestamp format for Google Drive
Description: Streamline your cloud storage with this powerful Google Drive File Renamer automation built with n8n. The workflow watches a specific Google Drive folder and automatically renames new files using a standardized format based on their creation date and time—ideal for organizing images, backups, and uploads with consistent timestamp-based names. Whether you're managing daily uploads, sorting Instagram-ready content, or organizing client submissions, this timestamp-based file naming system ensures consistent and searchable file structures—without manual intervention. What This Template Does (Step-by-Step) 🔔 Google Drive Trigger – "Watch Folder" Setup Monitors a specific folder (e.g., “Instagram”) Detects new file creations every minute Captures file metadata like ID, createdTime, and extension 🧠 Set Formatted Name Extracts file creation time (e.g., 2025-07-22T14:45:10Z) Converts it into a structured name like IMG202507221445.jpg Keeps original file extension (JPG, PNG, PDF, etc.) ✏️ Rename File (Google Drive) Renames the original file using Google Drive API Applies the new timestamped name Keeps file content, permissions, and location unchanged Required Integrations: Google Drive API (OAuth2 credentials) Best For: 📸 Content creators organizing uploads from mobile 🏷️ Branding teams enforcing uniform naming 🗄️ Admins managing scanned documents or backups 📂 Automated archives for media, reports, or daily snapshots Key Benefits: ✅ Timestamped naming ensures chronological file tracking ✅ Reduces human error and messy file names ✅ Works in real-time (polls every minute) ✅ No-code: Deploy with drag-and-drop setup in n8n ✅ Fully customizable name patterns (e.g., change IMG_ prefix)
Automate content analysis & multi-platform distribution with GPT-4
How It Works ⚙️ This workflow is a comprehensive, AI-powered system that acts as a virtual content manager for creators and marketing teams. It automates the entire content lifecycle, from ingestion and analysis to multi-channel distribution and performance logging. Multi-Source Ingestion: The workflow starts by ingesting new content from a trigger, such as a WordPress blog post or an RSS Feed from a YouTube channel. AI-Powered Analysis: The new content is sent to an OpenAI (GPT-4) node, which performs a series of high-value tasks. It instantly creates a summary, extracts keywords, analyzes the sentiment, and generates tailored post drafts for different social media platforms. Smart Distribution: A Buffer node then takes these AI-generated, platform-specific posts and schedules them for optimal times across your social media channels like Twitter, LinkedIn, and Facebook. Centralized Archiving: All of the content data, including the AI-generated summaries and insights, are automatically logged into a Google Sheets database. This creates a powerful, searchable archive and an analytics dashboard for tracking content performance. How to Set Up 🛠️ Import the Workflow: Copy the provided workflow JSON and import it into your n8n instance. Configure Credentials: OpenAI: Add your API Key. WordPress: Add your API credentials. Buffer: Add your API credentials. Google Sheets: Add your OAuth2 credentials. Customize Workflow Nodes: Node 1 (WordPress Trigger): Select your WordPress credential. You can also add other trigger nodes like RSS Feed Read Trigger if needed. Node 2 (OpenAI): You can customize the prompt to get different kinds of output or translate into more languages. Node 4 (Buffer): Select the social media profiles you want to post to. Node 5 (Google Sheets): Replace the placeholder [YOUR SPREADSHEET ID] and [YOUR CONTENT LOG SHEET NAME] with your own details and map the data columns. Save & Activate: Once all settings and credentials are configured, save the workflow and click the "Inactive" toggle in the top-right corner to make it live.
Expose TravisCI build operations to AI agents with MCP server
Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator? Join the community Complete MCP server exposing all TravisCI Tool operations to AI agents. Zero configuration needed - all 5 operations pre-built. ⚡ Quick Setup Import this workflow into your n8n instance Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works • MCP Trigger: Serves as your server endpoint for AI agent requests • Tool Nodes: Pre-configured for every TravisCI Tool operation • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Uses official n8n TravisCI Tool tool with full error handling 📋 Available Operations (5 total) Every possible TravisCI Tool operation is included: 🔧 Build (5 operations) • Cancel a build • Get a build • Get many builds • Restart a build • Trigger a build 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Resource IDs and identifiers • Search queries and filters • Content and data payloads • Configuration options Response Format: Native TravisCI Tool API responses with full data structure Error Handling: Built-in n8n error management and retry logic 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • Other n8n Workflows: Call MCP tools from any workflow • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Complete Coverage: Every TravisCI Tool operation available • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n error handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.