{"id":128502,"date":"2025-12-02T16:23:22","date_gmt":"2025-12-02T16:23:22","guid":{"rendered":"\/in\/tutorials\/how-to-integrate-n8n-with-wordpress"},"modified":"2026-03-10T10:22:40","modified_gmt":"2026-03-10T10:22:40","slug":"how-to-integrate-n8n-with-wordpress","status":"publish","type":"post","link":"\/in\/tutorials\/how-to-integrate-n8n-with-wordpress","title":{"rendered":"How to automate WordPress with n8n"},"content":{"rendered":"<p>WordPress provides a graphical admin dashboard that lets you build, deploy, and manage websites easily without coding. While already efficient by itself, you can integrate WordPress with the low-code automation platform n8n to fully automate your website administration tasks.<\/p><p>If you already have both platforms set up, most WordPress-n8n integrations consist of only four easy steps:<\/p><ol class=\"wp-block-list\">\n<li>Generate WordPress REST API credentials using an admin account. <\/li>\n\n\n\n<li>Create the basic WordPress workflow in n8n. <\/li>\n\n\n\n<li>Add and configure the WordPress node. <\/li>\n\n\n\n<li>Test the workflow to verify functionality. <\/li>\n<\/ol><p>Integrating WordPress with n8n lets you automate various tasks. For example, you can automatically create posts with AI, share new content on social media, tag blog articles, and categorize posts without human intervention.<\/p><p>Explore how to automate WordPress with n8n in more detail below.<\/p><p>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-prerequisites-for-connecting-wordpress-to-n8n\"><strong>Prerequisites for connecting WordPress to n8n<\/strong><\/h2><p>Before setting up <a href=\"\/in\/tutorials\/n8n-integrations\">n8n integrations<\/a> with the WordPress content management system (CMS), you must meet several prerequisites.<\/p><p>You must already have <a href=\"\/in\/tutorials\/how-to-install-n8n\">installed n8n<\/a> and deployed your WordPress website. If you haven&rsquo;t, we highly recommend self-hosting both of these on a provider like Hostinger to enjoy the following benefits:<\/p><ul class=\"wp-block-list\">\n<li><strong>Cost-effectiveness. <\/strong>Self-hosting <a href=\"\/in\/tutorials\/what-is-n8n\">n8n is<\/a> more affordable than the official cloud plan since you can set up as many workflows as you need without paying more. <\/li>\n\n\n\n<li><strong>Greater control and flexibility. <\/strong>You get complete control over your hosting environment, allowing you to customize and modify it according to your preferences. <\/li>\n\n\n\n<li><strong>Improved privacy. <\/strong>Since you have full access to the host server, you can ensure your data is protected and restricted to authorized parties. <\/li>\n\n\n\n<li><strong>Additional features. <\/strong>Providers like Hostinger offer various features that help you set up and manage your <a href=\"\/in\/self-hosted-n8n\">self-hosted n8n<\/a> and WordPress instances more easily, such as a control panel. <\/li>\n<\/ul><?xml encoding=\"utf-8\" ?><figure class=\"wp-block-image size-large\"><a href=\"\/in\/vps-hosting\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner-1024x300.png\" alt=\"\" class=\"wp-image-77934\" srcset=\"https:\/\/www.hostinger.com\/in\/tutorials\/wp-content\/uploads\/sites\/52\/2023\/02\/VPS-hosting-banner.png 1024w, https:\/\/www.hostinger.com\/in\/tutorials\/wp-content\/uploads\/sites\/52\/2023\/02\/VPS-hosting-banner-300x88.png 300w, https:\/\/www.hostinger.com\/in\/tutorials\/wp-content\/uploads\/sites\/52\/2023\/02\/VPS-hosting-banner-150x44.png 150w, https:\/\/www.hostinger.com\/in\/tutorials\/wp-content\/uploads\/sites\/52\/2023\/02\/VPS-hosting-banner-768x225.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>After deploying n8n and WordPress, create an account on each platform. Specifically, for WordPress, you need an admin user to obtain the credentials for the integration.<\/p><p>Next, check if your WordPress website&rsquo;s REST API is reachable by opening the following address in your web browser. Replace <strong>yoursite.com<\/strong> with your website&rsquo;s actual domain:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">yoursite.com\/wp-json<\/pre><p>If you see an error like <strong>403 forbidden<\/strong>, the API is inactive. You must update WordPress to the latest version and manually <a href=\"https:\/\/jetpack.com\/resources\/wordpress-rest-api\/\" target=\"_blank\" rel=\"noreferrer noopener\">enable the WordPress REST API<\/a>.<\/p><p>Now that you have all the prerequisites, let&rsquo;s dive into the steps for integrating WordPress with n8n.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-set-up-wordpress-integration-with-n8n\"><strong>How to set up WordPress integration with n8n?<\/strong><\/h2><p>The steps to connect WordPress with n8n are as follows.<\/p><h3 class=\"wp-block-heading\" id=\"h-1-generate-wordpress-rest-api-credentials\"><strong>1. Generate WordPress REST API credentials<\/strong><\/h3><p>An<strong> application password<\/strong> authenticates external platforms, like n8n, to access and exchange data with your site via the <a href=\"\/in\/tutorials\/wordpress-rest-api\">WordPress REST API<\/a>. It enables you to complete tasks on your website without directly interacting with the admin dashboard.<\/p><p>Here&rsquo;s how to create an application password. Note that it&rsquo;ll only be valid for the account that generated it:<\/p><ol class=\"wp-block-list\">\n<li>Open your website&rsquo;s <strong>WordPress admin dashboard <\/strong>and navigate to the <strong>Sidebar <\/strong>&rarr; <strong>Users<\/strong> &rarr; <strong>Profile<\/strong>.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af707128\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/the-profile-menu-on-wordpress-admin-sidebar.png\" alt=\"The Profile menu on WordPress' admin sidebar\" class=\"wp-image-133780\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"2\" class=\"wp-block-list\">\n<li>Scroll down to the <strong>Application Passwords<\/strong> section.<\/li>\n\n\n\n<li>Enter a name for your application password, preferably something descriptive like <strong>n8n-create-post<\/strong>.<\/li>\n\n\n\n<li>Hit <strong>Add Application Password<\/strong>.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af7086bf\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/application-password-menu-on-wordpress-with-a-name-entered-1024x204.png\" alt=\"The Application Password menu on WordPress with a name entered\" class=\"wp-image-133781\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"5\" class=\"wp-block-list\">\n<li>Copy the application password and store it in a safe location. <\/li>\n<\/ol><p><div><p class=\"important\"><strong>Important!<\/strong> For security reasons, you won&rsquo;t be able to access your WordPress application password again after closing the profile page. Make sure you&rsquo;ve made a note of it before proceeding.<\/p><\/div>\n\n\n\n<\/p><p>We&rsquo;ll use this application password later when configuring the WordPress node. First, let&rsquo;s create our workflow.<\/p><h3 class=\"wp-block-heading\" id=\"h-2-create-your-wordpress-workflow-in-n8n\"><strong>2. Create your WordPress workflow in n8n<\/strong><\/h3><p>Before integrating WordPress into n8n, you need to create a workflow to define the data the CMS will process.<\/p><p>You can develop various WordPress workflows depending on your needs, and the integration steps will remain largely similar. For this tutorial, we&rsquo;ll make a simple automation system that creates a new subscriber account when a user signs up using a form.<\/p><p>To start, follow these steps to configure the <strong>On form submission <\/strong>node to collect user data and start your workflow when users submit their contact details:<\/p><ol class=\"wp-block-list\">\n<li>Log in to <strong>n8n <\/strong>and click the <strong>Create Workflow<\/strong> button on the main screen. <\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af709c6c\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/the-create-workflow-button-on-n8n-1024x281.png\" alt=\"The Create Workflow button on n8n\" class=\"wp-image-133810\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"2\" class=\"wp-block-list\">\n<li>On your n8n canvas, click the <strong>+ <\/strong>icon.<\/li>\n\n\n\n<li>Add the <strong>On form submission <\/strong>trigger node.<\/li>\n\n\n\n<li>The node configuration menu will open. Enter a <strong>name<\/strong> and <strong>description <\/strong>for your form. <\/li>\n\n\n\n<li>Click <strong>Add form element<\/strong> to add fields to your form. You&rsquo;ll need four fields: <strong>username<\/strong>, <strong>first name<\/strong>, <strong>surname<\/strong>, and<strong> email address<\/strong>. <\/li>\n\n\n\n<li>Toggle the <strong>Required field<\/strong> setting for each field. These details are mandatory since creating a WordPress account requires them.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af70c62a\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/the-on-form-submission-node-configuration-717x1024.png\" alt=\"The On form submission node configuration\" class=\"wp-image-133811\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"7\" class=\"wp-block-list\">\n<li>Click the <strong>X<\/strong> button in the top right to close the configuration window. <\/li>\n<\/ol><p>Next, you&rsquo;ll need the <strong>Crypto<\/strong> node to generate a random password for the new WordPress user by following these steps:<\/p><ol class=\"wp-block-list\">\n<li>Add the <strong>Crypto<\/strong> node to your workflow, directly connected to the trigger.<\/li>\n\n\n\n<li>Set the <strong>Property Name<\/strong> to <strong>Password<\/strong>.<\/li>\n\n\n\n<li>Expand the<strong> Type <\/strong>menu and select the cryptographic algorithm to generate the password. In our case, we&rsquo;ll choose <strong>Base64<\/strong>.<\/li>\n\n\n\n<li>Adjust the Length setting to determine the password length. We&rsquo;ll use<strong> 24<\/strong>. <\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af70df71\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/the-crypto-node-configuration-for-generating-random-passwords.png\" alt=\"The Crypto node configuration for generating random passwords\" class=\"wp-image-133813\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Then, set up the <strong>Gmail send a message<\/strong> node to send a welcome message to new subscribers after they submit the form. Before proceeding, ensure you have <a href=\"https:\/\/docs.n8n.io\/integrations\/builtin\/credentials\/google\/oauth-single-service\/#set-up-oauth\" target=\"_blank\" rel=\"noreferrer noopener\">obtained the Google OAuth2 credentials<\/a>, as you&rsquo;ll need them to integrate the Gmail service.<\/p><p>Once you have the necessary details, follow these steps to configure the Gmail node:<\/p><ol class=\"wp-block-list\">\n<li>Click the <strong>+<\/strong> icon on your n8n canvas and add the<strong> Gmail send a message<\/strong> node after the Crypto node.<\/li>\n\n\n\n<li>Expand the<strong> Credential to connect with <\/strong>dropdown menu and select <strong>Create new credential<\/strong>.<\/li>\n\n\n\n<li>Fill out the fields using the OAuth2 credentials you obtained earlier.<\/li>\n\n\n\n<li>Click the <strong>Sign in with Google<\/strong> button and select the Gmail account from which you want to send the email. Once successful, you will see a confirmation message.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af70f872\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/the-gmail-credential-configuration-menu-on-n8n-1024x589.png\" alt=\"The Gmail credential configuration menu on n8n\" class=\"wp-image-133814\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"5\" class=\"wp-block-list\">\n<li>Head back to the main node configuration menu. <\/li>\n\n\n\n<li>Enter the following expression into the <strong>To<\/strong> field. This enables your workflow to send the onboarding message to different email addresses according to the form submission. <\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{{ $json[\"Email address\"] }}<\/pre><ol start=\"7\" class=\"wp-block-list\">\n<li>Add a <strong>subject<\/strong> for your email. As you&rsquo;ll want the subject to contain the subscriber name, you should include the <strong>{{ $json.Name }} <\/strong>expression like so:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Welcome to our blog, {{ $json.Name }}!<\/pre><ol start=\"8\" class=\"wp-block-list\">\n<li>Write the message <strong>body<\/strong> for your email. Similarly, if you want to include the subscriber name or email address, use the previous expression.<\/li>\n<\/ol><h3 class=\"wp-block-heading\" id=\"h-3-add-and-configure-the-wordpress-node\"><strong>3. Add and configure the WordPress node<\/strong><\/h3><p>After creating the workflow, you&rsquo;ll need to integrate and configure the WordPress node.<\/p><p>In n8n, each node is reserved for a specific action or purpose. Some workflows might require multiple WordPress or non-WordPress nodes.<\/p><p>For this workflow, you&rsquo;ll only need to set up the <strong>WordPress create a user <\/strong>node like so:<\/p><ol class=\"wp-block-list\">\n<li>Click the <strong>+ <\/strong>icon on your n8n canvas and select the <strong>WordPress<\/strong> <strong>create a user<\/strong> node. <\/li>\n\n\n\n<li>From the<strong> Credential to connect with<\/strong> drop-down, click C<strong>reate new credential<\/strong>.<\/li>\n\n\n\n<li>Enter your <strong>admin account&rsquo;s username<\/strong>, the <strong>application password<\/strong> generated earlier, and the <strong>URL <\/strong>of your WordPress website. <\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af711b08\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/the-wordpress-node-credential-configuration-menu-1024x587.png\" alt=\"The WordPress node credential configuration menu\" class=\"wp-image-133789\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"4\" class=\"wp-block-list\">\n<li>To enter the <strong>Username<\/strong> of the new account you want to create automatically, forward the data from the form using this expression:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{{ $('On form submission').item.json.Name }}<\/pre><ol start=\"5\" class=\"wp-block-list\">\n<li>For the<strong> Name<\/strong> setting, we can use the same expression as above because our form doesn&rsquo;t ask for this data. <\/li>\n\n\n\n<li>Hover over the <strong>First<\/strong> and<strong> Last Name<\/strong> fields, then select <strong>Expression<\/strong> to pass an empty value. <\/li>\n\n\n\n<li>In the <strong>Email<\/strong> field, enter the following expression to use the address submitted in the form:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{{ $('On form submission').item.json[\"Email address\"] }}<\/pre><ol start=\"8\" class=\"wp-block-list\">\n<li>Add the following expression to the <strong>Password<\/strong> field to forward the <strong>Crypto<\/strong> node&rsquo;s randomly-generated password. <\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{{ $json.Password }}<\/pre><p>That&rsquo;s it! Your workflow should look like the following image, and will be ready for testing.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af713778\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/a-completed-basic-wordpress-workflow-in-n8n-1024x259.png\" alt=\"A completed basic WordPress workflow in n8n\" class=\"wp-image-133817\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h3 class=\"wp-block-heading\" id=\"h-4-test-the-full-workflow\"><strong>4. Test the full workflow<\/strong><\/h3><p>To test your workflow to verify that it works properly, hit the<strong> Execute Workflow<\/strong> button and enter your details into the pop-up form, as users would.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af714c91\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/n8n-form-trigger-submission-page-1024x799.png\" alt=\"n8n form trigger's submission page\" class=\"wp-image-133818\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>If everything works correctly, your workflow should turn green. The email address you entered in the form will receive the welcome message, and a new user account will appear in your WordPress instance.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/working-basic-n8n-wordpress-workflow.png\"><img decoding=\"async\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/working-basic-n8n-wordpress-workflow-1024x268.png\" alt=\"A workfing basic n8n WordPress workflow\" class=\"wp-image-133819\"><\/a><\/figure><p>If your workflow encounters an error, a red warning sign will appear. Here are some common issues and their solutions:<\/p><ul class=\"wp-block-list\">\n<li><strong>Invalid credentials. <\/strong>Using invalid credentials prevents n8n from connecting to other applications and using their services. Check each node&rsquo;s credentials to ensure you entered the correct details. <\/li>\n\n\n\n<li><strong>Insufficient permission<\/strong>. Setting up the WordPress node using a non-admin account can cause an error because it doesn&rsquo;t have the permission to create a new user. Check the credential configuration to ensure you&rsquo;ve connected an administrator-level account. <\/li>\n\n\n\n<li><strong>Wrong expression<\/strong>. Using incorrect expressions can cause the nodes to pass incorrect or empty values. Check each node&rsquo;s input and output panes to verify that you&rsquo;ve forwarded the correct data.<\/li>\n<\/ul><p><div class=\"protip\">\n                    <h4 class=\"title\">Using expressions in n8n<\/h4>\n                    <p>Instead of manually writing expressions, you can select specific data from previous nodes by dragging and dropping it from the input pane to a field.<\/p>\n                <\/div>\n\n\n\n<\/p><p>After verifying your workflow&rsquo;s functionality, hit Save and click the toggle at the top of your n8n canvas to activate it.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af7172c1\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/the-activation-toggle-of-an-n8n-workflow-1024x144.png\" alt=\"The activation toggle of an n8n workflow\" class=\"wp-image-133792\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-what-can-you-automate-with-wordpress-and-n8n\"><strong>What can you automate with WordPress and n8n?<\/strong><\/h2><p>Integrating different nodes allows you to create WordPress workflows for various tasks. In addition to user creation, you can streamline post generation, publishing, tagging, and categorization.<\/p><h3 class=\"wp-block-heading\" id=\"h-generating-posts-with-ai\"><strong>Generating posts with AI<\/strong><\/h3><p>By combining WordPress and an AI agent, you can <a href=\"\/in\/tutorials\/n8n-wordpress-node-create-post\">use n8n to generate content<\/a>. This lets you automate time-consuming tasks like formatting articles and brainstorming topics, improving production efficiency.<\/p><p>To generate a WordPress post using n8n and AI, integrate the <strong>WordPress create a post <\/strong>node<strong> <\/strong>into your workflow by following these steps:<\/p><ol class=\"wp-block-list\">\n<li>Add the <strong>On schedule <\/strong>node that will start your workflow at a specified interval. <\/li>\n\n\n\n<li>Insert the <strong>OpenAI Message a model <\/strong>node to generate a topic for your post.<\/li>\n\n\n\n<li>Integrate the <strong>Google Sheets Get row <\/strong>node into n8n to fetch previously written topics.<\/li>\n\n\n\n<li>Set up the <strong>Aggregate <\/strong>and <strong>If <\/strong>nodes to determine whether the generated topic has already been written. Loop the <strong>true <\/strong>condition back to the <strong>OpenAI <\/strong>node to regenerate the topic if it already exists in the sheet. <\/li>\n\n\n\n<li>Add the <strong>Google Sheets append row<\/strong> node to update the topic list with the newly generated one.<\/li>\n\n\n\n<li>Connect another <strong>OpenAI Message a model <\/strong>node, but set it up to write content based on the given topic. <\/li>\n\n\n\n<li>Finish by adding the <strong>WordPress create a post <\/strong>node, which will take the AI-generated content and format it into a post draft. <\/li>\n<\/ol><p>Here&rsquo;s how the completed workflow should look:<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af718a9b\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/the-completed-automated-wordpress-post-creation-workflow-in-n8n-1024x197.png\" alt=\"The completed automated WordPress post creation workflow in n8n\" class=\"wp-image-133790\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h3 class=\"wp-block-heading\" id=\"h-publishing-posts-to-social-media\"><strong>Publishing posts to social media<\/strong><\/h3><p>Integrating n8n with various social media applications can allow you to create a workflow that automatically shares WordPress posts after publication.<\/p><p>To create this workflow, combine the<strong> WordPress fetch a post <\/strong>and social media nodes. The steps look like this:<\/p><ol class=\"wp-block-list\">\n<li>Add the <strong>Manual trigger<\/strong> node, which initiates the workflow when the user clicks <strong>Test workflow<\/strong> on n8n.<\/li>\n\n\n\n<li>Insert the <strong>Google Sheets Get row <\/strong>node to retrieve the <strong>WordPress Post ID <\/strong>from a predetermined sheet. <\/li>\n\n\n\n<li>Connect the <strong>WordPress get posts<\/strong> node to fetch the corresponding post content using the ID retrieved from the sheet.<\/li>\n\n\n\n<li>Add the <strong>Social media manager<\/strong> node to implement an AI model for analyzing the WordPress content and generating captions for social media posts. <\/li>\n\n\n\n<li>Include the <strong>Publish on X <\/strong>node to share the WordPress post on this platform. <\/li>\n\n\n\n<li>Insert the <strong>LinkedIn<\/strong> node to upload the post to your timeline. <\/li>\n\n\n\n<li>Connect the<strong> Publish on Facebook<\/strong> node to share the post. <\/li>\n\n\n\n<li>Add the <strong>Google Sheets Update row<\/strong> node to mark the posts as published.<\/li>\n<\/ol><p>The finished workflow looks something similar to this:<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af71a3d5\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/an-auto-share-wordpress-post-workflow-1024x412.png\" alt=\"An auto-share WordPress post workflow\" class=\"wp-image-133820\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h3 class=\"wp-block-heading\" id=\"h-tagging-blog-posts-with-ai\"><strong>Tagging blog posts with AI<\/strong><\/h3><p>n8n is especially helpful for time-intensive tasks like assigning <a href=\"\/in\/tutorials\/difference-between-wordpress-categories-and-tags\">WordPress tags and categories<\/a> to posts. You can automate the process by fetching the metadata via the REST API and assigning it to existing content using n8n&rsquo;s <strong>Update a post <\/strong>node.<\/p><p>We&rsquo;ll explain how to categorize content automatically in the next section. Here, let&rsquo;s explore how to configure a workflow for tagging WordPress posts automatically:<\/p><ol class=\"wp-block-list\">\n<li>Add the<strong> Manual trigger <\/strong>node to start the workflow with a press of a button.<\/li>\n\n\n\n<li>Connect the <strong>HTTP request<\/strong> node to fetch all the tags using the WordPress API endpoint. <\/li>\n\n\n\n<li>Insert the <strong>WordPress get post<\/strong> node to fetch all the posts. <\/li>\n\n\n\n<li>Set a filtering rule using the <strong>If<\/strong> node to check for posts without a tag. <\/li>\n\n\n\n<li>Use the <strong>Switch <\/strong>node to filter the untagged articles based on their topic or title.<\/li>\n\n\n\n<li>Add the <strong>WordPress update a post<\/strong> node for each post topic or title to assign the corresponding tag. <\/li>\n<\/ol><p>An example of a finished workflow looks like the following:<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af71bc3b\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/an-auto-tagging-wordpress-n8n-workflow-1024x438.png\" alt=\"An auto-tagging WordPress post n8n workflow\" class=\"wp-image-133821\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h3 class=\"wp-block-heading\" id=\"h-categorizing-blog-posts-with-ai\"><strong>Categorizing blog posts with AI<\/strong><\/h3><p>The WordPress workflows for categorizing posts using n8n are subject to the same logic as adding a tag. The difference is that it involves an additional node for analyzing content using AI to determine the most fitting category.<\/p><p>Here&rsquo;s how to set up the workflow:<\/p><ol class=\"wp-block-list\">\n<li>Add the <strong>Manual trigger <\/strong>node to start the workflow only when needed. <\/li>\n\n\n\n<li>Connect the <strong>WordPress get post node<\/strong> to fetch all existing content. <\/li>\n\n\n\n<li>Insert the<strong> AI agent node<\/strong>, which will read through the fetched posts to determine categories they may belong to. <\/li>\n\n\n\n<li>Add your preferred AI model to the AI agent node and select a large language model (LLM). <\/li>\n\n\n\n<li>Enter a prompt to ask the AI model to check the WordPress post content and categorize it. <\/li>\n\n\n\n<li>Connect the <strong>WordPress update post<\/strong> node at the end of your workflow to change the post category. <\/li>\n<\/ol><p>A completed workflow will look like this <a href=\"https:\/\/n8n.io\/workflows\/2706-auto-categorize-blog-posts-in-wordpress-using-ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">auto-categorize n8n template from Keith Rumjahn<\/a>:<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e20af71d54c\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2025\/09\/an-auto-categorize-wordpress-post-workflow-in-n8n-1024x401.png\" alt=\"An auto-categorize WordPress post workflow in n8n\" class=\"wp-image-133822\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-what-else-can-i-automate-with-n8n-besides-wordpress\"><strong>What else can I automate with n8n besides WordPress<\/strong><\/h2><p>After successfully integrating WordPress, we recommend connecting other nodes and applications to further explore the possibilities of <a href=\"\/in\/tutorials\/what-can-you-automate-with-n8n\">what you can automate with n8n<\/a>.<\/p><p>By understanding n8n more in depth, you can create other WordPress workflows for more complex tasks. For example, you can add a customer relationship management (CRM) application to your automation system to send a newsletter to new blog subscribers.<\/p><p>If you want to explore n8n and create more workflows, Hostinger is an excellent place to start. We have a comprehensive <a href=\"\/in\/tutorials\/vps\/automation\/\">catalog of automation tutorials<\/a> to help you kickstart your journey.<\/p><p>In addition to robust performance, our hosting plan offers various features to help streamline n8n setup and WordPress workflow management. For example, you can ask <strong>Kodee, our AI assistant,<\/strong> to help with server administration. You can also enable our <strong>free automatic backups<\/strong> to ensure data safety with minimal effort.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress provides a graphical admin dashboard that lets you build, deploy, and manage websites easily without coding. While already efficient by itself, you can integrate WordPress with the low-code automation platform n8n to fully automate your website administration tasks. If you already have both platforms set up, most WordPress-n8n integrations consist of only four easy [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/in\/tutorials\/how-to-integrate-n8n-with-wordpress\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":337,"featured_media":130474,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"How to integrate WordPress with n8n?","rank_math_description":"How to automate WordPress with n8n: 1. Generate the WordPress API credentials; 2. Create a workflow in n8n; 3. Add the WordPress node + more.","rank_math_focus_keyword":"n8n wordpress","footnotes":""},"categories":[22640],"tags":[],"class_list":["post-128502","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-integrate-n8n-with-wordpress","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-integrate-n8n-with-wordpress","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-integrate-n8n-with-wordpress","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-integrate-n8n-with-wordpress","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-integrate-n8n-with-wordpress","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-integrate-n8n-with-wordpress","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-integrate-n8n-with-wordpress","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-integrate-n8n-with-wordpress","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/posts\/128502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/users\/337"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/comments?post=128502"}],"version-history":[{"count":1,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/posts\/128502\/revisions"}],"predecessor-version":[{"id":130473,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/posts\/128502\/revisions\/130473"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/media\/130474"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/media?parent=128502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/categories?post=128502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/tags?post=128502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}