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
User Manual - SUPPORT ARTICLE
We're proud to announce that Birdeye is an official Nextech partner. Nextech is a speciality-specific EMR and Practice Management solution designed for small and medium-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 with Birdeye will automate the process of sending out review requests to patients on a daily basis.
Once Nextech is integrated with Birdeye, patient information will be pulled from Nextech 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.
Table of Contents
Triggers Supported
Information required from Birdeye client
Information from Birdeye dashboard
Login
Manage Triggers
Manage Properties
Manage Locations
Integration Requirements
Triggers Supported
Birdeye allows you to fetch data from your PMS using some predefined triggers. Here is the supported trigger for Nextech:
Trigger Display Name | Trigger Name/ Value | Trigger Description |
Nextech Fulfilled Appointment Trigger | Appointment | This trigger is used to fetch customer data based on the fulfilled appointments of defined appointment types. |
Appointment Trigger Service | Appointment Trigger | This trigger is used to update appointments created via the Birdeye widget (Writeback in PMS). It's required for reminders. |
Nextech Appointment Upsert Trigger Service | Nextech Appointment Upsert Trigger | This trigger is used to upsert appointments created/updated via PMS. It's required for reminders. |
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
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.
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.
Details are required from the Nextech Partner portal.
After the client places the order for Birdeye API Access, Birdeye Support will require the group ID from Birdeye Nextech Partner Portal.
Find below the credentials to log into the Nextech Partner portal:
URL: https://nextechsupport.force.com/partner/
Username: nextech@Birdeye.com
Password: Birdeye@12345
How to order APIs for Nextech's partners
To start the integration process, you must order APIs for Nextech'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 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 the given credentials and hover over the ‘Recently Viewed’ drop-down menu and click on the ‘My Community Cases’ option.
username - nextech@Birdeye.com
password - Birdeye@12345
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 the Account name in the case summary as of the business name that you want to integrate
Note: For Multi-location accounts, Client Nextech CRM can use different databases for different locations. So, the client can tell databases name corresponding locations in nextech. In this case, we need nx-practice-id(Group-ID) for each database, and in the 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 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
After successful login in the integration dashboard, you have to click on ‘BE integration’ and then click on ‘Add Integration’.
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.
Customer Fetch Delay: It is used if businesses want to send review requests with a delay(number of days).
Practice id: Add the ‘Practice id’ as mentioned by the client.
Appointment types & Appointment Status: are obtained from the Client for which the review request will be sent.
Custom Appointment Status: is obtained from the Client for which the review request will be sent.
NOTE: You have to provide the Custom Appointment Status field if only the Nextech Fulffiled Appointment trigger is selected.
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 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 changes if required.
Status: It shows the integration status (Active or Inactive).
Frequency: It is the number of times integration will sync with CRM (Days or Hours).
Next RunTime: It is the next scheduled time when the integrations will run.
Customer Fetch Delay: It is used if businesses want to send review requests with a delay(number of days).
Location name: Add the ‘Location Name’ as mentioned by the client.
Practitioner Id: Add the ‘Practitioner ID’ mentioned by the client.
Past Duration (in months): Enter the number of months for which past appointments have to be fetched. If not entered, the past 12 months' appointments will be fetched.
Future Duration (in months): You can leave it blank if there is no specific requirement, as mentioned ahead. If left blank, we shall fetch appointments for the future 12 months. If you want to change this duration, enter that duration(in months).
For instance, if you want future appointments of the past 5 months only to be fetched, you should enter 5 here.Enter your preference:You can choose on which behalf you want to show the appointments by selecting one of the options from the drop-down menu.
Appointment Type-It contains information about a scheduled patient and medical provider meeting.
Appointment Purpose- It contains specific reasons for a scheduled patient and medical provider meeting.
NOTE:
By default, the Appointment Type is selected.
If a business has selected the ‘Appointment Type’, they must disable the ‘Appointment purpose’ from the Nextech dashboard and click on ‘Save’ to save the preference. It is mandatory.
For reference,
If you opt for an ‘Appointment purpose,’ you must map only ONE appointment type under one purpose.
To map, follow the detailed step;
Click on ‘+New Type’ under the Appointment type and select the purpose from the drop-down button, as shown in the image below.
In addition to it, check the box of a procedure to map the purpose against that appointment type.
You must add the rule when you create a template or slots.
For that, click on the ‘+Add Rule’ option. A pop-up will appear on the screen, and you have to check the box which is highlighted in the image. Furthermore, click on ‘Ok’ to apply the rule.
NOTE: You must ensure that ’All’ has been selected in the note as shown in the image below.
To learn more about Nextech Scheduling, refer to this link.
Override Group Properties: The user can override any of the below-mentioned properties for a particular location.
Click on ‘Next’ and click on ‘Save.’
NOTE:
For SMB: You can use ‘manage the locations’ using this curl command.
For Enterprise: You can use ‘manage the locations’ using this curl command.
Curl Commands
Before you can integrate Nextech 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 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":22,"integrationGroupTriggers":[{"triggerId":24,"triggerTypeId":1}]}'150088776180458- Business ID - This is Enterprise ID for a multi-location account and Business ID for a single location SMB account
dd97bd7e-064d-48ab-a162-0dc113c5b3af - Practice ID - This will get through Nextech 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”
24- Integration Trigger ID - Can be one or more triggers. Ask clients what trigger they would like to integrate with, then run the curl command to fetch all possible triggers for Nextech. Identify the trigger ID (s) and insert (use commas) in case of multiple trigger Ids.
Fetch information for all the triggers available for Nextech (Curl Command)
Copy Curl Command:
curl -X GET https://common-services.Birdeye.com/integration/trigger/integrationtriggers/sourceid/22 -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":24,
"integrationSourceId":22,
"triggerService":"nextechFulfilledAppointmentTrigger",
"displayName":"Nextech Fulfilled Appointment Trigger",
"description":"This trigger is used to fetch customer data based on the fulfilled appointments of defined appointment types",
"active":true,
"integrationSourceName":"Nextech",
"integrationTriggerType":[{"id":1,"name":"JOB"}]
}
]
● 24- 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":24,"triggerTypeId":1}]}'replaceTriggers=true To replace existing trigger(s), enter the value for replaceTriggers as true. To add a 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.
24-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.
Sample:
[
{
"groupId": 150,
"integrationSourceType": {
"id": 22,
"integrationSource": "NEXTECH",
"sourceCategory": "Healthcare",
"oauthEnabled": false
},
"integrationGroupTriggers": [
{
"triggerId": 24,
"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.
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.
Integration Mapping (Multiple Location with same Practice ID)
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 account for the Appointment Location picklist corresponding to this business. Multiple Location's names will be added using pipe seperated.
Integration Mapping (Multiple Location with different Practice ID):
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 account for the Appointment Location picklist corresponding to this business. Multiple Location's names will be added using pipe seperated.
dd97bd7e-064d-48ab-a162-0dc113c5b3af - Practice Id - This will be taken through Nextech Partner Portal
Integration Mapping (Multiple Location with Practitioner ID and Location):
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 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 account for Appointments.Multiple Locations name will be added using pipe seperated.
How to find the Practitioner Id if the practitioner's Name is given?
Copy Curl Command:
curl --location --request GET 'https://common-services.Birdeye.com/nextech/practitioners?practiceId=51973950-bc3c-4516-abe9-97d788257dad&nextechNewVersion=false'
51973950-bc3c-4516-abe9-97d788257dad- Practice ID - This will be get through Nextech Partner Portal.
Note: If there are two practice IDs present for that business, one at location level and the other at group level, please pick the practice Id which is set up at location level.
false -Nextech Version- This value will be true if they are using the new Nextech practice plus.
Note: As of now, this practice plus support is not live on production, so please keep it false by default.
How to find the Locations associated with the practice Id?
Copy Curl Command:
curl --location --request GET 'https://common-services.Birdeye.com/nextech/locations?practiceId=51973950-bc3c-4516-abe9-97d788257dad&businessNumber=157744054261706&nextechNewVersion=false'
51973950-bc3c-4516-abe9-97d788257dad- Practice ID - This will be get through Nextech Partner Portal.
Note: If there are two practice Id present for that business, one at location level and the other at group level, please pick the practice Id which is set up at location level.
157744054261706- Business Number- Fill in the business number for which you want to check the location.
Note: Please fill in the business number 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.
false -Nextech Version- This value will be true if they are using the new Nextech practice plus.
Note: As of now, this practice plus support is not live on production, so please keep it false by default.
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 will be sent. If you do not specify the appointment type, then the review request will go for all appointments.
For a multi-location setup, you will need to provide the Nextech 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 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 the Kibana dashboard and if you find any issue while calling Nextech 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.
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 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 checked In contacts.
Nextech Campaign tags (additinal params) are:
Appointment. status, appointment. types, date of birth, appointment purpose, city, state, ethnicity, general practitioner, primary care physician, patient last updated, appointment comment, appointment description, patient type, exclude from mailings.
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 already checked in.
Possible restriction reasons for Nextech are:
‘Appointment status’ is not in the allowed list
‘Appointment type’ is not in the allowed list
‘Custom Appointment Status’ is not in the allowed list
Integration is beta
Description
The patient appointment status is different from those present in the allowed list of status.
The patient appointment type differs from those in the allowed list of types.
The custom appointment status 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 appointment type.‘Custom Appointment Status’ is not in the allowed list
Please look up for the key appointment.custom.status to know the value of custom appointment status.Integration is beta.
Please look up the key beta in kibana to know whether the integration is beta or not.configured locations do not exist in nextech
Please look up the key crm_locations in the integration error search to know the values of CRM locations.
NOTE : When any Nextech business purchases an appointment’s reminder/scheduling/recall, then businesses need to set status value as ‘No’ in cancellation reason preference through their Nextech UI.
Businesses can traverse to Tools -> Preferences -> Schedule Module -> Global -> Require a cancellation reason in their Nextech UI and set it as No.


























