 Alright, good afternoon. My name is Ryan Moore. I'm going to be talking about building and automating WordPress workflows. I do want to kind of preface it by saying it's not a technical discussion. A lot of it will be focused around training and user experience for signed-in users on a site. So I'm not a developer. It's not going to touch on those kinds of topics. So I just wanted to warn you before you kind of get settled in that it's focused more on user behaviors on a site and what we do around that. Sorry, it's still bad. Okay. Okay. I'll try not to move too much. Is that okay? Good. Okay. Alright. Thank you. Okay. So just before I start, I wanted to thank the organizers as well as the sponsors for the session. And in this session, what I want to talk about is a basic introduction to automation, especially around user behaviors again. So users doing something on a site and what happens as a result of that. So we'll talk a bit about the benefits of automation, why you would want to do it, especially if there's a cost and effort consideration involved. I'll talk through some of the tools that are available, especially the tool categories. We'll go through that. Some of them that we use on our site, some that we have built. How to solve common problems with automation? So I'll look at a couple of scenarios. What we do around it to make the user experience better or make things easier as an administrator. And how you can potentially find opportunities on your sites for automation. If you do have any questions as I'm going through as well, just feel free to interrupt me and ask questions. That's completely fine. So just again, I want to emphasize that the session is really for users that are building or managing sites with signed in users. So that might include e-commerce sites, membership sites, e-learning sites, and that's really what we as a company do most. And I'll talk about that in a second. So it won't cover anything related to development, so no CLI, no crons, no code, anything like that. And it's not going to be as applicable to people without a signed in user experience. So now that we've covered that, just briefly about me, so I'm Ryan Moore. I work at Uncanny Owl, which is a local WordPress agency. We specialize in e-learning solutions for WordPress. So we build a lot of plugins and we also do a lot of custom development as well as some instructional design work. So it's really focused on what we do. And if you have worked with a plugin called Learn Dash, then you've probably heard of it or heard of us. And if you don't use Learn Dash, then you probably haven't heard of us. All right. So in the context of this session, we're really looking at user behavior. So a user does something, make a purchase, register, submit a form, looking at those kind of behaviors and then looking at what happens around them. So the user experience that happens. So we're also looking at replacing manual activities. Maybe there's a better way of doing things and what you can do around that. And specifically, we're looking at if one thing happens, what happens as a result of that. So I'm going to be talking about triggers specifically. So that's a term I'm using for what a user does. So something that happens on a site or an action they perform. And then on the other side of that, actions. So that would be things that happen as a result of something else happening. So very quickly with benefits, and then I'll talk through a couple of examples. With automation solutions, we can often realize cost savings, time savings, especially for administrators, facilitators, editors, those kinds of rules. Deliver better user experience to users, increase marketing opportunities. If we're collecting a lot of these events and doing things based on these events, then we tend to know more about the user and can customize experience around them and also deliver that personalized experience, both on the site and through other communication channels. So I'm going to switch quickly to some examples. It's a little awkward because I have to switch back and forth between PowerPoint and Chrome. So whenever I do that, bear with me for a second, it might take a minute. All right, so an example here that I wanted to start off with in terms of realizing some of those gains. And I'm going to use, sorry, a couple of training examples just because that's what we deal with mostly. So the example that I've got on screen is somebody has completed a quiz. And at the end of the quiz, we award them a certificate. Now, the way most plugins work is you get to the results of that quiz, you get the opportunity to print the certificate once. And that's it. You go away from the results, you don't have the certificate anymore. So a simple intervention since we know that they've earned the certificate and they might want it again would be to, and I'm sorry, I changed the resolution so I got to find my stuff again, would be to maybe send that certificate. So at the point that it's earned instead of having to deal with support questions around what happened to the certificate, how do I find it again? Then we can proactively think about what's the best user experience and is there a way for me to address that at the time. So just as a certificate's earned, then there's going to be a plugin or some other solution to send that at the time. Same thing with somebody's logging in. Like right now, sorry, what I'm showing on screen, it's one of our plugins just that does handle some user behavior specifically around e-learning. But same thing with any kind of signed in user on any kind of site, we want to control like what happens when they log in. Are they arriving on the right page? Are they getting the information they need at that point? So simple automation is when somebody logs in, take them to the right page based on whatever criteria you've defined. So just kind of some simple examples there of what you can do. Going deeper and I'll talk about some of these different categories of tools. Right now what I'm showing on screen and I see that it is unfortunately pretty blurry. Okay, I'll scroll around just because I know especially at the back it's going to be hard to understand it. So what I have on screen right now, this is a screen capture from ACRM called Active Campaign where we're collecting data about things that happen on the uncanny owl site where we sell some plugins and do some other things. So this is a user on the uncanny owl site and we can see exactly what's happened and we're tracking these events so that we can build experiences around that. So in this case, I can see that this user has placed four orders with us. When they place the orders, we're tracking that event by adding what are called tags and then based on that, there are a number of things that we can do to kind of get those benefits that I talked about previously. So first when we detect that they've made a purchase, we can make sure that they're getting the right information at the right time. So if they're buying a plugin, we have to make sure they have the license key, they know how to download it, they know how to get support, they know the first steps, how to find a knowledge base, that kind of information. But it goes beyond that because maybe we want to drip an email campaign that covers some onboarding topics. Maybe we want to check in with them in 45 days to make sure that they're happy with the purchase and able to do what they need to do and then we can potentially check after that have they made other purchases? If not, can we recommend something? So this kind of automation helps us in the sense that we get fewer support questions, helps the user getting the information they want when they need it. And it just reduces overall effort and makes sure that users are well supported and happy through that. So another thing we can do is we can base the experience on the WordPress site based on what a person has done. So based on their interactions with the site, what they've clicked, what they've purchased. So in this case, like I can see that this user has bought four of our plugins but not a fifth. So on our site, it would make sense for me to kind of tailor the experience to show only an ad potentially for the plugin they're missing and not ads for products they already have. Or also if they need support in a particular area, then I'm going to know that it's not in the plugin that they haven't purchased yet. So we can track those kinds of events just to customize the experience around them. All right, I'm going to switch back to slide now and look at a couple of common examples. So the first one, users make a purchase on the site and you want to make sure they have the right information and the right level of support. So if you're using something like WooCommerce or easy digital downloads, then what normally happens is that the user might receive an account creation email to confirm that it was created and then just a receipt for the purchase. But if it's something like a membership product or it's a course or something like that, it's not going to give them the right information about next steps and what to do. So an example of something like let's say it's WooCommerce and they purchased a course, then those emails that are system generated aren't going to tell them how to find the course they just purchased, how to interact with it, what's changed on the site. So the WooCommerce confirmation page, it wouldn't give them any of those details normally. So they wouldn't know, they wouldn't even know that they've been signed in. So WooCommerce, if you create an account as part of its purchase, it signs you in automatically, but it's not obvious and it's not obvious how do you get to your purchases or anything like that. So that's where we can kind of take an event that we're tracking and we know what they bought and based on that, we can give them immediate access and immediate communications to get them into the course more easily, reduce questions and just help them feel like they can purchase or access what they just purchased. So I'm just going to switch to another example for that. And so I have to manually exit each time. Oh, this is very, very hard to see now. I might not show too much of this one. So this was an active campaign workflow that is an example, a live example of when somebody does make a purchase, what do we do? So this, if I scroll down a lot, it would show kind of the drip campaigns and supporting them through the different emails and surveys and things like that, but I can't get too much into that one. It's just too hard to read at this size. So let's go on though to user completes an activity and we want to give them the right steps and access to make sure they're supported. So I'm going to switch, I'll just stay in this view. I'm going to switch to, all right, good, I can see this one. What I'm showing on screen now is one of our plugins. It's called oncannyautomator and the recipe that I've created here is saying that somebody completes one course. So again, sorry, training example, but they've done this thing. We know they've done it. They're going to want to do next, want to know what to do next. Normal behavior with LMS plugins is that somebody completes something. It takes them from the last lesson to the course page, but it looks the same. They don't know what to do next. They landed somewhere that they started with. What do you do? So in this case, I've created this simple intervention where if someone completes this first course, so we're tracking that initial completion, then we can just do for them what should happen next. So in this case, I want to enroll the user in the next course. I want to send them an email so they know exactly what happened. So walk them through, you completed this course, congratulations. Here's what you do next. We've taken care of enrolling you. You're all set. Here's where you can find it. I'm sending them an email just to confirm all of those details and I'm redirecting them to the course automatically that they were just enrolled in. So that way we don't strand them. They're not confused. We know what's happened and we can kind of make sure something is in place so that they're clear on what to do next. All right, next quick scenario. I'm sorry, I have to use the trackpad here. So it's a little awkward. Next scenario I was going to look at was what happens when someone loses interest? How do you get them reengaged? And they're really good tools for this, not necessarily native to WordPress, but if you're tying them into other tools like in this example, I'm going to show a CRM. Then let me pull it up. Then what we can do is if we can measure or track that they're no longer using the course, we can send them an email. We can notify a manager. We can do something just to help them feel supported and like they need to come back to the site and do whatever they're supposed to do. So the tool that I'm showing right here is called WP Fusion connects to CRMs, which I'll talk more about, but tools like active campaign, infusion soft, entreport, things like those and we can then pass information off and do things that are timed so that we can create these interventions. So this is also my one opportunity to show Gutenberg a bit because I'm supposed to include it even though the topic isn't around it, but what I can say is this is the first lesson of a course. So I can say that when someone completes it, I know they're active in the course, so I want to tag them as having completed that first lesson. So they've started it. I'm going to add this tag. This is going to be passed to whatever CRM I'm using. And then over on the CRM side, I can create this automation recipe that says if this user has the first lesson complete tag, then wait seven days and if the course completion tag so same kind of thing, but just for course completion. If the course completion tag is not applied, then send them an email, do something just to check in and see how they're doing if they need extra help. So it kind of makes that kind of thing easier and it means that an instructor or admin doesn't have to go in, run all kinds of reports, try to reconcile who's where, who's done what, it just happens automatically. So it saves a lot of time that way and also really improves the user experience and personalizes things too because it feels like users are almost getting individual attention through those emails and through the support, even if somebody's not actually doing it. All right, next, I wanted to look at personalizing site experiences based on what we know about a user. So let me switch back here again. So in this example, this is one of my favorite things we built for a client. They run a website where they provide training and support for financial planning, personal financial planning. And what we do is we get all kinds of data about the user. So through the coursework and through these calculators we built, we kind of build a profile of where the user is and where they need to be. So in this case, what's over here on the right? Sorry, I'll zoom out again. That's kind of the piece that's really important. And this says that, okay, based on the information I know about the user, I know where they are right now, so they're in a surviving stage, which is not good, where they need to focus. And then I can recommend learning activities. It's a lot of micro learning based on where there are gaps and what stage they're at. So because of what we know about this user, we know what learning activities they've done. We know information about their financial situation. Then we can tailor all of these recommendations based on that. So again, we collect data about the user, we're actioning it, somebody checks this off, it makes another recommendation. So the way this one's built, whenever someone checks something off, it shows a new recommendation based on their situation, it notifies them and we always show four activities. So there's always a plan. It's always straightforward and they're still in control, which is really important for engagement. Like they can choose from those four activities. We're not saying you have to do this next based on your performance or who you are. It's choose one of these four things that's right for you right now and you can go through it. So we can really personalize that experience based on the events we're tracking from the user. Okay, what I want to talk about next then are some of the categories of tools or options that you can use for automation. First one that shouldn't be ignored are manual activities. So you don't need to automate everything. There are a lot of good reasons for keeping things manual. If something is performed extremely and frequently, maybe there's not a lot of value in it or it's easy to do or maybe it's like a high value purchase. It happens once or twice a month. You want a personal experience. So it's still worth weighing that as an option as well. Next category would be dedicated integration plugins. So these are pretty calm. I'm going to pull up a list of them. So I'm going to show you an example with plugin called gamey press, which is a gamification plugin and what it does like the vendors of this then create a lot of tools that connect other plugins with gamey press. So there are a lot here, including one of ours. And the challenge of one of these or with the integration plugins, I mean the benefit is they're probably in some cases included with the plugin. If you purchase it, it's going to include some integrations. It probably does one thing very well, but at the same time, there are limitations like it only does that one thing. That's strictly it. It's supposed to do one thing and that's all it does. Another consideration is that you need a plugin for every integration. So it's something we do use commonly like there are some simple integrations that we would use on sites like if we're building something with learn-dash, we need to make it available for sale in e-commerce or in e-commerce so that someone makes a purchase. We enroll them in a course. It's just easiest to use the integration plugins that are offered by vendors. So that's what we might do there. And sorry, I keep clicking the wrong thing. Are there any questions though about anything I've covered so far? Yeah. Yeah. So common plugins for things like that would be WP Fusion, Mimberium, Active Member 360. They all have short codes included. That would be something like if user doesn't have TAG, show this. So it makes it really easy to do that. No, I mean it can be. Basically it's going to be integrated with the CRM. The CRM is what's going to collect the TAGs and tie everything together. So commerce is going to TAG it, but then something else might read that TAG and then show the conditional content. All right, next category. I was going to pull this one up. Custom development. So there are a lot of situations where a custom development might make sense if you're trying to build workflows. That would be in situations where maybe it's really unique. You want to do something that it doesn't make sense for other companies to do. We see a lot of those. Two examples would be things that might seem straightforward would be like user makes a purchase in WooCommerce. Add that user on purchase to a buddy press group. There's not a plugin that does that or something like user submits a gravity form based on their entry. Add them to a learned dash group conditionally based on the selection. So there aren't plugins for those kinds of problems. So that's a situation where a custom development might make sense. Okay, so we talked about some of the plugins available. The next category is CRM integration. So that's where we can do a lot of this work offsite. It's especially valuable for anything that's time driven or time bound. It's difficult to drive a lot of behaviors around WordPress crons. They can be more unreliable and difficult to trace. So for anything time based, we do tend to use CRM for those kinds of solutions where we can create something so that send an email or add a tag after a certain amount of time. Anything time based is very useful there. So I'm going to, again, I don't know if you'll be able to read it, but I'm going to show you one example there. If I can get to it and I can't hide this. This is tricky. So anyway, what I was going to show was an automation where somebody buys one of our products, but they started off by buying the kind of base plugin. Now when they buy the higher end license, I don't want to send them the same instructions because they have to understand how to upgrade. So instead of having a generic email, then what's happening here is I'm looking at, okay, what did they purchase? And have they previously purchased the base plugin? And if they have, then we send them different instructions that apply specifically to the upgrade because that's what they need. So it's kind of a different process, but it makes sure that people get what they need based on that event. So yeah, this is an active campaign again and what we're using to send the tags or set the tags is WP fusion. All right. Does anyone here use Zapier or IFTTT right now? Okay. Excellent. So yes, a lot of what we do can benefit from solutions like Zapier and IFTTT. They're also based on recipes. So if something happens on the WordPress site, then they can connect with over a thousand other apps. So maybe a user makes a purchase and they purchased a particular product. You want to report of that information, but you don't want to generate CSV files in WordPress. Then you could use Zapier to have the trigger on the WordPress side being purchased of a particular product and it can send data about that purchase over to Zapier, which can in turn connect to like Google Sheets and then add that information to a spreadsheet all automatically so that you don't have to run the reports. It'll just do it automatically. So if I pull up an example of that, I'll show you one. This is one that I've set up in WordPress. Again, using LearnDash in this example and what I'm doing is there is a plugin built in. Where's the content? There it is. All right. So I'm using a LearnDash Zapier integration plugin and this one is saying that when someone completes a course, any course, then trigger a webhook in Zapier and then do whatever it's supposed to do on the Zapier side. So it's tracking all course completions and when those events happen, wow, it's hard to read that too, isn't it? What's happening then is it's catching the webhook in the Zap. So it's seeing that a course completion was triggered and then it's connecting to Google Sheets and populating a row in there based on that activity. So it can be very powerful, also expensive because Zapier charges by number of Zaps. So you probably want to tailor what you're sending over to make sure that you're not sending over too much data. There are other solutions. Like for a lot of what I'm talking about, there are multiple ways of doing the same thing for that same kind of situation. Like instead of using the LearnDash integration, then this one's with our plugin. So instead of sending all course completion data, we can filter it so that it's only completion data for this course and then trigger the Zapier webhook. And then it just runs automatically. All right, next category I wanted to talk about, well, this is one of our products. So I wanted to show kind of what you can do. Again, other alternatives to this, but it's interesting how you can potentially do work or set up automations based on combinations of things. So I'll give you a couple examples and show how we might build something like this in Automator or with another tool. So let's suppose that a user buys a membership. And what I'm going to do here is I'm just going to demonstrate like, let's say that the membership's in member press. So I'm going to say that user's buying this product once. I have to tell it which product it is. And I want to say that only do these next steps if the user makes that purchase and also submits an application form. So I only want to give the user the access and the credits if they have done both things. So I'm going to say it's based on two triggers and you can do a lot of this with active campaign and fusion soft on report, things like that as well. So okay, so I've made the purchase for the product. I also want to submit a form. So I'm just going to say it is this application form. I'll save that. All right. And then those two things together. That's what I want to use to trigger the next piece. So when people buy that product and they submit the application form for it, then I want to, let's say, award them some points for a gamey press store. So I'm going to say I'm going to award them a hundred credits. And then I also want to add them. Let's say do a buddy press group for members. So based on this purchase through member press, I want to do all these different things. So I'm going to go to buddy press and I'm going to add them to a group and select that group. All right. So I would normally turn these on, but anyway, so what's going to happen then is once someone has done those two things, then we do the next two things. And by being able to do that, then we're giving the user immediate feedback. It's doing what it's supposed to do and it's, it's expanding multiple plugins to make sure they have the right experience. If you're going to do something again that in this case, we trigger things immediately once like a recipe is completed. If you have to have something that's more time bound, like you want to wait a certain amount of time after something happened, that's when you'd need probably more on a CRM. This one, like as soon as they make that purchase, then we add that purchase event to a log and then it doesn't fire the rest of the recipe until we detect that they've also submitted the form. So anyway, lots of different solutions and for, for something like that where there's time involved, CRMs are a very good choice. I'm just going to create one, a second one that's a little more training-based so you can understand kind of how we can improve the user experience with these kinds of tools. So in this case, I'm going to give an example where a student struggling in a course and based on their performance, we can track that and we can understand that they're struggling and we can make sure interventions are in place. So if you weren't using a tool like this, it would be really hard. You'd have to run several quiz reports. You'd have to reconcile who the users are and you'd have to reach out manually, which takes a lot of time. So in this example, I'm going to say, okay, I'm going to call it remedial student and I'm going to say that I want to trigger this when a user goes through a course and they fail. Oops, I named them the same thing. They fail the pre-test and I want to say they also fail the post-test. So we've established that they are struggling. Oops, I clicked two. So we understand they're struggling because performance hasn't included, hasn't improved from the first quiz to the second quiz going through all the learning content. So in this case, what I want to do is I want to make sure the user is supported. So I'm going to first enroll them in a remedial course. I skipped it. Nope. Sorry, it's hard clicking on the trackpad. So let me just, oh yeah, here we go. All right, we're going to enroll the user in the remedial course. That's going to happen automatically. We are going to let's say notify the user. So I'm going to send the user an email and just say, so I'm going to add a body here, something like that. And I'm going to say, I'm going to personalize it so high and then I'm going to start a variable. Let's say I'm going to take their first name, high first name. We have something like that so that we send them an email, they receive it and understand what's happening. So I'd go into more detail, but just because I don't want to type a lot out, I will stop there. So let's say we're going to do those two things. We are also going to tag them in infusion soft. So let's add a tag and we're going to say that this user is remedial. Here we go. And next thing I want to do is I want them to start over for this course. They have to retake it if they failed it. So I'm going to say that we want to reset progress for that current course and then once all this happened, then I want to also redirect them after the conditions are satisfied right to the course page. So whatever it is. And just by putting all those things together, then when people are struggling, they don't have to wait for an instructor to reach out or someone to realize that they're having trouble. They don't have to send the email. We're giving them exactly what they need at that time. So they have a solution to kind of bridge that knowledge gap and we're letting them know what happened. Any questions about any of the tools that I've talked about so far or approach? Yeah. It's possible. So with this tool specifically, it is possible to kind of daisy chain recipes based on it's not possible to have an if else situation, but if one action has been performed, then a next recipe can run against that for something like that. It's probably better to use a CRM where you can use advanced modeling. Like if they have this tag, but not this tag, then do this and have the different branches. Okay. So I will switch back. So those are the tools that I was really going to talk through in terms of assessing what's right for you. Things we might consider would be effort. Like if something is really fast and easy to do, then you probably don't want to implement an automated automation solution. And again, the choice of solution depends on kind of what you're trying to satisfy. How often you're running it, another consideration budget. So if you're just doing something really simple, like you want to send users an email when they make a WooCommerce purchase, it's probably not worth paying for WP fusion and infusion soft just for that particular automation. So it depends on what you want to accomplish and that's how you kind of assess what's the right fit. Also with any kind of custom development, if the tools aren't giving you what you need is it worth trying to find a workaround with them and work within their limitations? Or is it better to spend the money on development and then have that delay things further? We take a look at user experience benefits. If you stay with something manual or if something doesn't work the way it needs to or should automatically, what is the impact to users of delays? Like if someone is sending an email manually, you probably don't want that situation if they made a purchase and it includes the getting started instructions. You don't want to wait on something like that. Expected return on investment and then if you are spending a lot of time on automations and learning these new tools, which tend to sometimes have pretty big learning curves, then what are you giving up by trying to do that? So it's another thing to consider. What's simpler? What's the right approach for you? So questions that you might ask is you're kind of looking at these opportunities and considering things. What tasks do you perform on a routine basis as a site administrator or owner or whatever it is? What workflows could be improved to deliver a better user experience? Then on a day-to-day basis, how are you spending your time? Is it on things that are routine? Is it on net new things? Like for us personally, I kind of spend about three hours a day just dealing with plug-in support or plug-in development. And if somebody's asking me, how do I download your plug-in six months after I purchased it? I shouldn't be doing that. It means that I failed somewhere else because they should have had the intervention so that they had the knowledge before they had to reach out. So we're always looking at opportunities. Like how do I make sure that people are reaching out only for unique situations as opposed to something that's routine? And then just as you start using these tools or checking them out, then you'll start to figure out new opportunities, even about possibilities. So what you can do with some of these tools might give you some ideas about how to improve your site and user experience and save time. I didn't really talk about it, but of course there are a lot of admin tasks you can automate like backup is a very common one, malware scanning, uptime monitoring, spam blocking. There are plugins that just run automatically that kind of take care of those jobs. But this session was really focused on the user experience. All right. Does anyone have questions now? About that? Yeah. Yeah, depends. Yeah. Depending on needs. Yeah, like for our clients, a lot of them do use Infusionsoft, which is very expensive. We would try to normally recommend Active Campaign, which is a much lower price point and avoid something like Entroport if we can. Some of the plugins are reasonably inexpensive. Like a lot of the automation or sorry, the integration plugins would either be free or like $49. Our Automator plugin starts at $49. So there are some lower price points and you can use other services like MailChimp. Just depends on the requirements. Yeah, for sure. Yeah, exactly. Yeah, like if something includes an integration or it makes it easy anyway, we're not going to build something to kind of reproduce it. So a lot of the plugins do have supported integrations like that. No, nothing I showed has any kind of development part. So anything CRM based. It would be a plugin like WP Fusion or Membrium capturing that event and then passing the data over to the CRM for integration plugins. They're usually not tracking data. They're looking at the event as it happens, not logging anything and just doing it. Plugins like ours do keep that record. So it's that kind of plugin that's that's adding the events to a log that way, but no development in anything that I showed. Just because of supporting the client base, we do. It's it's primarily it's primarily infusion soft. I would say first, but huge learning curve and for us hard to work with in a lot of situations active campaign second, entrepreneur third and then the rest we see a bit of drip a bit of MailChimp some other things. Yes. It happens. We try to avoid it. So I mean on the development side best practice there would be to try to hook into filters and functions that the developers of those applications have made available as opposed to trying to do something you know directly in a well. Maybe watching the database or something instead something that they wouldn't expect as much like for us. Yes, it's it's always a risk any kind of updates a risk. Yeah. All right. Anything else then before I close it? Okay, I hope it was helpful. Thanks for coming to the session today. And if you want to check us out, I think thanks and if you want information it's just up there.