Where HaloPSA hides its three variable pages, and why one wraps in HTML
A quick reference for MSPs who want to pull ticket, customer and custom field data into HaloPSA emails, invoices and PDF templates.
The short version
This tutorial shows how to locate HaloPSA's variable reference pages by editing the URL, test variables directly from a ticket, and pull custom fields into email templates and PDF invoices. It also covers a specific bug where a variable silently fails to populate because it has been wrapped in stray HTML.
What you'll take away
-
Three variable pages, one URL trick
Add variables to your Halo URL for the main list, or type equals 53 and type equals 54 for two more sets.
-
Test variables from a live ticket first
Typing a dollar variable into a ticket action and hitting send is the fastest way to see the real value returned, before you commit it to a template.
-
PDF templates link straight to the reference list
The view variable button on the PDF templates page jumps to the type equals 53 list automatically.
-
Custom fields use the same dollar syntax
Query any custom object or custom field with dollar CF followed by the field name, in emails, invoices or ticket text.
-
The bug that looked like a broken variable
A variable can fail silently if it gets wrapped in stray HTML tags, so check the code view whenever one refuses to populate.
-
Build a disposable test workflow
Add a test action to a workflow, fire it against a dummy ticket type, and preview the resulting email before rolling the template out to real customers.
Key insights from the episode
-
Type variables into your HaloPSA URL to see the full list of variables with their dollar syntax, description and type.
-
Add type equals 53 or type equals 54 to the URL to reach two further variable reference pages beyond the main list.
-
The view variable button on the PDF templates page redirects to the type equals 53 list, saving you the manual URL edit.
-
Custom fields follow the same dollar syntax as built in variables, for example dollar CF ticket type.
-
If a variable will not populate, open the code view and check whether it has been wrapped in stray HTML tags.
-
Test variables directly on a ticket action before building them into a live email template or PDF invoice.
-
Build a throwaway workflow action against a dummy ticket type to preview an email template and confirm the variables return real data.
Questions people actually ask
How do I find the list of variables in HaloPSA?
Type your HaloPSA URL followed by variables to see the full reference list of variables, their dollar syntax, description and type. There are two further lists reachable by adding type equals 53 or type equals 54 to the URL.
How do I test a HaloPSA variable before using it in a template?
The quickest way is to type the dollar variable directly into a ticket action, such as an email reply, and send it. HaloPSA will populate the variable with the real value from that ticket so you can confirm it works before adding it to a template.
Why won't my HaloPSA variable populate in an email template?
This usually happens because the variable has been wrapped in stray HTML tags in the template. Open the code view for the template, remove the surrounding tags, retype the variable in plain text and save it again.
How do I pull a custom field into a HaloPSA email or invoice?
Use the same dollar syntax as built in variables, for example dollar CF followed by the field name for a custom field called ticket type. This works in email templates, ticket text and PDF invoice templates.
Where do I find the variable list for HaloPSA PDF templates?
Open PDF templates and click the view variable button at the top of the page. It redirects you straight to the type equals 53 variable reference list.
Can HaloPSA variables be used in invoice PDFs?
Yes, HaloPSA variables can be used in HTML and PDF templates, including invoices, to pull through details like the customer name or address line one.
Full transcript
1,298 words
Read full transcript
Collapse
Full transcript
1,298 words
Connor: Variables. Variables in HaloPSA. I don't know why I always lean forward in these videos. You can tell I'm not a YouTuber. Hi everybody, how we doing? I want to discuss variables in HaloPSA. I have a bit of time today because I've got some meetings coming up, so I booked out the day, so I'm just throwing out as much content as I can.
And today I want to talk about variables in HaloPSA because it is a requested video, so here I am. So what are variables in HaloPSA? Well, essentially, variables mean you can query parts of the data in your Halo in other areas of Halo. So what I mean by that is you could have, I don't know, a variable to pull in the customer's name, so whenever you send an email, you pull in and insert the customer's name.
Now I'm going to show you a few things: how to find what the variables are and how to use them. So the easiest way that I like to test variables is to do it from a ticket, and as you can see, I did a bit of testing before this video to make sure I'm not going completely insane. But essentially, there are kind of three variable pages in HaloPSA. I know it's annoying, but essentially if you grab your Halo URL, which is mine is expc, because when Halo made it they spelled it wrong, and if we just type it into the URL and type in variables, first of all, you will get a long list of variables, what their dollar value is, and a description and type of what that actually is doing.
So if I just wanted to find, I don't know, the customer's name, um, and say hi customer name and make that universal, whenever I send out an email template or if I do an action on a ticket, I can basically grab the variable area. So if I do high dollar area, I hope you're having a nice day, what that will do when you click send is it will display hi easy PC, I hope you're having a nice day, and that is because the customer's name on the right hand side that I'm testing with is easy PC.
Now the way I like to use these is in, um, ctext, um, where essentially I can use the variable email history here. So if I click send, this would be blank here, but essentially if I had any email history, it would show me in this gray box all of the email history. So sometimes what I'll do is I'll make email templates on certain actions that will have all the email history, because it may not always be applicable to send that out.
There's a few more variable pages, um, so if I type in my URL and do this, so, um, question mark type equals 53, you will find this list of variables, and the same for type equals 54, another list of variables. Now the way I know about these, um, I've not just sat here going through the numbers. I may or may not have done that in the past, um, but essentially if you go to PDF templates here, you'll see in the top there is a view variable button, and that will redirect you to 53.
And I can't remember where 54 was. Now I think it was actually in email template. Um, if I do edit here, uh, click here, no, that's the available page. There's another page you find somewhere, but essentially this is how you can start building out your email templates or your ctext to have it populate with variables so you can send out information and have it more personable, et cetera.
Um, so that is just a really really quick rundown of how I use variables. These can be used in many places. These can be used in HTML if you want to pull through like invoices. Um, you can pull through the customer name. Um, there's tons in here. I don't have the time or the knowledge to know what they all do, but essentially there's all sorts, so you could have on your invoice PDF, um, address line one, et cetera.
Now one last thing I want to mention, and this is what actually hung me up recently, is variables and email templates. So the other day I did something like this, and I said I want to do hi at area s, and then basically saved it, okay? Now the problem I had is this wasn't working, and I was going slightly insane because I was trying to basically pull a custom field.
Now if you have any custom fields in custom objects and custom fields, you can also query these in your email templates, invoices, et cetera, by just typing dollar and then the field name. So I could do dollar CF ticket type, for instance. Now when I was doing this, it wasn't working, and that is because if you look at the HTML, the code view, it was actually wrapped in some HTML text. Now this will work fine, this is just a paragraph, and the variable is exposed. But essentially, I had this wrapped in something. I don't know why it happened, but it wasn't working.
So just make sure if you're ever struggling with it, just let you remove all of this, type in area site, um, save it, and then just go back in and basically check that it's not wrapped in loads of weird HTML. Um, but essentially, if I save that like so, save it, edit it, view the code, um, I will expect that this won't work because it's wrapped. Oh, that probably will work actually. It's wrapped in strong, that's fine. Um, but essentially just be careful with it. Is my takeaway on this one. Just this is how you can check if it's wrapped in loads of weird HTML. It might not work. Um, you can always test these by the way.
Um, so let me to say if I wanted to do, um, this email template, I want to see what it looks like. I could make an action. I could call this test email template here. I could do default send an email, and I could pick the email template new ticket logged. I'm just going to go to my workflow very quickly. Just going to add the action in. On the workflow there's a few ways you can handle this. This is the way I typically do it, um, just to make sure that my things are working. I would just make a new ticket type or new workflow just for this.
Um, and if I do test email template and then send it, you can then preview the email and just make sure that the variables have actually turned the data out as you expect it. So that's pretty much it on variables. It's a very short video, but hopefully will provide a little bit of benefit for anyone who doesn't know about variables. Um, and yeah, I've been Connor. Have a lovely day, goodbye.
Author
Related tutorials
We came across Renada through YouTube and some other MSP's recommending them in various discord servers and sub reddits. After a long drawn out and ultimately failed attempt to implement a PSA on our own, we reached out to Connor and his team. 6 weeks later and we are now operational and loving the benefits Halo is brining us. It's no lie to say that without Renada we would not have got this done. Also Robbie is the GOAT.Tech Monkeys
Our Core Services
Offering support to enable sustainable success for your organisation.