By
Mendy Green
December 18, 2022
•
20 min read
Business

“Should my business be going to Cloud?”
This is one of the most popular questions that comes up in my conversations with clients, and like every other question I get, I like to answer it with “It depends”.
Before we can address this, we need to address the ongoing struggle between IT Professionals and Marketing Professionals. This was cleverly outlined in the classic Project Management meme

We won’t get too far into the specifics of this as Marketing can be a post all by itself, but suffice to say, the…let’s call it exuberance to sell something new, tends to make for overly aggressive messaging targeting the Stakeholders which does not generate tingly-friendly feelings on the people who actually have to implement, support, or answer questions about the technical specifics. This is true no matter if the “Expert” person is at your company or the company the marketing person is sitting at. If you need a further demonstration of what this looks like you can watch the skit on YouTube called “The Expert” which should give you an idea of what frame of mind to approach this question with
Keeping this in mind we need to immediately increase our level of skepticism when we hear about Cloud Computing (or really any new technology).
Let’s switch tracks for a moment. One of the things I always talk about is how there’s at least two sides to everything. Literally you can take a specific item, scenario, concept, etc. examine it and you’ll see two or more sides that reflect or are directly opposite to each other. In business finances for example we have Operating costs and Cost of Goods Sold (COGS). Traditionally Operating costs were made up of things like Rent for the office, Utilities, supplies and things like that. Supplies would include the cost of equipment (such as computers) Utilities would include cost of the internet and so on. COGS would be made up of how much money the business would need to spend, in order to provide the service that they offer. This is essentially two sides to the same thing (money being spent), but you track them separately because they help you break down the cost of running the business vs the cost of providing services.
In other words, Operating Expenses can be broken down to the point where you would assign a Per Dollar amount for each Employee that you have, and COGS would be broken down and assigned a Per Dollar amount for each Customer
Now let’s get back to the point of this. Cloud, like everything else, has 2 or more (way more actually) sides. There’s Infrastructure as a Service offerings, Platform as a Service, Software as a Service, and so on and so forth and all of these items get mixed up and placed into the “Cloud” category. If you dig into what Cloud actually is, you’ll find that it’s just…rented computers. Really. If you’re skeptical, you can read more on this here from one of the bigger software platforms on their reasons why they’re leaving the cloud.
The questions we’d want to answer so that we can determine if you should be moving to the cloud are as follows.
Would you be moving your Operating Expenses to the cloud or your COGS. Specifically, are you providing an online service to your clients that requires you to rapidly scale up if you were to grow, or that allows you to measure out the cost of running in the cloud against the number of users you’re servicing?
Running in almost any cloud has pricing that is broken down to the minute, generally speaking. This is one of the big things marketing likes to tout “Scale up or down as needed, so it’s very cost effective”. Cost effective compared to running them 24/7 sure, but not cost effective compared to buying hardware. Marketing is selling you on the idea that if you needed to turn down services, you can do rapidly and save money with it off, but if you never need to turn down services, and your scaling doesn’t happen rapidly, then you’re actually spending way more over the same period of time of hardware life. Up to 4 or 5 times the amount potentially.
Do you have a need either from a compliance standard or your own security policy for enhanced security, physical auditing, a requirement to be highly available or a guaranteed uptime of 4 or more 9s (99.99%)?
Here is where it starts making sense to consider, although the question of finding a datacenter that will rent you hardware or allow you to place hardware vs running in something like Google Cloud, Azure, or AWS is still debatable. In the end the level of redundancies that exist in the cloud or datacenter are harder to build (read, more costly) than using an infrastructure that is already built and essentially being shared. This isn’t a new phenomenon, if you’ve read my article on the MSP Business Fallacy, or even just paid attention in the world the idea of pooling resources to save on costs is a well-established and very successful pattern. This is something that can range on a spectrum from sharing power costs, to sharing full on hardware and running your services on segregated containerized workloads.
Are you concerned about control of your data. Specifically, does it matter to you if your data is physically on equipment that you solely own and control, or is your business okay with the data being placed onto equipment owned and controlled by a trusted Third Party
Data sovereignty is an important part of the equation, even if you do trust it to a third party, the question of which region and where it is physically located is still an issue. In the end the agreements you sign with vendors and clients state that the data you hold for them is your responsibility to protect and keep safe and you do not have the right to assign that responsibility to anyone else. These are all concerns that should be evaluated and addressed in your assessment of moving to cloud.
In the end there’s no real good right answer, as most of these questions are ones you’ll need to decide for your business. I’ve outlined a table below to help with the decision matrix, but it is still only just a suggestion.

Episode 17 warps up the breakdown of version 2.21 and begins 2.212, highlighting impactful updates across billing, SLA visibility, and ticket management. The team dives into major improvements like dynamic ticket filters, default billing templates, and better billing tab access controls. This episode is especially useful for MSPs looking to tighten billing accuracy, improve reporting visibility, and streamline ticket workflows.
Watch Now: By the [run]Book: Episode 17
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
The Billing tab is now visible to agents without requiring full billing permissions, with actions locked based on access.
Tickets on hold can now be included in SLA breached filters.
You can now define a default billing template applied automatically when creating a new customer.
Dynamic filters can now be used on ticket lists for more flexible querying.
This helps keep recurring invoices aligned when item third-party IDs change.
Recurring invoices now get the same due date option already available at customer setup.
This adds more control to portal-based approval workflows.
This extends alternate invoicing behavior down to the site level.
This helps prevent tickets from disappearing into inactive-agent limbo.
More ticket list criteria means more practical operational views.
This update improves the ManageEngine Endpoint Central integration.
Halo now supports generic OpenID Connect SSO.
You can now duplicate item bundles instead of rebuilding them manually.
This adds more naming flexibility to the UI.
This makes SLA breach reporting more honest and more useful.
A major improvement for standard billing configuration.
This adds more flexibility to meter-driven recurring billing.
Dynamic ticket filters add a much stronger filtering experience.
Cloning custom fields speeds up admin work.
This update improves chart label readability.
This update refines the encryption update workflow.
This improves call handling context.
This gives more control over quantity precision.
This improves flexibility when linking work records from sales orders.
This adds better billing visibility without fully exposing billing controls.
Spreadsheet imports can now target existing tickets by ID.
A small UI cleanup on the ticket details pane.
This adds flexibility for co-managed support models.
This improves control over CSP user mapping behavior.
This adds clarification around tax rate usage in Xero-linked setups.
This makes Avalara tenant cleanup easier from the client billing tab.
This is a strong automation improvement.
Custom table row deletion gets more precise.
This cleans up recurring invoice visibility.
This is a documentation/config clarity improvement.
Ticket rule assignment now supports more role-based options.
Approval rule logic gets another useful condition.
Supplier-related configuration gets more flexible.
Project templates now get more dynamic input from sales-order-driven creation.
This expands visibility in quote and sales order line views.
This makes customer/site control more precise.
The API docs continue to improve.
This improves ticket logging layout flexibility in the agent app.
This is an important reliability improvement for payment processing.
This adds more flexibility when services are generated from assets.
This improves parent/child ticket data behavior.
Third-party ID linking is now available across more entities.
Query Builder gets another field for reporting logic.
This expands visibility of account/prospect records in top-level views.
Custom buttons now get access control.
This adds polish to the opportunity creation experience.
This is one of the biggest integration-facing updates in the episode.

In Episode 16 of By the [run]Book, Mendy and Robbie continue reviewing HaloPSA v2.210, covering a wide range of updates across billing, workflows, integrations, AI, and asset management. The episode highlights several settings MSPs should review immediately—especially a billing change that can lock recalculation—as well as improvements to ticket automation, AI categorization, and service desk efficiency.
Watch Now: By the [run]Book: Episode 16
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Editing billing time allocation will lock billing recalculation | v2.21 #1044274
A setting has been added to Billing configuration so that editing the billing time allocation on an action will lock the ticket from billing recalculation.
Credit notes can default to today’s date | v2.21 #1042924
A setting has been added to Credit Note configuration so that the Credit Date is set to today's date instead of the Invoice Date.
Auto-assign the next unassigned ticket when closing a ticket | v2.21 #1003964
Added a new setting that automatically assigns an Agent the next available Unassigned Ticket when they close a Ticket.
Parent tickets can inherit dates from child tickets | v2.21 #975755
Added a new Ticket Type setting: "Automatically set Start Date and Target Date based on Child Tickets".
This setting adds a new option for grouping ticket entities during invoice creation in the Ready for Invoicing area.
This setting locks a ticket from billing recalculation when billing time allocation is edited on an action.
A new variable has been added for adjusted opportunity value.
Workflow steps now require an outcome to be selected.
Invoices can now default to the customer’s main site address.
Credit notes can now default to today’s date instead of the original invoice date.
Halo can now remove FW: and RE: prefixes when creating tickets from email subjects.
AI generated summaries can now be displayed in ticket column profiles.
A new advanced setting enables configuration change tracking for Services.
A global setting can now display the asset DID as a read-only field.
Custom integrations can now use separate credentials per instance.
The Main Site Address field can now be used in client and site column profiles.
The instances area has been updated with a new loading method to improve performance.
Tickets generated from Contract Schedules can now be created a specified number of days before the appointment date.
Additional ownership-related fields are now available in asset column profiles.
Asset dependency diagrams can now display customizable fields.
The client API endpoint can now return website data when requested.
The Twilio WhatsApp integration has received multiple improvements.
Assignment rules can now be disabled during Salesforce sync.
Runbooks triggered via webhook can now use a secret URI parameter for authentication.
HubSpot quote imports now include a default user field.
Agents can automatically receive the next unassigned ticket when they close one.
Chat Bot input steps can now access browser local storage.
Additional configuration options are now available for asset system fields.
Asset custom buttons now support dynamic visibility.
Asset fields can now perform SQL lookups.
Stock bins can now be selected for non-serialized assets.
Date custom fields now support validation rules relative to the current date.
Workflow Stage can now be used in the report query builder.
The New Relic integration has received improvements.
The phone number requirement for anonymous portal tickets can now be configured per ticket type.
Parent tickets can automatically derive start and target dates from their child tickets.
AI can now suggest ticket categories from a configurable list.
A new setting expands how Agent Site Restrictions apply to users and organizations.
Halo now allows configuration of how appointment unique IDs are generated.

Episode 15 of By the [run]Book covers Halo v2.208 and starts into v2.210, with Mendy and Robbie walking through SLA refinements, shifts/time tracking updates, billing cadence improvements, and tighter access controls across portals and reporting. Key moments include new SLA response targeting options, a clock-in/clock-out widget for shifts, a bi-monthly schedule period, and expanded team leader controls. This is a useful episode for MSPs looking to tighten operational workflow, reporting governance, and self-service experience improvements.
Watch Now: By the [run]Book: Episode 15
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Adds an SLA option so your first response target can differ from subsequent response targets.
Adds the FAQ List Ticket field as a workflow criteria option.
Allows ticket end-user updates when an anonymous chat is successfully upgraded.
Adds a clock in/clock out widget for Shifts.
Adds a 2-month schedule period option.
Improves Knowledge Base latest article links.
Adds “Visible - Read Only” for Agent Asset details visibility.
Adds load-balance on reopen if assigned agent doesn’t meet qualification rules.
Introduces a module for an Opinyin integration.
Adds test email sending for individual mail campaign messages.
Adds new Halo API actions in runbooks.
Splits KB view counts so end users see only user views (when enabled).
Adds item group restrictions + running cost total on portal ticket item selection.
Adds a Ticket Reference field that’s searchable and usable in column profiles.
Groups service subscribers.
Adds $ variables for CONTRACTSLA, CONTRACTSUBTYPE, CONTRACTSTATUS.
Adds improvements to Agent Resource Booking.
Adds encryption options for variables/responses in integrations/runbooks.
Adds software expiry date tracking on assets.
Adds ticket-type control for end-user approval action visibility.
Allows team leaders to modify agents’ preferences.
Adds bulk add assets via the asset search modal.
Adds chat profile overrides at the user role level.
Allows KB links to include FAQ lists and auto-expand on open.
Allows HTML formatting in popup notes triggered by ticket rules.
Shows credit notes alongside invoices in the portal.
Adds a setting to limit users/agents to one active session.
Adds TD Synnex Quote Line Imports.
Adds dark mode counter widget color options.
Adds downpayment invoice creation from sales orders (fixed price + T&M).
Adds settings to limit portal options to Web Access Level list values.
Adds access control for reports.
Adds a deep link button on imported Addigy devices.
Multiple changes made to the Expenses list.
Allows embedding Halo portal/agent UI (including dashboards) in SharePoint via iframe.
Changes how recurring invoices appear/create based on month selection.
Ensures billing template application creates a billing plan record per matching contract/agreement.
Adds Last Contacted + Created Date fields to NinjaOne device import.
Removes quote “Send” button so sending happens only via ticket/opportunity.
Disables change history tracking for selected asset fields.
Adds invoice access restriction levels (No Access/Site/Client).
Shows the overriding contract field even if it isn’t on the field list (admin-editable only).
Enables database lookup while entering an action in the self-service portal.
Updates the Account Integrator for Sage UK v32 (2026).
Adds a setting to group ticket entities separately during invoice creation.