Embedding Hudu docs and custom buttons directly inside HaloPSA tickets
A walkthrough for MSPs who want their process guides and shortcuts sitting inside HaloPSA tickets and customer records instead of a separate documentation tab
The short version
Connor Fagan shows how HaloPSA custom tabs, custom fields and iframes can pull a Hudu knowledge base article straight into a ticket or task, so engineers never leave Halo to find the process guide. He also covers custom buttons for jumping to external URLs and screen layout profiles for hiding tabs from certain teams.
What you'll take away
-
The Hudu iframe trick
A custom tab set to iframe pulls a public Hudu article straight into the relevant HaloPSA ticket or task.
-
Public links only
Hudu cannot iframe its authentication screen, so any embedded article has to be a public share link, not a private one.
-
One field, many articles
A custom text field holding the unique part of the Hudu URL lets each ticket template pull in a different article automatically.
-
Ticket templates do the heavy lifting
Provisioning tasks like a NinjaOne deployment template can pre-fill the custom Hudu ID field so the right documentation just appears.
-
Customer level tabs too
The same custom tabs and fields approach works on the customer entity, giving sales and engineering a uniform data view.
-
Hide tabs by role
Screen layout profiles under advanced settings in HaloPSA let you build different tab layouts per team, so a customer information tab can stay invisible to agents who should not see it.
Key insights from the episode
-
Build custom tabs from Configuration, Custom Objects, Custom Tabs, choosing the entity such as ticket or customer.
-
Set a custom tab type to iframe and paste a public Hudu share link, replacing the article-specific part with a variable.
-
Create the matching variable as a simple text custom field under Custom Objects, Custom Fields, for example a custom Hudu ID field.
-
Populate that custom field automatically inside ticket and child task templates so documentation appears without manual entry.
-
An unresolved custom field on a task shows a 404 page missing error until the correct Hudu ID variable is set for that template.
-
Screen layout profiles live under Configuration, Advanced Settings, and control default customer detail or navigation menu layouts per role.
-
Custom buttons can pull a stored URL from a custom field, such as a CF Halo URL field, to open an external page in one click.
-
Any document linked through this method becomes public on the internet, so keep sensitive details out of Hudu articles used this way.
Questions people actually ask
How do I embed a Hudu article inside a HaloPSA ticket?
Create a custom tab on the ticket entity in HaloPSA, set its type to iframe, and paste in a public Hudu share link. Replace the article-specific part of the URL with a variable tied to a custom text field, then populate that field per template or task.
Why does HaloPSA need a public Hudu link instead of a private one?
Hudu cannot iframe its own authentication screen, so any article embedded through a HaloPSA custom tab has to be a public share link. This means the document becomes accessible without a login, so avoid putting sensitive details in it.
How do I show different documentation per ticket template in HaloPSA?
Create a custom text field, for example a custom Hudu ID field, and reference it as a variable inside the iframe URL on your custom tab. Then set the ticket or child task template to populate that field automatically with the relevant article ID when it provisions.
How do I hide a custom tab from certain agents in HaloPSA?
Go to Configuration, Advanced Settings, Screen Layout Profiles, and build a custom layout for the default customer detail screen or navigation menu. Apply that layout to specific teams or roles so the tab, such as a customer information tab, is hidden for anyone not assigned that profile.
Can HaloPSA custom tabs be used on customers as well as tickets?
Yes, the same process applies. Instead of selecting the ticket entity in Custom Tabs, select the customer entity and add a fields-type tab populated with whichever custom fields you want visible at customer level.
What do custom buttons do in HaloPSA?
A custom button can read a stored value from a custom field, such as a URL field, and open that link with one click. This saves repeatedly navigating away from Halo to an external page you visit often.
Why might a HaloPSA custom tab show a 404 page missing error?
This happens when the custom field variable used in the iframe URL has not been populated for that ticket or task, so the link does not resolve to a real Hudu article. Setting the field correctly in the relevant template clears the error.
Full transcript
2,089 words
Read full transcript
Collapse
Full transcript
2,089 words
Connor Fagan: Good day, I hope you're well, my name's Connor Fagan. Today I'm going to dangle a carrot in your eyes and then probably take it away and go you probably shouldn't do this, but I just want to kind of plant the seeds and open up your brain into some of the things you could potentially do in HaloPSA using custom tabs and fields. And if you haven't used them before, give you a path to go down. So let's jump straight into it and I'm going to start today by dangling a carrot of something that I've done. I'm going to show you how I've done it, and then we're going to touch more on custom tabs towards the end of the video.
So what is my carrot dangle? Well, my carrot dangle is that I tell you what, we'll go through the process. My carrot dangle is that I was working with a partner yesterday and we were discussing how to fully project manage in HaloPSA. And I think we do it pretty well now where we stand up our projects and they have all the key tasks, and again a few smaller child tasks underneath if we need it. But one of the things that I always get really hung up on is the to-do list items.
Now, I know we can group them now, but you can't really write a guide in here, right? It's just not that. It's a checklist: have you made the to-do list? Yes or no? Not to make a user check these things off. It's not a process tree, and I always get asked well where should we do that process tree? And I'm always like well, you could use the Hudu knowledge base, but I kind of think that's more for customer-facing stuff rather than internal, and it gets a little bit gray.
So I typically say do it in your documentation platform and work out of there. And I had a bit of an idea yesterday, and again we didn't actually implement this because I have concerns around it. But one of the things that we did was if you have a child task, so here I've got NinjaOne deployment. What we've done is we've made a custom tab which links to the Hudu article and it shows you in here the knowledge base article that you manage and maintain in Hudu on the relevant task inside of Halo. And you go, that's all well and good, but what if it isn't a NinjaOne setup? What if it's something else? Well, it's good because you can actually build it so that you can attach a different knowledge base article to each task in Halo.
Now, the problem with this is this is using a public link and I'm framing it in, and I'll explain what that means in a minute. But the concern I have with this is that you are making this document public. Now, it depends on how you write your guides, and again they should be as abstract as possible, right, and not have any passwords in it. But just bear in mind that if you go down this road you are making these documents public. But I'm just going to show you what we did.
So if you go to Configuration in the bottom left—yes, my big forehead is in the way—just to be clear, my forehead is getting bigger, my hair is not receding—yep, then we go to custom tabs and then we're going to go to Ticket. So in Ticket, what we're going to see in here is I've made a custom tab called Documentation. To do that, I clicked New, I typed in the word Documentation, and I just made it an iframe. And I can demonstrate that by clicking on this one here.
And what you'll see I've done is I've made a custom tab called Documentation. I've said yes, it's an iframe. I want it to be sequentially the first in all of my custom tabs. And what I've done is I've added a URL. To obtain said URL, if you do like this idea, is I just made a public share link in Hudu and copied that URL. I then pasted it in here and stripped out the bit at the end. This is what distinguishes each public link in Hudu. And replaced it with a variable. And the variable to me was just CF custom Hudu ID.
Once you've done that and you've made a field with whatever name you design here, you then need to go to Custom Objects, Custom Fields, and then make the field. So I made one called custom Hudu ID, and then in here I just made it a simple text field and said anything can go on it. To demonstrate that, if you go back to this ticket, currently I've not hidden it at all, but it will appear here. And you'll see it's got a value in it. But you might be thinking, Connor, I don't want to have to add a value every time I'm making a ticket. That kind of defeats the purpose. And this is where it gets a little bit clever.
So because I've made it a variable, what I've said is in my ticket templates and child templates, when I provision the task—provision tools NinjaOne—what it actually does is it adds that part of the URL in here for me. So it takes the first part of the Hudu URL, it then variables it, and the variable contains this data. And what you end up with on the ticket is this. So because I've not restricted this to anything yet, this is just on every single task. You'll sometimes get this 404 Pages missing because it's not resolving. You can tidy this up, just to be clear. But if you do go to something like Hudu deployment, where I've added in that on that template, you get this nice documentation page.
That was the first part of today's video really, just to demonstrate that this is something you can do with iframing in Halo. Now, what the problems Hudu has—I don't, I don't really know technically enough about this—but you can't iframe the authentication screen, and I think there's a lot of reasons for that. But it means that they have to be public links that you can iframe in. If your document doesn't have anything sensitive in it, then by all means crack on. This is going to be a bit of a game changer for most people. But if you don't want to publish it, then currently you're a little bit stuck.
The next thing worth showing is that this is iframing on a ticket. But what you can also do is yes, you can iframe on other areas of Halo as well if you wanted to. But you can also add custom fields. Something that I've spoke about in the past but I haven't really shown it off in a video, I don't think, is how we leverage custom tabs at a client level or customer level. Again, it follows the exact same ideology where we go to Configuration, we go to Custom Objects and Custom Tabs, and instead of selecting the entity Ticket in the top left, we select the entity Customer. And I've then made one here called Customer Information.
Within here, I've said it's a Fields type, so it contains fields. And then I've just simply added a bunch of random custom fields to show on that customer area. And again, what you end up with is this. Now, we did some crazy runbook to pull in all of their group members from Microsoft 365. That's a future video once we iron this out—it's a little bit ugly at the minute. But the idea being is that you can start having this real nice uniform data set where your engineers or your sales team or whoever can go to see it.
Now, another concern you might have is, well, Connor, what if I don't want people to see the custom information tab? What if I only want to let the sales team see this information? Again, when you have these custom tabs, you can go to Advanced Settings under Config, and you can go all the way down until you find the one that says Screen Layout Profiles. And you can have default customer detail screen layout or default navigation menu layout. And what you can do with these is you can make custom tab layouts that you can apply to different teams or different roles or whoever you need it to, so you only show them the tabs at the customer area that you want them to see.
So if you didn't want the customer information one to appear for that agent, we can just hide it. So they now cannot see that information on there, which again I think is quite nice, right? We're starting to refine our Halo build to have custom interactions and custom areas that we can leverage to help our workflow. The next thing I want to touch on today—and I know I'm flying through this video, but that is kind of the intention—is custom buttons. And again, we can have custom buttons on a variety of different areas inside of Halo.
But one of the ones that I was going to leverage was the CF Halo URL. So what I was going to do at the customer level was type in here: is it a customer? Yes. If so, https://v.HaloPSA.com. Save it and then have a button at the top which kind of used to work, which then when I press it pulls the value from the variable and opens up v.HaloPSA.com. And again, you can add buttons in here to just speed up your workflow if you're continuously going to somewhere and then opening up another page because of that. Add a button up here. And that's really it for today.
This is going to be an under ten-minute video, I hope. But I really want to see what you all come up with, like genuinely. I'm quite excited. I've known about this for years, obviously. It's never really had—again, we used to get quite a lot of questions, clearly, but never really had a video that I could show off that would really help you and really demonstrate to you how valuable this could be. But thinking about iframing stuff in—and I know some integrations do this already—it could really open up the way you use Halo and interact with it on a day-to-day basis.
So that's it. I'm going to end this under ten minutes. I know it's a record for me. But yeah, I hope you've enjoyed that. I'm trying not to ramble. I want to be under ten minutes. But yeah, I've been Connor Fagan. I hope you've enjoyed this video. I hope you have some creative ideas, and if you do, please put them in the comments below or hit me up on Discord or LinkedIn and show me it, and I'll happily show it off to the world. But yes, as always, have a beautiful day, take care, and I will see you all soon. Bye-bye.
Author
Related tutorials
I cannot recommend Renada Solutions, Connor Fagan and Robbie Emerson highly enough. The lack of documentation paired with the complexity and power of HaloPSA meant that we needed a partner in configuring Halo to work within our constraints. What sets Connor and Robbie apart is their careful listening, their encyclopaedic knowledge of Halo, and their unique perspective on crafting truly elegant solutions to complex issues.Tech Ease
Our Core Services
Offering support to enable sustainable success for your organisation.