Two ways to schedule tickets in HaloPSA, and why they behave differently
A walkthrough for MSPs already using HaloPSA who want automatic recurring tickets, either as standalone jobs or tied to agreement hours and calendars.
The short version
This tutorial covers HaloPSA scheduled tickets from two entry points: the customer record and configuration area for straightforward recurring tickets, and the agreement schedule tab for tickets that also book calendar time. It explains recurrence, user targeting including SQL queries, ticket templates, and how agreement hours get consumed.
What you'll take away
-
Two entry points, two outcomes
Making a scheduled ticket from a customer or configuration just creates a ticket. Making one from an agreement's schedule tab also books calendar time.
-
You are not actually inside the customer record
The user picker on a scheduled ticket pulls every user in the system, because you are working in ticket scheduling, not the customer's user list.
-
Dynamic SQL can target users without picking anyone
You can write a SQL query so HaloPSA works out who gets the ticket each run, for example every company with a firewall past a certain expiry.
-
Categorisation happens on creation, not after
Setting ticket type, team, priority and workflow on the schedule removes the admin overhead of categorising each ticket once it lands.
-
Agreement based tickets only appear the day before
HaloPSA does not generate hundreds of tickets in advance for a recurring site visit; the ticket ID attaches once it is created near the appointment date.
-
Overwriting scheduled hours resets the count
Re-entering the total scheduled hours field on an agreement nulls the figure back to zero rather than adding to what is already allocated.
Key insights from the episode
-
Reorder the customer tab list if you create scheduled tickets often, so it sits near the front instead of buried in the scroll bar.
-
Stick to the general user for a site unless the ticket genuinely needs a named contact, to keep targeting simple.
-
Admins can see every scheduled ticket in the system under Configuration, Tickets, Schedule Tickets, including which customer each belongs to.
-
Always start a workflow on a scheduled ticket template, such as the ticket management workflow, rather than leaving it blank.
-
Use child templates on a scheduled ticket to spin up a set of related child tickets automatically from one parent.
-
On agreement based schedules, sending appointment invites or outstanding appointment emails fires immediately, so check the list before pressing either button.
-
Time logged against a ticket created from an agreement schedule is caught against that agreement's fixed or prepay hours once the ticket closes.
Questions people actually ask
How do I create a scheduled ticket in HaloPSA?
Go to the customer record, open the Schedule Tickets tab, and click New, or use Configuration, Tickets, Schedule Tickets to manage them centrally. Set a start date, recurrence pattern and the users or SQL query that determines who the ticket is created for, then fill in the ticket type, summary, team and workflow before saving.
What is the difference between scheduling a ticket from a customer and from an agreement in HaloPSA?
A scheduled ticket created from the customer or configuration area only creates a ticket on the chosen date and has no effect on anyone's calendar. A scheduled ticket created from an agreement's schedule tab both creates the ticket and books a calendar entry for the assigned agent.
Can HaloPSA scheduled tickets target multiple customers automatically?
Yes, using the SQL query option instead of manually picking users, so a single schedule can generate tickets for any company that matches criteria such as an expiring firewall licence. This removes the need to add and maintain a fixed list of users.
Why does the user list on a HaloPSA scheduled ticket show every user in the system?
Because the schedule ticket screen is part of ticket scheduling rather than the customer's own user page, so it is not filtered to that customer by default. You have to search for and add the specific users or site you want the ticket tied to.
When does HaloPSA create the actual ticket for an agreement based schedule?
HaloPSA generates the ticket close to the appointment, around the day before or the day of the scheduled date, rather than creating every future occurrence in advance. The ticket ID only attaches to the calendar entry once that ticket has been created.
What happens if I re-enter the scheduled hours on a HaloPSA agreement?
Typing a new figure into the scheduled hours field overwrites the existing total rather than adding to it, so the remaining hours count resets to reflect the new number. Check the current allocation before editing this field to avoid losing track of hours already used.
Does time logged on a scheduled ticket count against a HaloPSA agreement?
Yes, once the ticket is closed, any time recorded against it is caught against the linked agreement, whether that agreement is fixed price or prepay. This applies to tickets generated through the agreement's schedule tab for things like recurring site visits.
Full transcript
2,771 words
Read full transcript
Collapse
Full transcript
2,771 words
Connor: Hi everyone it has been a hot minute since I've been behind this camera doing a video on something Halo related that isn't release notes or chatting with Halo themselves. So I thought today, well, I'm going to do a couple of videos I think today to be fair, but today in particular I'm going to start with schedule tickets. It's something that some people use, it's something that a lot of people don't know about, and I'm going to throw my hands in the air and say even I learned something the other day about Halo that I never knew because there's too many settings and too many places, and I've done this for two years and I'm still learning. So never get yourself down when you think you're lost in Halo or you don't know where things are because I'm in exactly the same boat and I do this for a living.
So let's chat about scheduled tickets now. On the surface they're obviously fairly straightforward — we're going to schedule a ticket to be created on a day. Now there's a few places you can do it and depending on where you do it they have slightly different outcomes. So the first place, or the most obvious place I suppose where your staff will be doing it, is they will go to the customers tab, they will select a customer, they will scroll through this tiny scroll bar and they will find the one that says schedule tickets. Now you can have different views to this, I'm not going to go into it today, but you can reorder where this stuff is. So if you are making a lot of schedule tickets you might want to put it at the front so you're not having to scroll through and find it.
But when you do that, you can then click new in the top right and then we can start to make a schedule ticket. So we're going to make a schedule ticket and call this Connor business. I don't know why. We're going to select a start date, we're going to select a time, we're going to say I want the schedule ticket to run on the 1st of March and I want this to repeat every month and I don't want it to end. I want this to indefinitely create. And I don't want it to create ahead of time, but I want to create a ticket for every user linked to this schedule and that's quite important.
Users — you can add a user, I can search the users and this is showing me all of the users in the system which might seem slightly counterintuitive because I've gone to the customer, I don't know whatever customer I've gone to, and you'd be like why is it showing me every user? Well, what you'll actually notice is it's not pulled me through that user page. I'm actually in ticket scheduling. So although you think you're making it for that customer, bear in mind you're not — you're making a schedule ticket and it's up to you to tie it to that customer or user. So just reiterate on that: so we can add a user, we can search your users, and what I try and recommend is we stick with general users unless we, you know, need to make it for James at whatever company. And I could say I want to do a schedule ticket for a main site and I want to do one for Bley Refreshments, and then you can confirm the selection.
What you'll also notice in here though is you can also use SQL queries to determine what users this is made for. Now the clever thing about that is, remove the users bit if you will. If you think about this logically, you could make a scheduled ticket for any company depending on something right. So let's say that you have, I don't know, let's say servers right, and let's say you did a SQL query to make a schedule ticket every month for anyone that has a firewall of a certain version or with a certain expiration date. We can leverage now this SQL query, and I'm not going to go into it today because it gets a bit complicated, to make these schedule tickets automatically for us, which really opens the door. It is a little bit complicated. If you really do want me to deep dive into how we can leverage the SQL queries let me know. But essentially when you click this you're going to have to write a bunch of SQL and I call this Dynamic SQL because that's kind of what it is in the rest of the system. But essentially we'll say create it for these users depending on this, essentially. So it could be all the companies that start with the letter A, it could be all the companies where assets are over five years old, et cetera, et cetera. And what we'll say is just pick a general user from that site.
But for now let's keep it as it is. We've got Renada Solutions and we have Bley Refreshments, and I'm saying on the 1st of March make a ticket for both of these people, which will do what it likes. Then we have values. So this is saying well what ticket type do we want to make? Do we want to make a lead, a request, an internal, an alert, whatever you desire? The summary — so what do you want the ticket to say? Who do you want? What you want the status to be? What team do you want? What agent? Yada yada yada. If you've used Halo for more than 20 minutes you'll understand exactly what we're doing. I'm just going to make an incident. I'm going to say dollar area — this is an administration ticket. Check the backups. You would never make a ticket of this ilk. Start with new, give it to the support team, give it to unassigned, priority is Priority One, et cetera et cetera et cetera. And you can start different workflows here which I would recommend always starting a workflow. Let's just say the ticket management workflow. And you can also do additional fields.
So what's really good about this with the schedule tickets is you can categorise them automatically. So rather than having that admin overhead where you have to go through and categorise a ticket, you can add all this stuff on creation which is super cool. You can also add to-do lists. So you could say, I don't know, let's do planner meeting. Just bear with me. You can do related assets. Now I wouldn't in this case because we're making this schedule ticket apply to multiple companies, you can just do this one for one. So you could say check this server. You can get a little bit heavy to do that. And you can also do child tickets, so you could also have child templates and you could make a bunch of child tickets based on this. And this is kind of using the ticket templates you kind of use in that parent-child relationship. And these are all the child templates that I have in this build. And then we go ahead and press save.
And what we'll know is we have Bley Refreshments and Renada Solutions main. If I go to the customer now, Bley Refreshments, go to the scheduled tickets tab, you will see here that on the 1st of March it's going to run this. But if I also go to Renada Solutions Limited, I think I might have used my internal customer. No, that was already open. Let's see. Probably not paying attention to what I was doing. Schedule tickets, where art thou? Here we go. There's already two here. Look, you'll then see that we have two schedule tickets, one of them being active now.
Now it can be a little bit like oh what schedule tickets do we have, where are they all? Fear not. If you're an admin you can go to configuration, you can go to tickets, you can go to schedule tickets and you can then see all the schedule tickets in the system. Now obviously just bear in mind that there could be multiple customers, but Halo do show you which customers these schedule tickets are assigned to.
That's function one — that is simply making a schedule ticket. We have to make it manually and it just makes a ticket. It has no impact on your calendar. Little spoiler there for the second bit. And that basically is that it makes a ticket on a date. Now if you leverage agreements in your Halo environment, you can also make schedule tickets within an agreement. So if we just click, we made a test in, and go to the schedule tab and scroll down, what you'll see here is that we can start to create schedule tickets which can be leveraged in a few ways.
So if we click add in the top right, actually I'm going to ignore the schedule hours. I don't want to do this now. Let's just do 10. Okay, 10 scheduled hours. I don't want to email anyone, or you could email someone. Let's just do myself. But what this is doing is this is actually going to send a calendar invitation out, scheduling in this ticket, and it's going to appear in the calendar of the agent that we select in a minute. So we can click create schedule dates and we can say on the 1st of March at 9:00 a.m. I want to make a... do I have anything for what I need here? Nope. I can make an internal ticket for Connor Fagan, subject being site visit, and the hours I can say they're there for eight hours. I want this to recur this number of times. I can also set an end date and I say I want this to end on the 2nd of March 2025. So I want it to make it on the 1st of March 2025 but no more from that. I want it to end at I don't know, 8:00 a.m. Doesn't really matter.
When do we want it to recur? We want it to recur weekly and every Monday, every week. I think that is correct. Is that right? I think so yes. And we'll then see in March that we have this calendar entry appear every single week for the remaining. Ah, I pressed the wrong button. Please everyone hold the line while I speed through this. Site visit, hours 8, ticket type incident, agent Connor, start date 1st of March, end date 2025, 2nd of March. Want to make sure it creates it on the 1st of March. Does weekly, every Monday, every week? Next. There we go. We're back. And we can see as we go through this that then there's a site visit scheduled in every single week for the rest of the year.
And away it goes. And then I can press save. And this is going to do two things, just to be clear. This is still going to make the ticket in the system. It's going to make an incident ticket with the subject and the hours. But it's also going to do a calendar entry. Now we have obviously missed some of the really nice stuff about doing this: a multiple customers, doing any Dynamic SQL, setting up all of the fields on the ticket. But this is really nice for people to see that we're kind of doing these. This is kind of what I would always recommend it for. And then we can go ahead and press save. And we sit back 30 seconds. I will pause while this spins through and does all of this magic.
There we go. And we're back. And once you do all that it will say that you have 414 hours remaining because we have the scheduled hours. If I edit this and type in 424 hours and press save, it will then null it out to be zero. We can see how many hours we have allocated. So what you might want to do is you know just add these in for the year. How many hours we've used in that period. And again a few more columns I don't really know the difference with them to be honest with you, just to see kind of how many reviews so far and how many total hours we have remaining.
If you scroll down again here a little bit, we can send outstanding appointment emails. Just be careful with this because as soon as you press this button away it goes. And we can also send appointment invites. Again be careful because if you press that away it goes. And what we'll notice is if I just do this and pause a second. Jump cut. What you'll get is basically the below appointments are scheduled with how many hours are allocated, what date is allocated, and what the subject is.
So this is really, really useful in my opinion if we are doing site visits. Again it can be a little bit annoying if you know have breaks in them or you know a certain period you don't want. But remember you can always go through this and delete out the ones you don't need. You've also got an ID. So if I just click on an ID, this is basically the event in the calendar. And if I go to here and edit it, you'll see there's no ticket ID at present. Now this is because this will only make the ticket on the day before or the day of the appointment. It's not going to make hundreds of tickets ahead of time. That would be in my opinion a bit of a nightmare. So it will make the ticket kind of a day before and then it will attach the ticket ID to it once it's created.
It again, I would just thought I would showcase both of these functionality pieces to you. I don't do this a lot. We used to do this for site visits because it really did solve a problem for us. Just bear in mind though that this our remaining stuff kind of is a law of its own. But remember if you are doing a site visit and you record the time against the ticket, that ticket time, once you close it, will then be caught against the agreement, whether that's fixed or prepay.
So two ways to handle scheduled tickets inside of HaloPSA: you can go to the customer or the config area and make a scheduled ticket, or you can go to the agreements, click on the schedule tab and start to have fun and play with these. I've been Connor Fagan. I hope this has been mildly helpful for you. If you haven't used it, have a play. Any questions, put them down below. I do try and respond but we are extremely busy. Thank you again for all your support. Have a beautiful day and I'll speak to you soon. Bye-bye.
Author
Related tutorials
We recently engaged Renada Solutions to help our MSP migrate from AutoTask PSA to HaloPSA, and the experience was excellent. Conner was exceptionally friendly and ensured we were comfortable with each step of the process. He was supported by Robbie, who excelled in handling the technical aspects of the implementation.Ilkley IT
Our Core Services
Offering support to enable sustainable success for your organisation.