by phil
This workflow automates the process of updating important Rank Math SEO fields (SEO Title, Description, and Canonical URL) directly via n8n. By leveraging a custom WordPress plugin that extends the WordPress REST API, this workflow ensures that you can programmatically manage SEO metadata for your posts and WooCommerce products efficiently. Bulk version available here. How it works: Sends a POST request to a custom API endpoint exposed by the Rank Math plugin. Updates SEO Title, Description, and Canonical URL fields for a specified post or product. Setup steps: Install and activate the Rank Math API Manager Extended plugin on WordPress. Provide the post or product ID you want to update in the workflow. Run the workflow to update the metadata automatically. Benefits: Full automation of SEO optimizations. Works for both standard posts and WooCommerce products. Simplifies large-scale SEO management tasks. To understand exactly how to use it in detail, check out my comprehensive documentation here. Rank Math API Manager Extended plugin on WordPress // ATTENTION: Replace the line below with <?php - This is necessary due to display constraints in web interfaces. <?php /** Plugin Name: Rank Math API Manager Extended v1.4 Description: Manages the update of Rank Math metadata (SEO Title, SEO Description, Canonical URL) via a dedicated REST API endpoint for WordPress posts and WooCommerce products. Version: 1.4 Author: Phil - https://inforeole.fr */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Rank_Math_API_Manager_Extended { public function __construct() { add_action('rest_api_init', [$this, 'register_api_routes']); } /** Registers the REST API route to update Rank Math meta fields. */ public function register_api_routes() { register_rest_route( 'rank-math-api/v1', '/update-meta', [ 'methods' => 'POST', 'callback' => [$this, 'update_rank_math_meta'], 'permission_callback' => [$this, 'check_route_permission'], 'args' => [ 'post_id' => [ 'required' => true, 'validate_callback' => function( $param ) { $post = get_post( (int) $param ); if ( ! $post ) { return false; } $allowed_post_types = class_exists('WooCommerce') ? ['post', 'product'] : ['post']; return in_array($post->post_type, $allowed_post_types, true); }, 'sanitize_callback' => 'absint', ], 'rank_math_title' => [ 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', ], 'rank_math_description' => [ 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', ], 'rank_math_canonical_url' => [ 'type' => 'string', 'sanitize_callback' => 'esc_url_raw', ], ], ] ); } /** Updates the Rank Math meta fields for a specific post. * @param WP_REST_Request $request The REST API request instance. @return WP_REST_Response|WP_Error Response object on success, or WP_Error on failure. */ public function update_rank_math_meta( WP_REST_Request $request ) { $post_id = $request->get_param('post_id'); // Secondary, more specific permission check. if ( ! current_user_can('edit_post', $post_id) ) { return new WP_Error( 'rest_forbidden', 'You do not have permission to edit this post.', ['status' => 403] ); } $fields = ['rank_math_title', 'rank_math_description', 'rank_math_canonical_url']; $results = []; $updated = false; foreach ( $fields as $field ) { if ( $request->has_param( $field ) ) { $value = $request->get_param( $field ); $current_value = get_post_meta($post_id, $field, true); if ($current_value === $value) { $results[$field] = 'unchanged'; } else { $update_status = update_post_meta( $post_id, $field, $value ); if ($update_status) { $results[$field] = 'updated'; $updated = true; } else { // This case is rare but could indicate a DB error or other failure. $results[$field] = 'failed'; } } } } if ( ! $updated && empty($results) ) { return new WP_Error( 'no_fields_provided', 'No Rank Math fields were provided for update.', ['status' => 400] ); } return new WP_REST_Response( $results, 200 ); } /** Checks if the current user has permission to access the REST API route. * @return bool */ public function check_route_permission() { return current_user_can( 'edit_posts' ); } } new Rank_Math_API_Manager_Extended(); . Phil | Inforeole
by Rudi Afandi
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. This workflow allows you to create and manage custom short URLs directly via Telegram, with all data stored in MongoDB, and redirects handled efficiently via Nginx. How it works This flow provides a seamless URL shortening experience: Create via Telegram: Send a long URL to your bot. It will ask if you want a custom short code. Store in MongoDB: All long URLs and their corresponding short codes are securely stored in your MongoDB instance. Fast Redirects: When a user accesses a short URL, Nginx forwards the request to a dedicated n8n webhook, which then quickly redirects them to the original long URL. Set up steps This setup is straightforward, especially if you already have a running n8n instance and a VPS. Difficulty: Medium (Basic n8n/VPS knowledge required) Estimated Time: 15-30 minutes n8n Instance & VPS: Ensure you have n8n running on your VPS (e.g., 2 core 2GB, as you have). Telegram Bot: Create a new bot via @BotFather and get your Bot Token. Add this as a Telegram credential in n8n. MongoDB Database: Set up a MongoDB instance (either on your VPS or a cloud service like MongoDB Atlas). Create a database and a collection (e.g., url or short_urls). Add your MongoDB credentials in n8n. Here's MongoDB data structure JSON: >[ {"_id": "686a11946a48b580d72d0397", "longUrl": "https://longurl.com/abcdefghijklm/", "shortUrl": "short-code"} ] Domain/Subdomain: Point a domain or subdomain (e.g., s.yourdomain.com) to your VPS IP address. This will be your short URL base. Nginx/Caddy Configuration: Configure your web server (Nginx or Caddy) on the VPS to proxy requests from your short URL domain to the n8n webhook for redirects. (Detailed Nginx config is provided as sticky notes in the redirect workflow) Workflow Setup: Import both provided n8n workflows (Telegram URL Shortener Creator and URL Redirect Handler). Activate both workflows. Crucial: Set an environment variable in your n8n instance (or .env file) named SHORTENER_DOMAIN with the value of your short URL domain (e.g., https://s.yourdomain.com). Refer to sticky notes inside the workflows for detailed node configurations and expressions.
by Madame AI
Synchronize WooCommerce Inventory & Create Products with Gemini AI & BrowserAct This sophisticated n8n template automates WooCommerce inventory management by scraping supplier data, updating existing products, and intelligently creating new ones with AI-formatted descriptions. This workflow is essential for e-commerce operators, dropshippers, and inventory managers who need to ensure their product pricing and stock levels are synchronized with multiple third-party suppliers, minimizing overselling and maximizing profit. Self-Hosted Only This Workflow uses a community contribution and is designed and tested for self-hosted n8n instances only. How it works The workflow is typically run by a Schedule Trigger (though a Manual Trigger is also shown) to check stock automatically. It reads a list of suppliers and their inventory page URLs from a central Google Sheet. The workflow loops through each supplier: A BrowserAct node scrapes the current stock and price data from the supplier's inventory page. A Code node parses this bulk data into individual product items. It then loops through each individual product found. The workflow checks WooCommerce to see if the product already exists based on its name. If the product exists: It proceeds to update the existing product's price and stock quantity. If the product DOES NOT exist: An If node checks if the missing product's category matches a predefined type (optional filtering). If it passes the filter, a second BrowserAct workflow scrapes detailed product attributes from a dedicated product page (e.g., DigiKey). An AI Agent (Gemini) transforms these attributes into a specific, styled HTML table for the product description. Finally, the product is created in WooCommerce with all scraped details and the AI-generated description. Error Handling:* Multiple *Slack** nodes are configured to alert your team immediately if any scraping task fails or if the product update/creation process encounters an issue. Note: This workflow does not support image uploads for new products. To enable this functionality, you must modify both the n8n and BrowserAct workflows. Requirements BrowserAct** API account for web scraping BrowserAct** n8n Community Node -> (n8n Nodes BrowserAct) BrowserAct* templates named *“WooCommerce Inventory & Stock Synchronization”* and *“WooCommerce Product Data Reconciliation”** Google Sheets** credentials for the supplier list WooCommerce** credentials for product management Google Gemini** account for the AI Agent Slack** credentials for error alerts Need Help? How to Find Your BrowseAct API Key & Workflow ID How to Connect n8n to Browseract How to Use & Customize BrowserAct Templates How to Use the BrowserAct N8N Community Node Workflow Guidance and Showcase STOP Overselling! Auto-Sync WooCommerce Inventory from ANY Supplier
by Mario
Purpose This workflow synchronizes three entities from Notion to Clockify, allowing tracked time to be linked to client-related projects or tasks. Demo & Explanation How it works On every run active Clients, Projects and Tasks are retrieved from both Notion and Clockify before being compared by the Clockify ID, which is again stored in Notion for reference Potential differences are then applied to Clockify If an item has been archived or closed in Notion, it is also marked as archived in Clockify All entities are processed sequentially, since they are related hierarchically to each other By default this workflow runs once per day or when called via webhook (e.g. embedded into a Notion Button) Prerequisites A set of Notion databases with a specific structure is required to use this workflow You can either start with this Notion Template or adapt your system based on the requirements described in the big yellow sticky note of this workflow template Setup Clone the workflow and select the belonging credentials Follow the instructions given in the yellow sticky notes Activate the workflow Related workflows: Backup Clockify to Github based on monthly reports Prevent simultaneous workflow executions with Redis
by Growth AI
Quick overview This workflow pulls unprocessed leads from Airtable, enriches them with LinkedIn profile, company, and post data via Apify, optionally scrapes the company website with Firecrawl, then uses Anthropic Claude to qualify leads and draft multi-step LinkedIn outreach messages, saving results back to Airtable. How it works Runs when you manually execute the workflow. Reads qualification and writing prompts from Airtable, then searches Airtable for leads where the “Réponse” and “Match” fields are empty. Iterates through each lead and uses Apify to fetch LinkedIn profile details, marking the Airtable record as “Likedin pas dispo” when the profile cannot be retrieved. For available profiles, uses Apify to fetch company details when a company LinkedIn URL exists and, if a website is available, uses Firecrawl to scrape the homepage and clean the returned markdown. Uses Apify to fetch recent LinkedIn posts for the lead and selects a relevant recent personal post URL to include in the enrichment dataset. Sends the consolidated lead, company, homepage, and post data to Anthropic Claude to decide whether the lead matches the qualification criteria, marking non-matching leads as “False” in Airtable. For qualified leads, enriches the record with Lusha email data, uses Anthropic Claude to draft three outreach messages, and updates Airtable with the messages, selected post-to-like URL, email address, and “Match” set to “True”. Setup Create an Airtable personal access token connection and update the Base ID and Table ID used to read leads and write back match status and drafted messages. Ensure Airtable contains a “Prompt” table (ID: tbl79RXFmWNAuHbEL) with entries for Agent = “Qualification” and Agent = “Rédaction”, plus the lead fields referenced in the workflow (including “LinkedIn profile”, “Match”, and “Réponse”). Add Apify API credentials and confirm the Apify actors used for LinkedIn profile details, company details, and posts are accessible from your Apify account. Add a Firecrawl API key for homepage scraping. Add an Anthropic API key for the two Claude agents and keep the structured output schemas aligned with the expected fields (match boolean and message_1/message_2/message_3 objects). Add a Lusha API key (HTTP header auth) for the email enrichment request and confirm your account allows email reveal for LinkedIn URLs.
by David Ashby
Complete MCP server exposing all Google Ads Tool operations to AI agents. Zero configuration needed - all 2 operations pre-built. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works • MCP Trigger: Serves as your server endpoint for AI agent requests • Tool Nodes: Pre-configured for every Google Ads Tool operation • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Uses official n8n Google Ads Tool tool with full error handling 📋 Available Operations (2 total) Every possible Google Ads Tool operation is included: 📢 Campaign (2 operations) • Get many campaigns • Get a campaign 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Resource IDs and identifiers • Search queries and filters • Content and data payloads • Configuration options Response Format: Native Google Ads Tool API responses with full data structure Error Handling: Built-in n8n error management and retry logic 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • Other n8n Workflows: Call MCP tools from any workflow • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Complete Coverage: Every Google Ads Tool operation available • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n error handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.
by Cheng Siong Chin
How It Works Automated daily scraping of competitor websites, pricing pages, job postings, and press releases feeds into an AI analyzer powered by OpenAI or Claude to extract trends, insights, and key metrics. The analyzed results are stored in Google Sheets for historical tracking and longitudinal comparison, and are automatically shared with stakeholders via email or WhatsApp. This workflow eliminates manual competitive research, enabling product teams and executives to monitor market movements efficiently and make timely, data-driven decisions. Setup Steps Configure the daily schedule trigger. Define competitor URLs using workflow variables. Add and configure the OpenAI or Claude API key. Authenticate Google Sheets using the appropriate credentials. Connect Gmail and WhatsApp Business API tokens. Test each scraper individually before enabling full automation. Prerequisites OpenAI/Claude API account, Google Sheets access, Gmail account, WhatsApp Business API, web scraping enabled Use Cases Market share monitoring, pricing strategy updates, competitor talent movement tracking, industry trend reports Customization Modify scrape targets, adjust AI prompt for different metrics, change alert frequency Benefits Real-time competitive visibility, reduced manual research 15+ hours/week, faster decision-making
by David Ashby
Complete MCP server exposing all Mailcheck Tool operations to AI agents. Zero configuration needed - 1 operations pre-built. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works • MCP Trigger: Serves as your server endpoint for AI agent requests • Tool Nodes: Pre-configured for every Mailcheck Tool operation • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Uses official n8n Mailcheck Tool tool with full error handling 📋 Available Operations (1 total) Every possible Mailcheck Tool operation is included: 🔧 Email (1 operations) • Check an email 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Resource IDs and identifiers • Search queries and filters • Content and data payloads • Configuration options Response Format: Native Mailcheck Tool API responses with full data structure Error Handling: Built-in n8n error management and retry logic 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • Other n8n Workflows: Call MCP tools from any workflow • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Complete Coverage: Every Mailcheck Tool operation available • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n error handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.
by Mark Shcherbakov
Video Guide I prepared a detailed guide to help you set up your workflow effectively, enabling you to extract insights from YouTube for content generation using an AI agent. Youtube Link Who is this for? This workflow is ideal for content creators, marketers, and analysts looking to enhance their YouTube strategies through data-driven insights. It’s particularly beneficial for individuals wanting to understand audience preferences and improve their video content. What problem does this workflow solve? Navigating the content generation and optimization process can be complex, especially without significant audience insight. This workflow automates insights extraction from YouTube videos and comments, empowering users to create more engaging and relevant content effectively. What this workflow does The workflow integrates various APIs to gather insights from YouTube videos, enabling automated commentary analysis, video transcription, and thumbnail evaluation. The main functionalities include: Extracting user preferences from comments. Transcribing video content for enhanced understanding. Analyzing thumbnails via AI for maximum viewer engagement insights. AI Insights Extraction: Automatically pulls comments and metrics from selected YouTube creators to evaluate trends and gaps. Dynamic Video Planning: Uses transcriptions to help creators outline video scripts and topics based on audience interest. Thumbnail Assessment: Provides analysis on thumbnail designs to improve click-through rates and viewer attraction. Setup N8N Workflow API Setup: Create a Google Cloud project and enable the YouTube Data API. Generate an API key to be included in your workflow requests. YouTube Creator and Video Selection: Start by defining a request to identify top creators based on their video views. Capture the YouTube video IDs for further analysis of comments and other video metrics. Comment Analysis: Gather comments associated with the selected videos and analyze them for user insights. Video Transcription: Utilize the insights from transcriptions to formulate content plans. Thumbnail Analysis: Evaluate your video thumbnails by submitting the URL through the OpenAI API to gain insights into their effectiveness.
by Lucas Peyrin
Overview This template provides a powerful and configurable utility to convert JSON data into a clean, well-structured XML format. It is designed for developers, data analysts, and n8n users who need to interface with legacy systems, generate structured reports, or prepare data for consumption by Large Language Models (LLMs), which often exhibit improved understanding and parsing with XML-formatted input. Use Cases This workflow is ideal for solving several common data transformation problems: Preparing Data for AI Prompts:** LLMs like GPT-4 often parse XML more reliably than JSON within a prompt. The explicit closing tags and hierarchical nature of XML reduce ambiguity, leading to better and more consistent responses from the AI. Interfacing with Legacy Systems:** Many enterprise systems, SOAP APIs, and older software exclusively accept or produce data in XML format. This template acts as a bridge, allowing modern JSON-based services to communicate with them seamlessly. Generating Structured Reports:** Create XML files for reporting or data interchange standards that require a specific, well-defined structure. Improving Data Readability:** For complex nested data, a well-formatted XML can be easier for humans to read and debug than a compact JSON string. How it works This workflow acts as a powerful, configurable JSON to XML converter. It takes a JSON object as input and performs the following steps: Recursively Parses JSON: It intelligently navigates through the entire JSON structure, including nested objects and arrays. Handles Data Types: Primitive Arrays (e.g., ["a", "b", "c"]) are joined into a single string with a safe delimiter. Complex Arrays (of objects) are converted into indexed XML tags (<0>, <1>, etc.). Dates are automatically detected and formatted into a readable YYYY-MM-DD HH:mm:ss format. Generates XML String: It constructs a final XML string based on the logic and configuration set inside the Code node. The output is provided in a single xml field, ready for use. Set up steps Setup time: ~1 minute This workflow is designed to be used as a sub-workflow (or "child workflow"). In your main workflow, add an Execute Workflow node. In the Workflow parameter of that node, select this "JSON to XML Converter" workflow. That's it! You can now send JSON data to the Execute Workflow node and it will return the converted XML string in the xml field. Customization Options The true power of this template lies in its customizability, all managed within the configuration section at the top of the Code node. This allows you to fine-tune the output XML to your exact needs. REMOVE_EMPTY_VALUES**: Set to true (default) to completely omit tags for null, undefined, or empty string values, resulting in a cleaner XML. Set to false to include empty tags like <myTag></myTag>. Newline Formatting**: Control the spacing and readability of the output with four distinct settings: NEWLINES_TOP_LEVEL: Adjusts the newlines between root-level elements. NEWLINES_ARRAY_ITEMS: Controls spacing between items in a complex array (e.g., between <0> and <1>). NEWLINES_OBJECT_PROPERTIES: Manages newlines between the properties of an object. NEWLINES_WITHIN_TAGS: Adds newlines between an opening/closing tag and its content for an "indented" look. Prerequisites An active n8n instance. Basic familiarity with JSON and XML data structures. Understanding of how to use the Execute Workflow node to run sub-workflows.
by Hojjat Jashnniloofar
Overview This n8n templates helps you to authomatically search Linkeding jobs. It uses AI (Gemini or OpenAPI) to match your resume with each job description and write a sample cover letter for each job and update the job google sheet. You can receive daily matched linkedin job alerts by telegram. Prerequisites AI API Key from one model like: Google Gemini OpenAI Telegram Bot Token - Create via @BotFather Google Sheets - OAuth2 credentials Google Drive - OAuth2 credentials Setup 1. Upload your resume Upload your CV in PDF format in google drive and configure google drive node to read your resume from list of google drive files. You need to configure Google Drive OAuth2 and grant access to your drive before that. You can find useful infomration about how to configure Googel OAuth2 API key in n8n documents. 2. Create Google sheet You need to create a google sheet document consist of two sheets, one sheet for define job filter criteria and second sheet to store job search result. You can download this Google Sheet Template and copy in your personal space. Then you can add your job filter in Google sheet. You can search job by keywords, location, remote type, job type and easy apply. You need to configure Google Sheet OAuth2 and grant access to your drive before that. 3. Conifgure Telegram Bot You need to create a new Telegram Bot in @BotFather and insert API Key in Telegram node and you need to TELEGRAM_CHAT_ID to your telegram ID.
by Akram Kadri
Who is this template for? This workflow template is designed for sales, marketing, and business development professionals who want a cost-effective and efficient way to generate leads. By leveraging n8n core nodes, it scrapes business emails from Google Maps without relying on third-party APIs or paid services, ensuring there are no additional costs involved. Ideal for small business owners, freelancers, and agencies, this template automates the process of collecting contact information for targeted outreach, making it a powerful tool for anyone looking to scale their lead generation efforts without incurring extra expenses. You can watch the video tutorial here: https://youtu.be/HaiO-UeiKBA How it works This template streamlines email scraping from Google Maps using only n8n core nodes, ensuring a completely free and self-contained solution. Here’s how it operates: Input Queries You provide a list of queries, each consisting of keywords related to the type of business you want to target and the specific region or subregion you’re interested in. Iterates through Queries The workflow processes each query one at a time. For each query, it triggers a sub-workflow dedicated to handling the scraping tasks. Scrapes Google Maps for URLs Using these queries, the workflow scrapes Google Maps to collect URLs of business listings matching the provided criteria. Fetches HTML Content The workflow then fetches the HTML pages of the collected URLs for further processing. Extracts Emails Using a Code Node with custom JavaScript, the workflow runs regular expressions on the HTML content to extract business email addresses. Setup Add Queries: Open the first node, "Run Workflow" and input a list of queries, each containing the business keywords and the target region. Configure the Google Sheets Node: Open the Google Sheets node and select a document and specific sheet where the scraped results will be saved. Run the workflow: Click on "Test workflow" and watch your Google Sheets document gradually receive business email addresses. Customize as Needed: You can adjust the regular expressions in the Code Node to refine the email extraction logic or add logic to extract other kinds of information.