by Kees Bosch - Browserflow
Automate LinkedIn Company Page Growth End-to-End ⚠️ Important — Start Here Before importing this template, make a personal copy of the provided Google Sheets template. This workflow is designed to work out of the box with that sheet. Growing a LinkedIn Company Page usually requires time, consistency, and manual outreach. With Browserflow + n8n, you can turn the entire process into a hands-off LinkedIn growth engine. This template automates everything from: Scraping LinkedIn engagement Sending connection invites Tracking acceptance Inviting new connections to follow your company page All activity is logged, deduplicated, and fully automated. ⚠️ Disclaimer – Community Node Notice This template uses a verified community node available inside the n8n Cloud environment. To use it: Go to Nodes Search for Browserflow for Linkedin Click Install If you are running n8n locally: Go to Settings → Community Nodes Search for n8n-nodes-browserflow Install and restart n8n 📦 Requirements To use this template, you need: n8n (Cloud or self-hosted) Installed community node: Browserflow for Linkedin An account for Browserflow (7-day free trial)) LinkedIn account A copy of the Google Sheets template ⚙️ Setup Instructions Make a copy of the provided Google Sheets template Import the n8n template into your n8n workflow Create an account with Browserflow (7-day free trial)) Reconnect credentials: Google Sheets Browserflow (API key via credentials) (Optional) Adjust schedule intervals if needed Add your Company Page URL in the final workflow That’s it — no column mapping required if you use the sheet as provided. 🤖 Tip – Quickly Switch to Your Own Google Sheet Using n8n AI (Beta) If you already imported the workflow and want to swap the Google Sheet later, you can use the n8n AI assistant (beta). Paste this prompt (replace the URL): I would like to change all my google sheets integrations to use the following sheet instead: ** It has the exact same sheets and tables and fields The AI will update all Google Sheets nodes automatically. 🧩 What This Template Does This template consists of four connected workflows, each represented with sticky notes inside n8n. 🔍 Step 1 – Retrieve Leads from LinkedIn Post Engagement This workflow scrapes users who engage with LinkedIn posts and stores them in Google Sheets. Workflow actions: Fetch LinkedIn post URLs from Google Sheets Scrape: Commenters (Optional) Likers Split results into individual profiles Filter invalid or duplicate profiles Append new leads to Google Sheets Mark posts as “scraped” to prevent reprocessing 🤝 Step 2 – Send LinkedIn Connection Invites Automatically This workflow sends connection requests to new leads on a schedule. Workflow actions: Schedule trigger (e.g. every 10 minutes) Fetch leads not yet invited Check connection status: ❌ Not connected → Send invite ⏳ Pending → Mark as pending ✅ Connected → Mark as connected Update Google Sheets with status + timestamp 🔄 Step 3 – Track Connection Acceptance This workflow keeps your lead sheet accurate by tracking accepted invitations. Workflow actions: Scheduled trigger Fetch recent LinkedIn connections via Browserflow Match profiles with Google Sheets Update: Connection status Acceptance timestamp ⭐ Step 4 – Invite Connections to Follow Your Company Page Once someone accepts your connection request, this workflow invites them to follow your Company Page. Workflow actions: Fetch connected leads from Google Sheets Filter: Connected Not yet invited to follow Use Browserflow to: Visit your LinkedIn Connections page Send “Invite to Follow Page” action Update follow-invite status in Google Sheets Important configuration: Enter your Company Page URL You must be Admin of the page 📊 Final Result – Your Automated LinkedIn Growth Engine After setup, you get: 🔍 Automated lead scraping from niche engagement 🤝 Automated LinkedIn connection requests 🔄 Automatic acceptance tracking ⭐ Automated Company Page follow invites 📊 Centralized Google Sheets dashboard This system saves hours every week and turns every new connection into a Company Page follower — with zero manual work. 🚀 Need Help? If you need help customizing or extending this automation, feel free to reach out. Happy automating! 🚀
by Black Swamp AI
Quick Overview This workflow runs manually or daily to sync a StudioCMS integration catalog from GitHub by reading each matching repository’s README, package.json, and latest release, then safely creating or updating one deterministic StudioCMS page per integration while reporting conflicts, warnings, and proposed changes. How it works Runs manually or every day at 06:00 and validates the catalog configuration (GitHub org, repo prefix, folder name, slug prefix, and preview mode). Looks up the target StudioCMS folder by name and creates it only when preview mode is disabled, otherwise reporting that it would be created. Loads existing StudioCMS pages once, lists repositories in the GitHub organization, and filters to non-fork repos that match the configured repository name prefix. Processes repositories sequentially and reads each repository’s README.md, package.json, and latest GitHub release. Builds a standardized Markdown catalog page (with ownership marker and source digest) including install instructions, links, supported operations, and release notes, and marks archived repos as drafts. Creates, updates, or skips the StudioCMS page based on exact slug matching and ownership checks, and records conflicts without overwriting unowned pages. Compiles a final report summarizing created/updated/unchanged items, preview-only actions, warnings, conflicts, and errors. Setup Add GitHub API credentials with access to list the target organization’s repositories and read repository files and releases. Add StudioCMS API credentials with permission to read, create, and update folders and pages. Update the configuration values (GitHub organization, repository prefix, StudioCMS folder name, slug prefix, and max repositories) to match your catalog. Keep previewOnly set to true for the first run, review the report for conflicts and warnings, then set previewOnly to false to allow writes. Ensure the StudioCMS site does not already contain unrelated pages using the same slugs, or adjust the slug prefix/ownership marker to avoid conflicts.
by Isbat Raihan
Quick overview A configurable ETL pipeline and data sync tool for Oracle database replication and data integration. On a schedule, it finds only the rows changed since the last run — an incremental sync — adjusts them if needed, and updates the target to match. It moves just the changes, not everything. How it works Runs every 30 seconds on a schedule. Loads a configuration that defines the batch size and the list of source and target Oracle tables to sync. Splits the configuration into one item per table and reads the last saved watermark for each table from workflow static data. For each table, queries the Oracle Database for rows with a watermark column value greater than the saved watermark, ordered by the watermark and limited to the configured batch size. Builds an Oracle MERGE (upsert) SQL statement from the fetched rows and calculates the new maximum watermark from the returned data. Executes the MERGE against the target Oracle table to insert new rows and update existing rows by primary key. After a successful merge, stores the new per-table watermark in workflow static data and continues to the next table. Setup Create and select an Oracle Database credential for the source and target connections (use two credentials if source and target are different databases). Update the table mapping in the configuration to match your environment (source table name, target table name, primary key column, and watermark column). Ensure each source table has a DATE/TIMESTAMP watermark column that is updated on changes and that the target tables exist with matching column names. Adjust the batch size and schedule interval as needed, then activate the workflow so the schedule trigger runs. Requirements Oracle Database credentials: Configure an Oracle Database credential in n8n for the source. If the target is a different database, configure a second credential for it. Watermark column: Each source table needs a reliably increasing DATE/TIMESTAMP column (e.g. UPDATED_AT) — a trigger that stamps it on insert/update works well. Matching schema: Source and target tables should share the same column names, and each table needs a primary key plus at least one non-key column. Additional info Instructions Add your Oracle Database credentials to the Extract Changes (source) and Load & Merge (target) nodes. In the Config node, set batchSize and list your tables (name, targetName, watermarkColumn, pkColumn). Add any column mapping or type casting you need in the Build Merge (transform) node. Activate the workflow. It will begin polling on the schedule and sync changed rows into the target. Test on one small table first, then widen the table list once you've confirmed rows propagate correctly. Use Case Ideal for teams that need to keep a reporting, analytics, or replica Oracle database current from a live source without standing up dedicated CDC tooling — incremental, multi-table replication driven entirely from n8n. Note: This is polling-based, so latency roughly equals the schedule interval. Hard deletes in the source are not propagated (use a soft-delete flag column if you need them). The sync cursor is stored in workflow static data, which resets if the workflow is re-imported — for production, persist watermarks in a dedicated control table instead. Nodes in Use Every 30s (Schedule Trigger): Runs the pipeline on a fixed interval. Config (Code): Central settings — batchSize and the list of tables to sync. Fan Out Tables (Code): Emits one item per table and attaches each table's last watermark from stored state. Loop Over Tables (Loop Over Items): Processes tables one at a time. Extract Changes (Oracle Database): Selects rows changed since the watermark from the source table. Build Merge (Code): Transform stage — shapes the rows and assembles the Oracle MERGE statement. Load & Merge (Oracle Database): Executes the upsert against the target table. Advance Watermark (Code): Persists the new high-water-mark for the table after a successful load. Cycle Done (No Operation): Marks the end of a full pass over all tables.
by Ossian Madisson
This n8n template allows you to, on a schedule, list all files that have been modified since the last execution in a Google Drive folder and in all its subfolders While Google Drive is accessible and easy to use, file listings via API are limited to either all files in the entire Drive or all files in a specific folder. This also means that the n8n triggers for Google Drive are limited to changes to a specific file or folder. This template is built to replace the built-in trigger nodes in the situations when you need to trigger on new or changed files in a folder or any of its subfolders. Use cases Trigger a RAG pipeline to update with new or updated documents Push newly uploaded or updated documents into CMS, project management tool or other external platform Log changes to build an audit trail Trigger a backup job or sync process only for files that have changed since the last run, saving bandwidth and processing time. Notify team or client about new documents Can also be run without the scheduling part to perform a one-time iteration of all files Good to know Works well if you attach a loop node to the "output node" to run additional actions on the files The workflow is designed to use a minimal amount of custom code, preferring built-in nodes in n8n Does not identify file removals How it works Recursively executes a subworkflow for each folder in the main folder Each subworkflow execution sends a list of all files in the folder to an "output node" that checks if the files was created or modified since the last execution When all subworkflows have been executed, the files in the main folder are sent to the "output node" A persistent variable (time of trigger node activation) is set for timestamp comparison on the next execution (this is only set on non-manually triggered active workflow executions) How to use Set schedule interval in the trigger node (default every 60min) Add Google Drive credentials to the four Google Drive nodes Define your main/root folder in the two nodes inside the red box Connect your workflow to process the files after the node in the yellow box, please note that there will be "one output" per folder
by Jitesh Dugar
Streamline your clinic's operations with a fully automated patient communication system. This workflow manages the entire appointment lifecycle—from automated morning reminders to real-time confirmations and self-service rescheduling—all through WhatsApp using WATI and Google Sheets. 🎯 What This Workflow Does Turns WhatsApp into a 24/7 automated medical receptionist: 📝 Automated Reminder Dispatch A scheduled trigger runs daily at 9 AM to identify upcoming appointments and send personalized WhatsApp reminders. 🚦 Smart Patient Routing A Switch node detects patient replies and triggers the correct operational path: confirm: Marks the appointment as confirmed in the database. cancel: Updates the status to cancelled and alerts the clinic. reschedule: Initiates the automated slot-selection flow. myappointment: Provides the patient with their full booking history. 👁️ Self-Service Rescheduling The bot reads available time slots from Google Sheets, presents them as a numbered list, and handles the booking update automatically once a patient picks a slot. 📊 Live Database Synchronization Every action—confirmation, cancellation, or time change—is instantly updated in Google Sheets, ensuring the clinic staff always sees the latest status. ✨ Key Features Morning "Pulse" Check:** Automatically filters today’s and tomorrow’s appointments to ensure high attendance rates. Slot Memory:** Uses a "Reschedule Session" tab to maintain chat context, allowing patients to simply type slot 2 to rebook. Visual Appointment Cards:** Sends patients a clean summary of their upcoming and past visits with status emojis (✅, ⏳, 🔁). Admin Alerting (Optional):** Built-in logic to notify doctors or administrators via WhatsApp for any schedule changes. Zero-Friction Updates:** Patients manage their bookings without downloading an app or calling the front desk. 💼 Perfect For Medical Clinics:** Reducing "no-shows" with automated 24-hour reminders. Dental Practices:** Allowing patients to easily reschedule cleanings via chat. Wellness & Spas:** Managing therapist availability and booking confirmations. Professional Services:** Automating client reminders for consultations or coaching sessions. 🔧 What You'll Need Required Integrations WATI** – To trigger reminders and receive patient responses. Google Sheets** – To serve as the master database for appointments and available slots. Optional Customizations Google Calendar Sync:** Although current logic is Sheets-based, you can add nodes to sync these updates to a visual doctor's calendar. AI Triage:** Add an OpenAI node to understand patient questions that fall outside of standard commands. 🚀 Quick Start Import Template – Copy the JSON and import it into your n8n instance. Set Credentials – Connect your WATI and Google Sheets accounts. Configure Sheets – Ensure your Google Sheet has three tabs: Appointments: appointmentId, phone, patientName, doctorName, appointmentDate, appointmentTime, clinicName, status AvailableSlots: slotId, date, time, doctorName, status RescheduleSessions: phone, slotsData, createdAt Test the Flow – Add a test row to your sheet and manually trigger the 9 AM node. Simulate a Reply – Reply confirm or reschedule to your WATI number to see the database update live. 🎨 Customization Options Urgency Tags:** The workflow automatically flags appointments happening TODAY in red for higher visibility. Doctor Specificity:** Filter slot availability by specific doctor names if your clinic has multiple practitioners. Flexible Matching:** Uses phone number matching to ensure patients only see and edit their own private records. 📈 Expected Results 30–50% reduction in appointment "no-shows" through proactive reminders. Faster re-booking: Cancellations are instantly replaced by rescheduling requests. Staff efficiency: Front desk spends less time on the phone and more time on patient care. Accurate records: Eliminates manual data entry errors by having the patient confirm their own status. 🏆 Use Cases High-Volume Clinics A multi-doctor clinic sends 100+ reminders every morning; patients confirm via chat, and the staff arrives to a perfectly updated "Confirmed" list in Sheets. Out-of-Hours Rebooking A patient realizes at 10 PM they can’t make it; they type reschedule and pick a new time for next week without waiting for the clinic to open. Booking Verification A patient forgets their visit time and simply types myappointment to receive an instant digital summary card. 💡 Pro Tips International Formats:** Always ensure phone numbers in your Sheets include the country code for reliable WATI delivery. Slot Maintenance:** Keep your AvailableSlots tab updated with future dates to ensure the bot always has options to offer. Status Check:** If the bot doesn't respond, ensure the WATI Trigger node is active and the webhook URL is correctly registered in your WATI dashboard. Ready to automate your clinic's schedule? Import this template and connect your Google Sheets to start reducing no-shows today!
by David Olusola
🚀 Automated Lead Management: Google Sheets → Instantly + n8n Data Tables 📋 Overview This workflow automates lead management by syncing data from Google Sheets to Instantly email campaigns while maintaining tracking through n8n Data Tables. It processes leads in batches to avoid rate limits and ensures no duplicates are sent. ⚙️ Complete Setup Guide 1️⃣ Create Your Google Sheet Option A: Use Our Template (Recommended) Copy this template with test data: Google Sheets Template Click File → Make a copy to create your own version Populate with your lead data Option B: Create Your Own Create a Google Sheet with these required columns: Firstname - Contact's first name Email - Contact's email address Website - Company website URL Company - Company name Title - Job title/position 💡 Pro Tip: Add as many leads as you want - the workflow handles batching automatically! 2️⃣ Set Up n8n Data Table The workflow uses one Data Table to track leads and their sync status. Create the "Leads" Data Table: In your n8n workflow editor, add a Data Table node Click "Create New Data Table" Name it: Leads Add the following columns: | Column Name | Type | Purpose | |------------|------|---------| | Firstname | string | Contact's first name | | Lastname | string | Contact's last name | | email | string | Contact's email (unique identifier) | | website | string | Company website | | company | string | Company name | | title | string | Job title | | campaign | string | Sync status (e.g., "start", "added to instantly") | | focusarea | string | Enriched data from Title field | Click Save 📌 Important: The campaign field is crucial - it tracks which leads have been synced to prevent duplicates! 3️⃣ Connect Your Google Sheets Account In the "Get row(s) in sheet" node, click "Create New Credential" Select Google Sheets OAuth2 API Follow the OAuth flow: Sign in with your Google account Grant n8n permission to access your sheets Select your spreadsheet from the dropdown Choose the correct sheet name (e.g., "instantly leads") Test the connection to verify it works 4️⃣ Connect Your Instantly Account Go to Instantly.ai and log in Navigate to Settings → API Copy your API Key Back in n8n, open the "Create a lead" node Click "Create New Credential" Select Instantly API Paste your API key Important: Update the campaign ID: Current ID: 100fa5a2-3ed0-4f12-967c-b2cc4a07c3e8 (example) Replace with your actual campaign ID from Instantly Find this in Instantly under Campaigns → Your Campaign → Settings 5️⃣ Configure the Data Table Nodes You'll need to update three Data Table nodes to point to your newly created "Leads" table: Node 1: "Get row(s)" Operation: Get Data Table: Select Leads Filter: campaign = "start" This fetches only new, unsynced leads Node 2: "Update row(s)1" (Top Flow) Operation: Update Data Table: Select Leads Filter: Match by email field Update: Set focusarea to Title value This enriches lead data Node 3: "Update row(s)" (Bottom Flow) Operation: Update Data Table: Select Leads Filter: Match by Email field Update: Set campaign = "added to instantly" This prevents duplicate sends 6️⃣ Configure the Schedule (Optional) The workflow includes a Schedule Trigger for automation: Default: Runs every hour To customize: Click the "Schedule Trigger" node Choose your interval: Every 30 minutes Every 2 hours Daily at specific time Custom cron expression 💡 For testing: Use the "When clicking 'Execute workflow'" manual trigger instead! 🔄 How It Works Flow 1: Data Transfer (Top Path) This flow moves leads from Google Sheets → n8n Data Table Manual Trigger → Get Google Sheets → Batch Split (30) → Update Data Table → Loop Step-by-step: Manual Trigger - Click to start the workflow manually Get row(s) in sheet - Fetches ALL leads from your Google Sheet Loop Over Items - Splits into batches of 30 leads Update row(s)1 - For each lead: Searches Data Table by email Updates or creates the lead record Stores Title → focusarea for enrichment Loop continues - Processes next batch until all leads transferred ⚙️ Why 30 at a time? Prevents API timeouts Respects rate limits Allows monitoring of progress Can be adjusted in the node settings Flow 2: Instantly Sync (Bottom Path) This flow syncs qualified leads from Data Table → Instantly Schedule Trigger → Get Data Table (filtered) → Individual Loop → Create in Instantly → Update Status Step-by-step: Schedule Trigger - Runs automatically (every hour by default) Get row(s) - Queries Data Table for leads where campaign = "start" Only fetches NEW, unsynced leads Ignores leads already processed Loop Over Items1 - Processes ONE lead at a time Create a lead - Sends lead to Instantly: Campaign: "Launchday 1" Maps: Email, Firstname, Company, Website Adds to email sequence Update row(s) - Updates Data Table: Sets campaign = "added to instantly" Prevents duplicate sends on next run Loop continues - Next lead until all processed 🔍 Why one at a time? Instantly API works best with individual requests Ensures accurate status tracking Prevents partial failures Better error handling per lead ✅ Key Features Explained Batch Processing Processes 30 Google Sheet leads at once Configurable in Loop Over Items node Prevents timeouts on large datasets Duplicate Prevention Uses campaign field as status tracker Only syncs leads where campaign = "start" Updates to "added to instantly" after sync Re-running workflow won't create duplicates Data Enrichment Stores job title in focusarea field Can be used for personalization later Extensible for additional enrichment Two-Trigger System Manual Trigger**: For testing and one-time runs Schedule Trigger**: For automated hourly syncs Both triggers use the same logic Error Tolerance Individual lead processing prevents cascade failures One failed lead won't stop the entire batch Easy to identify and fix problematic records 🧪 Testing Your Workflow Step 1: Test Data Transfer (Flow 1) Add 5 test leads to your Google Sheet Click the Manual Trigger node Click "Execute Node" Check your Leads Data Table - should see 5 new rows Verify focusarea field has data from Title column Step 2: Test Instantly Sync (Flow 2) In Data Table, ensure at least one lead has campaign = "start" Click the Schedule Trigger node Click "Execute Node" (bypasses schedule for testing) Check Instantly dashboard - should see new lead(s) Check Data Table - campaign should update to "added to instantly" Step 3: Test Duplicate Prevention Re-run the Schedule Trigger No new leads should be created in Instantly Data Table shows no changes (already marked as synced) 🚨 Troubleshooting Issue: Google Sheets not fetching data ✅ Check OAuth credentials are valid ✅ Verify spreadsheet ID in node settings ✅ Ensure sheet name matches exactly ✅ Check Google Sheet has data Issue: Data Table not updating ✅ Verify Data Table exists and is named "Leads" ✅ Check column names match exactly (case-sensitive) ✅ Ensure email field is populated (used for matching) Issue: Instantly not receiving leads ✅ Verify Instantly API key is correct ✅ Update campaign ID to your actual campaign ✅ Check campaign = "start" in Data Table ✅ Verify email format is valid Issue: Workflow runs but nothing happens ✅ Check if Data Table has leads with campaign = "start" ✅ Verify loop nodes aren't stuck (check execution logs) ✅ Ensure batch size isn't set to 0 💡 Pro Tips & Best Practices For Beginners: Start small - Test with 5-10 leads first Use manual trigger - Don't enable schedule until tested Check each node - Execute nodes individually to debug Monitor Data Table - Use it as your source of truth Keep backups - Export Data Table regularly For Optimization: Adjust batch size - Increase to 50-100 for large datasets Add delays - Insert "Wait" nodes if hitting rate limits Filter in Google Sheets - Only fetch new rows (use formulas) Archive old leads - Move synced leads to separate table Add error notifications - Connect Slack/email for failures For Scaling: Use multiple campaigns - Add campaign selection logic Implement retry logic - Add "IF" nodes to retry failed syncs Add data validation - Check email format before syncing Log everything - Add "Set" nodes to track execution details Monitor API usage - Track Instantly API quota 📊 Expected Results After Setup: ✅ Google Sheets connected and fetching data ✅ Data Table populated with lead information ✅ Instantly receiving leads automatically ✅ No duplicate sends occurring ✅ Campaign status updating correctly Performance Metrics: 100 leads** - Processes in ~5-10 seconds 1000 leads** - Processes in ~15-20 seconds Instantly API** - 1 lead per second typical speed Schedule runs** - Every hour by default 📬 Need Help? Customization Services: Advanced filtering and segmentation Multi-campaign management Custom field mapping and enrichment Webhook integrations for real-time sync Error handling and monitoring setup Scale to 10K+ leads per day Contact: 📧 david@daexai.com 🎥 Watch Full Tutorial 🎓 What You'll Learn By setting up this workflow, you'll master: ✅ n8n Data Tables - Creating, querying, and updating data ✅ Batch Processing - Handling large datasets efficiently ✅ API Integrations - Connecting Google Sheets and Instantly ✅ Workflow Logic - Building complex multi-path automations ✅ Error Prevention - Implementing duplicate checking ✅ Scheduling - Automating workflows with triggers Happy Flogramming! 🎉
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,