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 2 months 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.

  • When we’re pulling a Halo Product, if no Quoter Item Category exists that matches the name of the Halo Product’s Asset Group, then we will automatically create the Item Category in Quoter.

  • 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).

    • The Quoter User will be set as the Halo Agent on the Halo Quote and Opportunity

      Important note: If you're creating a new Halo Opportunity, there's a setting in Halo's tickets > general settings that says:

      "When reassigning Tickets to Agents, check for ongoing Appointments"

      If this is turned on, in Halo's UI Halo would give you a prompt when logging a ticket as a warning but wouldn't immediately log the ticket. This will cause an error in the API. Please turn this off if you want Quoter to create new Halo Opportunities.

    • 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 an attempt to match an existing Halo Product is made 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. A default Halo Product Group must be selected to avoid new Product Groups being created in Halo.

      • You can set if new Halo Products should be created with the Product Name being populated with the Line Item Name from Quoter, or the Line Item's Manufacturer Part Number (MPN) which Quoter considers the unique identifier.

    • Other than the default Halo Asset Group, you also have complete flexibility to map Quoter Item Categories to any Halo Asset Groups.

    • If you add new Asset Groups, you can go back to your Quoter integration settings and map Item Categories to them at any time if they should not go to the catch-all Asset Group.

  • 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, all:admin and all:teams.

11. Under Configurations > Opportunity Types > Edit > Field List > Target Date > Edit, please ensure that Target Date is set to Visible - Not Required for any settings where it is set to Visible - Required:

12. We recommend you turn these settings off in Halo from Configuration > Quotations:

13. 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.

Important note: In the Default Product Group drop down and the Category Mapping (see below) we are showing Asset Groups from Halo that can be used for Assets and Items. We should only be showing the Asset Groups that can be used for Items. We will be fixing this but in the meantime please carefully select only your Halo Asset Groups that are set to Use for Items.

Screenshot from Halo when editing an Asset Group:

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, and the Opportunity Default Status.

7. To avoid unnecessary data in Halo, consider setting Quoter to Overwrite Halo Quotes, or turn on the toggle to only push Won Quotes.

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


9. Set the Status Mappings for the Halo Quotes:

10. 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.

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


12. Finally, set the default currency mapping:


Click Save Integration :)

Happy Quoting!

Did this answer your question?