by Artur
What this workflow does Monitors Google Drive: The workflow triggers whenever a new CSV file is uploaded. Uses AI to Identify PII Columns: The OpenAI node analyzes the data and identifies PII-containing columns (e.g., name, email, phone). Removes PII: The workflow filters out these columns from the dataset. Uploads Cleaned File: The sanitized file is renamed and re-uploaded to Google Drive, ensuring the original data remains intact. How to customize this workflow to your needs Adjust PII Identification: Modify the prompt in the OpenAI node to align with your specific data compliance requirements. Include/Exclude File Types: Adjust the Google Drive Trigger settings to monitor specific file types (e.g., CSV only). Output Destination: Change the folder in Google Drive where the sanitized file is uploaded. Setup Prerequisites: A Google Drive account. An OpenAI API key. Workflow Configuration: Configure the Google Drive Trigger to monitor a folder for new files. Configure the OpenAI Node to connect with your API Set the Google Drive Upload folder to a different location than the Trigger folder to prevent workflow loops.
by Santhej Kallada
Who is this for? Marketers, lead generation agencies, freelancers, consultants, and sales teams who need to collect business leads from Google Maps. Small business owners looking to build targeted local business lists. Anyone interested in automating web scraping without coding skills. What problem is this workflow solving? Manually scraping business data from Google Maps is time-consuming and repetitive. This automation simplifies the process by: Collecting business details based on search terms and location. Filtering out irrelevant results. Delivering qualified leads directly to your inbox. What this workflow does This workflow automates Google Maps lead scraping using APIFY and sends the gathered leads via email. The steps include: Collecting user input through a simple form (business type, location, recipient email). Sending an HTTP request to APIFY to run a Google Maps scraper (actor). Filtering results to include only businesses with email addresses. Converting results to CSV format. Sending an automated email with the leads as a CSV attachment via Gmail. Setup Create an APIFY Account: Sign up at APIFY.COM (https://apify.com/). You get $5 in free credits (~1,000 leads). Get Your API Key: Copy your API key from APIFY Prepare n8n: Create a new workflow. Add an HTTP Request node to interact with APIFY. Configure authentication with your API key. Customize the Form: Build a simple form inside n8n to collect user inputs: Business Type, City, Country, Recipient Email. Filter Results: Use IF and Filter nodes to remove entries without email addresses. Convert to CSV: Use a "Spreadsheet File" node to generate a CSV from the filtered leads. Send Email: Use the Gmail node (or any email node) to send the CSV file to the provided recipient. How to customize this workflow to your needs Change search parameters to target different business niches or locations. Add filters to only include businesses with websites. Customize the email subject and body. Integrate with CRM or marketing platforms for direct lead injection. Expand filtering logic for more refined targeting. Notes This template uses APIFY (paid service after free credits). You will need an APIFY API key and a Gmail account (or SMTP credentials) to run this automation. For self-hosted n8n users: ensure you have internet access and proper credentials set up for external HTTP requests. Want A Video Tutorial on How To Setup This Automation : https://www.youtube.com/watch?v=Kz_Gfx7OH6o
by The O Suite
This n8n workflow automates website security audits. It combines direct website scanning, threat intelligence from AlienVault OTX, and advanced analysis from an OpenAI large language model (LLM) to generate and email a comprehensive security report. How it Works (Workflow Flow): Input: A user provides a website URL via a simple web form. Data Collection: An HTTP Request node visits the provided URL to gather initial data (status code, headers). An AlienVault HTTP Request node queries AlienVault OTX for known threats associated with the website's hostname. Data Preparation (Prepare Data for AI): A custom code node consolidates the collected website data and AlienVault intelligence, performing initial checks for common issues (e.g., error codes, missing security headers, AlienVault warnings). AI Analysis (Security Configuration Audit): The prepared data is sent to an OpenAI Chat Model, which acts as a cybersecurity expert. The AI analyzes the data to identify vulnerabilities, explain their impact, suggest exploitation methods, and outline mitigation steps. Report Formatting (Format Report for Email): Another custom code node takes the AI's plain-text report and converts it into a structured HTML format suitable for email. Delivery (Send Security Report): The final HTML report is sent via Gmail to a specified email address. Setup Steps: To use this workflow, you'll need an n8n instance and the following credentials: n8n Instance: Ensure your n8n environment is running. OpenAI API Key: Generate a key from OpenAI. Add an "OpenAI API" credential in n8n (e.g., "OpenAI account"). AlienVault OTX API Key: Obtain a key from your AlienVault OTX profile. Add an "AlienVault OTX API" credential in n8n (e.g., "AlienVault account"). Gmail Account: Set up a "Gmail OAuth2" credential in n8n for sending emails (recommended for security; involves Google Cloud setup). Import Workflow: Copy the workflow's JSON code. In n8n, import the workflow via "Workflows" > "New" > "Import from JSON". Configure Recipient: In the "Send Security Report" node, specify the email address where reports should be sent. Activate: Enable the workflow to start processing submissions. Once activated, access the "On form submission" webhook URL to input a URL and trigger an audit.
by Teddy
Scrape Latest 20 TechCrunch Articles Who is this for? This workflow is designed for developers, researchers, and data analysts who need to track the latest trending repositories on GitHub. It is useful for anyone who wants to stay updated on popular open-source projects without manually browsing GitHub’s trending page. What problem is this workflow solving? Manually checking GitHub’s trending repositories daily can be time-consuming and inefficient. This workflow automates the extraction of trending repositories, providing structured data including repository name, author, description, programming language, and direct repository links. What this workflow does This workflow scrapes the trending repositories from GitHub’s trending page and extracts essential metadata such as repository names, languages, descriptions, and URLs. It processes the extracted data and structures it into an easy-to-use format. Setup Ensure you have n8n installed and configured. Import this workflow into your n8n instance. Run the workflow manually or schedule it to execute at regular intervals. (Optional) Customize the extracted data or integrate it with other systems. How to customize this workflow to your needs Modify the HTTP request node to target different GitHub trending categories (e.g., specific programming languages). Add further processing steps such as filtering repositories by stars, forks, or specific keywords. Integrate this workflow with Slack, email, or a database to store or notify about trending repositories. Workflow Steps Trigger execution manually using the "When clicking ‘Test workflow’" node. Send an HTTP request to fetch GitHub’s trending page using "Request to Github Trend". Extract the trending repositories box from the HTML response using "Extract Box". Extract all repository data including names, authors, descriptions, and languages using "Extract all repositories". Convert extracted data into a structured list for easier processing using "Turn to a list". Extract detailed repository information using "Extract repository data". Format and set variables to ensure clean and structured data output using "Set Result Variables". Note: Since GitHub’s trending page updates dynamically, ensure you run this workflow periodically to capture the latest trends.
by PollupAI
LinkedIn Profile Enrichment Workflow Who is this for? This workflow is ideal for recruiters, sales professionals, and marketing teams who need to enrich LinkedIn profiles with additional data for lead generation, talent sourcing, or market research. What problem is this workflow solving? Manually gathering detailed LinkedIn profile information can be time-consuming and prone to errors. This workflow automates the process of enriching profile data from LinkedIn, saving time and ensuring accuracy. What this workflow does Input: Reads LinkedIn profile URLs from a Google Sheet. Validation: Filters out already enriched profiles to avoid redundant processing. Data Enrichment: Uses RapidAPI's Fresh LinkedIn Profile Data API to retrieve detailed profile information. Output: Updates the Google Sheet with enriched profile data, appending new information efficiently. Setup Google Sheet: Create a sheet with a column named linkedin_url and populate it with the profile URLs to enrich. RapidAPI Account: Sign up at RapidAPI and subscribe to the Fresh LinkedIn Profile Data API. API Integration: Replace the x-rapidapi-key and x-rapidapi-host values with your credentials from RapidAPI. Run the Workflow: Trigger the workflow and monitor the updates to your Google Sheet. How to customize this workflow Filter Criteria**: Modify the filter step to include additional conditions for processing profiles. API Configuration**: Adjust API parameters to retrieve specific fields or extend usage. Output Format**: Customize how the enriched data is appended to the Google Sheet (e.g., format, column mappings). Error Handling**: Add steps to handle API rate limits or missing data for smoother automation. This workflow streamlines LinkedIn profile enrichment, making it faster and more effective for data-driven decision-making.
by Roman Rozenberger
This workflow is perfect for technical writers, content creators, marketers, and developers who write in Markdown but need to collaborate or publish using Google Docs format. Ideal for teams that want to streamline their content creation and review process. What problem does this workflow solve? Manual conversion from Markdown to Google Docs is time-consuming and often loses formatting. This workflow eliminates the tedious copy-paste process, automatically preserves formatting, and creates organized, timestamped documents in your Google Drive. Perfect for content teams who write in Markdown but need Google Docs for collaboration and review. What this workflow does Converts Markdown to HTML** with proper formatting preservation (headers, lists, links, tables) Creates timestamped Google Docs** documents with automatic naming Adds Drive location metadata** for better organization and reference Maintains document structure** including emojis, tables, and text formatting Automates file creation** in specified Google Drive folders Setup Google Drive OAuth2 credentials configured in n8n Target Google Drive folder URL Input your content title and Markdown text in the "Set Input Data" node How to customize this workflow to your needs Modify HTML formatting options** in the Markdown conversion node Change file naming patterns** to match your organization system Adjust Drive folder structure** and metadata inclusion Update MIME type handling** for different output requirements Add additional processing steps** like notifications or integrations Perfect for technical documentation workflows, content publishing pipelines, blog preparation, and automated report generation. Setup Instructions - Markdown to Google Docs Converter Prerequisites n8n instance** (local or cloud) Google account** with Google Drive access Basic understanding** of n8n workflow configuration Step 1: Import the Workflow Open n8n and navigate to Workflows Click "Add workflow" → "Import from JSON" Upload the Export_Markdown_Content_do_Google_Docs_Document.json file Save the workflow with a descriptive name Step 2: Configure Google Drive Credentials Create Google Drive OAuth2 Credentials In n8n, go to Settings → Credentials Click "Add credential" → "Google Drive OAuth2 API" Follow the OAuth setup to authorize n8n access to Google Drive: Visit Google Cloud Console Create or select a project Enable Google Drive API Create OAuth2 credentials Add authorized redirect URI for your n8n instance Name the credential (e.g., "Google Drive - Markdown Converter") Configure Google Drive Nodes Update these nodes with your Google Drive credentials: Create Empty File Update Document with Correct HTML Formatting In each node: Select your Google Drive credential from the dropdown Test the connection to ensure it works properly Step 3: Prepare Your Google Drive Create Target Folder Go to Google Drive (drive.google.com) Create a new folder for your converted documents Copy the folder URL (will look like: https://drive.google.com/drive/folders/FOLDER_ID) Ensure the folder has proper permissions for your Google account Step 4: Configure Input Data Set Your Default Values Open the "Set Input Data" node Update the assignments with your preferences: Google Drive URL: Replace the example URL with your target folder URL Format: https://drive.google.com/drive/folders/YOUR_FOLDER_ID Content Title: Set a default title or leave placeholder text This will be used in the document filename Content in Markdown: Add your Markdown content or keep example for testing Supports standard Markdown syntax (headers, lists, links, tables) Step 5: Test the Workflow Initial Test Run Ensure all credentials are configured Click the "Test workflow" button on the Manual Trigger node Monitor the execution - check for any errors in node outputs Verify the result: Check your Google Drive folder Look for a new document with timestamp in the name Open the document to verify formatting Troubleshooting Common Issues Google Drive Permission Errors: Verify OAuth2 credentials are properly configured Check that the target folder exists and is accessible Ensure Google Drive API is enabled in Google Cloud Console Markdown Conversion Issues: Check that your Markdown syntax is valid Test with simple content first (headers, paragraphs, lists) Verify the "Change Markdown To HTML" node settings File Creation Problems: Confirm the Google Drive folder URL format is correct Check that the folder ID in the URL is valid Ensure your Google account has write permissions to the folder Step 6: Customize for Your Needs Modify HTML Formatting Options In the "Change Markdown To HTML" node: Enable/disable emoji support** (currently enabled) Adjust table formatting** (currently enabled) Modify header ID generation** (currently disabled) Configure space requirements** for headers Update File Naming Pattern In the "Create Empty File" node: Change the naming convention**: Currently uses _PUB {Content Title} {timestamp} Modify timestamp format**: Currently yyyy-MM-dd HH:mm:ss Add prefixes or suffixes** as needed for your organization Step 7: Production Usage Regular Workflow Execution Update the "Set Input Data" node with new content Execute the workflow manually or set up triggers Monitor execution logs for any issues Check Google Drive for generated documents Integration Options Webhook Integration: Add a Webhook trigger to accept external Markdown content Useful for automated content publishing workflows Email Integration: Add email notifications when documents are created Include links to generated Google Docs Advanced Configuration Error Handling Add error handling nodes after critical operations Implement retry logic for API failures Set up notifications for failed executions Performance Optimization Adjust the "Wait for Document Creation" timing if needed Consider file size limits for Google Docs Support and Troubleshooting Common Solutions Timeout errors**: Increase wait time in "Wait for Document Creation" Authentication failures**: Refresh Google OAuth2 credentials Formatting issues**: Test with simpler Markdown first Getting Help Check n8n community forums for Google Drive integration issues Review Google Drive API documentation for rate limits Test with minimal Markdown content to isolate problems Total setup time: ~15-20 minutes Difficulty level: Intermediate Requirements: Google account, n8n instance, basic OAuth2 setup knowledge
by Damian Karzon
This workflow randomly select recipes from a Mealie instance (can use a specific category) and then creates a meal plan in Mealie with those recipes. How it works: Workflow has a scheduled trigger (set to run weekly on a Friday) Config node sets a few properties to configure the workflow A call to the Mealie API to get the list of recipes The code node holds most of the logic, this will loop through the number of recipes defined in the config node and randomly select a recipe from the list (making sure not to double up any recipes) Once all the recipes are selected it will call the Mealie API to set up the meal plan on the days Setup Add your Mealie API token as a credential and set it on the Http Request nodes Set the relevant schedule trigger to run when you like Update the Config node with the config you want numberOfRecipes - Number of recipes to populate for the meal plan offsetPlanDays - Number of days in the future to start the plan (0 will start it today, 1 tomorrow, etc.) mealieCategoryId - A category id of the category you want to pull in recipes from (default to select from all recipes) mealieBaseUrl - The base url of your Mealie instance
by Gain FLow AI
Inquiry Form to Personalised WhatsApp Message Overview This workflow creates a smart, automated system for capturing leads from an inquiry form, initiating personalized WhatsApp message via Unipile API, and updating your Google Sheet CRM. It uses AI to craft initial outreach messages and logs the success or failure of each message sent, ensuring you track every lead effectively. This automation helps you engage leads quickly and efficiently, without manual effort. Use Case This workflow is ideal for: Sales Teams**: Automate the first touchpoint with new leads, qualifying them and initiating conversations. Small Businesses**: Provide immediate, personalized responses to inquiries, enhancing customer experience. Customer Support**: Quickly gather more context from users after they fill out a help form. Lead Generation**: Streamline the process from form submission to active lead engagement and CRM tracking. How It Works Form Submission Trigger: The workflow is activated when someone submits an "Inquiry Form." This form collects essential lead details such as: Full Name Email WhatsApp number Company Name "How can we help you?" (a notes field) AI Crafts Personalized Message: An OpenAI node, acting as "Alex" (a friendly, approachable human assistant), generates a short, personalized, and engaging opening message for the lead. This message directly addresses the lead by their first name and includes an open-ended question to encourage them to share more details about their needs. WhatsApp Outreach: The AI then uses the WhatsApp API (via Unipile) to send this personalized message directly to the lead's WhatsApp number. Unipile is key here, as it allows sending messages without prior chat history and can connect to your personal WhatsApp. Log Success or Failure: The AI checks the response from the WhatsApp API. If the WhatsApp message is sent successfully: The lead's details, along with the personalized message, WhatsApp chat ID, and message ID, are logged into a "Successful" sheet in your Google Sheet CRM. If the WhatsApp message fails to send: The lead's information, the attempted message, and the reason for failure are logged into a "Failed" sheet in your Google Sheet CRM. This helps you identify and follow up on problematic leads. How to Set It Up To set up your Lead Capture Agent, follow these steps: Google Sheet Setup: Copy the Template: Make a copy of the provided Google Sheet Template ("Sales Agent" with "Successful" and "Failed" sheets) into your own Google Drive. Connect Google Sheets: Ensure your Google Sheets OAuth2 API credentials are set up in n8n and linked to the "Google Sheets" and "Google Sheets3" nodes. Update Sheet IDs: In both "Google Sheets" and "Google Sheets3" nodes, update the documentId with the ID of your copied "Sales Agent" Google Sheet. Unipile (WhatsApp API) Credentials: Sign up for Unipile: Get your DSN and API key from Unipile (they offer a 7-day free trial). Replace Placeholders: In the "Whatsapp API" node, replace <YOUR_DSN>, <YOUR_API_KEY>, and <YOUR_ACCOUNT_ID> with your actual Unipile credentials. OpenAI API Key: Connect your OpenAI API key as an API credential in n8n and link it to the "OpenAI" node. Inquiry Form Setup: The "Enquiry Form" node generates a public webhook URL. You can embed this form on your website or share the URL directly. Alternatively, if you use your own form solution, configure it to send data via a webhook to the URL provided by the "Enquiry Form" node. Import the Workflow: Import the provided workflow JSON into your n8n instance. Activate and Test: Once all settings are complete, activate the workflow. Test it by submitting a new entry through the "Inquiry Form." Check your Google Sheet to see the lead captured and the message status. This workflow is designed to ensure no lead falls through the cracks, giving your sales or support team a powerful edge!
by Teddy
Retrieve 20 Latest TechCrunch Articles Who is this for? This workflow is designed for developers, content creators, and data analysts who need to scrape recent articles from TechCrunch. It’s perfect for anyone looking to aggregate news articles or create custom feeds for analysis, reporting, or integration into other systems. What problem is this workflow solving? This workflow automates the process of scraping recent articles from TechCrunch. Manually collecting article data can be time-consuming and inefficient, but with this workflow, you can quickly gather up-to-date news articles with relevant metadata, saving time and effort. What this workflow does This workflow retrieves the latest 20 news articles from TechCrunch’s “Recent” page. It extracts the article URLs, metadata (such as titles and publication dates), and main content for each article, allowing you to access the information you need without any manual effort. Setup Clone or download the workflow template. Ensure you have a working n8n environment. Configure the HTTP Request nodes with your desired parameters to connect to the TechCrunch API. (Optional) Customize the workflow to target specific sections or topics of interest. Run the workflow to retrieve the latest 20 articles. How to customize this workflow to your needs Modify the HTTP request to pull articles from different pages or sections of TechCrunch. Adjust the number of articles to retrieve by changing the selection criteria. Add additional processing steps to further filter or analyze the article data. Workflow Steps Send an HTTP request to the TechCrunch "Recent" page. Parse a posts box that holds the list of articles. Parse all posts to extract all articles. spilt out posts for each article. Extract the URL and metadata from each article. Send an HTTP request for each article using its URL. Locate and parse the main content of each article. Note: Be sure to update the HTTP Request nodes with any necessary headers or authentication to work with TechCrunch’s website.
by Mauricio Perera
n8n Workflow: Calculate the Centroid of a Set of Vectors Overview This workflow receives an array of vectors in JSON format, validates that all vectors have the same dimensions, and computes the centroid. It is designed to be reusable across different projects. Workflow Structure Nodes and Their Functions: Receive Vectors (Webhook): Accepts a GET request containing an array of vectors in the vectors parameter. Expected Input: vectors parameter in JSON format. Example Request: /webhook/centroid?vectors=[[2,3,4],[4,5,6],[6,7,8]] Output: Passes the received data to the next node. Extract & Parse Vectors (Set Node): Converts the input string into a proper JSON array for processing. Ensures vectors is a valid array. If the parameter is missing, it may generate an error. Expected Output Example: { "vectors": [[2,3,4],[4,5,6],[6,7,8]] } Validate & Compute Centroid (Code Node): Validates vector dimensions and calculates the centroid. Validation: Ensures all vectors have the same number of dimensions. Computation: Averages each dimension to determine the centroid. If validation fails: Returns an error message indicating inconsistent dimensions. Successful Output Example: { "centroid": [4,5,6] } Error Output Example: { "error": "Vectors have inconsistent dimensions." } Return Centroid Response (Respond to Webhook Node): Sends the final response back to the client. If the computation is successful, it returns the centroid. If an error occurs, it returns a descriptive error message. Example Response: { "centroid": [4, 5, 6] } Inputs JSON array of vectors, where each vector is an array of numerical values. Example Input { "vectors": [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] } Setup Guide Create a new workflow in n8n. Add a Webhook node (Receive Vectors) to receive JSON input. Add a Set node (Extract & Parse Vectors) to extract and convert the data. Add a Code node (Validate & Compute Centroid) to: Validate dimensions. Compute the centroid. Add a Respond to Webhook node (Return Centroid Response) to return the result. Function Node Script Example const input = items[0].json; const vectors = input.vectors; if (!Array.isArray(vectors) || vectors.length === 0) { return [{ json: { error: "Invalid input: Expected an array of vectors." } }]; } const dimension = vectors[0].length; if (!vectors.every(v => v.length === dimension)) { return [{ json: { error: "Vectors have inconsistent dimensions." } }]; } const centroid = new Array(dimension).fill(0); vectors.forEach(vector => { vector.forEach((val, index) => { centroid[index] += val; }); }); for (let i = 0; i < dimension; i++) { centroid[i] /= vectors.length; } return [{ json: { centroid } }]; Testing Use a tool like Postman or the n8n UI to send sample inputs and verify the responses. Modify the input vectors to test different scenarios. This workflow provides a simple yet flexible solution for vector centroid computation, ensuring validation and reliability.
by Roger Filomeno
Introduction: This workflow template helps you determine if a Twitch user's stream is currently live or offline. Setup Instructions: The Document node holds the sample Twitch username you wish to check, you may adapt it in your workflow by replacing this with a chain that contains the Twitch username you want to check. This value is passed to the GraphQL node query as $('Document').item.json.twitch so make sure to change this based on your workflow. How it Works: The important nodes here are the GrapQL and IF nodes. The GrapQL queries the Twitch API, and then the output returns a document with the stream property. The IF node then checks if this property has a value, if null means the user is offline, otherwise the user is online or live. Common Use Cases: You can use this with other workflow templates to post live stream alerts to Twitter/X, Bluesky, and Discord via webhooks, etc to notify your community to join youR stream. You may also use an LLM node to write a custom alert based on the value of property title How to adjust this template If you want to check a list of Twitch channels, you can simply exchange the Document set node in the beginning with your list of channels. For more information on the GraphQL output please see the official Twitch API documentation: Get Streams
by Zacharia Kimotho
This workflow takes off the task of backing up workflows regularly on Github and uses Google Drive as the main tool to host these. This can be a good way to keep track of your workflows so that you never lose any workflows in case your n8n goes down. How does it work Creates a new folder within a specified folder with the time its backed up Loops around all workflows, converts them to a JSON file and uploads them to the created folder Gets the previous backups and deletes them This has a clean feel and look as it simplifies the backup while not keeping a cache of workflows on your drive. Setup Create a new folder Create new service account credentials Share the folder with the service account email Upload this workflow to your canvas and map the credentials Set the schedule that you need your workflows to run and manage your backups Activate the workflow Happy Productivity! @Imperol