Skip to main content

Birdeye Native Integration - PestRoutes

Updated today

The information contained in this document is confidential, privileged, and only for the use of internal Birdeye users. This document may not be used, published or redistributed.

This integration is supported for both SMB & Enterprise businesses.

Integrating Birdeye with PestRoutes
User Manual - SUPPORT ARTICLE

PestRoutes is a cloud-based pest control software that caters to the needs of small to mid-sized enterprise businesses. The company offers various features, including billing and invoicing, fleet management, inventory control, scheduling, pest activity tracking etc.

Integrating PestRoutes with Birdeye will automate the process of sending out review requests to clients on a daily basis.

Once PestRoutes is integrated with Birdeye, Birdeye will pull client information from PestRoutes once daily. Birdeye collects the first name, last name, email address and phone number of your clients and automatically sends them review requests based on the preferences set within the Birdeye dashboard.

Table of Contents


Integration Requirements

Triggers supported

Birdeye allow you to fetch data from your PMS using some predefined triggers. Here is the supported trigger for PestRoutes:

Trigger Display Name

Trigger Name/ Value

Trigger Description

PestRoutes Completed Appointment Trigger

Appointment

This trigger is used to fetch customer data based on the fulfilled appointments of defined appointment types.

Details required from the Birdeye client

Birdeye technical support team would need Office ID, Authentication Key, Authentication Token, and Subdomain to set up the integration successfully. If customization is required for review requests by appointment status or service type, the technical support team needs prior intimation during the call.

  1. Trigger details

  2. Office ID

  3. Authentication Key

  4. Authentication Token

  5. Subdomain

  6. Appointment Status

  7. Service Types - Only if the customer does not want to send review requests to a particular service type appointment.

Details required from the Birdeye dashboard

  • Enterprise ID for a multi-location account and Business ID for all locations.

  • Business ID in the case of an SMB Business.

Information from Birdeye Dashboard

  1. For single location SMB account - Business ID
    Login to your Birdeye account, go to Left Navigation Rail and click on ‘Settings’. Once the new page appears, click on ‘Integrations’ and select ‘API.’

    You will find the ‘Business ID’ and ‘API key’ shown in the image.

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

Enterprise ID

Business IDs of all locations

Login to your Birdeye account, go to Left Navigation Rail and click on ‘Settings’. Once the new page appears, click on ‘Profile’ and select ‘Business Profiles.’

To view Location ID, hover over the ‘Status’ of location.


Integration process

Before you can integrate PestRoutes with Birdeye, you will need to set up the following configurations on the integration support dashboard:

To set up native integration, we have an integration support dashboard, where we need to set up the integration and then follow these steps to complete the configuration.

Login

  1. After successful login in the integration dashboard, you have to click on ‘BE integration’ and then click on ‘Add Integration.’

  2. Search for the CRM in the search bar and select it. Click on ‘Next’.

Manage Triggers

The trigger is automatically selected as only one trigger is supported.

Note: To fetch information for all the triggers available using curl commands, use this command. To replace triggers, use this curl command.

Manage Properties

Here; you can manage group-level properties, which will be applied to all locations under a CRM.

  1. Customer fetch delay: It is used if businesses want to send review requests with a delay (number of days).

  2. Status: It shows the status of the appointment.

Note: This step will create a group for our integration. Alternatively, you can do it via curl commands.

For SMB accounts, you can access the curl command.

For Enterprise accounts, you can access the curl command.

Manage Locations

For Single Location/Multi-Location Accounts, select the location from the drop-down menu and click on ‘Add.’

(In the case of Single Location accounts, it will give you only one option).

A drawer will appear on the right-hand side.

The Status, Frequency, and Next Runtime will be set by default. You can make the changes if required.

  1. Office ID: It is to be provided by the customer.

  2. Status: It shows the status of Integration (Active or Inactive).

  3. Frequency: The number of times integration will sync with CRM (Days or Hours).

  4. Next RunTime: The next scheduled time is when the integrations will run.

  5. Sub Domain, Authentication Token, Authentication Key: It is to be provided by the customer.

  6. Service Types: Provide the IDs for which you do not want to send the review requests.

  7. Customer fetch delay: It is used if businesses want to send review requests with a delay (number of days).

Override Group Properties: With this, you can override the properties added at the group level, specific to each location.

Click on ‘Next’ and click on ‘Save.’

NOTE:

  1. For SMB: You can use ‘manage the locations’ using this curl command.

  2. For Enterprise: You can use ‘manage the locations’ using this curl command.


Authorize through Integration Dashboard

Upon creating a new PestRoutes group for the first time from the integrations dashboard, and the system will automatically attempt to authorize the group. If the group properties provided are correct, the authorization will succeed. This will be evident from the fact that the PestRoutes group will be indicated as authorized, and no further action needs to be taken.

In case the group is unable to be authorized the first time it’s created or is unauthorized at a later stage, please authorize it again by following the steps below.

Setup through Integration Dashboard

The rest of the setup is to be completed within the Integration dashboard.

Once in the Birdeye dashboard, click on the ‘BE Integrations’ tab on the left navigation rail.


Scroll down to the ‘PestRoutes’ integration and hover over the three dots.


Click on the ‘Actions’ drop-down button and select the ‘Authorize’ option.

Once you select the authorize option, the integration will be authorized.

Email to PestRoutes

  1. Send an email support@fieldroutes.com to PestRoutes and CC the client on the email.

  2. There is typically a 24-48 hour turnaround time from the PestRoutes Integration team.


Curl Commands

Before you integrate PestRoutes with Birdeye, you will need to set up the following configurations:

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

Create Integration Group (Curl Command)

Copy this Curl Command

curl-X PUT \ http://common-services.Birdeye.com/integration/add/businessintegrationgroup -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{ "parentBusinessNumber":149098791188843, "integrationSourceId":26, "integrationGroupTriggers":[{"triggerId":41,"triggerTypeId":1}], "integrationGroupProperties":[{ "propertyKey" : "status", "propertyValue": "1" } ] }'

  • 149098791188843- Business ID - This is Enterprise ID for a multi-location account and Business ID for a single location SMB account

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

  • 1 - Status- You can customize the appointment "status" integration property by entering multiple comma-separated values. The possible values for this property can be:

0: Pending

1: Completed

2: No Show

3: Rescheduled

-1: Cancelled

Fetch information for all the triggers available for PestRoutes (Curl Command)

Copy this Curl Command

curl -X GET https://common-services.Birdeye.com/integration/trigger/integrationtriggers/sourceid/26-H 'cache-control: no-cache' -H 'content-type: application/json'

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

[{"id": 41,"integrationSourceId": 26,"triggerService": "pestroutesAppointmentTriggerService","displayName": "Pestroutes Completed Appointment Trigger","description": "This trigger is used to fetch customer data based on the fulfilled appointments","active": true,"integrationSourceName": "Pestroutes","integrationTriggerType":[{"id":1,"name":"JOB"}]}]
  • 41- Trigger ID

Find business integration group details (Curl Command)

Copy this Curl Command

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

Sample Response:

[{"groupId": 213,"integrationSourceType": {"id": 26,"integrationSource": "PESTROUTES","sourceCategory": "Other","oauthEnabled": false},"integrationGroupTriggers": [{"triggerId": 41,"triggerTypeId": 1}]}]
  • 213- Group ID: A group ID will be returned in the sample response with the details of the existing triggers for a business.

Update Triggers 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":213,"integrationGroupTriggers":[{"triggerId":15,"triggerTypeId":1},{"triggerId":19,"triggerTypeId":1}]}'
  • replaceTriggers=true - To replace existing trigger(s), enter the value for replaceTriggers as To add a new trigger(s) to the existing list, the value for replaceTriggers should be false

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

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

Integration Mapping For Setup 1 (For all service requests):

Once the Integration Group is created, the next step is to create the Integration Mapping.

Copy this Curl Command

curl-XPUT\https://common-services.Birdeye.com/integration/add/businessintegrationmapping-H'Cache-Control: no-cache'-H'Content-Type: application/json'-d'{ "businessNumber": 149122797597515, "active": true, "integrationGroupId" : 213, "officeId" : "1", "integrationProperties":[ { "propertyKey" :"subdomain", "propertyValue" :"mosquitonix" }, { "propertyKey" :"authenticationKey", "propertyValue" :"C1343D84A0DE9EF27554819025A93B7103B1C6172EA6FD8450E0EFCCBAF3F83B", "isSecure" : "true" }, { "propertyKey" :"authenticationToken", "propertyValue" :"48BA2EF5F687C9C83C5816D4406CFB7FD4EC240BF3D96FC724946E8B216D461C", "isSecure" : "true" } ] }'
  • 149122797597515- Business ID: Enter the Business ID here to get the integration group details for a business.

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

  • 3,4- Appointment Status: The value 3,4 is for closed appointments. If the user wants to fetch appointments of any other status, then the appointment status will be shared by the PestRoutes client during the initial setup.

  • 1959568- Practice ID: Enter the Practice ID, which was shared by the client during the initial setup.

  • 1- Office ID- Value for this property will be shared by the customer.

  • mosquitonix- Sub-Domain: Value for this property will be shared by the customer.

  • C1343D84A0DE9EF27554819025A93B7103B1C6172EA6FD8450E0EFCCBAF3F83B-Authentication Key: Value for this property will be shared by the customer.

  • 48BA2EF5F687C9C83C5816D4406CFB7FD4EC240BF3D96FC724946E8B216D461C

    • Authentication Token: Value for this property will be shared by the customer.

Integration Mapping For Setup 2 (For specific service types):

Copy this Curl Command

curl-XPUT\https://common-services.Birdeye.com/integration/add/businessintegrationmapping-H'Cache-Control: no-cache'-H'Content-Type: application/json'-d'{ "businessNumber": 149122797597515, "active": true, "integrationGroupId" : 213, "officeId" : "1", "integrationProperties":[ { "propertyKey" :"subdomain", "propertyValue" :"mosquitonix" }, { "propertyKey" :"authenticationKey", "propertyValue" :"C1343D84A0DE9EF27554819025A93B7103B1C6172EA6FD8450E0EFCCBAF3F83B", "isSecure" : "true" }, { "propertyKey" :"authenticationToken", "propertyValue" :"48BA2EF5F687C9C83C5816D4406CFB7FD4EC240BF3D96FC724946E8B216D461C", "isSecure" : "true" } , { "propertyKey" :"serviceTypes", "propertyValue" :"118" }] }'
  • 149122797597515- Business ID: Enter the Business ID here to get the integration group details for a business.

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

  • 1- Office ID- Value for this property will be shared by the customer.

  • mosquitonix- Sub-Domain: Value for this property will be shared by the customer.

  • C1343D84A0DE9EF27554819025A93B7103B1C6172EA6FD8450E0EFCCBAF3F83B-Authentication Key: Value for this property will be shared by the customer.

  • 48BA2EF5F687C9C83C5816D4406CFB7FD4EC240BF3D96FC724946E8B216D461C-Authentication Token: Value for this property will be shared by the customer.

  • 118- Service Types: Enter the ID (s) of the service(s) for which you do not want to send review requests.


Re-Authorise Business

Sometimes, it happens that the credentials entered were wrong during setup or are expired, so we receive 401 Unauthorized Errors while running the Integration. As a result, the Integration will be marked unauthorized. It will not run until the credentials are corrected, and the business is authorized again, which involves the steps given in the below document.


Restriction Reason

Restriction reason is used to identify the contacts who 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 PestRoutes are:

  1. Appointment ID is mentioned in the service type.

  2. Customer is inactive.

  3. Phone or Email should be valid for creating a customer Email: null, Phone: null.

  4. Integration is beta.

Description

  1. Appointment ID is mentioned in the service type.

  2. Customer is inactive.

  3. Phone or Email should be valid for creating a customer Email: null, Phone: null.

  4. Integration is beta.

Troubleshooting steps:

  1. Appointment Id is mentioned in the service type.
    Do not configure the Appointment Id in the service type field for which you want to send the review request.

  2. Customer is inactive.
    Check whether the customer is active or not.

  3. Either Phone or Email should be valid for the creation of a customer. Email: null, Phone: null.
    Check the email address and phone number.

  4. Integration is beta.
    Please look up the key beta in kibana to know whether the integration is beta or not.

Did this answer your question?