by emmanuelchilaka779
Gather leads into Mailchimp, automate marketing, and sales process.
by ZeroBounce
Form.io to Pipedrive: Advanced ZeroBounce Lead Vetting This workflow automates the transition of new Form.io submissions into Pipedrive, using ZeroBounce for multi-layer validation (Validation + AI Scoring). Results are also output to Google Sheets for review. ๐ How it Works โก Trigger & Verification: Activates on new Form.io submissions and first checks if an email address is provided. Email present: Proceeds to credit check and validation Email missing: Customer details are added to Rejected output for review with reason 'Email missing'. ๐ณ Credit Management: Before each ZeroBounce call, the workflow checks your account for sufficient credits to prevent node failures. Success: Proceeds to Stage 1 (Validation). Failure: Customer details are added to Rejected output for retry with reason 'Not enough credits'. โ๏ธ Stage 1: Email Validation: Validates the email address with ZeroBounce. Valid: Adds the result to Accepted output and creates a person in Pipedrive. Invalid: Logs to a Google Sheet with the validation results and a reason for rejection for review. Catch-all: Proceeds to Stage 2 (Scoring). ๐ฏ Stage 2: AI Email Scoring: For "Catch-all" emails, the workflow requests ZeroBounce AI Scoring. High Score (>=9): Syncs to Pipedrive. Medium/Low Score: Suppressed and added to a Google Sheet with the assigned score for review. ๐ค Output Results: Accepted: Output validation and scoring results to Accepted and Pipedrive Rejected Output validation and scoring results to Rejected. ๐ก Key Benefits โจ Zero-Waste Sync:** Only "Valid" or "High-Scoring" leads reach your CRM. ๐ก๏ธ Credit Safety:** Internal checks ensure you never trigger an API call without credits. ๐ Detailed Suppressions:** Every rejected lead is categorized by reason (e.g. Email Missing, Invalid, Low Score, or Insufficient credits). ๐งฉ Nodes used in this workflow ZeroBounce Form.io Trigger Pipedrive Google Sheets (or alternative e.g. Data Table) ๐ Setup Requirements Form.io:** Connect via credentials to receive "Form Submission" events. ZeroBounce:* Connect via API Key. *Create one here. Pipedrive:** Connect via API Key to create/update people for high-quality leads. Google Sheets:* Connect via OAuth2 to append/update rows in a Google Sheets worksheet. Alternatively, swap these nodes out with any other data storage node e.g. *n8n Data Table* or *Microsoft Excel**. The sheets/tables can be created with the headers: Accepted columns: Email,Name,Accepted At,Accepted Reason,ZB Status,ZB Sub Status,ZB Free Email,ZB Did You Mean,ZB Account,ZB Domain,ZB Domain Age Days,ZB SMTP Provider,ZB MX Found,ZB MX Record,ZB Score Rejected columns Email,Name,Rejected At,Rejected Reason,ZB Status,ZB Sub Status,ZB Free Email,ZB Did You Mean,ZB Account,ZB Domain,ZB Domain Age Days,ZB SMTP Provider,ZB MX Found,ZB MX Record,ZB Score
by Asraful Attare
Whoโs it for This workflow is built for sales and marketing teams who collect Facebook Lead Ads into Google Sheets and want to automatically sync those leads into Perfex CRM without manual data entry or duplicate records. What it does The workflow checks Google Sheets for new rows where lead_status is marked as CREATED. For each lead, it searches Perfex CRM using the email address via the Rest API module for the Perfex CRM plugin. If the lead already exists, the workflow updates the sheet with a clickable CRM link and marks the row as ADDED. If the lead does not exist, it creates a new lead in Perfex CRM through the REST API and then updates the sheet accordingly. This ensures your CRM stays up to date while preventing duplicate lead creation. How it works A scheduled trigger runs the workflow. Google Sheets retrieves leads with status CREATED. The workflow searches Perfex CRM using the REST API. If found โ update Sheet. If not found โ create lead in CRM. The sheet is updated with the CRM record link. Requirements Google Sheets account Perfex CRM Rest API module for the Perfex CRM plugin enabled API token configured in n8n credentials (do not hardcode it) How to customize You can modify the lead field mappings, assign leads to different staff members, add tags, or adjust the schedule interval and batch size depending on your lead volume. Support / Contact If you need help setting up or customizing this workflow, feel free to reach out: Email: asrafulattare@aftie.eu WhatsApp: +1 (760) 933-7005 (WhatsApp only)
by Marth
How It Works: The 5-Node Security Flow This workflow efficiently performs a scheduled file integrity audit. 1. Scheduled Check (Cron Node) This is the workflow's trigger. It schedules the workflow to run at a specific, regular interval. Function:** Continuously runs on a set schedule, for example, daily at 3:00 AM. Process:** The Cron node automatically initiates the workflow on its schedule, ensuring consistent file integrity checks without manual intervention. 2. List Files & Checksums (Code Node) This node acts as your static database, defining which files to monitor and their known-good checksums. Function:** Stores the file paths and their verified checksums in a single, easy-to-update array. Process:** It configures the file paths and their valid checksums, which are then passed on to subsequent nodes for processing. 3. Get Remote File Checksum (SSH Node) This node connects to your remote server to get the current checksum of the file being monitored. Function:** Executes a command on your server via SSH. Process:** It runs a command like sha256sum /path/to/file on the server. The current checksum is then captured and passed to the next node for comparison. 4. Checksums Match? (If Node) This is the core detection logic. It compares the newly retrieved checksum from the server with the known-good checksum you stored. Function:** Compares the two checksum values. Process:* If the checksums *do not match**, it indicates a change in the file, and the workflow is routed to the notification node. If they do match, the workflow ends safely. 5. Send Alert (Slack Node) / End Workflow (No-Op Node) These nodes represent the final action of the workflow. Function:** Responds to a detected file change. Process:* If the checksums don't match, the *Slack* node sends a detailed alert with information about the modified file, the expected checksum, and the detected checksum. If the checksums match, the *No-Op** node ends the workflow without any notification. How to Set Up Implementing this essential cybersecurity monitor in your n8n instance is quick and straightforward. 1. Prepare Your Credentials & Server Before building the workflow, ensure all necessary accounts are set up and their credentials are ready. SSH Credential:* Set up an *SSH credential** in n8n with your server's hostname, port, and authentication method (e.g., private key or password). The SSH user must have permission to run sha256sum on the files you want to monitor. Slack Credential:* Set up a *Slack credential* in n8n and note the *Channel ID** of your security alert channel (e.g., #security-alerts). Get Checksums:* *This is a critical step.** Manually run the sha256sum [file_path] command on your server for each file you want to monitor. Copy and save the generated checksum valuesโthese are the "known-good" checksums you will use as your reference. 2. Import the Workflow JSON Get the workflow structure into your n8n instance. Import:** In your n8n instance, navigate to the "Workflows" section. Click the "New" or "+" icon, then select "Import from JSON." Paste the provided JSON code into the import dialog and import the workflow. 3. Configure the Nodes Customize the imported workflow to fit your specific monitoring needs. Scheduled Check (Cron):** Set the schedule according to your preference (e.g., daily at 3:00 AM). List Files & Checksums (Code):* Open this node and *edit the filesToCheck array**. Enter your actual server file paths and paste the "known-good" checksums you manually obtained in step 1. Get Remote File Checksum (SSH):* Select your *SSH credential**. Send Alert (Slack):* Select your *Slack credential* and replace YOUR_SECURITY_ALERT_CHANNEL_ID with your actual *Channel ID**. 4. Test and Activate Verify that your workflow is working correctly before setting it live. Manual Test:** Run the workflow manually. Verify that it connects to the server and checks the files without sending an alert (assuming the files haven't changed). Verify:** To test the alert, manually change one of the files on your server and run the workflow again. Check your Slack channel to ensure the alert is sent correctly. Activate:** Once you're confident in its function, activate the workflow. n8n will now automatically audit the integrity of your critical files on the schedule you set.
by Afigo Sam
๐ What this workflow does This workflow automatically scans your Dropbox for .png files and deletes any that are older than 48 hours, helping you keep your storage clean and organized without manual effort. Itโs ideal for workflows that generate temporary files such as AI images, exports, or cached assets. โ๏ธ How it works Schedule Trigger Runs every 2 days to perform automated cleanup Search Dropbox Files Retrieves all .png files from your Dropbox account Filter Files (Code Node) Keeps only files that: Are older than 48 hours Match the .png format Are not in excluded paths Are not protected filenames Loop Over Items Processes files in batches to avoid API rate limits Delete Files Permanently removes the filtered files from Dropbox ๐งฉ Requirements n8n (cloud or self-hosted) Dropbox account Configured Dropbox OAuth2 credentials ๐ง Setup Import the workflow into n8n Connect your Dropbox OAuth2 credentials (Optional) Adjust the schedule trigger Test the workflow with sample files Activate the workflow ๐ Customization Change file age limit** Update the 48 hours logic inside the Code node Target different file types** Replace .png with .jpg, .mp4, etc. Exclude additional files/folders** Add paths or filenames to the exclusion list Adjust execution frequency** Run daily, hourly, or based on your workflow volume โ ๏ธ Important notes Files are permanently deleted (no recovery step included) Always test before enabling in production Ensure correct permissions in your Dropbox credentials ๐ก Use cases Clean up AI-generated images automatically Manage temporary automation files Prevent Dropbox storage overflow Maintain clean file systems for pipelines ๐ Summary This workflow provides a simple and reliable way to automate file cleanup in Dropbox. By combining scheduled execution with smart filtering, it helps you maintain an efficient and clutter-free storage system. ๐ Need help or want to customize this workflow? ๐บ Contact: Fiverr ๐ฉ Consultation: Book Appointment
by Monfort N. Brian | ๅฎไฟ
Title Monitor npm package downloads from Telegram with commands, weekly digests, milestone alerts,... Short description Track npm package adoption directly from Telegram. This workflow provides on-demand download stats, automated weekly and monthly reports, growth trends, and milestone alerts using the public npm Downloads API. What it does The workflow combines Telegram commands with scheduled reports to provide quick insights into package usage. Commands /downloads - all-time totals, sorted highest first /weekly - last 7 days per package /status - weekly and all-time combined /trending - this week vs last week /help - available commands Automated reports Weekly digest with package performance Monthly summary comparing usage trends Daily milestone checker that sends alerts when packages cross download thresholds Smart defaults: Typo-tolerant command matching via Levenshtein distance Slash optional, case insensitive Auto-discovers packages from npm registry - new packages appear without code changes Milestone check is silent on days with no crossings - zero noise
by amudhan
Companion workflow for Switch node docs
by Kidlat
This workflow automates the process of extracting and qualifying leads from LinkedIn post comments based on your Ideal Customer Profile (ICP) criteria. It turns LinkedIn engagement into a structured, downloadable list of qualified leadsโwithout manual review. Whoโs this for Sales and business development teams generating outbound lead lists Marketing teams running LinkedIn engagement campaigns Recruiters sourcing candidates with specific job titles Operators who want to convert LinkedIn comments into actionable data What problem does this solve Manually reviewing LinkedIn post comments to identify relevant prospects is slow, repetitive, and error-prone. This workflow automates the entire processโfrom scraping comments to enriching profiles and filtering by ICPโsaving hours of manual work and ensuring consistent results. What this workflow does Collects a LinkedIn post URL and ICP criteria via a form Scrapes post comments using Apify (supports up to 1,000 comments) Deduplicates commenters and enriches profiles with LinkedIn data Filters profiles by selected job titles and countries Exports matched leads as a downloadable CSV file How to set up Create an Apify account and generate an API key Add your Apify credentials in n8n (Settings โ Credentials โ Apify API) Execute the workflow and submit a LinkedIn post URL and ICP criteria Requirements Apify account with API access - Apify offers a free tier with $5 in monthly credits, which is enough to test this workflow on smaller LinkedIn posts How to customize the workflow Update job titles and target countries in the Form Trigger Increase pagination limits to support larger posts Replace CSV export with a CRM, Google Sheets, or database integration
by Robert Breen
๐งโ๐ป Description This workflow checks a Monday.com board/group for items with Status = "Stuck" and sends a Slack alert (e.g., to a user or channel). Great for nudging owners on blocked work without manual chasing. โ๏ธ Setup Instructions 1๏ธโฃ Connect Monday.com Node In Monday.com โ go to your Admin โ API Copy your Personal API Token Docs: Generate Monday API Token In n8n โ Credentials โ New โ Monday.com API Paste your token and save. Open the Get many items node โ choose your credential โ set your Board ID and Group ID (these must match where your items live). 2๏ธโฃ Connect Slack API Create an app โ https://api.slack.com/apps OAuth & Permissions โ add scopes: chat:write (send messages) channels:read, groups:read, users:read (to look up channels and users) Install the app to your workspace โ copy the Bot User OAuth Token In n8n โ Credentials โ New โ Slack OAuth2 API โ paste token and save In the Slack node (โAlert Teamโ), select your Slack credential and pick a user or channel. ๐ง How it works Get many items** (Monday.com): pulls items from your board/group Set Columns**: maps item fields (Name, Status, Due Date) Filter for Stuck Items**: keeps only items where Status = "Stuck" Alert Team** (Slack): posts a message like "<Item Name> task is stuck" โ Tips Adjust the Status column index/field mapping if your board uses a different column order or a custom status label. Point the Slack node to a channel (for team visibility) or a user (for direct nudges). Add a Schedule Trigger if you want automatic daily/weekly checks. ๐ฌ Contact Need help mapping custom columns or routing alerts by owner? ๐ง robert@ynteractive.com ๐ Robert Breen ๐ ynteractive.com
by David S
How it works ๐ Customer submits your Typeform โ instant personalised welcome SMS fires via Twilio ๐ Submission logged to Google Sheets with name, phone, timestamp, and nudge tracking ๐ฌ Twilio listens 24/7 for replies โ marks customer as responded, stops all future nudges โฐ Scheduler runs every 6 hours โ finds non-responders and sends up to 2 follow-up nudges ๐ System stops contacting anyone who replies or hits the 2-nudge limit The three branches | Branch | Trigger | What it does | |--------|---------|--------------| | ๐ข New Submission | Typeform form submit | Welcome SMS + log to Sheets | | ๐ต Reply Handler | Incoming Twilio SMS | Mark replied, stop nudges | | ๐ก Nudge Engine | Schedule every 6hrs | Nudge 1 at 24h, Nudge 2 at 48h | Why this matters | Metric | Manual | This workflow | |--------|--------|---------------| | โก Speed to lead | Hours or days | Under 10 seconds | | ๐ Follow-up consistency | Whoever remembers | 100% automated | | ๐ Lead drop-off | High โ people go cold fast | Nudges catch non-responders | | ๐ง Staff time per lead | 5โ15 min | Zero | | ๐ธ Revenue at risk | Every ignored inquiry | Recovered automatically | Studies show leads contacted within 5 minutes are 9x more likely to convert. This workflow makes that the default โ not the exception. What you need | Tool | Cost | Why | |------|------|-----| | Typeform | Free tier works | Intake/booking form | | Twilio | ~$1/mo + $0.0075/SMS | Send and receive SMS | | Google Sheets | Free | Track submissions and nudge state | โ ๏ธ A2P 10DLC notice: Twilio requires business registration for production SMS in the US. Allow 2-4 weeks. Your signup form needs opt-in language, terms, and a privacy policy. Set up steps Takes about 15 minutes Create a Google Sheet with columns: customerName ยท customerPhone ยท submittedAt ยท repliedAt ยท nudgeCount ยท lastNudgeAt Branch 1 โ connect Typeform, select your form, connect Twilio + Google Sheets Branch 2 โ connect Twilio trigger for inbound SMS, connect Google Sheets to mark replied Branch 3 โ connect Google Sheets to read non-responders, connect Twilio to send nudges Verify Typeform field names match the Extract node exactly (case-sensitive) Submit a test entry with your own phone, reply to it, confirm Sheets updates correctly Toggle workflow Active Learn more at SMB Excel
by khaled
What Problem Does It Solve? Keeping product data consistent between Shopify and Odoo is a major operational challenge. Manually creating new products in Odoo every time they are added to Shopify is slow and leads to Barcode errors. Prices and titles change frequently; failing to sync these updates results in pricing discrepancies and customer confusion. This workflow solves these issues by: Automatically creating a new product in Odoo as soon as it's added to Shopify. Ensuring Barcode uniqueness by checking for existing products before creation. Syncing product images directly from Shopify to Odoo. Real-time updating of product names and prices in Odoo whenever they change in Shopify. How to Configure It Shopify Setup Connect your Shopify account using OAuth2. The workflow uses two triggers: "products/create" and "products/update". Odoo Setup Connect your Odoo API credentials in n8n. Ensure your Shopify "Vendors" match the "Product Categories" names in Odoo for accurate automated mapping. Image Handling The workflow automatically downloads the first image from Shopify and converts it to the format required by Odoo's "image_1920" field. How It Works Product Creation Path: Shopify triggers the "Product Created" node. The workflow checks Odoo for an existing product with the same Barcode. If not found, it retrieves the Odoo Category ID based on the Shopify Vendor name. It downloads the product image, extracts the file content, and creates the item in Odoo. Product Update Path: Shopify triggers the "Product Updated" node. The workflow finds the corresponding product in Odoo by Barcode. It instantly updates the Odoo record with the new Title and List Price from Shopify. Customization Ideas Add logic to sync "Inventory Levels" so Shopify and Odoo share the same stock count. Map multiple variants (Sizes/Colors) from Shopify to Odoo Product Variants. Integrate with a notification system to alert you if a Shopify Vendor doesn't have a matching Category in Odoo. For more info Contact Me
by Antonio Gasso
Overview Stop manually creating folder structures for every new client or project. This workflow provides a simple form where users enter a name, and automatically duplicates your template folder structure in Google Driveโreplacing all placeholders with the submitted name. What This Workflow Does Displays a form where users enter a name (client, project, event, etc.) Creates a new main folder in Google Drive Calls Google Apps Script to duplicate your entire template structure Replaces all {{NAME}} placeholders in files and folder names Key Features Simple form interface** โ No technical knowledge required to use Recursive duplication** โ Copies all subfolders and files Smart placeholders** โ Automatically replaces {{NAME}} everywhere Production-ready** โ Works immediately after setup Prerequisites Google Drive account with OAuth2 credentials in n8n Google Apps Script deployment (code below) Template folder in Drive using {{NAME}} as placeholder Setup Step 1: Create your template folder ๐ {{NAME}} - Project Files โโโ ๐ 01. {{NAME}} - Documents โโโ ๐ 02. {{NAME}} - Assets โโโ ๐ 03. Deliverables โโโ ๐ {{NAME}} - Brief.gdoc Step 2: Deploy Apps Script Go to script.google.com Create new project โ Paste code below Deploy โ New deployment โ Web app Execute as: Me | Access: Anyone Copy the deployment URL Step 3: Configure workflow Replace these placeholders: DESTINATION_PARENT_FOLDER_ID โ Where new folders are created YOUR_APPS_SCRIPT_URL โ URL from Step 2 YOUR_TEMPLATE_FOLDER_ID โ Folder to duplicate Step 4: Test Activate workflow โ Open form URL โ Submit a name โ Check Drive! Apps Script Code function doPost(e) { try { var params = e.parameter; var templateFolderId = params.templateFolderId; var name = params.name; var destinationFolderId = params.destinationFolderId; if (!templateFolderId || !name) { return jsonResponse({ success: false, error: 'Missing required parameters: templateFolderId and name are required' }); } var templateFolder = DriveApp.getFolderById(templateFolderId); if (destinationFolderId) { var destinationFolder = DriveApp.getFolderById(destinationFolderId); copyContentsRecursively(templateFolder, destinationFolder, name); return jsonResponse({ success: true, id: destinationFolder.getId(), url: destinationFolder.getUrl(), name: destinationFolder.getName(), mode: 'copied_to_existing', timestamp: new Date().toISOString() }); } else { var parentFolder = templateFolder.getParents().next(); var newFolderName = replacePlaceholders(templateFolder.getName(), name); var newFolder = parentFolder.createFolder(newFolderName); copyContentsRecursively(templateFolder, newFolder, name); return jsonResponse({ success: true, id: newFolder.getId(), url: newFolder.getUrl(), name: newFolder.getName(), mode: 'created_new', timestamp: new Date().toISOString() }); } } catch (error) { return jsonResponse({ success: false, error: error.toString() }); } } function replacePlaceholders(text, name) { var result = text; result = result.replace(/\{\{NAME\}\}/g, name); result = result.replace(/\{\{name\}\}/g, name.toLowerCase()); result = result.replace(/\{\{Name\}\}/g, name); return result; } function copyContentsRecursively(sourceFolder, destinationFolder, name) { var files = sourceFolder.getFiles(); while (files.hasNext()) { try { var file = files.next(); var newFileName = replacePlaceholders(file.getName(), name); file.makeCopy(newFileName, destinationFolder); Utilities.sleep(150); } catch (error) { Logger.log('Error copying file: ' + error.toString()); } } var subfolders = sourceFolder.getFolders(); while (subfolders.hasNext()) { try { var subfolder = subfolders.next(); var newSubfolderName = replacePlaceholders(subfolder.getName(), name); var newSubfolder = destinationFolder.createFolder(newSubfolderName); Utilities.sleep(200); copyContentsRecursively(subfolder, newSubfolder, name); } catch (error) { Logger.log('Error copying subfolder: ' + error.toString()); } } } function jsonResponse(data) { return ContentService .createTextOutput(JSON.stringify(data)) .setMimeType(ContentService.MimeType.JSON); } Use Cases Agencies** โ Client folder structure on new signup Freelancers** โ Project folders from intake form HR Teams** โ Employee onboarding folders Schools** โ Student portfolio folders Event Planners** โ Event documentation folders Notes Apps Script may take +60 seconds for large structures Timeout is set to 5 minutes for complex templates Your Google account needs edit access to template and destination folders