by David Olusola
🚀 Automated Lead Scraper Workflow (Apify + n8n + Google Sheets) 🧠 What It Does This n8n workflow automates the process of scraping leads using Apify, cleaning the extracted data, and exporting it to Google Sheets—ready for use in outreach, prospecting, or CRM pipelines. 🔄 Workflow Steps ✅ Start – Manually triggers the workflow. 🧩 Set Variables – Stores required Apify credentials: APIFY_TOKEN: Your Apify token. APIFY_TASK_ID: The Apify task to run. 🕸️ Run Apify Scraper – Launches the scraper and fetches the dataset. 🧹 Clean Data – Processes scraped results to: ✂️ Strip non-numeric characters from phone numbers. ✉️ Format emails (lowercase + trimmed). 📊 Export to Google Sheets – Appends clean data to your spreadsheet: 🏢 company name → from title 📞 phone → cleaned number 📍 address → from scraped info 🛠️ Requirements 🕷️ Apify Account A valid APIFY_TOKEN An existing Apify task (APIFY_TASK_ID) 📗 Google Sheets Access OAuth2 credentials set up in n8n (e.g., "Google Sheets account 2") 🚦 How to Use ⚙️ Open the Variables node and plug in your Apify credentials. 📄 Confirm the Google Sheets node points to your desired spreadsheet. ▶️ Run the workflow manually from the Start node. 📥 Output A ready-to-use sheet of cleaned lead data containing: Company names Phone numbers Addresses 💼 Perfect For: Sales teams doing outbound prospecting Marketers building lead lists Agencies running data aggregation tasks
by n8n Team
This workflow demonstrates how to export SQL to XML and present the data nicely formatted using an XSL Template. The upper part of the workflow starts with a webhook. Then it gets several random records from the SQL table and converts them into an XML string. Then a final XML file is created that contains a link to the XML Stylesheet file. The lower part of the workflow contains a helper Webhook that reads an XSL Template from the GitHub gist and serves it back via the Respond to Webhook node. This is required to comply with the CORS rules of modern browsers. These rules dictate that both XML data and a stylesheet file should come from the same domain.
by Yaron Been
Bytedance Seededit 3.0 Image Generator Description Text-guided image editing model that preserves original details while making targeted modifications like lighting changes, object removal, and style conversion Overview This n8n workflow integrates with the Replicate API to use the bytedance/seededit-3.0 model. This powerful AI model can generate high-quality image content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters prompt** (string): Text prompt for image generation image** (string): Input image to edit Optional Parameters seed** (integer, default: None): Random seed. Set for reproducible generation guidance_scale** (number, default: 5.5): Prompt adherence. Higher = more literal. How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate image content Access the generated output from the final node API Reference Model: bytedance/seededit-3.0 API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of image generation parameters
by Yaron Been
Description This workflow automatically generates comprehensive property market reports by scraping real estate listings and market data from multiple sources. It helps real estate professionals save time and provide data-driven insights to clients without manual research. Overview This workflow automatically generates property market reports by scraping real estate listings and market data. It uses Bright Data to access multiple real estate websites and compiles the data into comprehensive reports. Tools Used n8n:** The automation platform that orchestrates the workflow. Bright Data:** For scraping real estate websites and property data without getting blocked. Spreadsheets/Databases:** For storing and analyzing property data. Document Generation:** For creating professional PDF reports. How to Install Import the Workflow: Download the .json file and import it into your n8n instance. Configure Bright Data: Add your Bright Data credentials to the Bright Data node. Set Up Data Storage: Configure where you want to store the property data. Customize: Specify locations, property types, and report format. Use Cases Real Estate Agents:** Generate market reports for clients. Property Investors:** Track market trends in target areas. Market Analysts:** Automate data collection for property market analysis. Connect with Me Website:** https://www.nofluff.online YouTube:** https://www.youtube.com/@YaronBeen/videos LinkedIn:** https://www.linkedin.com/in/yaronbeen/ Get Bright Data:** https://get.brightdata.com/1tndi4600b25 (Using this link supports my free workflows with a small commission) #n8n #automation #realestate #propertymarket #brightdata #marketreports #propertyanalysis #realestatedata #markettrends #propertyinvestment #n8nworkflow #workflow #nocode #realestateanalysis #propertyreports #realestateintelligence #marketresearch #propertyscraping #realestateautomation #investmentanalysis #propertytrends #datadriven #realestatetech #propertyinsights #marketanalysis #realestateinvesting
by Adam
Quick overview This workflow checks an SFTP “pending” folder for packing list PDFs, converts them to OCR text with docling-serve, and uses Ollama (Gemma) to extract structured line items and match them to a purchase order, logging results and moving files to completed or error folders. How it works Runs every hour and lists files in the SFTP pending folder. Filters for PDFs, downloads each file from SFTP, and logs a PENDING status to an n8n Data Table. Uploads the PDF to docling-serve for OCR conversion (RapidOCR, English) and stops with an error status if conversion fails. Sends the converted Markdown text to an Ollama Gemma chat model to extract a normalized packing-list JSON (PO number, parties, and line items). Loads the matching purchase order data and cross-references PO vs packing-list SKUs and quantities to determine whether the document matches. If SKU count matches but SKU text differs, uses an Ollama-based healing step to detect likely OCR-misread SKUs, applies the corrections, and re-runs the cross-reference. Writes the final status (COMPLETED or ERROR) to the n8n Data Table and moves the PDF in SFTP into a folder named after the status (for example, completed/ or error/). Setup Create and configure an SFTP credential, and ensure the server has pending/ plus destination folders matching the workflow’s status-based paths (for example, completed/ and error/). Set up docling-serve locally (or update the HTTP endpoint) so http://127.0.0.1:5001/v1/convert/file is reachable from n8n. Configure an Ollama credential and ensure the gemma4:12b-mlx model is available on your Ollama instance. Create an n8n Data Table (or select the existing one) used as document_processor_log to store file name, status, and details. Replace the dummy purchase-order lookup with your real purchase order data source, or ensure the extracted po_number matches one of the provided sample orders. Requirements You will need a (S)FTP server setup with 3 folders: pending, completed and failed A n8n data table with 3 columns: fileName, status, details Ollama or other AI service docling-serve Customization Change the credentials for Ollama in Agent nodes. Change the credentials for FTP Nodes The move file FTP Node uses the status in lowercases as folder name. If the folder names on the (S)FTP server are not pending, completed and failed then change the set nodes in the Log status and move file section. Set your data table in all data table nodes Change docling-serve endpoint in HTTP node named "Post PDF to docling-serve" Additional info Test files can be found in the github repository of this template
by Anthony
Use Case It is very convenient to add expenses via simple chat message. This workflow attempts to do exactly this using AI-powered n8n magic! Send message to a chat, something like "car wash; 59.3 usd; 25 jan 2024" And get a response: Your expense saved, here is the output of save sub-workflow:{"cost":59.3,"descr":"car wash","date":"2024-01-25","msg":"car wash; 59.3 usd; 25 jan 2024"} LLM will smartly parse your message to structured JSON and save the expense as a new row into Google Sheet! Installation 1. Set up Google Sheets: Clone this Sheet: https://docs.google.com/spreadsheets/d/1D0r3tun7LF7Ypb21CmbTKEtn76WE-kaHvBCM5NdgiPU/edit?gid=0#gid=0 (File -> Make a copy) Choose this sheet into "Save expense into Google Sheets" node. 2. Fix sub-workflow dropdown: open "Parse msg and save to Sheets" node (which is an n8n sub-workflow executor tool) and make sure the SAME workflow is chosen in the dropdown. it will allow n8n to locate and call "Workflow Input Trigger" properly when needed. 3. Activate the workflow to make chat work properly. Sent message to chat, something like "car wash; 59.3 usd; 25 jan 2024" you should get a response: Your expense saved, here is the output of save sub-workflow:{"cost":59.3,"descr":"car wash","date":"2024-01-25","msg":"car wash; 59.3 usd; 25 jan 2024"} and new row in Google sheets should be inserted!
by n8n Team
This workflow imports multiple CSV files and appends or updates them to a Google Sheets document. Here's a step-by-step breakdown: When clicked "Execute Workflow", the process starts. The "Read Binary Files" node reads all the '.csv' files from the specified directory. The files are then split into batches (one file in a batch) by the "Split In Batches" node. For each file, the "Read CSV" node reads the data from the CSV file. The "Assign source file name" node assigns the source file name to the data. The data is then processed by the "Remove duplicates" node. This removes any duplicate entries based on the 'user_name' field. The "Keep only subscribers" node filters the data to keep only those entries where the 'subscribed' field is set to 'TRUE'. The data is then sorted by the 'date_subscribed' field using the "Sort by date" node. Finally, the processed data is appended or updated to a specified Google Sheets document using the "Upload to spreadsheet" node. It checks for the 'user_name' field, if the data corresponding to that 'user_name' already exists, it updates the data, otherwise appends the new data.
by Yaron Been
Google Veo 3 Fast Video Generator Description A faster and cheaper version of Google’s Veo 3 video model, with audio Overview This n8n workflow integrates with the Replicate API to use the google/veo-3-fast model. This powerful AI model can generate high-quality video content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters prompt** (string): Text prompt for video generation Optional Parameters seed** (integer, default: None): Random seed. Omit for random generations resolution** (string, default: 720p): Resolution of the generated video negative_prompt** (string, default: None): Description of what to discourage in the generated video How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate video content Access the generated output from the final node API Reference Model: google/veo-3-fast API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of video generation parameters
by Tom
This workflow shows a no code approach to creating Salesforce accounts and contacts based on data coming from an Excel file. For Excel 365 (the online version of Microsoft Excel) check out this workflow instead. To run the workflow: Make sure your Salesforce account is authenticated with n8n. Have a Microsoft Excel workbook with contacts and their account names ready. The workflow uses this example file, but you probably want to use your own data instead. Hit the Execute Workflow button at the bottom of the n8n canvas. Here is how it works: The workflow first searches for existing Salesforce accounts by name. It then branches out depending on whether the account already exists in Salesforce or not. If an account does not exist yet, it will be created. The data is then normalised before both branches converge again. Finally the contacts are created or updated as needed in Salesforce.
by Clown Mutiny
What It Does The Chef Agent is your AI-powered kitchen companion—ready to turn leftover ingredients into meal inspiration. It's a simple, fun n8n automation that: Accepts a list of ingredients via webhook Uses Ollama AI to suggest 5 creative recipes or food ideas Recommends up to 3 missing ingredients to improve the dish Returns a fallback message if the AI is unavailable Includes setup notes for beginners Requirements An active n8n instance (local or hosted) Ollama AI running locally (or another LLM via HTTP request) A webhook endpoint (defaults to /lets-cook) Why You’ll Love It Fully customizable for your use case or favorite LLM Great intro to AI + workflow automation Comes with playful Clown Mutiny flair: > “Powered by Clown Mutiny’s taste-bud liberation division.” Installation Import the provided JSON template into your n8n workspace. Configure your AI node to match your local Ollama instance. Trigger the flow by sending a POST request to the webhook: { "ingredients": "eggs, rice, spinach" }
by Yaron Been
Ndreca Hunyuan3d 2 Test AI Generator Description None Overview This n8n workflow integrates with the Replicate API to use the ndreca/hunyuan3d-2-test model. This powerful AI model can generate high-quality other content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters image** (string): Input image for generating 3D shape Optional Parameters seed** (integer, default: 1234): Random seed for generation steps** (integer, default: 50): Number of inference steps num_chunks** (integer, default: 200000): Number of chunks for mesh generation max_facenum** (integer, default: 40000): Maximum number of faces for mesh generation guidance_scale** (number, default: 5.5): Guidance scale for generation octree_resolution** (string, default: 512): Octree resolution for mesh generation remove_background** (boolean, default: True): Whether to remove background from input image How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate other content Access the generated output from the final node API Reference Model: ndreca/hunyuan3d-2-test API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of other generation parameters
by Yaron Been
Ibm Granite Granite Speech 3.3 8b Text Generator Description Granite-speech-3.3-8b is a compact and efficient speech-language model, specifically designed for automatic speech recognition (ASR) and automatic speech translation (AST). Overview This n8n workflow integrates with the Replicate API to use the ibm-granite/granite-speech-3.3-8b model. This powerful AI model can generate high-quality text content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Optional Parameters seed** (integer, default: None): Random seed. Leave blank to randomize the seed. audio** (array, default: None): Audio inputs for the model. top_k** (integer, default: 50): The number of highest probability tokens to consider for generating the output. If > 0, only keep the top k tokens with highest probability (top-k filtering). top_p** (number, default: 0.9): A probability threshold for generating the output. If < 1.0, only keep the top tokens with cumulative probability >= top_p (nucleus filtering). Nucleus filtering is described in Holtzman et al. (http://arxiv.org/abs/1904.09751). prompt** (string, default: ): User prompt to send to the model. max_tokens** (integer, default: 512): The maximum number of tokens the model should generate as output. min_tokens** (integer, default: 0): The minimum number of tokens the model should generate as output. temperature** (number, default: 0.6): The value used to modulate the next token probabilities. chat_template** (string, default: None): A template to format the prompt with. If not provided, the default prompt template will be used. system_prompt** (string, default: None): System prompt to send to the model.The chat template provides a good default. How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate text content Access the generated output from the final node API Reference Model: ibm-granite/granite-speech-3.3-8b API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of text generation parameters