*This integration is supported for both SMB & Enterprise businesses.
Integrating BirdEye with Cloud 9 Ortho
User Manual
Table of Contents
Introduction
Integration Requirements
Triggers Supported
Information & Request form from Business
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
Integration Mapping
Introduction
Cloud 9 Ortho is a full-featured orthodontic practice management software that offers features like imaging, electronic claims, electronic statements, auto pay/auto- post, and more. Integrating Cloud 9 Ortho with BirdEye will automate the process of sending out review requests to customers on a daily basis.
Once Cloud 9 Ortho is integrated with BirdEye, BirdEye will pull customer information from Cloud 9 Ortho. BirdEye collects the first name, last name, email address, and phone number of your customers and automatically sends them to review requests based on the preferences set within the BirdEye dashboard.
Integration Requirements:
Triggers supported
BirdEye allows you to fetch data from your CRM using a predefined trigger. Here is the supported trigger for Cloud 9 Ortho:
Trigger Name | Trigger Description |
Cloud 9 Dismissed Appointments Trigger | This trigger is used to fetch customer data based on dismissed appointments. |
Request for the Integration with Cloud9 Ortho
To initiate the integration, get this form filled by the business, then send it to: integrations@cloud9.software.
Once the business approves and signs the agreement, you will receive an email from Cloud9 with the Client ID for that business.
Details required from the BirdEye client
Trigger details
Cloud9 Client ID
Details required from the BirdEye dashboard
Business ID for single location SMB account
Information from BirdEye Dashboard
For single location SMB account - Business ID
Initial Steps (Only required for Enterprise setup)
In order to set up the integration with Cloud9, once you receive the client ID, you need to call the below API to fetch the correct location code:
Use the curl command to fetch the location code:
curl --location --request GET 'https://common-services.birdeye.com/commonservices/cloud9/locations?clientId=a030173a-c4a0-43e3-94c1-f1569d224b62&isAwsHosted=false'
Sample Response
[{"locationGuid": "43084447-b57d-4ad6-8fda-78fbccdba7a3","locationName": "S Corp Vallejo","locationCode": "4","locationCity": "Vallejo","locationState": "CA"},{"locationGuid": "d8d5a90d-228b-4ca8-b3c7-ee439afaeb9f","locationName": "S Corp Benicia","locationCode": "6","locationCity": "Benicia","locationState": "CA"}]The above highlighted locationCode field is the location code you need to set up the integration for this location. [You may match the business location name accordingly.]
Integration process
Before you can integrate Cloud 9 Ortho 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.
a) Create Integration Group (Curl Command)
Copy this Curl Command
curl -X PUT https://common-services.birdeye.com/integration/add/businessintegrationgroup -H 'content-type: application/json' -d '{ "parentBusinessNumber": 150051042499080, "integrationSourceId": 34, "integrationGroupProperties": [{"propertyKey": "ClientID","propertyValue": "608a32de-f0eb-4e3f-9ab1-bfff4a4b9da0","isSecure": true}, {"propertyKey": "is.aws.hosted","propertyValue": "false","isSecure": false}], "integrationGroupTriggers":[{"triggerId":57,"triggerTypeId":1,"actionIds":[1]}]}'150051042499080 - Business ID - This is Enterprise ID for multi-location account and Business ID for a single location SMB account
608a32de-f0eb-4e3f-9ab1-bfff4a4b9da0 - Cloud9 Client ID - This will be provided by the cloud9 team after the approval of authorisation request.
false - Is Client AWS hosted - Set this flag to true, if the client is AWS hosted.
57 - 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 Cloud9.
b) Fetch information for all the triggers available for Cloud 9 Ortho (Curl Command)
Copy this Curl Command
curl -X GET https://common-services.birdeye.com/integration/trigger/integrationtriggers/sourceid/34 -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.
[{"id": 57,"triggerService": "cloud9DismissedAppointmentsTriggerService","displayName": "Cloud 9 Dismissed Appointments Trigger","description": "This trigger is used to fetch customer data based on the dismissed appointments.","active": true,"integrationTriggerType": [{"id": 1,"name": "JOB"}],"actionGroupId": 1}]57 - Trigger ID
c) Find business integration group details (Curl Command)
Copy this Curl Command
curl -X GET https://common-services.birdeye.com/integration/businessintegrationgroup/150051042499080-H 'Cache-Control: no-cache'
150051042499080 - Business ID: Enter the Business ID here to get the integration group details for a business.
[{"groupId": 1595,"integrationSourceType": {"id": 34,"integrationSource": "CLOUD9","sourceCategory": "Dental","integrationType": "Birdeye API","oauthEnabled": false},"integrationGroupTriggers": [{"triggerId": 57,"triggerTypeId": 1,"actionIds": [1]}]}]1595 - Group ID: A group ID will be returned in the sample response with the details of the existing triggers for a business.
d) 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": 1595 ,"integrationGroupTriggers":[{"triggerId":57,"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
1595 - The Group ID that was returned in the previous step will be entered here.
57 - Enter the Trigger ID(s) that need to be added or updated to the integration.
Integration Mapping(For SMB business):
Once the Integration Group is created, the next step is to create the Integration Mapping.
Copy this Curl Command
curl -X PUT https://common-services.birdeye.com/integration/add/businessintegrationmapping -H 'content-type: application/json' -d '{"businessNumber": 150051042499080,"integrationGroupId" : 1595,"active": true}'150051042499080 - Business Number: Enter the Business number here
1595 - Integration Group ID: Enter the Integration Group ID which was returned when the Integration group was created.
Note: NextRunDate should be between 0500 - 1000 UTC, in case you enter a date that is out of this range, you will get an error pop-up message asking you to fill in the correct date range.
Integration Mapping (For Enterprise businesses):
Once the Integration Group is created, the next step is to create the Integration Mapping.
Copy this Curl Command
curl -X PUT https://common-services.birdeye.com/integration/add/businessintegrationmapping -H 'content-type: application/json' -d '{"businessNumber": 150051042499080,"integrationGroupId" : 1595 , "active": true, "integrationProperties": [{"propertyKey": "location.code","propertyValue": "4"}]}'150051042499080 - Business Number: Enter the Business number here
1595 - Integration Group ID: Enter the Integration Group ID which was returned when the Integration group was created.
4 - Location Code: Use this curl command to get the location code.
Note: NextRunDate should be between 03:00 - 10:00 UTC, in case you enter a date that is out of this range, you will get an error pop-up message asking you to fill in the correct date range.
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 Cloud 9 Ortho are:
‘Appointment status’ is not in the allowed list
Integration is beta
Description
Patient's appointment status is not 'Dismissed'. The only allowed status is 'Dismissed'. Check for field pms_appointment_status in bc-json-logs for the value present for the customer if needed more info.


