by Jaures NYA
Who’s it for This automation template is designed for content creators, social media managers, and automation enthusiasts who want to automatically scrape X (Twitter) posts with images and publish them directly to a Telegram channel — without writing a single line of code. With this workflow, you can keep your Telegram community constantly updated with the latest tweets from any account. It collects, cleans, and shares content in a fully automated cycle. How It Works Trigger – Start scraping from a specific X (Twitter) account using its unique ID and username. Fetch Data – The workflow calls the Twitter API (or a scraping endpoint) to gather recent tweets. Format & Filter – Extracts key fields (author name, username, text, URL, creation date, images, video) and keeps only tweets containing text and at least one image. Remove Duplicates – Ensures no tweet is processed or posted twice. Save to Google Sheets – Stores cleaned tweet data for backup and future use. Clean Text – Removes unwanted links and hashtags for a polished message. Loop & Publish – Sends each tweet (text + image) to your Telegram channel. Delay – Waits 3 minutes between each post to prevent spamming. How to Use Enter the Twitter ID and username of the target account. Connect your Google Sheets account to store scraped tweets. Connect your Telegram bot and specify the channel for publication. Run the workflow — tweets will be automatically scraped, filtered, saved, and posted to Telegram. Requirements A valid Twitter API connection or alternative scraping endpoint. A Google Sheet to store tweet data. A Telegram Bot linked to your channel. n8n (or any compatible automation platform) to run the workflow. Need help Contact me for consulting and support: LinkedIn / YouTube
by Evoort Solutions
Job Search Automation with Job Search Global API & Google Sheet Logging Description: Automate your job search process by querying the Job Search Global API via RapidAPI every 6 hours for a specified keyword like “Web Developer.” This workflow extracts job listings and saves them directly to Google Sheets, with alerts sent for any API failures. Workflow Overview Schedule Trigger Runs the workflow automatically every 6 hours to ensure up-to-date job listings. Set Search Term Defines the dynamic job keyword, e.g., "Web Developer," used in API requests. Fetch Job Listings Sends a POST request to the Job Search Global API (via RapidAPI) to retrieve job listings with pagination. Check API Response Validates the API response status, branching workflow on success or failure. Extract Job Data Parses the job listings array from the API response for processing. Save to Google Sheet Appends or updates job listings in Google Sheets, avoiding duplicates by matching job titles. Send Failure Notification Email Sends an alert email if the API response fails or returns an error. How to Obtain Your RapidAPI Key (Quick Steps) Go to RapidAPI Job Search Global API. Sign up or log in to your RapidAPI account. Subscribe to the API plan that suits your needs. Copy your unique X-RapidAPI-Key from the dashboard. Insert this key into your workflow’s HTTP Request node headers. How to Configure Google Sheets Create a new Google Sheet for job listings. Share the sheet with your Google Service Account email to enable API access. Use the sheet URL in the Google Sheets node within your workflow. Map columns correctly based on the job data fields. Google Sheet Columns Used | Column Name | Description | | ----------- | ----------------------------------- | | title | Job title | | url | Job posting URL | | company | Company name | | postDate | Date job was posted | | jobSource | Source of the job listing | | slug | Unique job identifier or slug | | sentiment | Sentiment analysis score (if any) | | dateAdded | Date the job was added to the sheet | | tags | Associated tags or keywords | | viewCount | Number of views for the job post | Use Cases & Benefits Automated Job Tracking:** Get fresh job listings without manual searching by automatically querying the Job Search Global API multiple times per day. Centralized Job Data:** Save and update listings in Google Sheets for easy filtering, sharing, and tracking. Failure Alerts:** Get notified immediately if API calls fail, helping maintain workflow reliability. Customizable Search:** Change keywords anytime to tailor job searches for different roles or industries. Who Is This Workflow For? Recruiters** looking to monitor job market trends in real-time. Job Seekers** who want to automate job discovery for specific roles like “Web Developer.” HR Teams** managing talent pipelines and job postings. Data Analysts** needing structured job market data for research or reporting. Create your free n8n account and set up the workflow in just a few minutes using the link below: 👉 Start Automating with n8n Save time, stay consistent, and grow your LinkedIn presence effortlessly!
by Parth Pansuriya
Analyze Ingredient Photos using Telegram & Gemini AI Who’s it for Skincare enthusiasts who want to know if a product is safe. Food or supplement buyers checking ingredient safety. Parents reviewing kids’ products. Anyone wanting quick ingredient analysis before using/buying a product. How it works / What it does Telegram Input – User sends a photo of a product label or a text list of ingredients. Photo Handling – Workflow checks if the message contains a photo. If yes → retrieves the file, extracts ingredients using Google Gemini AI. If no → handles text/greetings/off-topic queries. Caption Branching With caption → Gives Use / Do Not Use recommendation + reason. Without caption → Gives Advantages, Disadvantages, Recommended For, Not Recommended For (3 points each). Response on Telegram – Sends a friendly, structured response back to the user. How to set up Import this workflow JSON into n8n. Create and connect a Telegram bot via BotFather → paste the API token in Telegram credentials. Add Google Gemini (PaLM) API credentials inside n8n. Activate the workflow and send your first product photo via Telegram! Requirements n8n instance (self-hosted or cloud). Telegram bot token. Google Gemini API credentials. How to customize the workflow Change AI Instructions** – Update system messages to tweak tone (more technical, casual, or medical). Adjust Output Format** – Edit Telegram response nodes for shorter/longer answers. Expand Analysis** – Add extra categories (e.g., allergens, environmental impact). Multi-language Support** – Modify prompts to output in the user’s preferred language. Add Database Logging** – Connect to MySQL, PostgreSQL to save conversations (user queries + AI responses).
by Florent
Automated n8n Workflows & Credentials Backup to Local/Server Disk & FTP Complete backup solution that saves both workflows and credentials to local/server disk with optional FTP upload for off-site redundancy. What makes this workflow different: Backs up workflows AND credentials together Saves to local/server disk (not Git, GitHub, or any cloud services) Optional FTP upload for redundancy (disabled by default) Comprehensive error handling and email notifications Timezone-aware** scheduling Ready to use with minimal configuration How it works Backup Process (Automated Daily at 4 AM): Initialisation - Sets up timezone-aware timestamps and configurable backup paths for both local/server disk and FTP destinations Folder Creation - Creates date-stamped backup directories (YYYY-MM-DD format) on local/server disk Dual Backup Operations - Processes credentials and workflows in two separate branches: Credentials Branch: Exports n8n credentials using the built-in CLI command with backup flag Lists exported credential files in the credentials folder Reads each credential file from disk Optional: Uploads to FTP server (disabled by default) Optional: Logs FTP upload results for credentials Workflows Branch: Retrieves all workflows via n8n API Cleans workflow names for cross-platform compatibility Converts workflows to formatted JSON files Writes files to local/server disk Optional: Uploads to FTP server (disabled by default) Optional: Logs FTP upload results for workflows Data Aggregation - Combines all workflow data with binary attachments for comprehensive reporting Results Merging - Consolidates credentials FTP logs, workflows FTP logs, and aggregated workflow data Summary Generation - Creates detailed backup logs including: Statistics (file counts, sizes, durations) Success/failure tracking for local and FTP operations Error tracking with detailed messages Timezone-aware timestamps Notifications - Sends comprehensive email reports with log files attached and saves execution logs to disk How to use Initial Setup: Configure the Init Node - Open the "Init" node and customize these key parameters in the "Workflow Standard Configuration" section: // Admin email for notifications const N8N_ADMIN_EMAIL = $env.N8N_ADMIN_EMAIL || 'youremail@world.com'; // Workflow name (auto-detected) const WORKFLOW_NAME = $workflow.name; // Projects root directory on your server const N8N_PROJECTS_DIR = $env.N8N_PROJECTS_DIR || '/files/n8n-projects-data'; // projects-root-folder/ // └── Your-project-folder-name/ // ├── logs/ // ├── reports/ // ├── ... // └── [other project files] // Project folder name for this backup workflow const PROJECT_FOLDER_NAME = "Workflow-backups"; Then customize these parameters in the "Workflow Custom Configuration" section: // Local backup folder (must exist on your server) const BACKUP_FOLDER = $env.N8N_BACKUP_FOLDER || '/files/n8n-backups'; // FTP backup folder (root path on your FTP server) const FTP_BACKUP_FOLDER = $env.N8N_FTP_BACKUP_FOLDER || '/n8n-backups'; // FTP server name for logging (display purposes only) const FTPName = 'Synology NAS 2To'; These variables can also be set as environment variables in your n8n configuration. Set Up Credentials: Configure n8n API credentials for the "Fetch Workflows" node Configure SMTP credentials for email notifications Optional: Configure FTP credentials if you want to enable off-site backups Configure Backup Folder: Ensure the backup folder path exists on your server Verify proper write permissions for the n8n process If running in Docker, ensure volume mapping is correctly configured Customize Email Settings: Update the "Send email" node with your recipient email address or your "N8N_ADMIN_EMAIL" environment value Adjust email subject and body text as needed Enabling FTP Upload (Optional): By default, FTP upload nodes are disabled for easier setup. To enable off-site FTP backups: Simply activate these 4 nodes (no other changes needed): "Upload Credentials To FTP" "FTP Logger (credentials)" "Upload Workflows To FTP" "FTP Logger (workflows)" Configure FTP credentials in the two upload nodes The workflow will automatically handle FTP operations and include upload status in reports Requirements n8n API credentials (for workflow fetching) SMTP server configuration (for email notifications) Adequate disk space for local backup storage Proper file system permissions for backup folder access Docker environment with volume mapping (if running n8n in Docker) Optional: FTP server access and credentials (for off-site backups) Good to know Security**: Credentials are exported using n8n's secure backup format - actual credential values are not exposed in plain text Timezone Handling**: All timestamps respect configured timezone settings (defaults to Europe/Paris, configurable in Init node) File Naming**: Automatic sanitization ensures backup files work across different operating systems (removes forbidden characters, limits length to 180 characters) FTP Upload**: Disabled by default for easier setup - simply activate 4 nodes to enable off-site backups without any code changes Connection Resilience**: FTP operations include error handling for timeout and connection issues without failing the entire backup Graceful Degradation**: If FTP nodes are disabled, the workflow completes successfully with local backups only and indicates FTP status in logs Error Handling**: Comprehensive error catching with detailed logging and email notifications Dual Logging**: Creates both JSON logs (for programmatic parsing) and plain text logs (for human readability) Storage**: Individual workflow JSON files allow for selective restore and easier version control integration Scalability**: Handles any number of workflows efficiently with detailed progress tracking This automated backup workflow saves your n8n data to both local disk and FTP server. To restore your backups, use: "n8n Restore from Disk - Self-Hosted Solution" for local/server disk restores "n8n Restore from FTP - Remote Backup Solution" for FTP remote restores
by Axiomlab.dev
Tasks Briefing This template posts a clean, Slack-ready morning summary of your Google Tasks due today. It fetches tasks, filters only those due “today” in your timezone, asks a local LLM (via LangChain + Ollama) to produce a short summary (no steps, just a concise brief), strips any hidden <think> blocks, and delivers the message to your chosen Slack channel. How it works Trigger at Morning (Cron) – runs at 7:00 AM (you can change the hour) to kick things off daily. Get many tasks (Google Tasks node) – pulls tasks from your selected Google Tasklist. Code (Filter Due Today) – normalizes dates to your timezone, keeps only tasks due today, and emits a fallback flag if none exist. If – routes: True (has tasks) → continues to the LLM summary path. False (no tasks) → sends a “No tasks due today” message to Slack. Code (Build LLM Prompt) – builds a compact, Markdown-only prompt for the model (no tool calls). Basic LLM Chain (LangChain) + Ollama Model – generates a short summary for Slack. Code (Cleanup) – removes any <think>…</think> content if the model includes it. Send a message (Slack) – posts the final brief to your Slack channel. Required credentials Google Tasks OAuth2 API** – to read tasks from your Google Tasklist. Slack API** – to post the summary into a channel. Ollama** – local model endpoint (e.g., qwen3:4b); used by the LangChain LLM nodes. Setup Instructions Google Tasks credential In Google Cloud Console: enable Google Tasks API, create an OAuth Client (Web), and set the redirect URI shown by n8n. In n8n Credentials, add Google Tasks OAuth2 API with scope: https://www.googleapis.com/auth/tasks (read/write) or https://www.googleapis.com/auth/tasks.readonly (read-only). In the Get many tasks node, select your credential and your Tasklist. Slack credential & channel In n8n Credentials, add Slack API (bot/user token with chat:write). In Send a message nodes, select your Slack credential and set the Channel (e.g., #new-leads). Ollama model (LangChain) Ensure Ollama is running on your host (default http://localhost:11434). Pull a model (e.g., ollama pull qwen3:4b) or use another supported model (llama3:8b, etc.). In Ollama Model node, select your Ollama credential and set the model name to match what you pulled. Timezone & schedule The Cron node is set to 7:00 AM. Adjust as needed. The Code (Filter Due Today) node is configured for Asia/Dhaka; change the TZ constant if you prefer a different timezone. (Optional) Cleanup safety The template includes a Code (Cleanup) node that strips <think>…</think> blocks from model output. Keep this connected before the Slack node. Test the flow Run the workflow once manually: If you have tasks due today, you should see a concise summary posted to your Slack channel. If none are due, you’ll receive a friendly “No tasks due today” message. Activate When everything looks good, toggle the workflow Active to receive the daily summary automatically.
by Takuya Ojima
Who’s it for Teams that collect meeting requests via a form and want instant, error-free scheduling: customer success, sales, education, agencies, and community managers. How it works / What it does This workflow ingests a form submission (name, email, preferred date/time), checks Google Calendar for conflicts, and branches automatically. If the slot is free, it creates a calendar event, spins up a Zoom meeting, emails the guest a confirmation, and posts a Slack summary to your team. If busy, it sends a polite “please pick another time” email. Time handling defaults to Asia/Tokyo and converts to ISO internally to keep downstream integrations consistent. How to set up Import the workflow and rename nodes for clarity if needed. Open the Workflow Configuration (Set) node and adjust variables (calendar ID, meeting duration, Slack channel, sender info). Map your form fields in Extract Booking Details. Connect credentials in each service node (Google Calendar, Zoom, Gmail, Slack). Test once with a real submission. Requirements Active accounts and n8n credentials for Google Calendar, Zoom, Gmail, and Slack. A form or webhook source that sends name, email, and a valid datetime. How to customize the workflow Duration & buffers: Change end time calculation in Extract Booking Details. Time zones: If you accept multiple time zones, normalize before building ISO strings. Email copy: Personalize confirmation/alternative-time messages and add attachments if desired. Slack format: Enrich the post with fields (host, Zoom join URL, internal tags). Routing: Add CRM updates or reminders after the “slot free” branch. Security note: No hardcoded API keys in HTTP nodes. Configure all credentials via n8n’s credential manager.
by ScoutNow
Automated Daily Competitor Tweet Summarizer with X API, GPT-5-Nano, and Gmail Stay on top of your competition with this powerful n8n workflow that automatically fetches and summarizes your competitors’ latest tweets every day. Using the official X (formerly Twitter) API and OpenAI's GPT-5-Nano model, this template extracts insights from public tweets and sends concise summaries directly to your Gmail inbox. Ideal for marketing teams, product managers, PR professionals, and competitive intelligence analysts, this solution turns noisy social feeds into clear, actionable summaries—automated and customized to your needs. Features Daily automation: Fetches competitor tweets every 24 hours using X API AI summarization: Uses GPT-5-Nano to highlight key insights and themes Smart filtering: Cleans and filters tweets for relevance before summarizing Email delivery: Sends summaries to Gmail (or your team’s inbox) Fully customizable: Modify schedules, accounts, and integrations as needed Setup Instructions Get API Keys: X API (Bearer Token) – from developer.x.com OpenAI API Key – from platform.openai.com Gmail OAuth2 credentials (via Google Cloud Console) Configure in n8n: Import the workflow Add credentials under the "Credentials" tab Set target X usernames and schedule Customize Delivery (Optional): Set email subject, recipients Add additional integrations (e.g., Slack, Notion, Sheets) How It Works Trigger: A daily cron node initiates the workflow. Fetch User ID: The workflow uses the X API to retrieve the user ID based on the provided username. This step is necessary because the tweet retrieval endpoint requires a user ID, not a username. Fetch Tweets: Using the extracted user ID, the workflow queries the X API for recent tweets from the selected account. Clean Data: Filters out replies, retweets, and any irrelevant content to ensure only meaningful tweets are summarized. Summarize: GPT-4 processes the cleaned tweet content and generates a concise, insightful summary. Send Email: The Gmail node sends the final summary to your inbox or chosen recipient. Use Cases Track competitor announcements and marketing messages Automate daily social media briefs for leadership Monitor trends in your industry effortlessly Keep your team aligned with market developments Requirements Valid X API credentials (Bearer token) OpenAI API key Gmail OAuth2 credentials Access to n8n (cloud or self-hosted) Delivery Options While Gmail is the default, you can easily extend the workflow to integrate with: Slack Notion Google Sheets Webhooks Any supported n8n integration Automate your competitive intelligence process and stay informed—without lifting a finger.
by Seb
An AI inbox labelling manager that has reasoning attached to the ChatGPT inbox manager within n8n. Super simple yet highly effective automation. How it works: • Monitors Gmail inbox → triggers workflow when a new unread email is received. • Fetches email details including subject, body, and sender information. • Sends email content to OpenAI → uses AI to determine the most relevant label based on predefined rules. • AI uses a think tool → justifies why it selected that specific label. • Retrieves Gmail label IDs → matches AI’s choice to correct Gmail label for that email. • Adds the chosen label (e.g., Positive reply, priority email, etc) to the email automatically → optionally marks it as read/starred. • Continues monitoring → every new email is processed automatically, keeping the inbox organized. Set Up Steps • Connect Gmail account to the Gmail Node • Create OpenAI account & API key → go to OpenAI and sign up or log in. Once logged in, click Dashboard in the top menu. On the left sidebar, find API Keys and click Create new key. Copy this key — you’ll need it for n8n. Check your account balance → in the top-right, click your profile icon → Your Profile → Billing. Make sure your account has funds (e.g., $5 USD is enough for testing) so the API requests can run. Do these steps through this link: https://platform.openai.com/ • Retrieve Gmail label IDs → use the Gmail “get labels” node to fetch IDs for all labels you want the AI to use. • Use OpenAI (ChatGPT) node → set up system and user prompts with rules describing each label, and include the label IDs (Important). • Test the workflow → send example emails, check labeling, and refine AI prompt or label rules if needed. • Tip: Pin trigger data for testing (Gmail node "Watch Incoming Emails") → re-use the same email record to speed up testing without sending multiple emails. About this automation Handles multiple labels → adding new labels only requires updating the AI prompt (no extra nodes). Scales easily → works for any number of Gmail labels without cluttering the workflow. For a complete rundown on how to set this up watch my YouTube tutorial linked below See full video tutorial here: https://www.youtube.com/watch?v=7nda4drHcWw My LinkedIn: https://www.linkedin.com/in/seb-gardner-5b439a260/
by Fahmi Fahreza
Match Resumes to Jobs Automatically with Gemini AI and Decodo Scraping Sign up for Decodo HERE for Discount This automation intelligently connects candidate profiles to job opportunities. It takes an intake form with a short summary, resume link, and optional LinkedIn profile, then enriches the data using Decodo and Gemini. The workflow analyzes skills, experience, and role relevance, ranks top matches, and emails a polished HTML report directly to your inbox—saving hours of manual review and matching effort. Who’s it for? This template is designed for recruiters, hiring managers, and talent operations teams who handle large candidate volumes and want faster, more accurate shortlisting. It’s also helpful for job seekers or career coaches who wish to identify high-fit openings automatically using structured AI analysis. How it works Receive an intake form containing a candidate’s resume, summary, and LinkedIn URL. Parse and summarize the resume with Gemini for core skills and experience. Enrich the data using Decodo scraping to gather extra profile details. Merge insights and rank job matches from Decodo’s job data. Generate an HTML shortlist and email it automatically through Gmail. How to set up Connect credentials for Gmail, Google Gemini, and Decodo. Update the Webhook path and test your form connection. Customize variables such as location or role preferences. Enable Send as HTML in the Gmail node for clean reports. Publish as self-hosted if community nodes are included.
by Angel Menendez
Who it's for This workflow is ideal for YNAB users who frequently shop on Amazon and want their transaction memos to automatically show itemized purchase details. It's especially helpful for people who import bank transactions into YNAB and want to keep purchase records tidy without manual entry. How it works The workflow triggers on a set schedule, via a webhook, or manually. It retrieves all unapproved transactions from your YNAB budget, filters for Amazon purchases with empty memo fields, and processes each transaction individually. Using Gmail, it searches for matching Amazon emails (within ±5 days of the transaction date) and sends the email data to an AI agent powered by OpenAI. The AI extracts product names and prices, generating a concise memo line (up to 499 characters). If no valid purchase info is found, a fallback message is added instead. A 5-second delay prevents API rate limiting. How to set up Connect your YNAB account with valid API credentials. Connect Gmail with OAuth2 authentication. Add your OpenAI (or other LLM) API credentials. Configure the schedule trigger or use manual/webhook start. Run the workflow and monitor execution logs in n8n. Requirements YNAB API credentials Gmail OAuth2 connection OpenAI API key (or another compatible AI model) How to customize You can change the AI model (e.g., Gemini or Claude) or add HTML-to-Markdown conversion to lower token costs. Adjust the wait node delay to fit your API rate limits or modify the email date range for greater accuracy. Security note: Never store or share API keys or personal email data directly in the workflow. Use credential nodes to manage sensitive information securely.
by Drew Fabrikant
🎥 AI-Powered Inbound Video Agent: Auto-Respond to Leads with Personalized Videos Description: This workflow automates the first-touch response for inbound leads by creating and delivering a hyper-personalized video and follow-up email, all in seconds, using a powerful stack: n8n, Scout, HeyGen API, and OpenAI. How It Works (The Lead Journey): 📥 Form Trigger: Captures initial user inputs (name, email, address). 🔎 Data Enrichment (Scout): Instantly looks up lead details like property type, homeownership status, and household income. ✍️ Script Agent (GPT-5/LangChain): An AI agent writes a professional, 15-second outreach script, tailoring the message with three discussion paths based on the enriched Scout data. 🎬 Video Generation (HeyGen): Triggers an avatar video using the custom script. 📧 Delivery Logic: Waits for the video to complete, retrieves the final URL/thumbnail, and passes it to the next step. 🔗 Email Writer (GPT-4): Generates an HTML outreach email, embedding the video thumbnail and including a direct booking link (Calendly). 🚀 Send Email (Gmail Node): Sends the complete, personalized message to the inbound lead automatically. Key Integrations: Scout: Lead Data Enrichment HeyGen: AI Avatar Video Generation OpenAI (GPT-4/LangChain): Scriptwriting and Email Copy Gmail: Automated Email Delivery Setup Note: Ensure you have configured n8n credentials for HeyGen (httpHeaderAuth), Scout (HTTP Request header), OpenAI, and Gmail (OAuth2).
by Bakir Ali
AI-Powered Business Lead Extractor & Gmail Outreach Automation using Browseract 🚀 Overview This workflow automates business data extraction, duplicate checking, and email outreach using BrowserAct, Google Sheets, Gmail, and Google Gemini AI — all inside n8n. It’s designed for marketers, lead generation specialists, or automation developers who want to build a fully autonomous AI agent that finds businesses online, filters duplicates, and automatically sends personalized outreach emails. 🧩 Key Features 🌐 BrowserAct Integration — Scrapes business data (name, phone, email, website, rating) from any target site. 🤖 AI Data Extraction Agent — Uses Google Gemini AI to clean, structure, and validate scraped data into standardized JSON. 📊 Google Sheets Sync — Reads all existing records Checks for duplicates Appends new rows automatically ✉️ Automated Gmail Outreach — Validates email addresses Sends outreach emails to valid leads Logs each status (e.g., Successful, Duplicate, Pending - Invalid Email) ⏳ Smart Delay Control — Uses Wait node to pause execution and respect email sending limits (max 2 emails per run). 🛠️ Included Nodes | Node | Function | | -------------------------- | ------------------------------------------------- | | 🕓 Schedule Trigger | Runs the workflow automatically on schedule | | 🌍 BrowserAct | Scrapes or extracts business data | | ⚙️ If Node | Checks scraping results before processing | | 🧠 AI Agent (Gemini) | Extracts structured business info | | 💻 Code (JavaScript) | Cleans and parses AI output into usable JSON | | 📩 AI Agent 2 (Gemini) | Handles decision-making for email + sheet updates | | 📊 Google Sheets Tools | Reads, appends, and manages lead data | | 📨 Gmail Node | Sends automated outreach emails | | ⏱️ Wait Node | Adds delay to control workflow speed | 🧾 How It Works Schedule Trigger starts the automation. BrowserAct fetches business listings based on defined keywords and location. AI Agent (Gemini) extracts business details (business_name, website_url, phone_number, email_address, rating). JavaScript Code Node parses the AI’s JSON response. AI Agent 2 (Gemini) decides: If duplicate → logs to Google Sheet via Duplicate Tool If invalid email → marks as “Pending - Invalid Email” If valid email → sends via Gmail + updates Google Sheet Final output returns structured statuses for each processed business. 🖼️ Workflow Diagram > * Schedule Trigger > * BrowserAct > * AI Agent (Gemini) > * JavaScript Code > * Gmail & Google Sheets tools ![Workflow Preview] ⚙️ Setup Instructions Connect your BrowserAct, Google Sheets, Gmail, and Google Gemini API credentials. Define search keywords and locations inside the BrowserAct node. Set your Google Sheet ID in the relevant nodes. Customize the Gmail message if needed. Activate the workflow and schedule it. 📤 Output Example [ { "business_name": "ABC Restaurant", "email_sent": "Successful" }, { "business_name": "XYZ Foods", "email_sent": "Duplicate - Already Exist" }, { "business_name": "Fresh Eats", "email_sent": "Pending - Invalid Email" } ] 👨💻 Created by Bakir Ali Automation & AI Workflow Creator — specialized in BrowserAct, Google AI (Gemini), and n8n-based automation systems.