How Do I Setup the HaloPSA Integration?
The integration with HaloPSA includes the ability to search for clients, users, create/update Opportunities, create/update Quotes and upload quote attachments to HaloPSA. DataLink is supported for Users, Clients, Opportunities, Quotes and LineItems. Once configured, the HaloPSA Product Database will be available in the Product Lookup Window. You can attach files to the HaloPSA Opportunity from the PDF Preview window, the Links tab, and the Print window.
This article includes information on the following topics:
Creating an API-only HaloPSA Agent
To get started you need to create an API-only HaloPS Agent. This is done from within HaloPSA.
1. Navigate to your HaloPSA custom URL and login using your credentials.

2. From the left tool bar on the dashboard select the Configuration icon.

3. At the top of the menu on the left select Teams & Agents then select Agents.

4. On the top right of the window click New to create a new user. This new user will be your API-only Agent.

5. Input information for this user. Make sure they are given the Administrator role, the account is set to Active and Is an API-only Agent is selected. Scroll to the bottom of the page and click Save.

Obtaining your HaloPSA Credentials
With the API-only Agent created you can now create a new application API which will get you access to the credentials needed to establish a connection to HaloPSA.
1. Navigate to your HaloPSA custom URL and login using your credentials.

2. From the left tool bar on the dashboard select the Configuration icon.

3. Scroll to the bottom of the menu on the left and click on Integrations OR click on the Integrations icon under Advanced.

4. Click on the HaloPSA API icon.

5. Click on View Applications.

6. On the applications page click New on the top right to create a new application API.

7. Name your application something that is easy to identify as being connected to your QuoteWerks integration. Below I have used the name "QuoteWerks." You will want to verify that the Active checkbox is selected, that Client ID and Secret (Services) is selected under Authentication Method, and that you copy and save both your Client ID and Client Secret. These will be used in QuoteWerks to set up the integration.

8. Make sure that you set the Login Type to Agent and that the Agent to log in as is set to the API-only user you created.
![]()
9. Next, click into the Permissions tab. There is a long list of settings here. Select all:standard. Scroll to the bottom of the page and click Save.

10. Your new Application API will be listed under your HaloPSA APIs as seen below. You can now use your saved Client ID and Client Secret to setup the integration in QuoteWerks.

Integration Settings
1. In QuoteWerks navigate to the Setup Contact Manager window by selecting the Contacts dropdown menu and selecting Setup Contact Manager...
2. Select Halo PSA from the list of Contact Manager Integrations.

3. Click on Integration Settings to open the Halo PSA Setup Window.

Account Tab
On the Account tab you will want to input your Server URL (the URL you use to sign into HaloPSA), your Client ID, and Client Secret. For instructions on how to get these please review Obtaining your HaloPSA Credentials.

Opportunity Tab
Click on the Opportunity tab on the left-hand side of the window. Here you will configure the Opportunity Actions and Opportunity Detail settings as described below. Opportunity details will only show if "Write Product into Opportunity" is selected.

Opportunity Actions
Completion of opportunity to "Won"
This setting controls when an opportunity is created in HaloPSA from a document in QuoteWerks. Often times this will be set to Automatic when converting to an Order, but you have other options as listed below.
- Automatic when converting to Order
- Automatic when converting to Invoice
- Never
Update HaloPSA opportunity name with Document name
If selected, the HaloPSA opportunity name will be updated with the QuoteWerks Document name.
When converting to order/invoice, and there is no existing sales opportunity, prompt to create a won opportunity
If selected, when you convert a Quote to an Order or an Invoice you will be prompted to create a won opportunity in HaloPSA. If this is left unchecked an opportunity will not be created. If an opportunity already exists you will still get prompted to convert it to won.
Return existing opportunities by which contact type
This drop-down gives you the ability to control which existing HaloPSA opportunities display on the create/update HaloPSA Opportunity window. You can choose to display opportunities associated with the User or the Client that are included on the QuoteWerks quote.
Write products into opportunity
If selected, items from the QuoteWerks document will be written into the opportunity in HaloPSA.
Opportunity Details
Line Handling
Write a single summary line item into the HaloPSA opportunity
- This will create a single line in the opportunity representing the combined cost, price, and other attributes from the QuoteWerks document line items.
Write line item detail into the HaloPSA opportunity
- This will write every line from the QuoteWerks document into the opportunity.
Part Number for Summary Item
This is the Part number that will be written into HaloPSA as a single revenue line item. This will reflect the quote total.
Use profit amount vs sale amount in sales opportunity
This allows you to determine whether you would like to send the profit amount instead of the sale amount when writing to a HaloPSA Opportunity
If you choose "Write a single summary line item into the HaloPSA opportunity" additional setting options will appear as outlined below:

Product ID Mapping - Map QuoteWerks Fields
Here you will set which QuoteWerks field to map the HaloPSA Item# to. Most often this will be mapped to the Manufacturer Part # as this is the unique identifier in the QuoteWerks system. You can however choose to map this field to a number of other QuoteWerks fields including CustomText fields. If you choose to map to any field other than Manufacturer Part # you will be able to set how QuoteWerks assigns a part number by clicking on PartNumber Generation options.

Here you will have the option to select:
- Do not auto-generate - this will not create a part number if one does not exist in HaloPSA
- Auto-generate using macro - this will generate a part number using a custom macro if one does not exist in HaloPSA
- Auto-generate using macro based on QuoteWerks ItemType - this will generate a part number based on the QuoteWerks ItemType. For ItemTypes that are not mapped you can create a custom macro to generate a part number for you
Each HaloPSA opportunity item must have a part number. If the field mapping results in an empty part number, then you can set how each item will be assigned a part number in the section below HaloPSA Item#.
Include item cost in opportunity line item(s)
If selected, the item costs from the QuoteWerks document will be written into the opportunity in HaloPSA.
Copy Name to SKU field for each product
If selected, the Manufacturer Part Number from QuoteWerks will be written into the SKU field in HaloPSA.
For grouped bundles, only create a single summary product in HaloPSA (not the individual group items)
If selected, bundles will be written into HaloPSA as a single summary line rather than the individual line items.
Settings Tab
Click on the Settings tab on the left-hand side of the window. Here you will configure the Field Mapping, Default Product Group, and Default Record Owner, as described below.

Field Mapping
You will use this section to map each Halo Site Address Line to a QuoteWerks address field. You can do this by using the drop down menus in the QuoteWerks Field Mapping column and selecting the appropriate fields.
Default Ticket Type
This setting determines the type of ticket that will be created in HaloPSA when creating a new opportunity. The options available here will display those ticket types available in HaloPSA.
Default Record Owner
Here you have the ability to set which QuoteWerks user is the default record (Opportunity/Quote) owner in HaloPSA. You can select to set the default to either the QuoteWerks Logged In User or the QuoteWerks Sales Rep, both of which are mapped to the HaloPSA UserName.
NOTE: When choosing to set the Owner to the QuoteWerks Sales Rep, you must set up the HaloPSA UserName for each Sales Rep under that Sales Rep's User Preferences in QuoteWerks.
User Mappings Tab
Click on the User Mappings tab on the left-hand side of the window. This is where you can map QuoteWerks UserNames to HaloPSA UserNames. This is an important setting to ensure that as opportunities and quotes are shared between systems the appropriate user is being assigned.

Product Group Mappings Tab
Click on the Product Group Mapping tab on the left-hand side of the window. This is where you can map QuoteWerks Item Types to HaloPSA Product Groups. This is an important setting to ensure that as opportunities and quotes are shared between systems the appropriate Product Group is being assigned.
If an Item Type cannot be mapped to a HaloPSA Product Group the Default Product Group will be assigned. This default can be set under 'Default Product Group.'
