Skip to main content

BirdEye Native Integration - Quickbooks Online

Updated today

*This integration is supported for both SMB & Enterprise businesses.

Integrating Birdeye with Quickbooks Online
User Manual

Table of Contents

Integration Requirements

  • Triggers Supported

  • Information from BirdEye dashboard

Integration Process

Business Integration Group

  • Create Integration Group (Curl Command)

  • Fetch information for all the triggers (Curl Command)

  • Find business integration group details (Curl Command)

  • Update Trigger Information (Curl Command)

Integration Mapping

  • Single location (Curl Command)

  • Multi-location (Curl Command)

Complete Integration within BirdEye dashboard


Introduction

QuickBooks Online is an accounting software designed primarily for small and medium-sized businesses to help them manage multiple accounting processes. It helps businesses to manage payroll, pay bills, create invoices, manage sales etc. QuickBooks Online can be used by businesses to manage accounts for different stakeholders including vendors and customers. Integrating QuickBooks Online with BirdEye will automate the process of sending out review requests to customers on a daily basis.

Once QuickBooks Online is integrated with BirdEye, BirdEye will pull customer information from QuickBooks Online once daily from the invoices that were raised for the customers on the previous day. BirdEye collects the first name, last name, email address and phone number of your customers and automatically sends them review requests based on the preferences set within the BirdEye dashboard.


Integration Requirements

Triggers supported

BirdEye allows you to fetch data from Quickbooks Online using some predefined triggers. As part of the integration process, you will need to ask the business for its preference. After integration is complete, requests will be sent out based on the configured trigger(s). Here are the supported triggers for QuickBooks Online:

Trigger Name

Trigger Description

QuickBooks Online Paid Invoices Trigger

This trigger is used to fetch customer data based on the fully paid invoices

Quickbooks Online Sales Receipt Trigger

This trigger is used to fetch sales receipt data from Quickbooks based upon the date specified

Information from BirdEye Dashboard

  1. For single location SMB account - Business ID

  2. For multi-location account - Enterprise ID and Business IDs of all locations
    Enterprise ID

Business IDs of all locations


Integration process

Before you can integrate Quickbooks Online with BirdEye, you will need to set up following configurations:

  1. Business Integration Group: A business integration group is a configuration that supports the business hierarchy of individual businesses on the BirdEye platform. The properties that are common for all business integrations are entered at the group level. Setting up business integration group allows you to associate multiple business locations with the Enterprise account. Below are the list of curl commands that you will need to run to set this up.

(a) Create Integration Group (Curl Command)

Copy this Curl Command

curl --location --request PUT 'https://common-services.birdeye.com/integration/add/businessintegrationgroup' \--header 'cache-control: no-cache' \--header 'content-type: application/json' \--data-raw '{"parentBusinessNumber": 150955616330402,"integrationGroupTriggers": [{"triggerId": 3,"triggerTypeId": 1}],"integrationGroupProperties": [{"propertyKey": "quickbooks.address.method.name","propertyValue": "getBillAddr"},{"propertyKey": "quickbooks.multilocation.logic","propertyValue": "basedOnAddress"}],"integrationSourceId": 3}'
  • 150955616330402 - Business ID - This is Enterprise ID for multi-location account and Business ID for a single location SMB account

  • 3 - Integration Trigger ID - Can be one or more triggers. Ask business what trigger they would like to integrate with and then run the curl command below to fetch all possible triggers for QuickBooks Online. Identify the trigger ID(s) and insert (use commas) in case of multiple trigger IDs

  • basedOnAddress-quickbooks.multilocation.logic-
    Quickbooks.multilocation.logic is the first parental control means,its value should be determined first. There are two possible values-

    • basedOnAddress- Enter this value as basedOnAddress if client wants to separate each location based on city and state,

    • basedOnClassRef- Enter if the client wants to separate each location based on class ref.

    • basedOnDepartmentRef- Enter if the client wants to separate each location based on Department ref.


getBillAddr-quickbooks.address.method.name -
This settings will come into effect only if Quickbooks.multilocation.logic is set to ‘basedOnAddress’.

  • getBillAddr - if the client wants to filter invoice/sales receipt based on billing address,

  • getShipFromAddr- if the client wants to filter invoice/sales receipt based on ship address.

NOTE: We will get the group ID once we run the first curl (Integration Group) and make a note of group ID as that will be required while we will be doing the integration mapping.

(b) Fetch information for all the triggers available for QuickBooks Online (Curl Command)

Copy this Curl Command

curl -X GEThttps://common-services.birdeye.com/integration/trigger/integrationtriggers/sourceid/3 -H 'cache-control: no-cache' -H 'content-type: application/json'

Sample response: A sample response like this (see below) will appear after you run the curl command. The response will have the trigger name, description and the ID. This trigger ID will be utilized while creating the integration group. An integration can have one or more triggers. To use more than one trigger, enter comma separated values while creating the integration group.

[{"id": 3,"integrationSourceId": 3,"triggerService": "quickBooksPaidInvoicesTriggerService","displayName": "Quickbooks Online Paid Invoices Trigger","description": "This trigger is used to fetch customer data based on the fully paid invoices","active": true,"integrationSourceName": "Quickbooks Online","integrationTriggerType":[{"id":1,"name":"JOB"}]}]{"id": 47,"integrationSourceId": 3,"triggerService": "quickBooksSalesReceiptTriggerService","displayName": "Quickbooks Online sales receipt Trigger","description": "This trigger is used to fetch sales receipt from Quickbooks based upon the date specified","active": true,"integrationSourceName": "Quickbooks Online","integrationTriggerType":[{"id":1,"name":"JOB"}]}

3 and 47 - Trigger IDs

(c) Find business integration group details (Curl Command)

Copy this Curl Command

curl -X GET https://common-services.birdeye.com/integration/businessintegrationgroup/150955616330402 -H 'Cache-Control: no-cache'
  • 150955616330402 - Business ID: Enter the Business ID here to get the integration group ID for the business.

Sample Response

[{"groupId": 9,"integrationSourceType": {"id": 3,"integrationSource": "QUICKBOOKS","sourceCategory": "Accounting","oauthEnabled": true},"integrationGroupTriggers": [{"triggerId": 3,"triggerTypeId": 1}] }]
  • 9 - Group ID: A group ID will be returned in the sample response with the details of the existing triggers for the business.

(d) Update Trigger Information (use only if business wants to change) (Curl Command)

Copy this Curl Command

curl -X POST 'https://common-services.birdeye.com/integration/update/businessintegrationgroup?replaceTriggers=true' -H 'cache-control: no-cache' -H 'content-type: application/json' -d '{ "groupId": 9,"integrationGroupTriggers":[{"triggerId":17,"triggerTypeId":1}]}'
  • replaceTriggers=true - To replace existing trigger(s), enter the value for replaceTriggers as To add new trigger(s) to the existing list, the value for replaceTriggers should be false

  • 9 - The Group ID that was returned in the previous step will be entered here.

  • 17 - Enter the Trigger ID(s) that need to be added or updated to the integration.


Business Integration Mapping

This configuration is developed to create the actual business integration mapping. Each business integration mapping corresponds to individual business location.

Single-location Set up Integration Mapping (Curl Command)

Copy this Curl Command

curl -X PUT https://common-services.birdeye.com/integration/add/businessintegrationmapping -H 'content-type: application/json' -d '{ "businessNumber": 150955616330402, "integrationGroupId" : 9, "active": true }'
  • 150955616330402- Business ID- Enter the Business ID here.

  • 9 - Group ID- Enter the Group ID that was returned when the Integration group was created.

Multi-location Set up Integration Mapping (Curl Command)

Copy this Curl Command

curl --location --request PUT 'https://common-services.birdeye.com/integration/add/businessintegrationmapping' \--header 'Cache-Control: no-cache' \--header 'Content-Type: application/json' \--header 'Postman-Token: 0479448c-55fd-4e09-b9e9-fd45941882da' \--data-raw '{"businessNumber": 149667491606792,"active": true,"integrationGroupId": 9,"integrationProperties": [{"triggerId": 3,"propertyKey": "qb.location.city","propertyValue": "Palo Alto"},{"triggerId": 3,"propertyKey": "qb.location.state","propertyValue": "CA,California"},{"triggerId": 3,"propertyKey": "quickbooks.class.ref","propertyValue": "Keller,Texas"}]}'
  • 149667491606792 - Business ID- Enter the Business ID here.

  • 9 - Group ID- Enter the Group ID which was returned when the Integration group was created.

  • Palo Alto - location.city- Enter the city name of the location

  • CA,California - location.state - Enter the comma-separated values for state code and state name of the location

  • Keller,Texas-class.ref- Enter the name of class ref,Enter multiple class ref values as comma separated.

Note:

Quickbooks.class.ref (Quickbooks class)- This property will be applicable only if the quickbooks.multilocation.logic property is selected as basedOnClassRef.
Quickbooks.Department.ref (Quickbooks department)- This property will be applicable only if the quickbooks.multilocation.logic property is selected as basedOnDepartmentRef.
qb.location.city (City)- This property will be applicable only if the quickbooks.multilocation.logic property is selected as basedOnAddress.
qb.location.State (State)- This property will be applicable only if the quickbooks.multilocation.logic property is selected as basedOnAddress.

As it can be deduced from the above condition, the client needs to either provide city and state OR he has to provide class, but not both.


Dashboard Setup

The rest of the setup is to be completed within the businesses BirdEye dashboard:

On the bottom of the ‘Settings’ page, click on the 'Connect to QuickBooks' button under the CRM integrations header. This button appears only after the above steps (curl commands) have been completed.

Once you click on the authorization button, you will be redirected to the QuickBooks Online website. Enter the email address and password associated with the businesses QuickBooks Online account and click on 'Sign In'.

If the business had set up multi-factor authentication, choose their preferred way to verify their account and proceed.

After you have successfully signed in to the QuickBooks Online account, BirdEye will ask for certain permissions to obtain customer data from your QuickBooks Online account. Click on 'Authorize' button on the bottom right to continue with the integration process.

Once the access has been granted, you will be redirected to the BirdEye dashboard and an 'Authorized' message will appear right next to QuickBooks Online.

Once you are successfully authorized with QuickBooks, you can disconnect anytime by simply clicking on the 'Disconnect from QuickBooks' button beside 'Authorized'. Once you are disconnected you will no longer be able to fetch customer information from QuickBooks. The 'Disconnect from QuickBooks' button will change to 'Connect to QuickBooks'.

NOTE: Once the setup is complete, the integration runs once daily and pulls data for the previous day to send out review requests as per the configuration setup within the BirdEye dashboard. Eg. If XYZ firm check-in 10 customers on Monday, the review requests to the customers will be sent automatically on Tuesday.


Restriction Reason

Restriction reason is used to identify the contacts which have been opted-out(restricted) from sending a review request. This reason can be fetched from Kibana for contacts that are checked-in already.

Possible restriction reasons for Quickbooks Online are:

  1. Balance is not zero

  2. Integration is beta

Description

  1. Customer invoice balance has some value.

  2. The integration setup is currently set to beta.


Campaigns Tags

Campaign tags are used to setup campaigns within the BirdEye dashboard.These tags are either provided by the client or can be fetched from Kibana for already checkedIn contacts.

Quickbooks Campaign tags are:

quickbooks_class

Did this answer your question?