Turn a HaloPSA ticket action into a printed label
A step by step walkthrough for MSPs who want to print physical labels straight from a HaloPSA ticket using the print to PDF action
The short version
This tutorial shows how to build a HaloPSA ticket action that generates a PDF sized to fit label printer stock, pulling ticket details straight onto the label. It covers configuring the action, creating the underlying PDF report template, setting the correct page dimensions and using AI to write the HTML layout.
What you'll take away
-
The print to PDF action, repurposed
The same PDF print functionality used for dynamic proposals can be pointed at a ticket action to produce a physical label instead.
-
Page size is the whole trick
Set the PDF report page height and width to match your label stock, for example 3.5 by 1.1 inches, and the rest follows from there.
-
Default HTML is not built for tiny labels
Halo's default template is closer to a quote or invoice layout, so it prints oversized and garbled onto small label dimensions until you replace the HTML.
-
Two places to configure, not one
You need an action under Configuration, Tickets, Actions and a separate PDF report under Configuration, Documents, Tickets, then link them together.
-
Forgetting the workflow step is the classic miss
A new action will not appear on a ticket until you add it to the specific ticket workflow the ticket is currently sitting in.
-
AI as the HTML shortcut
Connor uses Claude to draft the label HTML by describing the exact size, ticket ID field, client name field and no page break requirement, then pastes the result straight into HaloPSA.
Key insights from the episode
-
Build the action in Configuration, Tickets, Actions and scroll to Attach Ticket PDF Report to link it to a template.
-
Create the actual label template separately under Configuration, Documents, Tickets by clicking New.
-
Set the PDF page height and width on the appearance tab to match your physical label stock before touching the HTML.
-
Leaving the default HTML in place produces a stretched quote or invoice style layout that does not fit small labels.
-
A new action stays invisible on tickets until it is added to the relevant ticket workflow step.
-
Describe the exact size, fields and layout constraints to an AI tool like Claude to generate usable label HTML quickly.
-
Ticket variables such as ticket ID and client name can be dropped into the HTML so each printed label is unique to that ticket.
-
Test and iterate on the HTML with real ticket data before rolling it out, since getting the layout right takes some back and forth.
Questions people actually ask
How do I print a label from a ticket in HaloPSA?
Create a ticket action in Configuration, Tickets, Actions, then attach a PDF report under that action's details. Clicking the action on a ticket generates a PDF sized to your label stock which you can send straight to a connected label printer.
Where do I set the label size for a HaloPSA PDF report?
Go to Configuration, Documents, Tickets, create a new report, and set the page height and width on the appearance tab. This is the setting that determines whether the output actually fits your label printer stock, for example 3.5 by 1.1 inches.
Why does my HaloPSA PDF label print with the wrong layout?
The default HTML template in a new PDF report is built for documents like quotes or invoices, not small labels, so it stretches oddly across the page. You need to replace the HTML with your own layout sized for the label dimensions.
Why doesn't my new ticket action show up on the ticket?
A newly created action will not appear until it has been added to the specific workflow the ticket is currently on. Go into that ticket workflow's relevant step and add the action there, then save.
Can I use AI to write the HTML for a HaloPSA label?
Yes, describing the required page size, ticket variables and layout rules such as no page break to a tool like Claude will produce usable HTML you can paste into the PDF report template. You will likely still need a few rounds of back and forth to get the layout right.
What ticket data can I include on a HaloPSA printed label?
You can pull in ticket variables such as the ticket ID and the client name, plus any other fields the PDF report supports, and lay them out however you want in the HTML.
Full transcript
1,960 words
Read full transcript
Collapse
Full transcript
1,960 words
Connor: I get it, I fully get it. You want the PDF print label feature. Well, you're going to kick yourselves because this is really easy. However, for the first time in a long time we're out of content because I've been excruciatingly busy as of recent and I wasn't fully aware that we were out of video. This is going to be a one-take wonder, an OG Connor classic. Normal service will be resumed next week, but let's chat about the print to PDF function, shall we, and how we've leveraged it for one of our clients. I'm going to say recently, but it was quite a few months ago now, to basically print labels out of your help-desk.
If you haven't watched the last video then go and watch it. It was, I think, the top 10 things you didn't know about the service desk, and at the end of it I showed this little feature. It turns out a lot of you want it, and I know that because I've been getting messages and comments and crap absolutely everywhere. So it's a one pound an hour to get this, so just pay link. I'm joking. Let's jump into it.
So what am I talking about here? I am quite big today, but no editing. You what you see is what you get. So if you have a ticket in HaloPSA and you make an action that's one of these lovely little buttons at the top, make this full screen, zoom in a little bit. There we go. You have these action buttons at the top. You can actually make them print a PDF document.
Now there's many ways you can leverage this. So in the past I've done a video on dynamic proposals where we leverage the same functionality, but in this video I'm going to talk about the ability that you can click the action button like this, and it says saving the action PDF print label. And what it does is gives you a little PDF document and it generates this. And this is just basically a very small PDF document. For this client it was perfectly to the size of his label printer labels. And then you can just click print, and as long as your PDF printer is attached to your machine or networked on, you can then print out a label dead simple.
However, how do you go about doing all these things? Well, sorry, just doing the old F11, F12, Escape. Always getting lost in my browser. How do we do this? So it's really straightforward. So first things first is we have to go to configuration in the bottom left, go to tickets, and then go to actions. Now let's for today make one together and we're going to call this YouTube label print. Okay, we're going to call it YouTube label print and the icon is going to be a code fork. Why not? And it should always have a pretty colour, so let's go with light pink.
And essentially all we're doing is very far down this Details page. There's a section called attach ticket PDF report, and I want to say yes, and then I want to select a PDF report or a PDF template. So what I'm just going to do is I'm just going to click this YouTube label today just to show you what this looks like. Now you might be a bit confused as to where we're getting these from. Go down again here. You might be kind of wondering where we get these from.
So to start with the basics, if you will, what you need to do is go to configuration, documents, and then you'll see you've got all these different areas in Halo. Now the one where we want to be focused on today is actually tickets, and what you'll want to do is you want to click new. Okay, and we'll give this a name. So let's call this I don't know, Connor's fabulous YouTube test label. There we go. And then you want to just press save, and on the appearance, what you want to do is say I don't want to fall on it, but what you do need to define here—and this is kind of the key to all of this, I suppose—is the PDF size that you want for your label.
So I think for my client it was 3.5 in by 1.1 in, if you will. And then you go ahead and press save. What this means is once you have this foundation, you can go back to your ticket, back to your action. We called this I don't even know what I called this now. Suit dumb, wasn't it? We'll just call it YouTube print. Doesn't really matter. Scroll down, and what we want to do is attach a ticket PDF report, and we've made one here called Connor's fabulous YouTube test label, and press save.
Now, as always, if we go back to a ticket, the action will probably not be here because it's not within the workflow. So it's really important that you remember to add it to the workflow that the tickets on. So in this case it's my ticket management workflow, and I know I'm currently in step two of this workflow, so I want to go here and add in an action called label and YouTube label print. Press save, press save. And now if I go back to that ticket, that should now appear somewhere up here. Here we go. YouTube label print. Nice pink with a fork.
So when you press this and press save, this should now give you a PDF label of that size, or a PDF should I say of that size. And if I click that, it does this. Okay, now the reason it's done this is because the default HTML is kind of crazy. So what it's tried to do is put a default PDF, which I think is just like a generic quote or invoice template, across all of these tiny little boxes, right? Which is, if what you is this, I could speak no edits, if this is what you want, then fantastic. However, for most of you, you'll probably do what I do.
So what I do in this scenario is I go to my favourite AI engine, which is currently Claude, and I will tell Claude, Claude, can you write me some HTML for a PDF size of 3.5 in by 1.1 in? I don't want the page to break. I want a title at the top called ticket ID variable, fault ID. Underneath this I want I don't know, dollar area. Dollar area is in the middle and centred and is slightly larger than the particular ID section. Just roll with it. Then you let the AI run its magic.
Now if you are a dab hand with HTML, then by all means go and HTML your heart out. However, for those who aren't, this I'm kind of walking you through the journey of how I would approach said things. And for some reason Claude is a little bit slow today. It is bank holiday Monday, so it is what it is.
So if we copy the HTML, go back to configuration and tickets—sorry, documents, tickets, Connor's fabulous YouTube test label, Pages, edit. And what we want to do is we want to take all this HTML and replace it with our new HTML, and then go and press save. Now this will take a little bit of back and forth depending on how you want your label to look. I'm not going to give you our HTML. I'm going to let you go through this journey yourself so you understand what it is you're doing, and then you can make your own labels look pretty for you.
That isn't the right one. I want this one. I will show you that one in a moment. YouTube label print like this, and it's getting there, right? So ticket ID and then the client's name, then essentially what you want to do is just say things like I don't want a page break in it. I want this to be in the centre. And just kind of make these labels the way you want. And the reason I'll do that is because this label took us a bit of time and is quite, you know, relevant to the client. And you really want to make sure you play with it and test it to make sure you have the data on there.
This wasn't our actual output of what our client received. It was a little bit prettier than this, but the idea being is you can make these labels fit your business essentially. And that's basically that. It really is as simple as that.
So the steps are we need an action in HaloPSA. Miss my hand there. Need an action in HaloPSA. The action does nothing special. All that action does is config, tickets, actions, details, scroll all the way down until you find the attach ticket PDF report. You want to select a PDF report. If you don't have one, you go to documents, you make a new one, and the important bit about all of this is making sure you set your page height and width correctly, and then just play with the HTML.
And again, the lads, don't use AI as much as I do for any of this stuff, but if you need it, it works fairly well. You know, I would just go back and forth a little bit, wouldn't I? I'd ask Jacob while with there to be honest. But if I had to do this these days, I would go back and forth with it a little bit, and you know, it will spit out what you need.
And that's basically that. This is a bank holiday Monday, just a quick video out. Everyone's asking me for it, and I wanted to deliver as quickly as we could. So yeah, if you have enjoyed this video, if you have stayed through to the very end, please do comment below saying thank you Connor for doing this, or give me a thumbs up, or just tell me I look handsome today. Whatever works for you, I'm flexible.
As always, I've been Connor Fagan. We are Renada Solutions, and I hope you have a beautiful day, and I hope this value, hope this value, hope this video adds a little bit of value and you'll be pleased to know the ones moving forward will be edited to stop all of these little mistakes. Have a beautiful day everyone, and I'll see you soon. Bye-bye.
Author
Related tutorials
Our Core Services
Offering support to enable sustainable success for your organisation.