*This integration is supported for both SMB & Enterprise businesses.
Integrating BirdEye with Carestream Dental
User Manual
*SUPPORT ARTICLE
Table of Contents
Introduction
Integration Requirements
Triggers Supported
Information required from the business
Information from BirdEye dashboard
Initial Steps
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
Integration Mapping (SMB Businesses)
Integration Mapping (Enterprise Businesses)
Introduction
Carestream Dental is a practice management solution and imaging equipment provider for oral health professionals and dentists. Integrating Carestream Dental with BirdEye will automate the process of sending out review requests to patients on a daily basis.
Integration Requirements
Triggers Supported
BirdEye allows you to fetch data from your PMS using a predefined trigger. Here is the supported trigger for Carestream Dental:
Trigger Name | Trigger Description |
Carestream Dental Trigger | This trigger is used to fetch customer data based on the practice provider mapping and appointment status. |
Details required from the client
Trigger details
Appointment Status (Should be provided by the client exactly as it is, during the initial setup, if it needs to be filtered under ‘Appointment Status’.)
Practice/Provider ID (For more information, refer to this document.)
Customer ID
Email
Enterprise ID
Details required from the BirdEye dashboard
API Key
Enterprise ID for multi-location account
Business ID for single location account
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
Initial Steps
In order to set up the integration with Carestream Dental, the BirdEye support needs to make an API call with the customer ID and email which will then trigger an email to the customer to approve and accept the terms and conditions. Once that is done, you will receive notification that the customer is ready to go. For on-premise clients, an email will also be sent with a link to install the data extractors locally.
Integration Process
Before you can integrate Carestream Dental with BirdEye, you will need to set up the 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 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.
a) Create Integration Group (Curl Command)
Copy Curl Command
curl --location --request PUT 'https://common-services.birdeye.com/integration/add/businessintegrationgroup' \--header 'Content-Type: application/json' \--data-raw '{"integrationGroupProperties": [{"propertyKey": "csd_enterprise_id","propertyValue": "843fcc50-d1da-e911-bccf-501ac53cb1ec"}],"integrationGroupTriggers": [{"actionIds": [1],"triggerId": 78,"triggerTypeId": 1}],"integrationSourceId": 55,"parentBusinessNumber": 144927995741719}'144927995741719 - Business ID - This is Enterprise ID for multi-location account and Business ID for a single location SMB account
78 - Integration Trigger ID - There is only one possible trigger for Carestream Dental.
843fcc50-d1da-e911-bccf-501ac53cb1ec - CSD Enterprise ID - This will be provided by the client during the initial set up call.
b) Fetch information for all the triggers available for Carestream Dental (Curl Command)
Copy Curl Command
curl -X GET https://common-services.birdeye.com/integration/trigger/integrationtriggers/sourceid/55 -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": 78,"triggerService": "carestreamDentalTriggerService","displayName": "Carestream Dental Trigger","description": "This trigger is used to fetch customer data based on the practice provider mapping and appointment status.","active": true,"integrationTriggerType": {"id": 1,"name": "JOB"},"caseCreationTriggerType": {"id": 1,"name": "JOB"},"actionGroupId": 1,"sourceIdsList": [55],"triggerName": "Appointment"}]78 - Trigger ID - Only one Trigger ID is available for Carestream Dental integration.
c) Find business integration group details (Curl Command)
Copy Curl Command
curl -X GET https://common-services.birdeye.com/integration/businessintegrationgroup/144927995741719 -H 'Cache-Control: no-cache'[{"groupId": 13162,"integrationSourceType": {"id": 55,"integrationSource": "CARESTREAMDENTAL","sourceCategory": "Dental","integrationType": "Birdeye API","integrationPlan": "Basic","oauthEnabled": false},"integrationGroupTriggers": [{"triggerId": 78,"triggerTypeId": 1,"actionIds": [1]}]}]144927995741719 - Business ID: Enter the Business ID here to get the integration group details for a business.
13162 - Group ID: A group ID will be returned in the sample response with the details of the existing triggers for a business.
d) Trigger Information: Only required if client wants a change (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": 13162,"integrationGroupTriggers":[{"triggerId":78,"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.
13162 - Group ID: The Group ID which was returned in the previous step will be entered here.
78 - Trigger ID: Enter the Trigger ID (s) which need to be added or updated to the integration.
2. Integration Mapping (SMB Businesses)
Once the Integration Group is created, the next step is to create the Integration Mapping.
Copy the curl command
curl --location --request PUT 'http://localhost:9090/integration/add/businessintegrationmapping' \--header 'content-type: application/json' \--header 'Content-Type: text/plain' \--data-raw '{"businessNumber":144927995741719,"integrationGroupId":13162,"integrationProperties": [{"propertyKey": "practice_provider_mapping","propertyValue": "[{practiceId:8f0cb8c7-4e71-e711-80c2-000d3a1159d8,providerId:Bc8f1f300-160a-ea11-828b-501ac53c5526},{providerId:a8f1f300-160a-ea11-828-501ac53c5526}]"},{"propertyKey": "appointment_status","propertyValue": "Checked In,Cancelled"}]}'144927995741719 - Business ID: Enter the Business ID for the SMB Business.
13162 - Group ID: Enter the Group ID which was returned when the Integration group was created.
8f0cb8c7-4e71-e711-80c2-000d3a1159d8 - Practice ID - If the client wants the appointments on the basis of Practice ID, it should be provided in practice_provider_mapping as mentioned above. You have the ability to add multiple comma separated values.
Bc8f1f300-160a-ea11-828b-501ac53c5526 - Provider ID - If the client wants the appointments on the basis of Provider ID, it should be provided in the practice_provider_mapping as mentioned above. You have the ability to add multiple comma separated values.
Checked In,Cancelled - Appointment Status - To be provided by the client.
Note: This is a mandatory requirement, if multiple statuses are provided, they should be comma separated.
3. Integration Mapping (Without Practice/Provider Mapping)
Copy the curl command
curl --location --request PUT 'https://common-services.birdeye.com/integration/add/businessintegrationmapping' \--header 'content-type: application/json' \--header 'Content-Type: text/plain' \--data-raw '{"businessNumber":144927995741719,"integrationGroupId":13162,"integrationProperties": [{"propertyKey": "appointment_status","propertyValue": "Checked In,Cancelled"}]}'144927995741719 - Business ID: Enter the Business ID for the SMB Business.
13162 - Group ID: Enter the Group ID which was returned when the Integration group was created.
Checked In,Cancelled - Appointment Status - To be provided by the client. NOTE: This is a mandatory requirement, if multiple statuses are provided, they should be comma separated.
4. Integration Mapping (Enterprise Businesses)
Copy the Curl Command
curl --location --request PUT 'https://common-services.birdeye.com/integration/add/businessintegrationmapping' \--header 'content-type: application/json' \--header 'Content-Type: text/plain' \--data-raw '{"businessNumber": 152347033682163,"integrationGroupId": 13162,"integrationProperties": [{"propertyKey": "practice_provider_mapping""propertyValue": "[{practiceId:8f0cb8c7-4e71-e711-80c2-000d3a1159d8,providerId:Bc8f1f300-160a-ea11-828b-501ac53c5526}]"},{"propertyKey": "appointment_status","propertyValue": "Checked In,Cancelled"}]}'152347033682163 - Business ID: Enter the Business ID for each location here. If you have 10 locations, the Business ID will have to be replaced 10 times.
13162 - Group ID: Enter the Group ID which was returned when the Integration group was created.
8f0cb8c7-4e71-e711-80c2-000d3a1159d8 - Practice ID - If the client wants the appointments on the basis of Practice ID, it should be provided in practice_provider_mapping as mentioned above.
Bc8f1f300-160a-ea11-828b-501ac53c5526 - Provider ID - If the client wants the appointments on the basis of Provider ID, it should be provided in the practice_provider_mapping as mentioned above.
Checked In,Cancelled - Appointment Status - To be provided by the client. NOTE: This is a mandatory requirement, if multiple statuses are provided, they should be comma separated.
5. Integration Mapping (Enterprise Businesses without Practice/Provider Mapping)
Copy the Curl Command
curl --location --request PUT 'https://common-services.birdeye.com/integration/add/businessintegrationmapping' \--header 'content-type: application/json' \--header 'Content-Type: text/plain' \--data-raw '{"businessNumber": 152347033682163,"integrationGroupId": 13162,"integrationProperties": [{"propertyKey": "appointment_status","propertyValue": "Checked In,Cancelled"}]}'152347033682163 - Business ID: Enter the Business ID for each location here. If you have 10 locations, the Business ID will have to be replaced 10 times.
13162 - Group ID: Enter the Group ID which was returned when the Integration group was created.
Checked In,Cancelled - Appointment Status - To be provided by the client.
NOTE: This is a mandatory requirement, if multiple statuses are provided, they should be comma separated.
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 Carestream Dental are:
‘Appointment status’ 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 integration setup is currently set to beta.




