[hfe_template id='1680'] Quoter Integration | HALO

Quoter Integration

A guide detailing how to Integrate Quoter with HaloPSA

The Quoter Integration has recently changed, meaning the alternative (new) setup is mainly on the Quoter side. If your opportunity/ sales process is acheived via Quoter use Quoter's new method. If your opportunity/ sales process is handled within Halo, the best option is to use the pre-existing configuration for Quoter (Halo's Method). Both Integration Methods are listed below.

Integration Overview Using Quoter's New Method

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 (Quoters Method)

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 🙂


Quoter Integration (The Halo Method)

First make sure the Quoter integration is not configured using the above method. 

Make sure the module is enabled in Halo, this is found in Configuration > Integrations > *Search for Quoter*, and turn on the module by clicking the '+' icon.

When connecting to Quoter, you will need to create an API Key in Quoter, to do this, use the following steps. Click the name on the account, which is found in the top right hand side of Quoter:

Then click into the API Keys section:

Then create a new API Key and copy the Key that is generated on creation (store this in a secure document), and copy the Client ID as well.

Input the credentials to Halo (the API Key being the key copied on creation) :

After connecting, you can create an integration of type "custom webhook" from within Quoter: 

This option can be found at the bottom of the integrations list:

The integration created should look like this:

An Overview of the Processes Being Executed in Halo

Actions can be created which allow you to open the new quote screen in Quoter from an opportunity. When performing the action, Halo will attempt to find an existing user in Quoter based on the opportunity email address. Once the quote has been created in Quoter, the quote can be automatically created in Halo via a webhook from Quoter. The quote will be linked to the latest open opportunity in Halo which matches the email address of the user assigned to the quote.

Configuring Quotes and Webhooks for Sending and Receiving

From here, you have a 'Default Quote Template' option. This will be the Quote template used when opening a Quote in Quoter from HaloPSA (this is where you enter the Quote Template 'URL' obtained in the previous step.

Configure the webhook by adding in the Hash Key that was generated in the Custom Webhook Integration:


To allow for the new Quote screen in Quoter to be opened from Halo, create a new Action (Configuration>Tickets>Actions) with system use 'Create Quotation in Quoter':


Within the configuration for the Action, you will also see the option to override the Quote Template default (if applicable). Assuming this Action has been added to any Workflows applied to your Halo Opporunitiy types, you should now see this Action on the Opportunity:


NB: To facilitate this system use, you must ensure that the Country & Region fields are populated before the time of redirecting to Quoter. Country & Region fields are enabled via Configuration>Users:


Once this module is enabled, you can add the below fields to your Opportunity type(s):

When being redirected to Quoter, the integration will attempt to match the email address for the Opportunity Contact:


To the email of a 'person' in Quoter:


Failing this Halo will create a user in Quoter with the details from the Opportunity contact in Halo, you must enable this setting from the Quoter integration module, to create 'contacts' in quoter, when no existing are found:



Defaulting Field Values

The final option within the Quoter configuration is concerned with setting some default values for entities synced between the two applications:


By default, Halo will match Quote lines for Quotes created from Quoter to existing products in Halo by name or SKU. If no existing products in Halo are found based on this data, then the 'Item Code for Unmatched items on Quotations & Sales Orders' option can be used to set the Item Code/Accounts ID for invoice lines subsequently created. The mappings for item group/ product category are set within Quoter now, as explained above.


Default options for Country/Region Codes can also be set here, in the eventuality that these fields are not pre-set on the Opportunity.

When using the create quote in quoter option, you can link the opportunity ID when creating the quote:

Extra: For When both Quoter and Halo are Integrated with Xero

For those individuals who have both Quoter and Halo integrated with Xero, the below is worth noting. If the Xero Integration is in use within your Halo, there will be a section of the Quoter integration Module which covers 'Linking Invoices to Opportunities (via Xero)'


When integrated with Xero, Quoter provides the option for contacts to 'Approve & Pay' the Quote. In order to 'close the circle' between the 3 integrations, we advise enabling webhooks for Invoice creation/updated within the Xero configuration in Halo:


This will mean that the Invoices created in Xero, from Quoter, will be posted over to Halo. Halo will then associate this invoice with the associated Sales Order/Quote that has in turn been created by Quote.


Configuration within the Quoter Integration module in Halo:

[hfe_template id='2416']