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 Nextech Practice+
User Manual
Table of Contents
Introduction
Integration Requirements
Triggers Supported
Information required from Birdeye client
Information from Birdeye dashboard
Information required from the Nextech Practice+ Partner portal
How to order APIs for Nextech Practice+'s partners
Integration Process
Business Integration Group
Create Integration Group: All locations have the same practice ID (Curl Command)
Create Integration Group: Locations with different practice ID (Curl Command)
Fetch information for all the triggers (Curl Command)
Update Trigger Information (Curl Command)
Find business integration group details (Curl Command)
Integration Mapping
Integration Mapping (Single Location)
Integration Mapping (Multiple Location with same Practice ID)
Integration Mapping (Multiple Location with different Practice ID)
Important Instructions
Appendix
Introduction
Nextech Practice+ is a speciality-specific EMR and Practice Management solution designed for small, medium-sized and also large-sized medical practices to improve efficiency across all functional areas of the practice. It helps medical practices to chart, prescribe medication, manage lab test communications, patient scheduling, revenue management, and patient engagement. Integrating Nextech Practice+ with Birdeye will automate the process of sending out review requests to patients on a daily basis.
Once Nextech Practice+ is integrated with Birdeye, patient information will be pulled from Nextech Practice+ once daily from the list of completed appointments from the previous day.
Birdeye collects the first name, last name, email address, and phone number of your patients, and automatically sends the review requests based on the preferences set within the Birdeye dashboard.
Integration Requirements:
Triggers Supported
Birdeye allows you to fetch data from your PMS using some predefined triggers. Here is the supported trigger for Nextech Practice+:
Trigger Name | Trigger Description |
Nextech Practice+ Appointment trigger | This trigger is used to fetch customer data based on the fulfilled appointments of defined appointment types. |
Details required from the Birdeye client
Trigger Details
Details required from the Birdeye dashboard
Enterprise ID for a multi-location account and Business ID for all locations.
Business ID in case of an SMB Business.
Information from Birdeye Dashboard
For single location SMB account - Business Id
For multi-location account - Enterprise ID and Business IDs of all locations
Enterprise ID
Business IDs of all locations
Details required from the Nextech Practice+ Partner portal
After the client places the order for Birdeye API Access, Birdeye Support will require the group ID from Birdeye Nextech Practice+ Partner Portal.
Find below the credentials to log into the Nextech Practice+ Partner portal:
URL: https://nextechsupport.force.com/partner/
Username: nextech@birdeye.com
Password: Birdeye@4321
How to order APIs for Nextech Practice+'s partners
To start the integration process, you must order APIs for Nextech Practice+'s partners through the Nextech Community portal in the steps detailed below:
Visit https://nextechsupport.force.com/nextech and on the client login page, enter your email and password. Contact the Nextech Client Success manager if you do not have access. Only “Super Nextech Community Users” can order APIs if you can see the “ORDER NOW” button in Step 3 then you are a “Super Nextech Community User.” NOTE: If you are not a “Super Nextech Community User,” then please ask your Practice Administrator to contact your Client Success Manager and get the correct permissions.
Your Practice Administrator will need to give Nextech the authority to make you a Super Nextech Community User for your Practice.
On the Community Portal home page, click on the “ORDER NOW” tab.
On the 'Order now' page, click on the 'Select products' drop-down menu and select the 'Birdeye API Access' option. Now, click on the 'Add' button to add the product and then click on the 'Next' button to proceed. NOTE: You will view the 'Birdeye API Access' option instead of the 'Vendor Name API Access' upon clicking on the drop-down menu.
On the next page, you can review your 'Purchase Summary', and click on the 'Next' button.
On the new page, check the 'I agree' box and click on the 'Next' button.
Now, your order will be sent for review and processing, and a 'Transaction ID' will be generated. Click on the 'Finish' button to complete the process.
After two business days, Birdeye will receive a 'Group ID' and set up the integration.
How to find Group ID
To find the ‘Group ID’, Visit the below portal with given credentials and hover over the ‘Recently Viewed’ drop-down menu and click on the ‘My Community Cases’ option.
https://nextechsupport.force.com/partner/s/
username - nextech@birdeye.com
password - Birdeye@4321
Then navigate to the ‘Birdeye API Setup’ case and click on it.
Now, check the ‘Account Name’ under ‘Case Summary’, and on the right panel, you can find the ‘Group ID’.
Note: You need to find out the exact case with the name ‘Birdeye API Setup’ that has Account name in case summary as of business name that you want to integrate
Note: For Multi-location accounts, Client Nextech Practice+ CRM can use different databases for different locations. So, the client can tell databases name corresponding locations in Nextech Practice+. In this case we need nx-practice-id(Group-ID) for each database and in curl command we need to set nx-practice-id accordingly (different curl commands are mentioned for different scenarios)
Integration Process
Before you can integrate Nextech Practice+ with Birdeye, you will need to set up the following configurations:
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 a business integration group allows you to associate multiple business locations with the Enterprise account. Below is the list of curl commands that you will need to run to set this up.
Create Integration Group: (Curl Command)
Copy Curl Command:
curl -X PUT https://common-services.birdeye.com/integration/add/businessintegrationgroup -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{"parentBusinessNumber":150088776180458,"integrationGroupProperties":[{"propertyKey" : "practice.id","propertyValue": "dd97bd7e-064d-48ab-a162-0dc113c5b3af","isSecure":true},{"propertyKey" : "appointment.types","propertyValue": "procedure|Surgery"},{"propertyKey" : "appointment.status","propertyValue": "fulfilled,completed"}],"integrationSourceId":106,"integrationGroupTriggers":[{"triggerId":116,"triggerTypeId":1}]}'● 150088776180458- Business ID - This is Enterprise ID for multi-location account and Business ID for a single location SMB account ● dd97bd7e-064d-48ab-a162-0dc113c5b3af - Practice ID - This will be get through Nextech Practice+ Partner Portal● procedure|Surgery - Appointment type - ‘appointment.types’ property value will be a pipe separated list of appointment types for which the customer wants to send the review request. Also ensure that there is no whitespace in the pipe separated list. If a customer wants to send a review request to all appointment types, then leave this property value empty.● fulfilled,completed - Appointment Status - ‘appointment.status property value will be a comma separated list of appointment statuses for which the customer wants to send the review request. Also ensure that there is no whitespace in the comma separated list. If the value of this property is not given then a review request will be sent to the appointments that have “fulfilled” status.● 116- 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 Nextech Practice+. Identify the trigger ID (s) and insert (use commas) in case of multiple trigger Ids.Fetch information for all the triggers available for Nextech Practice+ (Curl Command)
Copy Curl Command:
curl -X GET https://common-services.birdeye.com/integration/trigger/integrationtriggers/sourceid/106 -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 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": 116,"triggerService": "NextechPracticePlusAppointmentTrigger","displayName": "Nextech Practice+ Appointment trigger","description": "This trigger is used to fetch customer data based on the fulfilled appointments of defined appointment types","active": true,"integrationTriggerType": {"id": 1,"name": "JOB"},"actionGroupId": 1,"sourceIdsList": [106],"triggerName": "Appointment"}]● 116- Trigger IDUpdate triggers in Integration Group (Curl Command)
Copy 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": 150,"integrationGroupTriggers":[{"triggerId":116,"triggerTypeId":1}]}'● replaceTriggers=true To replace existing trigger(s), enter the value for replaceTriggers as true. To add new trigger(s) to the existing list, the value for replaceTriggers should be false.● 150- The Group ID which was returned in the previous step will be entered here.● 116-Enter the Trigger ID (s) which need to be added or updated to the integration.Find business integration group details (Curl Command)
Copy Curl Command:
curl -X GET https://common-services.birdeye.com/integration/businessintegrationgroup/150088776180458 -H 'Cache-Control: no-cache'● 150088776180458- Business Id: Enter the Business Id here to get the integration group details for a business.[{"groupId": 150,"integrationSourceType": {"id": 22,"integrationSource": "Nextech Practice+PRACTICEPLUS","sourceCategory": "Healthcare","oauthEnabled": false},"integrationGroupTriggers": [{"triggerId": 116,"triggerTypeId": 1}] }]150- Group ID: A group ID will be returned in the sample response with the details of the existing triggers for a business.
2. Integration Mapping (Single Location):
Once the Integration Group is created, the next step is to create the Integration Mapping.
Copy Curl Command:
curl -X PUT https://common-services.birdeye.com/integration/add/businessintegrationmapping -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{"businessNumber": 150088776180458,"active": true,"integrationGroupId" : 150}'● 150088776180458- Business Number: Enter the Business number here.● 150- Integration Group ID: Enter the Integration Group ID which was returned when the Integration group was created.2.1 Integration Mapping (Multiple Location with same Practice ID):
Once the Integration Group is created, the next step is to create the Integration Mapping.
Copy Curl Command:
curl -X PUT https://common-services.birdeye.com/integration/add/businessintegrationmapping -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{"businessNumber": 150088776180458,"active": true,"integrationGroupId" : 31,"integrationProperties" :[{"propertyKey" : "location.name","propertyValue": "Dermatology|Oncology"}]}'● 150088776180458- Business Number: Enter the Business number here.● 31- Integration Group ID: Enter the Integration Group ID which was returned when the Integration group was created.● Dermatology|Oncology - Location name: Enter the Location name as per the name specified in the Nextech Practice+ account for Appointment Location picklist corresponding to this business. Multiple Locations name will be added using pipe seperated.2.2 Integration Mapping (Multiple Location with different Practice ID):
Once the Integration Group is created, the next step is to create the Integration Mapping.
Copy Curl Command:
curl -X PUT https://common-services.birdeye.com/integration/add/businessintegrationmapping -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{"businessNumber": 150088776180458,"active": true,"integrationGroupId" : 31,"integrationProperties" :[{"propertyKey" : "location.name","propertyValue": "Dermatology|Oncology"},{"propertyKey" : "practice.id","propertyValue": "dd97bd7e-064d-48ab-a162-0dc113c5b3af","isSecure":true}]}'● 150088776180458- Business Number: Enter the Business number here.● 31- Integration Group ID: Enter the Integration Group ID which was returned when the Integration group was created.● Dermatology|Oncology - Location name: Enter the Location name as per the name specified in the Nextech Practice+ account for Appointment Location picklist corresponding to this business.Multiple Locations name will be added using pipe seperated.● dd97bd7e-064d-48ab-a162-0dc113c5b3af - Practice Id - This will be taken through Nextech Practice+ Partner Portal2.3 Integration Mapping (Multiple Location with Practitioner ID and Location):
Once the Integration Group is created, the next step is to create the Integration Mapping.
Copy Curl Command:
curl --location --request PUT 'https://common-services.birdeye.com/integration/add/businessintegrationmapping' \--header 'Cache-Control: no-cache' \--header 'Content-Type: application/json' \--data-raw '{"businessNumber": 150088776180458,"active": true,"integrationGroupId": 31,"integrationProperties": [{"propertyKey": "location.name","propertyValue": "Dermatology|Oncology"},{"propertyKey": "practitioner.id","propertyValue": "417445|704546"}]}'● 150088776180458- Business Number: Enter the Business number here.● 31- Integration Group ID: Enter the Integration Group ID which was returned when the Integration group was created.● Dermatology|Oncology - Location name: Enter the Location name as per the name specified in the Nextech Practice+ account for Appointment Location picklist corresponding to this business.Multiple Locations name will be added using pipe seperated.● 417445|704546 - Practitioner Id: Enter the Practitioner Id as per the specified in the Nextech Practice+ account for Appointments. Multiple Locations name will be added using pipe seperated.How to find the Practitioner Id if practitioner Name is given?
Copy Curl Command:
curl --location --request GET 'https://common-services.birdeye.com/Nextech/practiceplus/practitioners?practiceId=51973950-bc3c-4516-abe9-97d788257dad'● 51973950-bc3c-4516-abe9-97d788257dad- Practice ID - This will be get through Nextech Practice+ Partner Portal.Note: If there are two practice Id present for that business one at location level and other at group level, please pick the practice Id which is setup at location level.
How to find the Locations associated with the practice Id?
Copy Curl Command:
curl --location --request GET 'https://common-services.birdeye.com/Nextech/practiceplus/locations?practiceId=51973950-bc3c-4516-abe9-97d788257dad&businessNumber=157744054261706'● 51973950-bc3c-4516-abe9-97d788257dad- Practice ID - This will be get through Nextech Practice+ Partner Portal.Note: If there are two practice Id present for that business one at location level and other at group level, please pick the practice Id which is setup at location level.● 157744054261706- Business Number- Fill the business number for which you want to check the location.Note: please fill the business number if only if the Location is already set up and you want to check whether the location Name you have configured is correct or not, otherwise leave it blank if the Location is not set up.
Important Instructions:
While you are on the integration setup call, you will be asked for the names of the appointment types for which a review request would be sent. If you do not specify the appointment type, then the review request would go for all appointments.
For a multi-location setup, you will need to provide the Nextech Practice+ location name corresponding to the Birdeye business location. To find the exact location name, click on the Admin menu and select the Locations tab. Then, click the drop-down list to show the list of available locations.
NOTE: To successfully integrate Nextech Practice+ with Birdeye, make sure that the Nextech CRM version is V14.1 or above.
Troubleshooting Instruction:
If there is any issue reported by the client, Please check logs on Kibana dashboard and if you find any issue while calling Nextech Practice+ API. Please raise a ticket at the Nextech support portal(https://nextechsupport.force.com/partner/s/). Provide practice id and error description in the ticket.
Appendix
Re-Authorise Business
Sometimes it happens the credentials entered were wrong during setup or are expired so we receive 401 Unauthorized Error while running the Integration and as a result Integration will be marked unauthorized. It will not run until the credentials are corrected and the business is authorized again which involves the steps as given in the below document.
Campaigns Tags
Campaign tags are used to set up campaigns within the Birdeye dashboard.These tags are either provided by the client or can be fetched from Kibana for already checkedIn contacts.
Nextech Practice+ Campaign tags are:
appointment.status,appointment.types
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 Nextech Practice+ are:
‘Appointment status’ is not in the allowed list
‘Appointment type’ is not in the allowed list
Integration is beta
Description
The patient appointment status is different than those present in the allowed list of status.
The patient appointment type is different from those present in the allowed list of types.
The integration setup is currently set to beta.
Troubleshooting steps
If you encounter any of the above restriction reasons, please search the following keys to know the reason for restricting the contact.
‘Appointment status’ is not in the allowed list
Please look up for the key additionalParams.appointment.status to know the value of appointment status.‘Appointment type’ is not in the allowed list
Please look up for the key additionalParams.appointment.types to know the value of the appointment type.Integration is beta
Please look up for the key beta in kibana to know whether the integration is beta or not.configured locations not exist in Nextech
Please look up for the key crm_locations in integration error search to know the values of crm locations.














