Video

Halo Q&A Series – All your halo questions answered

The first in a Halo Q&A series with Morgan Aspinall, answering common questions MSPs and consultants ask about HaloPSA.

Show transcript

hey everyone um and welcome to uh another Halo installment this time we're going to do a little bit of a different video um we we've sort of completed our implementation series and Morgan and I were're thinking about you know what else can we do um around Halo and we've come up with a Q&A Series so what we're going to do is kind of cover off some of the questions that um you know Morgan sees in his travels on being a consultant and some of the the questions I see as being um you know people are asking all the time we're going to try and cover those off as much as we can in these videos um yeah so you know and if anyone does have any other specific questions that they want to ask that maybe aren't on Reddit or anything like that feel free to leave a a comment in the description below and we'll absolutely um on to those so without much further Ado he needs no introduction my favorite person at Halo Mr Halo himself how are you doing today Morgan yeah very well how's it going Chris happy New Year and happy New Year to everyone watching um yeah so we've got dozens of hours at this point um where we've gone through the implementation series and we've uh we spent that time sort of covering the the core modules and providing people with an understanding of how they work uh it was really sort of for people brand new to Halo that didn't have any idea where to even start they can follow this implementation series um and hopefully get somewhat of an understanding as to how Halo PSA is supposed to function and then we came to the end of that and we were we were having a chat last week and he sort of thinking right okay well the community uh value these these videos uh where do we kind of go next with this and um actually the way the the way the chat went is Morgan actually said you haven't called me Mr Halo for a little while and I'm getting yeah I'm feeling a little bit uh um kind of left out so I said well let's make some more series that I can kind of you know blow your trumpet for you so that was the real reason it really yeah yeah any excuse yeah um but sort of I suppose some of the feedback uh throughout the community has been uh well there are these like small not small but there there are these relatively Niche configuration options not quite sure how to do this specific thing so what we're going to try and do is tackle some of those questions um I've I've got a report here that's got the most frequently logged tickets in our instance of Halo by category so we'll tackle some of those uh also take some questions that come directly into my inbox some questions that land on the Halo PSA uh subreddit uh anything that Chris has got as well and um yeah it's very much trial and error I suppose we we'll see how it goes we'll hear feedback from you guys and take it from there yeah um yeah and equally you know like I said if you've got any questions leave them in the comment but equally if you think that the series isn't you know isn't something you guys want to see then you know then us known we'll we'll obviously uh you know stop it there we want to make these videos as as useful as they possibly can be to you know to the majority of people out there so yeah absolutely uh so be very freestyle be a bit all over the place we're not going to be covering any one specific topic it's going to be a lot more bite-sized small bits here and there so yeah without further Ado I suppose one of the where we'll kick off is someone had a question on the Halo PSA subreddit recently asking about uh custom or dynamic SQL lookups so uh we'll briefly talk about those so Halo provides the option to create custom Fields allowing you to track whatever type of data you need to track uh but quite often people will want uh these custom Fields namely the single and multiple select dropdowns they'll want the data in that dropdown to be pulled from some other part of Halo a good example would be for offboarding right for an offboarding request you might want to uh provide a list of users that are at the same client as the client who's logging the offboarding request uh so I thought we briefly briefly talk about that real quick yeah so in configuration custom objects custom fields we can create custom fields of type single or multiple select uh and when we have our field type of single or multiple select we have our lookup type here so let's just pull this user list um now of course a lookup type can be static where you just plugging in comma separated values that equate to each option in the dropdown or you would have your um your list be basically a mini SQL query that's querying your own database now the the structure of this query is that we must return two columns an ID column and a display column uh the display column being what you'll see in the drop down so if we were to query the users uh we would want something like select you ID is our ID which is the ID of the end user and you username is display which would be the uh the the user displayed in the dropdown from users I guess this could work right um however this would return every user in Halo to everyone that had access to this field yeah so what we probably want to do is filter this down now there's two primary filters that you can use or two variables I suppose um dollar fault ID and dollar user ID you we can also use variables based on other custom Fields but maybe we can come back to that if anyone in the comments is interested in learning more about that um but for now we'll talk about fault ID and user ID of course dollar false ID uh is only applicable once the ticket has been logged right uh before the ticket's been logged there is no fault ID uh dollar user ID again applicable once the ticket has been logged or if the ticket is being logged via the portal dollar user ID will be inherited from the end user that is logged into the self service portal uh at which point if we wanted to get the list of users that are uh at the same site we could do something like this uh from users where U site equals uh well actually no we'd want to join from users join site on site num equals you site where site num equals select you we can see that Morgan's done this before because he kind of knows these uh the SQ queries off hand so yeah well I mean um the the user list is one that comes up quite frequently um but this this could be anything I um I made some lookups for an MSP that was using Halo and they wanted a list of assets uh the same customer where the asset had a certain type and it had a certain value in the field same concept um a little bit more fiddly and a little bit more uh complicated but uh yeah same premise but here yeah so all of the you so now we're getting all of the users we're joining on the site table and we're getting all of the users where uh the site is the same site as the user that's logging the ticket we can go step further and have all of the users at the same client and we would just join area on S area equals a area and then instead of uh instead of s site we'd want where a area equals select s area from site where s site equals that so now we're just saying uh get the site ID that the user logging the ticket uh has allocated to them get the client ID for that site and get all of the users all of the end users against that client also want to bear in mind you probably want to exclude General user exclude um inactive users perhaps remove service users but yeah the idea here is you can create a custom field of type single or multiple select if your lookup type is dynamic list you're presented with a SQL query the SQL query is two columns ID and display and you can use a fault ID for tickets that have already been logged or user ID uh if the ticket is being logged via the portal so that was something that came up recently another one that came up fairly recently was um someone had a question around sort of getting an understanding of uh the N nce charges or um getting an understanding of what to do when they're selling uh bill monthly annual commit uh Bill annual annual commit bill monthly monthly commit and how to sort of work with a combination of all of those different types of charges um so there's a few options here I suppose and just want to sort of cover a couple of configuration options that you might find useful to tackle these kinds of uh setups which is pretty common these days and that involves we're going to talk about recur we're going to talk about merging recurring invoices we're going to talk about uh start and end dates for for recurring invoice lines yeah so um I mean the first point to note is the schedule for invoice creation is something that resides at recurring invoice level right so we can add our products in here um but notice how we don't really have a billing period in here we don't have a a frequency at which to Bill that frequency at which to bill is set against the schedule for the recurring invoice yeah so what you might want to do is you might want to have uh a recurring invoice set up for the customer that is uh of a monthly schedule which is just uh achieved by clicking set schedule and picking monthly and then a separate recurring invoice that has for the same customer but has a schedule instead of monthly uh but yearly now that means that you'd have these two recurring invoices one would be created each month one would be created once a year uh but then the next question that follows on from that would be well I don't want to create two invoices uh I just want one invoice sent to the customer I want that invoice to the customer each month but once a year I want there to be an extra line on that invoice for that what you might want to consider doing is going to configuration billing General and in your invoice creation settings there is an option to merge recurring invoices into one invoice per client as it says on the tin if one client has got multiple recurring invoices uh and at any point in time more than one invoice would be generated on that run the lines on that will be merged so with this you can have different recurring invoices with different schedules but when those schedules align in this case once a year uh that extra annual line will be added onto the invoice that's generated now uh adjacent to that and sort of related is the sort of the annual MIT section so we saw that the schedule is set at recurring invoice level now of course a schedule can have an end date however you might have different subscriptions that have been added at different points during the year uh but all have an annual commit so hence each individual line would have a separate end date and perhaps a separate start date and we can set that and Halo um and we do so by editing the invoice line where we have this status section uh the status section in here has a start date and an end date uh meaning that what you could do is you could have a monthly uh a recurring invoice setup with a monthly schedule but no end date so it's being created every month and then when you're adding your lines onto your recurring invoice you can set end dates in here which means that it's the same recurring invoice that's being created but or the same yeah the same in the same recurring invoice that's generating those invoices but the lines each month would change uh based on the start and end dates so of course if we were to set a start date and an end date uh in invoices created before the start date or after the end date will not include this line on them yeah um another point and Chris we spoke about this fairly recently was uh the ad recurring product versus ad product options um that comes all the time and I see this and I know what you're going to say and literally you know you can add a product a normal straightforward product to a recurring invoice and it appears to be comment a caring product yeah that's correct so uh the function of these right now is the ad recurring item or add recurring product button will return the list of products that are marked as being recurring yeah where a a product is marked as being recurring based on this checkbox there is this option to add a product as well and when you add that product it will be added to every instance of an invoice generated from this recurring invoice so it effectively becomes recurring um I think there are plans maybe later on in the year um to change the functionality here so the window that's opened up would look more similar to the uh the etilize window so um and the etilize window gives you a filter option so I think there's going to be plans eventually to merge those two options into one and just have a default filter applied yeah so I guess essentially then there's no real reason to tick the box that is recurring product because that was always in my opinion was because the product was recurring and then could be added to a recurring invoice but I guess at this point what you're saying is it actually doesn't matter whether we Market as recurring or not it can still be added to a recurring invoice correct yeah marking a product is recurring will do two things uh or two things two things spring to mind one you have the option to specify a recurring cost and price so it might be that a product is marked as recurring but you do have a one-time fee uh but that one-time fee is different from the monthly fee or the whatever the annual fee um and then secondly the marketing of product is recurring will uh allow it to be presented in this list which is a filtered list right you might have five 600 products but only 80 to 100 of those are recurring you might not want to look through every single one every time uh so this button basically applies an automatic filter in there but in terms of you know uh is it going to be added to every single invoice yes and in the context of that point there is no real distinction between a product having that checkbox checked or not yeah and and so I guess it's you know if you'd never had the option of um wanting to have a different price if was recurring versus if it was one of you could just create it as a product as a normal product not tick the box and you you know well I guess at that point ticking the box as you say would make it show up in that filtered list but if you didn't tick the box for it to be recurring it it could still be added to a recurring invoice and still be quote unquote a a recurring product yeah technically I would still advise people Mark products that would not go onto a standard invoice as being recurring recurring yeah I mean I always tell that to people anyway I always say you know make sure that you you tick that box just so that you know it's a recurring product and then like you said it shows up in that filtered list but this actually came up in a Consulting call I had where you know we were adding stuff and we noticed that it it basically was able to be added to a recurring contract even it sorry a recurring invoice even if it was not marked as recurring so um so yeah glad we managed to clarify that okay and then um if you want to add a product onto a recurring invoice and only charge it once there is an option when we're editing the line to mark that line as a one-time charge so if you do want to add something onto a recurring invoice just as a one-time thing check this box uh and that's how you would achieve that yeah okay I I have another one that actually has come up quite a few times um and I know we've we've had a discussion around this um and I know I know we can't do it but it' be good to just kind of have that discussion was around the ticket number um you know many people have asked about changing the ticket number in in Halo now I know we can change the prefix you know that says ID something or other but it it was around how do we change the leading zeros within the ticket number and from the from discussions you and I have had it looks like that isn't possible to change those leading zeros yeah I don't think so I think we just returned seven digits uh so yeah yeah that's okay um do you want to go in and just show how we would how we could change the prefix on the ticket number I know we can do that at the email stage and at the the the ticket time but it might be worth as we're going through kind of q&as just to yeah for sure so um in config email there is this email start tag and email end tag so uh when sending emails out of Halo uh the ticket ID will reside between the start tag and the end tag so this is our Global default of course we can change this um but that would be a globally applied change yeah and then we can also override that on a on a ticket type by ticket type basis so we can go to our ticket types and here there is an overriding start and end tag for our respective ticket types so it might be the in inent is in service request is Sr Etc um also worth noting that there's an option in advanced settings to always check for ID as well as any other tag so uh you can change that email config you can change that ticket type config um and we would still match on tickets if ID was used provided this checkbox is checked okay yeah so we could so we could still change it to something else like I for incident and Sr for service request and and Ticking that would say irrespective of what it's called whether it has ID or something like that it would still work yeah exactly yeah so that comes up a lot I mean and I do this with a lot of clients and I do it myself is is ex exactly that you know we have I have different I have Consulting tickets I have other tickets and and you know we have specific um prefixes on the on the tickets when um you know when emails are sent out from various ticket types and stuff like that so yeah cool nice cool okay one of the other things sort of jumping back to the invoicing piece one of the other things that came up recently it was a follow on from the the uh the point around the annual commit was how do we get notified that uh a subscription is Du up for Renewal um or you know more specifically how do we get notified that the end dat is approaching on those recurring invoice lines and to do that we can make use of automated tickets so in config tickets there is this automated tickets module where basically tickets will be logged when some given criteria has been met the criteria that we're looking for is based on the criteria section now that can be uh we can be looking for agreements assets recurring invoices or recurring invoice lines um and then based on the entity that we're looking at from this dropdown we have a table of contents below where we can add the specific criteria in so for example if our automation criteria is looking for agreements we can say that agreements of a certain type that have their end date in 90 days we'll log a ticket so we we pick our entity that we're concerned with and then we have this table below we're actually picking the specific crit criteria and the options in this table are based on what we select above so obviously we've got contract type here as an option if I change this to recurring invoice lines I don't have contract type but I might have group but again we've got that end date so we can have tickets logged X days before the end date of a given entity whether that's agreements whether that's asset warranty recurring invoices or recurring invoice lines and then in terms of what information what ticket type is being logged what workflow is being applied who who is that ticket assigned to all of that information resides in the values Tab and actually the options in here are basically the same options as what we have for our ticket templates um refer to our project management session of the implementation series to get an idea of ticket templates but yeah but basically creating a template and saying log the ticket with this template when some given criteria is met yeah and that's really good for things like um yeah you know if a contract is about to expire or or you know some assets about to expire or something like that you may want to have a ticket to get somebody in sales to give them a call or or you know yeah any kind of ticket to extend the warranty do whatever you need to do so that's pretty cool yeah um there's been a couple of uh people and support that have sort of come to me with the same question recently um and that is around the CSP integration namely Microsoft's uh move to GDA relationships for all of our tenants or all of your tenants um and that's caused some issues with obtaining user information um which yeah unfortunately you know Microsoft changing that policy has meant that things have had a change in Halo but what I was going to mention is one of the questions was uh okay now so now I can't get the user list for this tenant um and to help you guys with troubleshooting that you'll often find the error if the error is related to gdap uh and uh lack of admin consent being provided the error that you'll probably get is the identity of the calling application cannot be established so if you're setting up CSP and you're getting uh issues when trying to import users the error that you're getting is the identity of the calling application cannot be established the first thing that comes to my mind is is Gap uh and then the the next point is have I granted admin consent for that tenant and um to do that once you've set the connection up in the tenants tab you've got the list of tenants the list of customers and on the right hand side in the mappings table there is a gr admin consent button however that button only appears if you specify the 10 or the customer relationship as being Gap kind of hard to show without having CSP connected to this instance um but basically you've got the the tenant mapping table and each row has got a pencil against it click the pencil and a modal window will pop up and one of the options in there will be relationship type and it if it's Dap You won't have the gr admin consent button Gat the button appears clicking K log in with the administrator in that tenant and then you should be good to go I was going to say if you want to connect to my database I have it set up uh I mean I I didn't want to we can do if I I wasn't sure if you had any sensitive information in your instance um not yeah I don't think anything that anyone's Really Gonna I mean they're all my companies but um so have you if you're happy to share your screen maybe share your screen real quick and I'll I'll talk you through what I mean yeah maybe if I just do this and I share this yeah so if we go to um oops so let me just go to Integrations Y and it was the Microsoft CSP stuff y yep yep so once you've connected everything all the tabs appear and you've got this grind admin consent button on the right Chris if you click edit please yeah um and hit the pencil against any one of those records yeah uh you'll see here there's a relationship type option now if that is selected as Dap You don't have the gr admin consent button so if you save that yeah so if I save that with d then the button disappears yeah so there's a few a couple of people have called up recently saying the I can't get users is probably related to Gap but I can't Grant admin consent why can't I grant admin consent and the reason has been because the relationships there have been daap change it to gdap button appears away you go yeah absolutely yeah and and I mean you can change it right at the top level as well to make all of those G down or you each individual one yeah yeah the problem has been um that these are people that have previously set up CSP before the Gap changes so they all dap and then it just stopped working because like Microsoft enforced gdap so it's like if you're if you're new to Halo and you're setting it up absolutely do what Chris says set the default relationship to gdap uh if you're existing Halo user and you're having CSP issues uh the identity of the calling application can't be established the chances are you might have records in there that have a Dap relationship so then just click the pencil exactly and just change that to be G and then you get that Grant admin consent that's it y yeah cool right let's see I'll let you switch back to your screen is there um just having a look at the report is there anything that you've been asked recently that you think would be uh worth covering been asked a lot of stuff a lot of stuff that's kind of very specific as well to okay you know to specific issues but um I mean the ticket number was a was a big one right that was one that that everybody's asking um but I also think maybe and and maybe we can pick this up on on another call because I think this video is getting um getting a little bit long um maybe what we need to do is I hear a lot of things around the integration with zero and QuickBooks and and those kinds of things so I think um you know and and I do have some questions that kind of came up from that of customers which I've addressed with them um around around kind of you know how how to set up that process properly and how you know why do they get certain errors at certain times and things like that so it might be worth us doing a session on that and going through um you know some of those specific errors and I have I have got them in in tickets I just need to just need to find and then I think on the next call we can maybe go through some of those specific issues that customers are having and then um and address those yeah Integrations is one of the more frequently logged ticket categories so yeah um yeah there's a couple I mean some have come up uh around some of the rmm Integrations as well so uh yeah maybe we'll leave this one here and uh the next video we'll do will be about common FAQs around certain Integrations yeah yeah exactly I think that's a a really good place so um I know there's a lot of information in this this call today um you know we'll try and keep these on as much of a topic as we can so that we're not sort of jumping between you know some billing stuff and some ticketing stuff and things like that so we might I'm sorry as I'm moving my hands my camera's moving too but we'll try and we'll try and keep them as um as topic focused as possible it would be useful if you know anyone watching this if you can put in the comments if you think these kind of Q&A type sessions would be good and again if there's any specific stuff um that you want us to go through on these calls we we can absolutely do that because we just want to make this this series something that um you know answers all the questions that that people have and hopefully provide a provide a a forum where people can come on and kind of get answers to those questions um you know rather than going to a million different places for them absolutely yeah so well as always Morgan I really really appreciate it appreciate your time appreciate Halo appreciate you guys um you know what you're doing for the community is always always a good thing so always appreciated and thank you for your time and thank you to everyone for watching and we'll see you on the next video thanks a lot guys see you on the next one thanks cheers bye

Want help putting this into practice?

Get in touch and we'll talk through how it applies to your MSP.

Let's Talk

← Back to all content