 Today's workshop we're going to be looking at automating WordPress, well, automating more than just WordPress, but I really like to automate things because it's kind of lazy. So it's nice to automate things that you do repeatedly. So I've been around the tech scene since the late 90s when I discovered open source. I've been around and tested more different content management systems than you could focus stick at. That's when I discovered B2 Evolution and then that led on to WordPress. I've worked in WordPress agencies. I've built agencies. I'm the founder of WC Vendors Marketplace, which is a multi-vendor marketplace plug-in for WooCommerce. And most recently, I'm now a software developer for App Awesome Motive. When I'm not writing code, I'm trying to hike a mountain and snuggle down it or dive into the bottom to look at shipwrecks. So what is no-code automation? Obviously, it's automating without writing code. There are a lot of tasks that we do both on our WordPress sites and in our businesses that can be automated. And we can do that with no-code. So by no-code, that means not running any code. That could be some kind of whizzing we get it out, which is what WordPress is. WordPress was the original proper no-code CMS. As you say, if it works smart, don't work hard. Automation. What is automation? To really figure out what you should be automating on the begin with. Are you automating this with code, with no-code, or by actually giving that task to someone else so that you can continue to focus on building your business? Automating will save you a ton of time. But what you've got to figure out is what do you automate and hack? And that's why no-code comes in very handy, because you can automate a lot of your on-site WordPress tasks as well as your off-site business tasks. You can do those either with plug-in or with a myriad of SAS tools. What should you be automating? Everything. Marketing tasks, system support tasks, business admin tasks, security scanning, reducing your plug-in count by gluing plug-ins together with other plug-ins, and pretty much everything else. So there's a ton of available plug-ins that you can install and use within the WordPress ecosystem. You've got Uncanny Automator, which is one of the largest ones. WP Fusion, which is really good for marketing automation. Funnel Kit Automations, Thrive Automator, WooCommerce Cart Abandonment, WP Webhooks, Automator WP. These are just some of the hundreds of available automation tools that you can install and use. I just picked the top six in terms of install counts and how old they are. I've used all of these tools in various tasks over the years. And so we'll go and use some of these tools to create automations, to give you examples of what you can automate within your business or within your block. Now there's the SAS tools. SAP is number one. They've got over 5,000 application integrations that you can use to create automations within your business processes. Make, which used to be called Integromat. If this, then that, which is very handy, and if this, then that's probably been around the longest, even longer than Zapier. And then we've got a new new block component called N8N. And that's the one we're going to be using today because it's free. You can run it locally or you can run it through their hosted systems. Why would you want to use N8N over the other ones? I don't like paying, giving money to Zapier. And two, data privacy. You can have everything in your own environments, and you don't have to worry about any of the data leaking out or getting stuck in vendor lock-in. So if you were to automate, a lot of people build their entire businesses on Zapier, and then Zapier can just come along, change their pricing, change which they've done many times, then you've got to adjust your business to that. If you have total control over what you're doing, this is why we choose WordPress. So hopefully some of you have been able to get some of this installed prior. NPM might be running a little slow, which has happened in previous workshops over the last day in a bit. We're going to look through some of these plugins and figure out how to get your API keys because some of them are a little bit complicated. So that'll be the closest we'll get to code is installing our API keys. So the first thing we're going to go through is a few examples of marketing automations we can do. These are just three, and there's a lot more that we can do. So the first one is a very simple one. It's card abandonment. So if you run an e-commerce store, there is a lot of data that shows that you can recover up to 40% of those abandoned carts by just installing automations for card abandonment. There are plugins and services that do this. I just grabbed the first one that came to the WordPress repo for me. So on this install, I installed WooCommerce Cart Abandonment Recovery. So, and what this plugin will do is it'll allow you to create a sequence of emails that you can send out to the customer that's abandoned the cart. And this is extremely no-code because all you've got to do is go to create your follow-up emails and you'll have three, usually three, sometimes five, automated emails that will go out for card abandonment. The reason why you do them... The first one usually doesn't work, so you've got to poke them a couple of times and give them a bigger upsell every time. So what we'll do is we'll go into these existing templates. I use ChatGBT to create the content of the emails. And so it was very quick for me. The way it works is that customer comes, they'll add something to their cart, and they'll forget about it, although they'll be like, oh, that's too expensive, I'm not going to pay for it. But these emails will allow them to remind them, say, hey, wait, you forgot to check out. Did you forget to check out? And then you do that in the first 30 minutes to two hours. It really depends on the frequency of the traffic on your site and you will have to play around with this stuff to figure out what works. Then you've got to give them some kind of incentive to actually check out. So after a day, they still haven't checked out, off from a discount. And then it's just another email, no code, just done. So this is something that everybody should have installed in what this plugin particularly, it could be any plugin, but something that gives you the ability to recover some of this abandoned carts. There's a lot of plugins that allow, automate a whole bunch of other marketing things. WP Fusion is very good for marketing automations, for triggering various things within your system using tags. Now the second one is post to social media, because we all know that, not everyone comes to read our news that we post on our site, so you want to syndicate that out over different social media channels. There are multiple ways you can do this, but I'm going to show you how to do it with Unincanny Automator. So we will go... I've already got the recipes. I've already got one. Post to Twitter. But let's actually make it again. We want this for everyone. This is a WordPress trigger, so something that's happening within WordPress, we want an action to happen. So when a post is published, we want to do something with that. In this instance, we want to post it to Twitter, because that's the only thing I've connected. So we come down here to Twitter. So these are all of the different services you can connect it to. It could be to any of your newsletter systems, Facebook, Instagram, all of the rest of them, but I only added Twitter because it was the easiest one to add. So I've already added that one, and we've got to give it a title. My status, post title, and obviously a link. And now when I create a post on the site, it'll post in my Twitter account, which we'll do right now. Actually, let's get chatGPT to make us an article. One little post for us, view the post. We've got our post, you go to my profile. Did I activate it? Is the question, when live demos don't work? Because my Twitter integration has disconnected again. It's local, why is it not doing that? Anyhow, when the internet actually works, that would have worked. So let's go back. Oh yeah, that's how you connect to it. To this one, that's live, that's live. Are you posting? Let's change this to post updated. Pick up here. Hurrah! All right, and the last one is product reviews. So social proof is very much required to push your products and give people confidence in wanting to buy it. So you really wanna encourage someone to write a review five to seven days after they buy it. And for that, I believe I built that in, N8N. So anyone who has managed to get N8N up and running yet, let me just close this down. So if you're using N8N locally or through Docker, I would recommend doing NPM just because it's just easier. What you have to do once it's installed is do type N8N. If you also installed the desktop version, it uses the same database, so you can either run it this way, to open up N8N in your browser, or the desktop app has been deprecated, and it was deprecated about two weeks after I submitted the talk, because they wanted to focus on providing a better local install from server side. So yeah, we'll come over to, you'll see that all of the automations that I've built through the web browser is also available in the desktop app. But I'll be using the web browser version because it's just a little bit cleaner. So down here we have a workflow called product reviews. So for this one, I'm doing it manually. So what we want to do is we'll create a new workflow, and you get this screen like this. It's very similar to Zapier or Make or any of the other SaaS tools that you get, except you don't have to pay for this one. So what we want to do is we want to do WooCommerce. You have a whole bunch of triggers so that when an order is created, every time an order is processed, you can trigger it. What we want to do though is we're just going to grab some existing orders, get the email addresses, and then send an email to do an email remind. So we'll go down here and we want to get many orders. Just five orders. We want them before, 31st of May, and we want after. Then what you want to do is you click execute node, and it'll get a sample of data, and as you can see, successfully created, and then that's got all the data for the order. So what that allows you to do then is with the, now that you've got the order, you're able to then do many things with it. So what we'll do is we will send an email. So you do need to create your credentials for an SMTP server. That could be MailerGun or Amazon SES or whichever mail server you use. You create, you're from an email address, and then what we can do here is we can create some, an email to say, hey, you should write us a product review. Getting here. This won't work, because I don't have an active SMTP server. But what you can do, and with no code, you can grab data from WordPress and we'll come up very easily and then manipulate that data and send it somewhere else, which is very helpful. So we go back, yes, I will save. What N8n does, whenever you use a placeholder for data that you've grabbed from one of your actions, it creates these placeholders like this. So that's how you know that data is dynamic data from your previous workflow action. It's gonna be me. All right. I have been support for 20 plus years. So there's a lot of different things you wanna do to make your job as a support engineer easier. Some of that can be after sales documentation. So I don't know how many plugins I've bought over the years and then I have to go searching for the documentation. Why not automate an email to the customer to say, hey, thanks for buying our product. Here's a link to the documentation. This is using an order trigger. So what that means is that anytime an order is created and completed, it will automatically trigger an email to the customer. And that's how you can quickly, with no code, automate an after sales documentation email. So for this one here, it automatically creates the webhook for you connected to your WooCommerce site. And then all you have to do, we will create a new order. You should probably execute the workflow first, Jamie. That's one thing. Anything that's working on a trigger, it needs to be running at all times. So for testing purposes, I would keep all of these workflows on your local install, but then when you wanna actually run them, it'd be better to run them on a server somewhere. So their workflows can stay running at all times. That's how Zapier and make and the rest of them work. And that's how they make their money is through hosting. But you could throw this up on a $5 droplet. The workflow is working. We have a question, Jamie. Yes. I haven't understood how can I connect my website with N89. Okay. This is done using the credentials tab. So all of your connections are done through credentials. So we have a whole bunch of existing credentials that are set up. So what you'd wanna do is you go here and you type WordPress. Then from here, you get this screen here. This password is not your user password, it's your application password. So that password you will find. Scroll down to the user and add new application password. This is the password we would use. So you come over here. Admin. And this is your URL. Yes, I missed the slashers. Quiet, you. Yes, so most of this, if you're doing these connections and everything, they'll be on your live website. So you won't get SSL errors or any other issues like that. So for the local install, you can just run HTTP. Now that that's active, that those credentials become available whenever you wanna use a workflow that's using any of those triggers or actions. So once we come back here, do a new workflow and anything in WordPress, create a post. This is where you select your credentials. So once you have those credentials are available, you can then post to anything you want. And that's been created. So if we go over here, here's our test draft. So that's where you could have a whole bunch of various data you've pulled into a spreadsheet, read that spreadsheet and then create a post. So you can pull stuff into WordPress or pull stuff out of WordPress. There's a various tools you could use to do this. You could use this with plugins or you can use this with N8n. The reason I do N8n is it allows you to connect to a lot of external services that the plugins don't currently support. I'm encouraging them all to support this. And I've spoken to a lot of the authors in the last couple of days. So hopefully some of those integrations will start to happen soon. But this is, I use N8n to automate a lot of my business administration stuff. Another one would be tracking your WordPress plugin repo support posts. So the WordPress support, or the repo.org support forum has an RSS feed. So you can actually read the RSS feed and then post that to Slack if you want. Which is how we were able to, at WC vendors, keep track of any new support tickets that came through WordPress.org. That meant that we're able to actually actively reply to those tickets much quicker than just going to support forums and then reloading and saying, has anyone posted any tickets today? That one I actually use if it to do that because currently N8n and a bunch of the other tools don't support monitoring an RSS feed for new items only. And then the last one would be, this is something I'm not actually gonna do a demo for that's provide a support form that automatically goes into say help scout or Zendesk or Fresh Desk or the millions of other support ticket tools if you're not using any of the WordPress.org support ticket plugins. Now these are the ones that I'm most interested in because as a small business owner, you only have so much time and you want to automate everything you can. The reason you wanna automate that is nobody really wants to do business. They wanna build cool stuff. So the first one that I've been doing for many years is whenever order comes into WooCommerce, create that invoice inside of my accounting system called zero. I can't actually demo that because the free zero account rate limits their API. So you can't actually, I can't actually demo that. But if you do have an active paid zero account, I will happily show you how to create the template to do that in an end to end. So the way it works is that you can trigger it via an order or just for me, I will just run it once a month as opposed to doing it on every order because then you can say, only give me orders that have completed. So you don't have to worry about inserting failed orders. If there's any refunds that happened, then you can make sure that those refunds are actually added to the invoice within zero. And so what you do is you get all the orders, you connect to zero, and then you create the invoice within zero. And that will go through, they'll all come into your zero account as a draft invoice. And then you just have to approve those. It'll save you a ton of time because a lot of finance, a lot of tax systems require that you actually have the invoice in both your website data as well as your financial data. And using N8N make or any of those, it's very easy to automate that. There is a plugin that does it, but the plugin doesn't support attachments. So with this, you're able to then attach, you could have it so that the plugin is working and then all you're doing is attaching the PDF invoice to that. So that'd be a lot less steps. But it really depends on what you wanna do for your business automation. This is another big one, refund requests. These take a lot of time and you should automate them. Like if you have a 100% guaranteed refund policy, then you shouldn't be touching that ticket at all. It should be automated. So I made a little demo here, which is just a Google form. And I say, I need a refund. Let me just get an order number. Yes, we will. I'll walk through the automatic refund. So what this does is it reads the Google Sheets. So when a new row is added to that Google Sheet, trigger the workflow. Getting your Google Sheets trigger API credentials is a lot of steps. But the good thing is the NAN documentation provides you a very, very detailed guide on how to get all of your credentials into the system. So as you can see, Sheets has two. One's just if you wanna create a sheet or read a sheet and the other one's for when the sheet is activating on a trigger. Whenever you don't know how to get the data that it's requesting, all you have to do is open the docs and they've got really good detailed instructions on what you need to do to get the required credentials for that particular API. Once the credentials are stored, you don't have to do it again. Come back here. So I've got it checking every minute. I've selected the refund request sheets from my Google Sheets account. And I just want to read, I want it to be triggered on when a row is added. Then we wanna get the order, which is provided by the customer in the form. And once that's completed, we send a refund request back to our WooCommerce store to refund. Let's test it. It's not gonna work because I don't have an active payment gateway because you can't refund bank transfers. But I will show you that the automation does work. It just doesn't all work if that makes sense. Let's just go to grab an order ID. 777, let's complete that order first. What's that sorry? Yes, good call. It's listening. It's not listening. Why wasn't it listening? Because this is a live demo. This was totally working like two hours ago. Yeah, so the way it'll work, you could have it hooked into one of your form plugins and then have it send the request to N8n as opposed to using a Google Form. I just used the Google Form because it was quicker. So as you see, we've got our test events. Execute this node. Show that it's getting the correct order. This one here, this is the node that will fail because you can't refund order that has been paid via bank transfer. That's a WooCommerce thing. So if you were using PayPal, Stripe or any other of the integrated gateways, when you run the automated refund, it would actually refund the order properly. That would be a total refund because usually if you're a refund policy is for 100%, people are asking for a full refund or a partial refund. So if you were doing partial refunds, then it'd get a lot more tricky because you'd have to figure out which items you're refunding or whether it's a refund of shipping or something like that, then you'd have to manually jump in and process the refund manually. But if it's a normal one, you could just send it to an automation and stop processing them manually because I was doing that for many years until I figured out I could automate my refund requests. And the last one is staff onboarding. Staff onboarding is something that all of our companies do. And what I mean by automating staff onboarding is the technical side of staff onboarding because you'll have project management systems, you've got to add them to the various WordPress sites, HR systems, CRMs, all these different things. And someone in HR has to go in and add these people manually to all these different tools. Why don't we just automate that? So here I again created a simple little form. Obviously, if you wanted to do conditions of different departments, so if they're a support engineer, they probably don't need to be in the marketing CRM and vice versa. So you could make these onboarding forms a lot more complicated or sophisticated, sorry. But we will not staff onboarding. So what I did for this one was I want them to be added to a WordPress site and also to our Trello system. So I connected my Trello account as well as the WordPress API which has already been connected. So down here in this, it's monitoring the Google Sheet again. We use the crypto plug-in to generate a password for the user, because when you create the user, you need to give them a password and everything. So we will create a brand new workflow because I've got 17 minutes, no, four minutes. All right, let's do this real quick. Run, man, and run. The row is added every minute. Which one do I want? Fetch test event. Hey, wait a second, what's it doing? Oh, fetch test event, here we go. Yep, I'm in there. Next thing I want to do, crypto, please generate me some data. I want it to be a base 64 of 32 links. All right, we've got some data. That's going to be what the password will be. Let's just create the user. Create a user, press API, they are a user. The username will be their email address. Name is first name, last name. Email address is there. First name, last name. And the password is auto. You could obviously give them different roles which are down here. So you've got other info down there. Execute that node. Sorry, that username already exists. Well, yeah, I've already created that one. What we will do now though, is now that we've got that running, it's going to sit there and why is that not triggering? Any hoops, that's off on-boarding. Totally doesn't, or maybe it does. No, user is using, that's because admin.example.com actually exists in my test database, that's why. Yes, so here you can see it was created. Okay, any questions? A lot of these automations totally do work when you use live credentials and live websites. It's just a little bit difficult to do that when you're in a slow wifi environment. This is where you can find me. Twitter, Slack and WordPress, thank you.