Cookies

We use analytics to see how the site is used so we can improve it.

Skip to content

Tutorials are currently undergoing maintenance, as such some tutorials may be hidden whilst we review.

Renada

Why Renada turned down its own custom RMA workflow in HaloPSA

A look inside a custom asset collection and replacement build in HaloPSA, and the reasons one consultant recommended against putting it into production

11 December 2024 10 min watch Connor Fagan

The short version

A HaloPSA consultant walks through a custom-built RMA workflow that collects and replaces customer assets using tickets, actions, dynamic SQL and custom fields, then explains why he told the client not to run it in production. Useful if you are considering a similar custom integration in HaloPSA and want to understand the maintenance burden before you build one.

What you'll take away

  • A working RMA ticket built entirely from native Halo parts

    Tickets, actions, assets, dynamic SQL and custom field visibility all chained together to collect and replace a device.

  • Asset status changes automatically as the ticket progresses

    Picking a desktop for collection sets it to pending collection, then in transit, then collected, all reflected on the asset record.

  • Six integration methods just to collect and replace one asset

    The asset collection confirmation alone runs through three or four stages before the replacement even ships.

  • Signatures and vehicle tracking baked into the action

    Each collection captures who collected it, which vehicle they used, and a customer signature confirming the handover.

  • The catch-22 of native-feeling customisation in HaloPSA

    Building something that feels native still means you own every fix if Halo changes something underneath it.

  • Just because you can doesn't mean you should

    The consultant's own rule for deciding whether a custom runbook is a sustainable solution or a support liability.

Key insights from the episode

  1. Dynamic SQL on the asset type field pulls live from the assets by type view, so new asset types appear automatically.

  2. Custom fields on the action, once selected, are locked and cannot be changed, which prevents mid-process data corruption.

  3. The asset collection confirmation step alone needs three or four stages before a replacement can even be marked as shipped.

  4. The full collect and replace workflow required six separate integration methods to build.

  5. Some post request bodies had to work around a null value, a sign the workflow was pushing past what the API cleanly supports.

  6. If a custom runbook like this breaks, someone in-house needs to understand every moving part, not just the consultant who built it.

  7. Heavily document any custom runbook you build, because a week off sick or on holiday can leave nobody able to fix it.

Questions people actually ask

Can HaloPSA track asset collection and replacement natively?

HaloPSA does not have a built-in RMA feature, but a custom workflow can be built using tickets, actions, assets and dynamic SQL to track collection and replacement status. The video shows this working, though the consultant does not recommend it as a production solution due to its complexity.

What is dynamic SQL used for in a HaloPSA custom workflow?

In this build, dynamic SQL powers a dropdown on the action that pulls live asset types from the assets by type view, so the list of desktops, laptops and servers available for collection stays current automatically.

Why did Renada recommend against its own custom HaloPSA RMA build?

The workflow needed six separate integration methods and several stages just to collect and replace a single asset, with some requests hacking around a null value. That level of complexity means any change Halo makes to the underlying platform could break the whole chain.

How risky are custom integrations built inside HaloPSA?

They can be risky if nobody in-house understands every moving part, because a platform change from Halo can break the whole workflow without warning. The consultant's advice is to only build custom runbooks you are prepared to maintain and heavily document them in case the builder is unavailable.

Does HaloPSA lock custom field values once an action is submitted?

Yes, in this workflow the asset selected for collection and the replacement asset become fixed once chosen, preventing them from being changed later in the ticket. This was a deliberate design choice to stop the process introducing errors partway through.

Should MSPs build custom runbooks for edge case processes in HaloPSA?

Only if someone in-house can manage and fix the integration long term, since a broken custom runbook on a mission critical process can be costly to maintain. The consultant's rule is that just because Halo lets you build something does not mean it is a sustainable solution to sell.

Full transcript

2,232 words

Read full transcript

Connor: Hello, good evening. It is a pleasure to see you, even though I can't see you, but you can see me.

Um, today is a bit of a different video. I'm usually either giving you a guide on how to do something or showcasing something I've built, and then I'm going to tell you how I've done it. I'm more or less going to show a concept this evening inside of HaloPSA.

Um, long story short, I had a customer come to us about a month ago now, asking if we could really help solve a problem for them inside of HaloPSA. And as many of you are aware, we are HaloPSA and the ITSM consultants, and what we do is generally provide solutions to your business issues. And the problem is, is Renada has a slogan, if you will, and our slogan is we provide elegant solutions to technical problems. And which basically means we'll try and help you as best we can to find a nice, clean and easy way to solve the problem.

However, in this particular use case, um, I've had to kind of draw the line in the sand and say to the customer, I don't think this is a valuable solution due to how messy it is. And I'm going to kind of show you what I mean. But essentially, they wanted to handle some RMA stuff inside of Halo. They have a lot of customers all across the United States, and they frequently get requests to essentially go and collect a device, replace it with another device, and keep all of that kind of process tracked.

So let me jump into Halo, and let me zoom in a little bit. And I've kind of got two tabs open here. So I've got a new area that I've called RMA, and this could be anything—it could be asset collection, doesn't matter—it's just the ticket area. And then I've got the assets area open here. So just to be clear, I currently have five assets.

Um, Renada Solutions has, um, well, actually, let me just change this to be, um, uh, no it's fine, it'll get the point across.

Um, Renada Solutions has one asset that is active, and then has five basically replacement assets—let's call them that—that are in stock. And as you can see here, they're in the stock location.

So the idea was, is that we could create a new ticket. So let's call this a new RMA.

And then we pick a customer. So I want to collect and replace an asset for. In this use case here, Renada Solutions. So the summary is, um, collect Matt's views laptop, and it stopped working. This is what the manufacturer or the customer would say to us. Please collect Matt's laptop, it stopped working. And we might ask on the phone, when do you want us to do that? Or we might get it via email, and they're like, oh, as soon as possible. So we always click two days ago. I'm joking. I've set it today, and that's kind of the ticket, right? This would usually come in from the vendor or the customer, and it'll be, hey, please collect Matt's laptop. And what you would then typically do—and this is kind of the workflow I've started to build out—is I've got this action that says asset for collection. So what we would do is we would select an asset type. You will see that this is dynamic SQL. And this is looking at, if I go over to assets, the assets by type here. So Mac desktop, Mac laptop, desktop, laptop, and so server Windows. That echoes here. When you select that, it will then ask what desktop you want to pick. Now, this is currently only going to show us, um, active assets at this site. So many of the Solutions main site. This is the assets available to collect.

And you typically bring up the customer to find out what I said it is. And again, you could add more notes in here or whatever you wanted. And then you would set a status. So I'm going to say this is pending collection. Now, this customer had a use case where sometimes they would go and collect it, or a third party would go and collect it. So in this use case, I'm just going to say it's pending collection, Renada. And I'm going to press save. So we're going to go collect this asset.

What that does in turn is a couple of things, actually. And firstly, if we go to the desktop, we will now see that this device has the status pending collection. You will also see in the ticket that is wrote it back to the action body. So what's being collected, what type, and what the status now is. And there's also a custom tab which says we're collecting this asset with this ID. And these are fixed. You can't change these. So once you select it, it's kind of locked in.

Then you could say, you know, after you check the warehouse or have a conversation, we're going to replace it with another desktop.

And then you would pick which desktop you want to replace it with from stock. And I'm going to say I want to replace it with laptop 2. And I'm going to say that that is waiting delivery to the customer's site. And again, we could automate these statuses. Just this is the proof of concept, right.

What that then does in return, again, if I just refresh this page here, it will then update replacement 2 with waiting delivery. So I'm gonna deliver the replacement 2 to the customer site. Then we can click this asset collected button and say, yes, we are collecting Matt's PC. This is fixed. We can't change this. It stops any problems.

Um, when did we collect it? So I'm saying tonight at half past eight seems to be a theme. And what vehicle am I collecting it in? You know, you could have multiple vehicles, and this is quite prevalent, and I'll kind of explain why in a minute. But I'm gonna say today I am in Van 1, right? And it could be Van 2 or your own vehicle or whatever. But I'm just currently saying this is Van 1.

Um, who's collecting it? Well, I'm doing the action. But I might not necessarily be collecting it. And just what happens—I am. So I could be on my phone or on my tablet doing this.

Um, yep, kind of Fagan. I'm gonna say that this is my signature is beautiful. And I'm collecting it. And then you would get the customer to say, yep, I acknowledge Connor is collecting it. Again, multiple touch points here. So Dave—sorry, any Dave's watching—this is now your new signature. Dave with a smiley face confirmed that I'm also collecting that asset.

And again, it's collected by Connor Fagan. And what was collected? The asset name being collected was Matt's PC. And again, if I go back over to here, and you will see that the asset Matt's PC is now collected, and it is in transit. And it is currently no longer at that customer's site, but his current location is in Van 1.

And that's as far as I've got with it. I did have an asset supplied follows the same suit. So what did we replace it with? Agent name, agent signature. And what that would do is it would take the asset from a waiting delivery to be active and change the site from stock to the customer's site. Fairly straightforward to do that.

Now, you might be sat there thinking, Connor, that is awesome what you've done there. And I think it is pretty cool, you know. It's all native, all inside of Halo. We really are leveraging multiple touch points of Halo. We're leveraging assets here. We're leveraging actions. We're leveraging tickets. We're leveraging dynamic SQL. We're leveraging custom field visibility. But that is exactly why I don't think this, for the most part, is a workable solution. And I've had to do a lot of—I'm not going to say hacky, but—what I will say is, if we look at the integration runbooks, what I will say is there is—sorry, where are we—over here. And there is a lot of moving parts. So the asset collection confirmation has three or four stages in it. And if we look at the methods I've had to use to get this done, we're at six methods already just to, you know, collect an asset and replace it. When we look at the body of the POST requests, we're kind of hacking through a null value. And for me, there's just too much going on.

So what's the point of the video? Well, first of all, I'm going to be straight with you. I'm going to send this to the customer because they want you to see what I've done so far anyway. And it's a great way to showcase that. But second of all, I would say, if you are going to start going down the custom integration route inside of HaloPSA, you really need to make sure you've got someone in-house who can manage it. And I kind of pride myself on, you know, educating MSPs and providing sustainable solutions. This, for me, there's just too many moving parts. And even when we go and look at, for instance, the, um, custom fields used to collect it, if I go to the action and say, you know, what's the replacement server, um, we're having to use a lot of complicated things to get all this to talk to each other. And my concern is Halo could make a change, the whole thing could come tumbling down. And this is really mission critical for businesses.

And I'll just jump back to full screen. So that's just it. It's kind of just letting you guys know that we do genuinely care. We're not just going to throw out a solution because it can make us some money. We're not just going to sell something because we can. And for me, it has to be a workable solution, and it has to be a sustainable one as well.

I often say, and so there were many of the consultants, you know, the limitation with Halo is imagination. And while that is true, you've also got to bear in mind that you have to maintain this on a day-to-day basis. If this breaks, do you really want to be paying me another hour or four hours of consultation to fix it? No. Do I really want to provide a solution that I'm always going to manage inside of Halo when it's not native? No. It's a catch-22.

So the takeaway is, um, just because you can doesn't mean you should. And if you are building these custom runbooks out, just be very mindful that you need to really document it like heavily document it. Because if you go on sick for a week or go on holiday—even more for a week—and it breaks, someone needs to be able to fix it and know really what all the pieces do.

Um, but also showcase that, yeah, you can do anything you want. And it just comes down to what you're comfortable with. And unfortunately, for me, with this particular use case, I don't think it's a right fit for us as a business. I think it's too high risk. But if you are interested on how all this locks together, please do let me know. I could do a mini series on exactly how I've got all of these moving pieces slotted together.

But as always, just a short video tonight. I've been Connor. I wish you great health, and I'll hopefully see you all soon. Take care. Bye.

I can genuinely say that Connor and the team have had a huge positive impact on the way my business operates. The benefits are both significant and long lasting. Other Halo consultants may have been able to set things up to get me going but I can say with certainty that no other could have come close for the quality of work, effort, attention to detail and innovation that Renada provided.
ITIQ Group Google Logo

Our Core Services

Offering support to enable sustainable success for your organisation.

Consultation Harness the transformative potential of an agnostic advice tailored to your unique business needs. From PSA implementation to ongoing support, our exceptional consultation services pave the way for extraordinary success. Find out more
Virtual Admin Let us handle the technical heavy lifting. Our expert team builds solutions, creates powerful reports and dashboards, and develops automated integrations - giving you more time to focus on what matters most: your clients. Find out more
Product Onboarding We understand that the first steps in adopting a new product can be daunting, we are here to guide you through every stage of the process with precision and clarity. From initial setup to advanced features, maximise the value of your product from day one. Find out more
Virtual Chief Technology Officer (vCTO) Benefit from a remote and adaptable technology expert to seamlessly combine strategic guidance and effective leadership to propel your business to new heights and empower your organisation’s technology ability. Find out more
Where to next? Get the cutting-edge tools to support your MSP business. Contact us today to receive a bespoke quote tailored to your specific needs.