Building branching HaloPSA ticket workflows with automations
A hands-on walkthrough for MSPs wanting tickets to route themselves based on a custom field instead of sitting in one straight line
The short version
This tutorial builds a HaloPSA ticket workflow from scratch, adding stages, steps, actions and custom fields, then shows how to branch the workflow using automation rules tied to a custom field value. It is a practical walkthrough for anyone who wants HaloPSA to route tickets and prompt agents automatically instead of relying on a single linear path.
What you'll take away
-
Stages versus steps explained
Stages are the visual progress bar the customer and agent see on the ticket. Steps sit inside a stage and can branch, loop, or trigger automations without changing the visible stage.
-
Delete test tickets after every workflow edit
The speaker recommends deleting test tickets whenever you change links or steps, because HaloPSA workflows can bug out mid-edit.
-
A custom field can decide the whole route
Setting a single selection custom field with values like or comment or subscribe, then branching automations off that value, lets one action button send a ticket down three different paths.
-
Quick actions unlock automation rules
An action only appears in the automation rule list once it is marked as a quick action, a step easy to miss when actions do not show up as expected.
-
End user update can send a ticket backwards
Adding the end user update trigger on a closed step moves a reopened ticket straight back to the assign stage rather than leaving it stuck at closed.
-
Default notes turn automations into agent instructions
Attaching a default note to an action, for example a reminder to update a spreadsheet or send chocolates, makes HaloPSA prompt the agent the moment the automation fires.
Key insights from the episode
-
Build stages first in Configuration, Tickets and Workflows, then replicate them as steps before adding any actions or links.
-
Ticket types control which workflow starts a ticket, set this under the Defaults tab with an initial state and starting workflow.
-
If workflow stages do not appear on a ticket, enable workflow progress visual and show workflow stages in Configuration, Tickets, General Settings.
-
Mark an action as a quick action before it will appear as a selectable trigger inside an automation rule.
-
Automation rules can check a custom field value, such as YouTube action equals subscribe, to decide which step a ticket moves to next.
-
Automations can change ticket type, agent, status and team by default, so an automation can silently reassign a ticket to a subscription team.
-
Knowledge base articles can be attached to a workflow action and appear on their own tab on the ticket.
-
Automation rules can take ten to fifteen seconds to apply, refresh the ticket page with F5 if the next button does not appear.
Questions people actually ask
How do I create a ticket workflow in HaloPSA?
Go to Configuration, Tickets, and Workflows, then click new workflow, give it a name, and add stages that represent the visible progress bar on the ticket. Once saved, add steps that mirror those stages, then link steps together with actions before assigning the workflow to a ticket type.
Why are my HaloPSA workflow actions not showing in automation rules?
The action needs to be marked as a quick action before it appears in the automation rule list. This is a common trip-up when building branching workflows off a custom field.
How do I make a HaloPSA ticket branch based on a custom field?
Create a single selection custom field with the values you want to branch on, attach it to an action, then build automation rules on a step that check the field value and move the ticket to a different step for each value. This lets one button send a ticket down several different paths.
Why don't I see workflow stages on my HaloPSA tickets?
Go to Configuration, Tickets, General Settings and scroll to around halfway down the page, then enable workflow progress visual and show workflow stages. Without these turned on, the stage bar will not render on the ticket.
What does end user update do in a HaloPSA workflow step?
It lets you define what happens if the customer replies to a ticket that is sitting at that step, for example moving a closed ticket back to the assign stage automatically. It stops replies from customers being missed once a ticket has reached its final step.
Should I test HaloPSA workflow changes on a live ticket?
You can add actions to live tickets without issues, but avoid making structural changes such as adding steps or links while a live ticket is sitting in that workflow. Delete and recreate test tickets after structural edits, since the workflow can bug out mid-change.
Full transcript
3,883 words
Read full transcript
Collapse
Full transcript
3,883 words
Hello happy New Year if you're watching this on day of release. If you're watching this a year later you'll be really confused, but today is the 5th of January and I'm just going to apologise first of all for the lack of videos. December was really busy for us at ACPC. If you're not aware, I'm going to sell promote very quickly. I am actually a Halo third party consultant and we do this all day every day. We're working with a lot of customers around the world at the minute, basically building Halo for them, doing automations and all things Halo.
With that out of the way, I'm going to very messily probably build a ticket workflow with you today. I don't script these videos. These are very much off the cuff because I don't have the time now unfortunately. Today I've been doing this for three hours now and I've done this three times. I have discovered two bugs and I have made many mistakes, so I have a rough idea what we're going to do but let's go through and build this together.
So we're talking about ticket workflows. What are ticket workflows? What do they do? Well, ticket workflows are basically how you get from point A to point B in a ticket, which could be open to closed. It could be open doing stuff to closed, or as we're going to do today, apply some automations and let the ticket do some of these things for you.
So first things first is I'm going to click configuration. This is just literally underneath my head on this side down here somewhere, just underneath my head, and I'm going to do configuration tickets and workflows.
I'm going to make a new workflow and I am just going to close this page off very quickly.
We're going to give this workflow a name and as you can see this is the stuff from before my last hundred attempts, and we're going to call this completely different name. I'm going to call this workflow Connor's YouTube video workflow.
We're then going to give it a few stages. So I'm going to call stage one YouTube triage. Stage two I'm going to call this assign the ticket. That's what I did before. It's coming back to me slowly. Stage three is going to be do something on the ticket, and then stage four is going to be closed.
So these stages are basically what appear on the ticket. It's like a visual indication bar of where you are in the ticket, and I'll show you in a few minutes where they appear.
We're just going to save that first of all and it's going to take us back to this first page. So we've named it and we've given it a few stages.
What I like to do before getting started with any workflow is basically just replicate my stages to my steps. So at stage one we have step one. At step two we have stage two which is going to be called assign the ticket. Step three is going to be stage three which is do something, and step four is going to be closed. So you can actually use end here but I like to have it as a visual indication that I'm at the closed stage of the ticket.
And we're going to click save.
So we've now got a workflow. It's not going to do anything. None of these steps are linked together. There's no actions on the ticket but let's just test to make sure we can get a ticket to actually assign to this workflow. How do we do that?
We're going to go to ticket types and we're going to make a new ticket type. This is for testing purposes of course, and we're going to call this Connor's Test YouTube ticket.
And we're going to do a few things here. We're going to go to the defaults tab and we're going to say the initial state is for any ticket created with this is new and it's going to start a workflow. We're obviously going to start the Connor's YouTube video workflow, and we're just going to assign this to the first night support team.
And I want to add a few fields to this so when we make the ticket we have to do something on it and I'm going to basically give it a summary and the description. No details is what I want. Summary and details and click save.
Then we're going to make a new ticket and just make sure all this works. So we're going to go new ticket. We're going to go William. We're going to go Connor's Test YouTube ticket. As you can see we have the two fields, summary, details.
Summary test, details test and click submit.
What we should note is now is that it starts in this workflow and we can tell because we have workflow visuals turned on. So you can see we added the four stages: YouTube triage, assign the ticket, do something, and then stage four which is closed ticket.
Now as you can see there's no actions at the top because we've defined no actions yet. And if you don't see this by the way on your instance, if you don't see these stages, you need to go to configuration in the bottom left, go to tickets general settings, and then just scroll down. It's about halfway down the page.
And then you basically need to ensure you have enabled workflow progress visual and basically show the workflow stages.
You may notice in your instance that you have the workflow name down here. I actually hide it in my sandbox, but that is the start of this workflow.
So the first thing to think about is what do we want to happen at this first stage? Well in this case I'm going to do something. I'm going to go down to configuration custom objects custom fields, and I'm going to go to the second page and click new.
And I'm going to basically add a YouTube description. Okay, and this is actually going to be the YouTube custom field.
And I'm going to add two default values. I'm going to make it single selection so you have to pick from two things, and I'm going to do something funny because I find this funny, not because you will. I'm going to say you have to either like, subscribe, or comment. So three options on this ticket: like, subscribe, or comment. Brilliant. I'm getting good at this YouTube thing I think, so you probably hate it.
So what's that done? Nothing so far. We've made a custom field. It is single selection. You have to either pick from like, comment, or subscribe.
We're then going to make an action so that we have a button to press, and we're going to say on that action show this custom field. So we're going to go to actions. We're going to do new, and we're going to say this is YouTube action. Again, this button name can be anything and it's completely up to you but the most important thing in my opinion is that we pick a good icon, and I'm going to pick the YouTube play icon.
And I'm going to add some fields to this and I'm just going to add the custom field YouTube action and click save.
So basically when you press this button it will show you the custom field which is YouTube action, then you can pick from that list and click save.
We're then going to go to our workflow. We're then going to go to edit. We're going to click add, and we're going to basically say I want to go to the actions pane and I want to add an action here and I want to allow the action YouTube action, and I want to click save.
What that's done now in our workflow, and you'll see it appear as you now have YouTube action. This might not load. Oh it had loaded. YouTube action and we can now pick like, subscribe, or comment.
Now it's going to delete this ticket and we'll do some more workflow building.
I recommend deleting the ticket whenever you update or change the workflow. It can bug out sometimes and break, especially if you're adding in links and steps. So make sure that you're not doing loads of changes on live tickets. And you can add in actions on live tickets and it should be fine, but just be conscious of that one really.
So I'm going to say that when you select or when you do the action YouTube action, I want to then move it. So you'll see under the action here we have move to step, and I want to say we then move it to the assign the ticket stage.
At the assign the ticket stage, I want to do the same thing. So click on the little pencil in the top right, click add, and I want to allow the action. I think I have one called reassign. Yes I do. Reassign and click save.
Then once they've reassigned the ticket it then wants to move to the do something stage. So again I've just gone into that step and said when you use the action reassign, move it to do something.
And then at do something you can either add a comment to the ticket or you can close the ticket. If you had a comment you remain at the same step or the same stage, but if you close it it then wants to move to the step closed.
Like so.
The very basic, very linear workflow to start with, but let's test it all works. So we're going to make a new ticket and we're going to pick the ticket we just made which is Connor's Test YouTube ticket. That summary, details test and click submit.
The first option as we know will be the YouTube action where we have to basically pick like, comment, or subscribe. And it's saying here do you want to log a response. What this means is do you want to email the customer? I'm going to put no at this stage. We can override that. I'll show you how to do that soon.
And now we have an action like, subscribe, or comment. Now at the minute it doesn't matter what we pick here so I'm just going to pick you need to subscribe to my YouTube channel and I'm going to go ahead and click save.
That should then move it to the assign the ticket stage in the workflow.
I can then reassign it and I'm just going to pick William. So assign it to William and do test.
It will then move it to the do something stage in the workflow where I can add a comment.
I'm doing something and I can set the status then as in progress and click save.
It will then be main at this step or this stage because we've not told it to do anything else, but if we click close we can then click close which will move it to the stage closed in the workflow.
Now the reason it's booked out and has shown all these actions at the top is because I don't have any actions or anything to do at their closure step. So what we need to do is go into our workflow, and we can do a few things. We can allow the action we open request, so we open the ticket. And there's also a clever function here which is basically end user update. So if the end user replies to the ticket what you want it to do? Well I want it to move back to the assign the ticket stage where you have to assign a ticket to someone to then work on it again.
I want to go ahead and click save.
So we'll prove this stage works in a minute but I want to do before we get down this route is I want to apply some automations here. This is the fun bit right? So I want to say that if you click like it does something, if you click comment it does something, or if you click subscribe it does something.
So let's start by making some actions, and I'm going to make three actions. I'm going to put video is liked. Click save. I want to make this an automation. This has to be a quick action, sorry. Make sure you click the quick action button and click save.
Then what the message was? Let's ignore it. I'm going to put video has a comment. This is a quick action. And I'm going to say user subscribed. Brilliant.
And then we're going to go to the workflow, and I'm going to try and do this as slowly as possible because this gets really complicated.
I'm going to add in a step and I'm going to call this the automation step. It's still stage one because we don't want it to move to assign the ticket stage. I'm just going to click save.
And what we're going to say now is actually instead of moving straight to reassign, I want it to go to the automation step. So I'm going to move this here to the automation step.
And now we need to apply an automation, and I'm going to go to the automation step. I'm going to click add, and I'm going to click automation. Now because we've just made those actions quick actions, they will now appear in the list. Video is liked. Save. Video has a comment. Save. And whatever we call the subscribe one. Sorry, automation. User has subscribed. But yeah, and we want to add some conditions in here.
So what we want to say is if the custom field YouTube action is selected, and they click select, then perform this automation.
I'm going to do the same for comment. So YouTube action comment. And we're going to do the same for YouTube action. Uh YouTube action. Uh comment. Subscribe, sorry, my bad. Subscribe and save.
There we go. Now what we basically said there is that when you select one of those values in that custom field, move it to the automation step and apply essentially a dummy automation action. What we then can do is link those things to different steps.
So I'm just going to move these over here just add this up a little bit. Like this. And we're going to do the font. I'm going to add some more steps. I'm going to say video was liked. Moves over here a bit more room. Video has a comment. And uh video has a subscription. Or yeah, makes no sense but stay with me.
Okay, I'll link these to the automation so what we say is if the video was liked, move it to this step: video was liked. Video has a comment, move it to the step video has a comment. Video was liked. No, user subscribed, move it to the step video has a subscription.
Move these over a little bit. And then we can say we can now add actions to all of these things. What we want to do now, I'm going to be quite simple here and I'm just going to basically add in the same action for each step. And I'm going to call it comment.
Comment. Add an action. Comment. Add another action. Comments.
After you've added a comment on the ticket it will then move to assign the ticket again. Really bad workflow, please don't use this one. Assign the ticket. And assign the ticket.
Like so.
Let's test it. If I go to service desk and I make a new ticket and I pick the ticket in that workflow, so this ticket here and do test, test and click submit.
I can then select YouTube action. I can pick the video is liked. This should then apply an automation rule.
There we go. Sometimes it can take 10 to 15 seconds for this automation rule to kick in. Otherwise you can do an F5 which refreshes it. We can now add a comment. Again, we're not at the assigned a ticket stage yet.
Brilliant. Uh the video was liked. Okay, this is completely useless but I'll show you how we can adapt it in a second. We've now added the comment which has now moved it to the next step which is assign the ticket.
And then we can then workflow the work through the simple workflow of assigning the ticket and moving it accordingly.
Now what is the benefit of doing this? Why would you want to do this? Well in this scenario I want to let my staff know that there are things they need to do with this ticket now because they've gone to this step. So I'm just going to go back to my automations very quickly, my actions.
And I'm just going to do uh there we go YouTube action. Not that one. I'm gonna do a video was liked. There we go. I'm going to do a default video is liked and I'm going to say down here I'm going to add a default note.
Please ensure you update spreadsheet a video like now. We don't actually do this by the way. What we're going to do is video has a comment. We're going to go to default and we're going to say please ensure new reply the YouTube comment. We're going to do the same one which was subscribed. Please send a box of chocolates. I wish that was valuable.
But the cool thing about this now is that if we go back and make a new ticket in our workflow and we do test and we do test, we can now triage the ticket as we would, and this time we're going to say someone subscribed and we click save.
And that will then apply the automation straight away. And it's now said please send a box of chocolates. If you wait a few more seconds that button should appear. And there we go. And then we can add a comment which is um William please send box of chocolates using company credit card. And we're gonna assign this to in progress and click save.
Again, a very pointless workflow right? But you see how you can slowly start building up the automation of this and adding in things that step at different stages, different steps to take work away from you. You can even get more granular with this. So we could then change the ticket type to subscription tickets. We could change the user by default, the status, the team, and we can handle all of that at the action.
So we can say that if the user has subscribed and we invoke this automation or this action, do these things. So we could say you know um by default it changes the team or the agent and it adds the default note. Um it can do pretty much anything you want at this stage to be honest. Um it's quite exciting to be fair. You can add to-do lists from this. You could even spin it off into a new workflow.
And so that's all I'm going to do for today because that's obviously quite a lot and something that is quite nice. You can also add in knowledge base articles as well so that will appear on a separate tab which is quite cool. And but there's all sorts you can do with this one. This is just basically you know dipping the toes in the water, if you will, getting your feet wet.
Um and that is it. So basically what we've done is we've made a full stage over here, full stage workflow but with multiple steps. And stage one is you have to pick an option from a custom field and depending on what you pick will then dictate where that goes in the workflow. You're gonna have to do custom things at that step before it will move stage in the workflow.
I hope this has been helpful. I realise this workflow isn't particularly helpful. Um but again it's hard to show you what you need because every MSP is different, every customer is different.
I've been Connor. I hope you have a lovely year ahead of you and again if you are watching the end of the year I hope you've had a good year. Um I've been Connor. If you want to reach out to me my email will be in the comments or the video description below and I will try and not plug as much in the future but this is quite fun. Um again take care. I wish you the best. Speak to you all soon. Bye.
Author
Related tutorials
Our Core Services
Offering support to enable sustainable success for your organisation.