Skip to main content
All CollectionsIntegrationsHalo PSA
Halo PSA Integration Overview and Setup
Halo PSA Integration Overview and Setup
Ash Welsh avatar
Written by Ash Welsh
Updated over a week ago

Integration Overview

In Quoter, when creating or updating a Quote Template:

  • Recurring and one-time Halo Products can be added to the Template.

In Quoter, when creating a Quote:

  • Any recurring and one-time Halo Products that were added to the Quote automatically (from the Quote Template) will pull up-to-date product info (price, description etc.) from Halo at the time of Quote creation.

  • Recurring and one-time Halo Products can be added directly to the Quote.

  • If the Halo Product has one or more associated Suppliers, we will populate the Quoter Line Item with the details of the first (top of the list in Halo) Halo Supplier including: Supplier, Supplier SKU, Cost and Price. If the Halo Supplier has 0 or a null value for Cost or Price, we will fallback to the Product Cost and Price.

  • Person Search can be used to lookup a Halo User and associate them with the Person the Quote is being prepared for. If you do not use Person Search we will still try to match to an existing Customer and can create a Lead instead of a new Customer as well (see Quoter configuration details below).

  • If the Quote is being prepared for a Halo User, opportunity lookup is triggered so that the Quote can be associated with an existing Halo Opportunity, or you can select to create a new Opportunity.

In Halo, when a Quoter Quote is published or updated:

  • A Halo Quote is created and associated with a new or existing Opportunity using the data from Quoter.

    Important Notes: If your Opportunities in Halo have additional required fields, these will need to be disabled in order to create new Opportunities from Quoter Quotes. Also, if you want to reduce the number of Halo Quotes that Quoter creates, you can opt to limit Halo Quote creation to not include Quoter Quote Revisions. If this is set, we will still create a new Halo Quote if you point a different Quoter Quote to the same Halo Opportunity, but Quote revisions and status changes in Quoter will not result in new Halo Quotes being created.

    • The Halo User the Quoter Quote was prepared for will be the User of the Halo Quote (presented in the top right-hand side of the Quote Screen).

    • Discounts applied to the Quoter Quote are reflected on the Halo Quote.

    • Taxes applied to the Quoter Quote (calculated by Quoter) are pushed the Halo Quote.

      Important note: Currently taxes calculated by Avalara do not push to Halo. If this is important to you please let us know!

    • Recurring and one-time Line Items from the Quoter Quote are created on the Halo Quote and match Halo Products based on:
      1) a matching Halo Product ID (stored when Halo Products are added to Quoter Quotes or Quote Templates),
      2) a matching Quoter MPN/Code to Halo Product SKU,
      3) an exact name match.

    • Unmatched Line Items from Quoter create new Products in Halo, however mapping and a default Halo Product Group can be used to avoid new Product Groups being created in Halo.

  • The Quoter Quote PDF is attached to the Halo Opportunity

In Halo, when a Quoter Quote is Won (moved manually or automatically to a status of accepted, ordered, or fulfilled):

  • A customer-entered PO number can be pushed to Halo's PO Number field on the Opportunity.


  • A Sales Order can be created in Halo and associated with the Opportunity connected to the Quoter Quote.

Integration Setup

Part 1: Halo

Important Note: the Halo documentation and integration settings for Quoter are no longer up-to-date. Follow this guide only to use the most recent version of the Quoter <> Halo integration.

1. In Halo, navigate to Configuration > Teams & Agents > Agents and create an Agent that you will use for the integration.

2. Make sure the Agent has the Administrator Role.

3. Turn on API-only Halo Agent.

4. Click Save.

5. Create an Application in Halo by navigating to Configuration > Integrations > HaloPSA API, and click View Applications

6. Click New

7. Name the Application "Quoter" and select Client ID and Secret as the authentication method.

8. Copy your Client ID, you'll need this later for Part 2.

Important note: The Client ID can change in Halo somewhat unexpectedly so make sure that you have the correct one copied and if you hit errors with authentication in Quoter double check that the Client ID has not changed in Halo.

9. Set the Login Type to Agent and select the Agent you just created:

10. Navigate to the Permissions tab and check all:standard and all:teams.

11. Save your Application and switch over to Quoter.


Part 2: Quoter

Important Note:
A Quoter webhook is no longer needed for the Halo integration. Quoter is now fully using the Halo API for the integration. If you have a Quoter webhook configured for Halo, please delete the webhook before continuing.

Optimization Tip:
In Settings > General, set your default person search to Halo.


1. In Quoter, go to Settings > Integrations > New Integration:


2. Select Halo from the available PSA integrations:

3. Enter your Halo Domain:

4. Turn on Connect via Client ID and Secret and input your domain, Client ID and Client Secret.

Note: If you authenticate using username and password, you will not be able to take advantage of the API-only Halo Agent and will be charged a user license in Halo for the User associated with your Quoter integration.

5. Set the Default Category mapping. This will set a default category for Halo products pulled into Quoter if an Asset Group isn't set for that product in Halo. You can also set a default Product Group in Halo which will be used if we cannot match a product when pushing it over. Lastly, if you want to push a PO number to Halo, select from an existing Quoter Custom Field.

6. Set a Lead Ticket Type in order to prevent Quoter from cluttering your list of Halo Customers. If this is set, we will use an existing Customer if it was pulled from Halo, match to an existing Customer if one exists, or create a Lead if no Halo Customer exists. Once the Quoter Quote is Won (accepted, ordered, or fulfilled), we'll create the Halo Customer for you. Also se the Opportunity Ticket Type you would like us to use.

7. Set your desired address mapping. Note that the Region/Country fields will already map to dedicated fields in Halo:


8. Set the Status Mappings for the Halo Quotes:

9. Next, set the Item Category Mappings. These will allow you to set specific Halo Product Groups based on the category of the item in Quoter.

10. Set the bi-directional Recurring Frequency Mapping. This will be used when pulling and pushing recurring products between Quoter and Halo.


11. Finally, set the default currency mapping:


Click Save Integration :)

Happy Quoting!

Did this answer your question?