NL Dutch
FR French
IT Italian
JP Japanese
DE German
US English (US)
ES Spanish

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

  • Contact Us
English (US)
NL Dutch
FR French
IT Italian
JP Japanese
DE German
US English (US)
ES Spanish
  • Home
  • AutoElevate Knowledgebase
  • Integrations for AutoElevate
  • PSA Ticketing System Integrations

Halo PSA - Agreement Billing Sync (Beta)

Discover how to enable your billing process with Halo's Agreement Billing Sync feature.

Written by Daniel Rivera

Updated at September 17th, 2026

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

  • AutoElevate Knowledgebase
    New to AutoElevate? START HERE AutoElevate Features & Troubleshooting Managing Rules in AutoElevate Integrations for AutoElevate AutoElevate FAQ Selling AutoElevate
  • CyberFOX Password Manager Knowledgebase
    Using CyberFOX Password Manager Administrating CyberFOX Password Manager Legacy Password Boss
  • CyberFOX DNS Filtering
    Getting Started with DNS Filtering DNS Filtering Concepts Network Requirements for DNS Filtering DNS Filtering Company and Location Setup Managing your DNS Filtering Policies Using Roaming Clients for DNS Filtering DNS Filtering Reports & Logs DNS Filtering Troubleshooting
  • Marketing Toolkit
    MSP Marketing & Education Toolkit CyberFOX Brand Guidelines
  • Changelogs for Autoelevate and Password Boss
  • CyberFOX Product Roadmap
  • Current Status
+ More

Table of Contents

Overview How Agreement Billing Sync Works What gets counted What gets written The Halo Item ID Which companies are included Before You Begin Enabling and Configuring the Sync Step 1 — Open the setting Step 2 — Fill in the fields Step 3 — Save and verify Reading the Nightly Results Best Practices Troubleshooting "PSA Agreement Billing Sync" does not appear in Settings The Enable nightly billing sync checkbox is unavailable "Multiple software licences named … found for Halo client …" "Software licence … belongs to Halo client …, not …" "Company is not linked to a Halo PSA client" "Billing sync was saved for … but the PSA integration is now …" Authentication or token errors A new licence appeared instead of the existing one being updated The quantity in Halo does not match what the portal shows The licence is updated every night but the quantity never changes A duplicate licence appears on a client with many licences No changes have appeared since the sync was enabled Security Notes Related Articles

Overview


PSA Agreement Billing Sync keeps your Halo PSA billing in step with what AutoElevate is actually protecting. Each night AutoElevate counts the active agents in every one of your companies and writes that number into a Software Licence on the matching Halo client. Pointing a recurring invoice line at that licence keeps invoiced quantities aligned with your current deployment.

The sync is configured once for your whole organization, and then applies to every company you have linked to a Halo client. Unlike the ConnectWise Manage version of this feature, Halo requires almost no preparation: if the software licence does not exist, AutoElevate creates it.

This is a Beta feature. PSA Agreement Billing Sync is newly released and still being validated. Its behavior and interface may change. If the row does not appear in Settings, see "PSA Agreement Billing Sync" does not appear in Settings under Troubleshooting.

 

This feature changes billing quantities automatically. When a company's agents stop checking in — an offboarded client, a site taken offline, a mass uninstall — its licence quantity is written down to zero on the next run, with no notification and no approval step. This is correct behavior for billing accuracy, but it is a silent revenue change. Reconcile your first month of invoices before relying on the sync unattended.

 

A note on spelling: Halo's API uses the spelling licence, and AutoElevate matches it throughout this feature.

 

How Agreement Billing Sync Works


What gets counted

A computer counts as active when it is not deleted and has checked in within the last 30 days. The count is per company, across all of that company's locations, and it is the same number for every platform — there is no separate Windows and macOS breakdown in this version.

What gets written

For each linked company, AutoElevate:

  1. Looks up the software licences belonging to that company's Halo client.
  2. Finds the licence whose name matches your configured Software Licence Name. Matching ignores case and surrounding spaces only.
  3. Saves that licence with the active agent count — or creates the licence if one does not exist.

The write is an absolute replacement, not an increment. If the licence already shows the right number, AutoElevate skips the write entirely and records the company as skipped for that run. Running the sync twice in succession produces no change on the second run.

The Halo Item ID

Setting a Halo Item ID links the software licence to a catalog item, which is what lets a recurring invoice line calculate its quantity from the licence automatically. The Item ID is optional and can be added later; if it is set after the licence exists, AutoElevate writes the link on the next run even when the count has not changed.

Which companies are included

Only companies that are linked to a Halo client are included, and linking is done from the Companies grid — it is the same link your Halo ticketing integration already uses. Two situations look similar but behave differently:

  • No ticketing system link at all. The company is skipped silently: no result line, no error.
  • A link that exists but carries no Halo client. The company is reported as an error. This is what a company looks like after the organization switches ticketing systems, until the company is re-linked.

 

Before You Begin


  • A Halo PSA integration set up in AutoElevate. Billing sync reuses that connection and its stored credentials; there is no separate connection to configure.
  • Your AutoElevate companies linked to their Halo clients.
  • A decision on the licence name. The default is AutoElevate Agents. Any name is accepted, provided each client has at most one licence with that name.
  • Optionally, the Halo catalog item the licence should be tied to, so that recurring invoice lines can calculate from it. Configuring this link requires the item's numeric Item ID.

The software licence does not need to be created in advance. AutoElevate creates it on the first run for any client that does not have one.

 

Enabling and Configuring the Sync


Step 1 — Open the setting

  1. In the AutoElevate Admin Portal, go to Settings.
  2. Find the PSA Agreement Billing Sync row, under the Ticketing category. Its value column reads Not Set, Enabled or Disabled.
  3. Open the row for editing.
Settings grid showing the PSA Agreement Billing Sync row under the Ticketing category, value Not Set

The dialog opens with Applies to: Global — this setting is configured once for the whole organization; there is no per-company version of it.

The dialog looks up your PSA type when it opens, so you see the Halo fields only when your organization is connected to Halo PSA.

If the row is not present, see "PSA Agreement Billing Sync" does not appear in Settings under Troubleshooting. This setting is provisioned automatically; the portal provides no Add action for it.

Step 2 — Fill in the fields

Field Required What it does
Enable nightly billing sync Yes Enables the sync. Nothing is written to Halo while it is off. The dialog explains it as "Each night, AutoElevate updates your PSA billing quantities with the count of active agents (checked in within the last 30 days) for every linked company."
Software Licence Name No The name of the licence AutoElevate maintains on each client. The field's own hint reads "Optional. Defaults to 'AutoElevate Agents'; the licence is created automatically if it does not exist."
Halo Item ID No "Optional. Links the licence to a Halo catalog item so recurring invoice lines auto-calculate." Digits only.

The licence name accepts up to 100 characters. The Item ID must be a positive whole number.

Edit PSA Agreement Billing Sync dialog for Halo PSA, showing the Enable nightly billing sync checkbox, Software Licence Name and Halo Item ID

Step 3 — Save and verify

  1. Save the setting. The Settings row now reads Enabled.
  2. After the next nightly run, check a client in Halo: the software licence should exist, with the current agent count.
  3. Point your recurring invoice line at the licence. This step is performed in Halo, not in AutoElevate.

The setting records which PSA it was saved for. If you later switch to a different ticketing system, the sync stops entirely until you update this setting — it does not begin writing to a different PSA on its own. Switching PSA takes two steps, and both are required:

  1. Change a field before you save. Opening the dialog and clicking Save re-sends the stored value unchanged, which does not update the recorded PSA. Edit a field first — retyping the Software Licence Name is enough — and then save.
  2. Re-link every company. Companies that were already linked still point at the previous ticketing system, and AutoElevate links a company only when it has no link at all, so nothing re-evaluates them for you. Re-link each company from the Companies grid (Ticketing System → Link). Until you do, those companies are reported as errors on every run.

 

Reading the Nightly Results


Every run reports one status per company:

Status Meaning
Updated The licence was created, or its count or item link was changed. The detail line shows the old and new values.
Skipped The licence was already at the right number, so nothing was written.
Needs setup A configuration gap AutoElevate cannot resolve automatically — duplicate licences with the same name, or a licence that belongs to a different client. Deliberately not logged as an error.
Error A genuine failure, such as an authentication problem, an API error, or a company whose ticketing system link is incomplete. The run continues with the next company.

Companies with no ticketing system link at all produce no line. A company whose link exists but carries no Halo client is reported as an Error.

A run summary is recorded internally with the totals — organizations processed, organizations needing attention, and companies updated, skipped, needing setup and errored. There is no customer-facing view of it, so contact CyberFOX Support if you require the result of a specific run.

 

Best Practices


  • Keep one licence per client with your chosen name. Duplicate names are the single condition that stops a Halo sync, because there is no safe way to select between them.
  • Set the Item ID at the same time you enable the sync if you intend to bill from recurring invoice lines. Adding it later is supported, but it delays the invoice line's first calculation by one run.
  • Do not rename the licence in Halo without changing the Software Licence Name setting to match. AutoElevate matches on name, so a renamed licence appears to be missing and a new licence is created alongside it.
  • Validate the first run against a client whose agent count you know before relying on the numbers across all clients.
  • Reconcile your first month of invoices before relying on the sync unattended — see the warning in the Overview about quantities being written down to zero.

 

Troubleshooting


"PSA Agreement Billing Sync" does not appear in Settings

Every organization receives this row automatically, and it cannot be added through the portal's normal Add setting flow. If it is missing from your Settings grid, open a support ticket and reference this article so that Support can have the setting created for your account.

The Enable nightly billing sync checkbox is unavailable

The dialog shows the message "Agreement billing sync requires a ConnectWise Manage or Halo PSA integration. Set up a supported PSA Integration first, or switch the sync off." Your organization has no supported PSA integration connected; set one up first. If the sync was already enabled before the PSA changed, you can still switch it off, but you cannot switch it back on until a supported PSA is connected.

Edit PSA Agreement Billing Sync dialog with the Enable nightly billing sync checkbox unavailable

"Multiple software licences named … found for Halo client …"

That client has two or more licences with the same name, so there is no single licence to update. Remove the duplicates in Halo, or change the Software Licence Name setting to a name that matches exactly one licence.

"Software licence … belongs to Halo client …, not …"

AutoElevate found a licence with the correct name but confirmed that it belongs to a different Halo client, and did not modify it. This check prevents one client's licence from being re-pointed, and its count overwritten, on another client's behalf. Verify the licence's client in Halo.

"Company is not linked to a Halo PSA client"

This message means the company’s ticketing system link exists but carries no Halo client — most often after switching ticketing systems, when the link still points at the previous one. It is reported as an error, not as needing setup. A company with no ticketing system link at all is skipped silently and never produces this message.

Re-link the company from the Companies grid (Ticketing System → Link), or from that company’s Ticketing System Setup screen, then wait for the next run.

"Billing sync was saved for … but the PSA integration is now …"

Your PSA integration changed type after the billing sync setting was saved. Nothing syncs until you update PSA Agreement Billing Sync against the current PSA — and saving the dialog without editing anything re-sends the stored value unchanged, so change a field (retyping the Software Licence Name is enough) before you save. You must also re-link every company from the Companies grid: companies linked to the previous ticketing system are not re-evaluated automatically and are reported as errors until they are re-linked.

Authentication or token errors

The sync signs in to Halo with the same credentials as your Halo ticketing integration. If those credentials were rotated or revoked in Halo, re-enter them in the AutoElevate Halo integration setup; billing sync resumes on the next run, with no separate change required. A credential problem affects every company in the run rather than a few, so an all-companies failure usually points here first.

A new licence appeared instead of the existing one being updated

This is usually a name mismatch: the licence in Halo has a different name from the Software Licence Name in the setting. Matching ignores case and surrounding spaces only. Set both to the same name and remove the licence that is no longer required.

The quantity in Halo does not match what the portal shows

Check the following before escalating. First, the count is per company across all locations, and it includes only computers that are not deleted and have checked in within the last 30 days — a company page filtered to one location, or showing all-time installations, will not agree with it. Second, the value written is the count at the moment the nightly run reached that company; agents that checked in later are picked up on the following run.

The licence is updated every night but the quantity never changes

A client that reports Updated on every run while its quantity stays the same usually means the count is being returned as text rather than as a number, so the check that normally skips an unchanged licence never matches and the licence is saved again each night. The billed value stays correct; the run simply looks busier than it is. Report it so it can be corrected.

A duplicate licence appears on a client with many licences

The licence lookup reads one page of results. On a client carrying a very long list of software licences, an existing AutoElevate licence can sit beyond that page, go unmatched, and be created a second time. It is unlikely but worth knowing: if a duplicate appears on a client with an unusually large licence list, remove the duplicate and open a support ticket rather than renaming anything.

No changes have appeared since the sync was enabled

The sync runs on a schedule rather than on save, so allow one full overnight cycle. If a second night passes with no change to a client you expect to be updated, open a support ticket and reference this article.

 

Security Notes


  • AutoElevate's surface in Halo is intentionally limited. The feature reads the software licences for a client and saves one licence. It does not read or write tickets, invoices, or anything else through this path.
  • Ownership is re-checked before every write. A licence is only updated once AutoElevate has confirmed it belongs to the client being synced, so that a name collision across clients cannot redirect a count.
  • No new credentials. The sync reuses your existing Halo PSA integration credentials, which are stored encrypted; no additional credentials are stored.
  • Error text is bounded and filtered. Only named error fields from Halo are carried into internal logs, and they are truncated — a failed sign-in cannot write credentials into a log.
  • Requests are bounded. Each call times out after 30 seconds, refuses redirects and caps the response it will read, and AutoElevate waits 250 milliseconds between companies.

 

Related Articles


  • Halo PSA - API Application for AutoElevate Integration Setup
  • Technician Mode Ticketing
  • ConnectWise Manage - Ticketing Integration Overview
billing halo payment contract synchronization

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • ConnectWise Manage - Ticketing Integration Overview
  • ConnectWise Manage - API Member for AutoElevate Integration Setup
  • ConnectWise Manage - Permissions for API Member Security Role
  • ConnectWise Manage - Setup Preferences
  • ConnectWise Manage - Adding the AutoElevate Pod to Your User Setup
CyberFOX

PRACTICAL CYBERSECURITY FOR LEAN IT TEAMS

Platforms
  • Privileged Access Management
  • Password Management
  • DNS Filtering
  • SASE
Industry
  • Higher Education
  • K-12 Education
  • State and Local Government
  • Manufacturing
Company
  • About
  • Awards
  • Partnerships
  • Trust & Legal
  • Contact
  • Login
  • FAQ
  • Referral Program
  • Support
© 2026 CYBERFOX LLC ALL RIGHTS RESERVED | Privacy Policy | Terms of Service | Sitemap
Expand