by Sabrina Ramonov 🍄
Description This automation detects when you post a Tiktok video, automatically downloads the video without watermark, stores it in Google Drive, and reposts your Tiktok video to other social media platforms. All on autopilot. So you can grow your presence on multiple platforms, without more work. You can also easily add steps to customize captions per platform. Youtube Tutorial https://www.youtube.com/watch?v=yHbyEb-fBGY 📄 Documentation Full Step-by-Step Documentation How It Works 1. Trigger RSS feed triggers when you post a new Tiktok video 2. Fetch Video Download the newly posted Tiktok video (without watermark) Store video in Google Drive 3. Publish to Social Media Connect Blotato to your social accounts Choose your social accounts Post immediately or schedule for later Setup & Required Accounts Enable "Verified Community Nodes" in your n8n Admin Panel Install "Blotato" verified community node Sign up for Blotato: create API key at Dashboard → API Keys, then create your Blotato credential and connect your social accounts Sign up for RSS.app: create feed from your TikTok profile, copy RSS URL into the RSS Feed Trigger node, and set "Number of Posts" to 1 Google Drive account to store downloaded Tiktok videos Tips & Tricks Ensure your RSS feed outputs only 1 item at a time For multiple posts within an hour, set RSS.app refresh to 15 minutes (paid plan) While testing: enable only 1 social platform, deactivate others, and consider scheduling posts in the future After the workflow finishes, check your social account for the final post; if successful, enable another social media node and continue testing Troubleshooting Check your Blotato API Dashboard to see every request, response, and error. Click on a request to see the details. Need Help? In the Blotato web app, click the orange button on the bottom right corner. This opens the Support messenger where I help answer technical questions. Connect with me: Linkedin | Youtube
by Rakin Jakaria
Who this is for This workflow is for Amazon affiliate marketers and social media managers who want to quickly turn product links into engaging Facebook posts with AI-generated captions and images — fully automated. What this workflow does This workflow starts every time a new Product Link is added to a connected Google Sheet. It then: Extracts the ASIN** from the product link. Fetches product details** from Amazon using RapidAPI. Generates a short, scroll-stopping Facebook caption** with OpenRouter AI. Creates a product image prompt** and sends it to Google Gemini for high-quality image generation. Uploads the creative directly to Facebook** via the Facebook Graph API. Marks the Google Sheet row** as “Done ✅” after posting. The Facebook post includes: Product image (AI-enhanced) Short, benefit-focused caption with emojis Affiliate link Setup To set this template up, follow the sticky notes inside the workflow and: Google Sheets → Connect your sheet and ensure the columns “Product Link” & “Facebook Upload” exist. RapidAPI → Add your API key in the “Amazon Product Details” node. OpenRouter → Add credentials for caption generation. Google Gemini → Add your API key for image generation. Facebook Graph API → Connect your Facebook account for posting. How to customize this workflow to your needs Change the Facebook caption prompt to match your tone or branding. Adjust the AI image generation prompt to fit your preferred photography style. Modify the Google Sheet update logic if you want to track additional info (e.g., posting date, engagement stats). Switch Facebook posting to Instagram or another platform by replacing the final API call.
by Baptiste Fort
Who is it for? This workflow is perfect for anyone who wants to: Automatically collect contacts from Google Maps**: emails, phone numbers, websites, social media (LinkedIn, Facebook), city, ratings, and reviews. Organize everything neatly in Airtable**, without dealing with messy CSV exports that cause headaches. Send a personalized email to each lead**, without writing it or hitting “send” yourself. 👉 In short, it’s the perfect tool for marketing agencies, freelancers in prospecting, or sales teams tired of endless copy-paste. If you want to automate manual tasks, visit our French agency 0vni – Agence automatisation. How does it work? Here’s the pipeline: Scrape Google Maps with Apify (business name, email, website, phone, LinkedIn, Facebook, city, rating, etc.). Clean and map the data so everything is well-structured (Company, Email, Phone, etc.). Send everything into Airtable to build a clear, filterable database. Trigger an automatic email via Gmail, personalized for each lead. 👉 The result: a real prospecting machine for local businesses. What you need before starting ✅ An Apify account (for Google Maps scraping). ✅ An Airtable account with a prepared base (see structure below). ✅ A Gmail account (to send automatic emails). Airtable Base Structure Your table should contain the following columns: | Company | Email | Phone Number | Website | LinkedIn | Facebook | City | Category | Google Maps Reviews | Google Maps Link | | ------- | ---------------------------------------- | ----------------- | -------------------------------------------- | -------------- | -------------- | ---------------- | ---------------- | ------------------- | ----------------- | | 4 As | contact@4-as.fr | +33 1 89 36 89 00 | https://www.4-as.fr/ | linkedin.com/… | facebook.com/… | 94100 Saint-Maur | training, center | 48 reviews / 5 ★ | maps.google.com/… | Detailed Workflow Steps Step 1 – GO Trigger Node**: Manual Trigger Purpose**: Start the workflow manually. 👉 You can replace this trigger with a Webhook (to launch the flow via a URL) or a Cron (to run it automatically on a schedule). Step 2 – Scrape Google Maps Node**: HTTP Request Method**: POST Where to find the Apify URL? Go to Google Maps Email Leads Fast Scraper Click on API (top right) Open API Endpoints Copy the URL of the 3rd option: Run Actor synchronously and get dataset items 👉 This URL already includes your Apify API token. Body Content Type: JSON Body JSON (example)**: Body Content Type**: JSON Body JSON (example)**: *{ "area_height": 10, "area_width": 10, "emails_only": true, "gmaps_url": "https://www.google.com/maps/search/training+centers+near+Amiens/", "max_results": 200, "search_query": "training center" }* Step 3 – Wait Node**: Wait Purpose**: Give the scraper enough time to return data. Recommended delay*: *10 seconds (adjust if needed). 👉 This ensures that Apify has finished processing before we continue. Step 4 – Mapping Node**: Set Purpose**: Clean and reorganize the raw dataset into structured fields that match Airtable columns. Assignments (example): Company = {{ $json.name }} Email = {{ $json.email }} Phone = {{ $json.phone_number }} Website = {{ $json.website_url }} LinkedIn = {{ $json.linkedin }} Facebook = {{ $json.facebook }} City = {{ $json.city }} Category = {{ $json.google_business_categories }} Google Maps Reviews = {{ $json.reviews_number }} reviews, rating {{ $json.review_score }}/5 Google Maps Link = {{ $json.google_maps_url }} 👉 Result: The data is now clean and ready for Airtable. Step 5 – Airtable Storage Node**: Airtable → Create Record Parameters**: Credential to connect with: Airtable Personal Access Token account Resource: Record Operation: Create Base: Select from list → your base (example: GOOGLE MAPS SCRAPT) Table: Select from list → your table (example: Google maps scrapt) Mapping Column Mode: Map Each Column Manually 👉 To get your Base ID and Table ID, open your Airtable in the browser: https://airtable.com/appA6eMHOoquiTCeO/tblZFszM5ubwwSYDK Here: Base ID = appA6eMHOoquiTCeO Table ID = tblZFszM5ubwwSYDK Authentication Go to: https://airtable.com/create/tokens Create a new Personal Access Token Give it access to the correct base Copy the token into n8n credentials (select Airtable Personal Access Token). Field Mapping (example) Company: {{ $json['Company'] }} Email: {{ $json.Email }} Phone: {{ $json['Phone'] }} Website: {{ $json['Website'] }} LinkedIn: {{ $json.LinkedIn }} Facebook: {{ $json.Facebook }} City: {{ $json.City }} Category: {{ $json['Category'] }} Google Maps Reviews: {{ $json['Google Maps Reviews'] }} Google Maps Link: {{ $json['Google Maps Link'] }} 👉 Result: Each lead scraped from Google Maps is automatically saved into Airtable, ready to be filtered, sorted, or used for outreach. Step 6 – Automatic Email Node**: Gmail → Send Email Parameters**: To: = {{ $json.fields.Email }} Subject: = {{ $json.fields['Company'] }} Message: HTML email with dynamic lead details. Example HTML message: Hello {{ $json.fields['Company'] }} team, I design custom automations for training centers. Goal: zero repetitive manual tasks, from registration to invoicing. Details: {{ $json.fields['Company'] }} in {{ $json.fields.City }} — website: {{ $json.fields['Website'] }} — {{ $json.fields['Google Maps Reviews'] }} Interested in a quick 15-min call to see a live demo? 👉 Result: Each contact receives a fully personalized email with their company name, city, website, and Google Maps rating. Final Result With just one click: Scrape Google Maps (Apify). Clean and structure the data (Set). Save everything into Airtable. Send personalized emails via Gmail. 👉 All without copy-paste, without CSV, and without Excel headaches.
by Yar Malik (Asfandyar)
Who’s it for This template is perfect for marketers, sales teams, and entrepreneurs who need verified business leads without spending hours on manual research. If you’re running outreach campaigns, selling B2B services, or building prospect databases, this workflow saves you time and ensures your lead list is always fresh. How it works Start with a Google Maps search for a chosen business type and location (e.g., “Call centers in New York”). The workflow scrapes raw data, extracting business names, phone numbers, addresses, websites, and emails. Using regex logic, it filters and cleans data, ensuring valid contact details. Finally, it exports all leads into Google Sheets, giving you a ready-to-use contact list for outreach or CRM import. How to set up Replace the placeholder values in the Set Form Fields node with your target industry and location. Connect your Google Sheets account and provide the sheet ID. Run the workflow to start building your lead list. Requirements Google Sheets credentials Business type + location input How to customize the workflow Change the max_results field to control the number of businesses scraped. Add extra regex filters to capture more fields (e.g., social links). Integrate with your CRM or email platform to send leads directly to your outreach pipeline.
by Zeinabsadat Mousavi Amin
Overview When designing user interfaces, toolbar icons often get overlooked, even though their placement and grouping dramatically impact usability and user flow. This workflow leverages Gemini AI to automatically analyze UI screens, classify toolbar icons based on Apple’s Human Interface Guidelines (HIG), and suggest optimal placements. By combining AI analysis with structured placement logic, this workflow helps designers build more consistent, efficient, and user-friendly interfaces—without spending hours manually arranging icons. 🚀 Features AI Classification**: Uses Gemini AI to analyze screenshots and classify icons into roles like .primaryAction, .navigation, .confirmationAction, and more. HIG-Based Placement**: Automatically assigns icons to the correct toolbar areas—Leading (Left), Trailing (Right), Center, Bottom, or System-decided. Usage-Aware Reordering**: Reorders icons based on frequency of use so the most relevant actions appear where users expect them. JSON Output**: Delivers structured results for seamless integration into design tools or documentation. 🔧 Setup Instructions Install the Workflow: Import the workflow into your n8n instance. Configure Input: Upload a screenshot of your UI. Upload a set of icons you want to classify and place. Set Up Gemini AI Node: Add your Gemini AI API key in the node’s credentials. Run the Workflow: Submit the inputs and let the AI classify and assign placements. Export Results: Copy the JSON output or connect the workflow to your preferred design/documentation tools. ⚙️ How It Works Form Submission – Capture screenshot + icons. Gemini AI Agent – Interprets screen context and classifies each icon. Placement Logic – Maps icons to the correct toolbar areas. Reordering – Adjusts order based on relevance and HIG standards. Structured Output – Produces clean JSON for further use. 🎨 Customization Change AI Prompts**: Modify the Gemini AI node prompts to reflect your app’s design language. Adjust Placement Rules**: Update logic to follow custom guidelines beyond Apple HIG. Integrate with Design Tools**: Send the JSON output directly to tools like Figma, Sketch, or internal systems. 💡 Why This Matters Consistency**: Ensures toolbar designs always follow Apple’s HIG. Efficiency**: Saves designers hours of manual icon placement. Scalability**: Works across multiple screens, flows, and apps. AI-Assisted Design**: Augments designer decisions with structured insights instead of replacing them.
by Omer Fayyaz
Who's it for This template is perfect for business owners, developers, and marketers who want to add a professional, branded AI chatbot to their website. Whether you're running an e-commerce site, a SaaS platform, or a corporate website, this template gives you a fully customizable chat widget that integrates seamlessly with your brand. How it works The template creates a webhook endpoint that receives chat messages and processes them through an AI agent powered by DeepSeek. The workflow includes: Webhook endpoint** that accepts POST requests from your website AI Agent** that processes user messages and maintains conversation context Memory buffer** that remembers conversation history for each user session Response formatting** that sends AI replies back to your chat widget The chat widget itself is a vanilla JavaScript component that you embed on your website. It features: Customizable colors, branding, and positioning Light/dark theme support Mobile-responsive design Local conversation history Session management with expiration WordPress plugin integration How to set up Import the workflow into your n8n instance Configure your DeepSeek API credentials in the DeepSeek Chat Model node Activate the workflow to generate your webhook URL Copy the webhook URL from the Webhook node Embed the chat widget on your website using the provided JavaScript files Requirements n8n instance** (self-hosted or cloud) DeepSeek API account** and API key Website** where you want to embed the chatbot Basic HTML/JavaScript knowledge** for customization How to customize the workflow AI Agent Configuration Modify the AI Agent prompt to change how the bot responds Adjust the memory buffer settings for conversation context Change the AI model parameters for different response styles Webhook Customization Add authentication headers if needed Modify the response format to match your requirements Add additional processing nodes before the AI Agent Chat Widget Styling Change brandColor and accentColor to match your brand Customize the bot name, avatar, and welcome message Adjust positioning and launcher style Enable dark mode or HTML responses as needed Advanced Features Add user authentication integration Implement rate limiting Connect to your CRM or support system Add analytics and tracking Template Features ✅ No hardcoded API keys - uses n8n credential system ✅ Sticky notes included - explains the entire workflow ✅ Professional branding - fully customizable appearance ✅ WordPress ready - includes plugin and shortcode support ✅ Mobile responsive - works on all devices ✅ Session management - remembers conversations per user Use Cases Customer Support**: Provide instant AI-powered assistance Lead Generation**: Engage visitors and collect contact information Product Guidance**: Help customers find the right products/services FAQ Automation**: Answer common questions automatically Booking Assistant**: Help with appointments and reservations E-commerce Support**: Guide customers through purchases Technical Details The workflow uses the LangChain AI Agent with DeepSeek as the language model and includes a Memory Buffer for conversation context. The webhook response format is optimized for the chat widget. Live Demo Try it online: Live Demo Experience the chatbox widget in action with a working n8n webhook integration. The demo showcases all features including light/dark themes, HTML responses, and session management. Note: This template includes a complete JavaScript chat widget and WordPress plugin, making it ready for immediate use on any website. The workflow is designed to be production-ready with proper error handling and security considerations.
by Nadia Privalikhina
This n8n workflow automates the entire content creation and publishing pipeline for engaging, AI-generated visual stories, ensuring image and video quality with human-in-the-loop approvals. What it does: It takes a narrative concept (e.g., 'A Day in the Life of a Serene Skeleton') and transforms it into a series of unique images and videos, which are then published across multiple social media platforms. How it works: Creative Conceptualization: An AI 'Creative Director' develops a detailed narrative, including scenes, moods, and character details. Prompt Engineering: An AI 'Creative Technician' translates the narrative into precise text-to-image and text-to-video prompts, maintaining a consistent artistic style, lighting, and character appearance. AI Asset Generation: Replicate's AI models (Qwen-Image for images and Seedance-1-Lite for videos) create the visual content from these prompts. Human-in-the-Loop Approval: Generated images and videos are sent to Slack for manual review. Users can approve or request regeneration, ensuring creative control and quality. Multi-Platform Publishing: Approved content is automatically published via Blotato to Instagram and Facebook (videos), and TikTok (image slideshows), ready for your audience. Technical Requirements: Replicate Account with Balance: For image and video generation (using Qwen-Image and Seedance-1-Lite). Blotato Subscription: For seamless publishing to multiple social media platforms. OpenRouter Account with Balance: To access various Large Language Models (LLMs) like Gemini 2.5 Flash for creative direction and prompt generation. Slack Account: For the human-in-the-loop approval process. Customization Potential: This workflow serves as a robust foundation that can be easily adapted for various use cases beyond story narratives, such as: Automating product publishing with AI-generated visuals and descriptions. Creating dynamic advertising content for campaigns. Generating personalized visual content for marketing. Scaling content creation for personal or e-commerce brands. Why use it? Ideal for content creators, marketers, and businesses seeking to scale their visual content production, maintain creative control through human oversight, and automate distribution (with scheduling option) to key social media channels (Instagram, Facebook, TikTok, X, Pinterest, YouTube, and more). Customize the initial story brief to unleash endless themed narratives tailored to your brand.
by Jitesh Dugar
Eliminate the manual chaos of HR and legal document management. This workflow automates the transition from a raw document upload to a structured, audit-ready archive by combining UploadToURL for instant CDN hosting, Google Drive for long-term storage, and Airtable for status tracking and database management. 🎯 What This Workflow Does Transforms loose document scans into a structured corporate filing system: 📝 Captures Legal Assets - Receives signed contracts or IDs via mobile scan (binary) or remote URL. 🛡️ Duplicate Prevention - Checks Airtable first to ensure a contract isn't already filed for that specific Employee ID. ☁️ Instant CDN Hosting - UploadToURL hosts the document to provide a high-speed link for immediate HR review. 📁 Smart Folder Logic - Automatically navigates or creates a structured Google Drive path: HR/Contracts/{Year}/{Department}/{EmployeeName}/. 🗃️ Database Synchronization - Updates (or creates) an Airtable record to tick "Contract Received," logging both the Drive URL and the CDN backup. 📧 Automated Confirmation - Sends a professional HTML email to HR and the employee with access links and filing metadata. ✨ Key Features UploadToURL Integration**: Provides a redundant, accessible CDN link stored alongside your primary Drive storage for total data reliability. Auto-Nomenclature**: Renames files using a strict audit-ready format: {EmployeeID}{LastName}{Type}_{Date}.pdf. Intelligent Folder Creation**: Never manually create a folder again; the workflow builds the entire hierarchy on the fly. Audit Trail Generation**: Captures "Filed By," "Filed At," and unique "Upload IDs" for every document. Conflict Handling**: Built-in 409 Conflict logic prevents accidental overwrites or double-filing of critical legal papers. 💼 Perfect For HR Teams**: Managing onboarding documents and employment contracts at scale. Legal Departments**: Archiving NDAs, vendor agreements, and compliance certifications. Small Businesses**: Moving away from "loose files in folders" to a searchable, automated database. Remote Teams**: Enabling employees to "upload and forget" their paperwork via a simple link. 🔧 What You'll Need Required Integrations UploadToURL** - To host documents and provide public CDN backup links. n8n Community Node** - n8n-nodes-uploadtourl must be installed. Google Drive** - OAuth2 credentials for secure document storage. Airtable** - Personal Access Token to manage your employee/document database. Gmail / SMTP** - To send automated filing confirmations. Configuration Variables GDRIVE_ROOT_FOLDER_ID: The ID of your main HR folder in Google Drive. AIRTABLE_BASE_ID: Your specific Airtable base for HR/Legal tracking. 🚀 Quick Start Import Template - Copy the JSON and import it into your n8n workspace. Install Node - Ensure the UploadToURL community node is active. Set Credentials - Link your UploadToURL, Google Drive, Airtable, and Gmail accounts. Define Variables - Set your Root Folder ID and Airtable Base details in n8n variables. Test the Pipeline - Send a test POST with a sample PDF to the Webhook URL. Activate - Enable the workflow to begin hands-free archiving. 🎨 Customization Options Expiration Alerts**: Add a node to calculate 1-year expiry dates and set an automated reminder in Slack. OCR Processing**: Integrate an OCR step to read the content of scans and verify names automatically. Watermarking**: Add a "Confidential" or "Draft" watermark to documents before they are uploaded to the CDN. Multi-Base Routing**: Route documents to different Airtable bases depending on the "Department" field. 📈 Expected Results 100% Consistency** in file naming and folder structures across the entire organization. Zero manual data entry**—employee records and checkboxes update automatically. Audit-ready in minutes**: Every file has a timestamped trail and redundant storage links. Instant Accessibility**: HR can view documents via the CDN link before Drive permissions even propagate. 🏆 Use Cases High-Growth Onboarding A startup hiring 20 people a month can automate all contract filings, ensuring the "Contract Received" flag is always accurate for payroll. Compliance Audits When auditors ask for specific contracts, use the Airtable "Structured Filename" column to find and share the relevant Drive or CDN links in seconds. Field Service Scans Technicians in the field can upload signed site reports via a mobile app; the workflow handles the filing and notifies the office immediately. 💡 Pro Tips Folder IDs**: You can find your GDRIVE_ROOT_FOLDER_ID by looking at the last string in the URL when you are inside that folder in your browser. Structured JSON**: Use the returned auditTrail object to build a log of all uploads in a separate "Master Audit" spreadsheet. Employee IDs**: If no ID is provided, the workflow generates a temporary one using a timestamp to ensure the archive never breaks. Ready to secure your document pipeline? Import this template and connect UploadToURL to build a world-class archiving system in under 20 minutes. Need help with Airtable field mapping? The workflow includes detailed sticky notes explaining the exact field names required for the automation to run.
by Ian Kerins
Overview This n8n template automates a weekly Reddit industry digest without the Reddit API. It scrapes top posts from selected subreddits via ScrapeOps Proxy, enriches them with full post text, deduplicates against Google Sheets, and generates a weekly summary - optionally emailed to your inbox. Who is this for? Developers and product teams monitoring industry trends on Reddit Marketers and founders tracking niche community conversations Analysts building automated weekly briefings from Reddit What problem does it solve? Manually checking multiple subreddits weekly is time-consuming. This workflow runs automatically, scrapes top posts, removes duplicates, and delivers a clean weekly digest to Google Sheets and optionally your email. How it works A weekly schedule triggers the workflow automatically. ScrapeOps Proxy scrapes "Top of Week" from each subreddit on old.reddit.com. Post metadata is parsed from HTML: title, URL, score, comments, author, timestamps. Each post is fetched as JSON to extract the full selftext body. Data is merged, normalized, and deduplicated against existing Sheet rows. New posts are appended to the posts tab. A weekly digest is written to weekly_digest and optionally emailed. Set up steps (~10–15 minutes) Register for a free ScrapeOps API key: https://scrapeops.io/app/register/n8n Add ScrapeOps credentials in n8n. Docs: https://scrapeops.io/docs/n8n/overview/ Duplicate this sheet to copy Columns and Spreadsheet ID. Connect Google Sheets and set your Spreadsheet ID in the Read, Append, and Digest nodes. Update your subreddit list and week range in Configure Subreddits & Week Range. Optional: configure the Send Email node with sender and recipient credentials. Run once manually to confirm, then activate. Pre-conditions Active ScrapeOps account (free tier). ScrapeOps community node installed in n8n. Google Sheets credentials configured in n8n A Google Sheet with posts and weekly_digest tabs and correct column headers Optional: email credentials for the Send Email node Disclaimer This template uses ScrapeOps as a community node. You are responsible for complying with Reddit's Terms of Use, robots.txt directives, and applicable laws in your jurisdiction. Scraping targets may change at any time; adjust render, scroll, and wait settings and parsers as needed. Use responsibly and only for legitimate business purposes.
by Rahul Joshi
Description: Eliminate duplicate entries and streamline your lead management process with this n8n workflow template! Automatically capture new form submissions, check against existing records, update duplicates, and sync leads seamlessly into GoHighLevel (GHL) CRM and your Google Sheets database. This automation monitors Google Form submissions in real time, verifies if a lead already exists, and routes them accordingly: ✅ New leads are created in GoHighLevel and logged in your master database. ♻️ Duplicates are updated with the latest details and tracked in a dedicated duplicate log. Perfect for sales, marketing, and operations teams that need clean, accurate, and up-to-date lead records without manual effort. What This Template Does 📥 Captures new lead form submissions from Google Sheets 🔎 Checks existing records to detect duplicate entries 🆕 Creates new contacts in GoHighLevel CRM for unique leads ♻️ Updates existing GHL contacts with fresh submission details 📂 Logs new leads in a master database spreadsheet 📑 Tracks duplicate leads in a dedicated log for analytics 🌟 Fully automated: ensures a clean, organized, and deduplicated lead pipeline How It Works Google Sheets Trigger – Monitors your form response sheet for new submissions. Process Contact Data – Evaluates lead details and checks for duplicates. Duplicate Check – Compares against your master database. New Lead Handling – Creates a new contact in GoHighLevel and adds it to the master sheet. Duplicate Handling – Updates the existing contact in GoHighLevel and logs the activity in the duplicate log sheet. Setup Instructions- Google Sheets Setup Prepare three sheets: Form Responses Sheet → where new leads from your form are captured Master Lead Database → stores all unique leads Duplicate Log Sheet → tracks duplicate entries for reporting Required columns: Name Email Address Phone Number Company (optional) Submission Time (timestamp) GoHighLevel Setup Log into your GoHighLevel account. Generate an API key under settings. Store the key securely in n8n credentials. n8n Setup Import the workflow into your n8n instance. Update all node credentials (Google Sheets + GoHighLevel). Rename the Code node to Process Contact Data. Test the workflow with a sample form submission. Customization 🕒 Business Logic: Adjust duplicate detection rules (e.g., match on email only, or email + phone). 📑 Data Fields: Add more fields (e.g., industry, source, notes) and map them to GHL + Sheets. 📊 Reporting: Use the Duplicate Log Sheet for analytics, dashboards, or reporting pipelines. 🔔 Notifications: Add a Telegram or Slack node to notify your team when duplicates occur. Security Best Practices ❌ Do not hardcode your GoHighLevel API key. Use n8n credentials. ✅ Remove private sheet IDs and tokens before sharing workflows. ✅ Restrict credential access to authorized team members only. Requirements Google Sheets (form responses, master database, duplicate log) GoHighLevel (GHL) account with API access n8n instance (self-hosted or cloud) This workflow is perfect for: 🏢 Sales Teams managing growing lead databases 📈 Marketing Teams syncing form submissions with CRM ⚙️ Operations Teams preventing duplicate records 🚀 Businesses wanting a reliable, automated lead pipeline
by Ian Kerins
Overview This n8n template automates Walmart product discovery and sends clean results to Google Sheets on a fixed schedule (default: every 4 hours). It uses ScrapeOps Proxy API for resilient page fetches (with JS render + scroll) and ScrapeOps Parser API for structured data extraction (title, price, rating, reviews, image, URL, sponsored flag). The result is a repeatable, low-maintenance workflow for market research, price monitoring, and assortment tracking; ideal for ops and growth teams that need fresh data without babysitting scrapers. Who is this for? E-commerce operators** tracking price & inventory signals Market/competitive analysts** building price baskets and trend views Growth & SEO teams** validating product coverage and SERP facets No-code/low-code builders** who prefer visual pipelines over custom code What problems it solves Reliability:** Offloads JS rendering and scrolling to ScrapeOps to reduce breakage. Structure:** Normalizes fields for analysis-ready rows in Sheets. Scale:** Runs on a timer; no manual downloading or copy-paste. Speed to value:** Simple setup, minimal credentials, immediate output. How it works Schedule triggers every 4 hours. Keyword builds a Walmart search URL. ScrapeOps Proxy API fetches HTML (render + scroll). ScrapeOps Parser API extracts structured product fields. Validate & format rows; drop empties/bad prices. Append to Google Sheets for reporting/dashboards. (Optional) Slack posts a summary with your results link. Set up steps (~5–10 minutes) Google Sheets:* Duplicate the *template** and paste your link in the Google Sheets node. ScrapeOps API:* Get a free key *here* and add it under *Credentials → ScrapeOps API. See **docs. Keyword:* Update the search term in *Set Search Parameters**. (Optional) Configure the Slack node or remove it. Pre-conditions n8n instance running with outbound internet access. Google account with access to the destination Sheet. ScrapeOps account + API key with sufficient quota. Basic familiarity with editing node parameters in n8n. Disclaimer This template uses ScrapeOps as a community node. You are responsible for complying with Walmart’s Terms of Use, robots directives, and applicable laws in your jurisdiction. Scraping targets may change at any time; adjust render/scroll/wait settings and parsers as needed. Use responsibly for legitimate business purposes.
by Gaetano Abbaticchio
Automatically monitor billable Kimai projects every weekday morning and receive a formatted HTML email when a project deadline is approaching or its hour budget is running low. If nothing requires attention, no email is sent keeping your inbox clean and focused. Who it's for Teams and freelancers using Kimai to track billable hours who want to stay on top of project deadlines and budget consumption without checking manually every day. Particularly useful for agencies managing multiple concurrent projects with fixed-hour contracts or purchase orders with expiry dates. How it works The workflow runs Monday–Friday at 9 AM via a Schedule Trigger. It fetches all visible billable projects from Kimai, then, in parallel, retrieves full project details (end date, time budget, customer name) and all timesheet records for each project. Total logged hours are calculated and merged with project data. Each project is then evaluated: it gets flagged if its end date falls within the next 10 days, or if logged hours have exceeded 80% of the allocated budget. Flagged projects are assigned a color-coded urgency level (expired, urgent, warning, on track, or missing data) and sorted by days remaining. A rich HTML email is generated with one card per project, showing the deadline status and a visual progress bar for hour consumption. The email is sent only if at least one project qualifies, otherwise the workflow exits silently. How to set up Add your Kimai Bearer Token as an HTTP Bearer Auth credential in n8n Add your SMTP credentials for outgoing email Replace https://kimai with your actual Kimai instance URL in the three HTTP Request nodes and in the email button link inside the Build Email HTML - Report node Update fromEmail and toEmail in the Send an Email node Requirements Self-hosted or cloud Kimai instance with API access Kimai service account Bearer Token SMTP account for outgoing email How to customize | What | Where | |---|---| | Days threshold (default: 10) | Calculate expiration → line 1 | | Budget alert % (default: 80%) | Calculate expiration → getBudgetInfo() | | Schedule | Every Day at 9:00 trigger node | | Sender / recipient email | Send an Email node |