Skip to main content

BirdEye Native Integration - Allscripts

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 Allscripts
User Manual - SUPPORT ARTICLE

Allscripts is an Electronic Health Records (EHR) system used by small-to-midsize physician practices. Allscripts allows the users to manage appointments, e-prescriptions, patient portals, and clinical charts. Integrating Allscripts with Birdeye will automate the process of sending out review requests on a daily basis.

Table of Contents

Integration Requirements

Triggers supported

Birdeye allows you to fetch data from your CRM using a predefined trigger. Here is the supported trigger for Allscripts:

Trigger Display Name

Trigger Name/Value

Trigger Description

Allscripts Appointment Trigger

Appointment

This trigger is used to fetch appointments from Allscripts based upon the date specified.

Permissions on actions

To successfully set up the integration, the client needs to ensure that Birdeye has access to the following actions: GetPatientDemographics, GetSchedule, GetServerInfo, GetUserAuthentication, and LastLogs.

Information from Birdeye Dashboard

  1. For an 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 account - 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.

Client Activation Process

To raise a request for access to a client’s PMS, use the credentials detailed below:

On the new screen, click on the ‘Request Client Activation’ button under the ‘Activations’ section.

Now, enter all the relevant details provided by the client on the setup call. Once all the details have been entered, click on the ‘Save’ button to finish the process.

NOTE: When the activation request is successfully completed, a confirmation email will be sent to integrations-support@Birdeye.com. If you are not a part of this email group, you need to get yourself added to it in order to access the confirmation email.

Check the current status of the activation request.

Log in to the portal using the credentials mentioned in the ‘Client Activation Process’. Then click on the ‘Usage Dashboard’ button under the ‘API Usage’ section.

Then click on the ‘View Report’ button under the ‘Client Activations’ section.

On the next screen, you can view the current status of the activation request.

Integration Process

Before you can integrate Allscripts with Birdeye, you will need to set up the following configurations on the integrations 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 for all locations under a CRM.

  1. PM Password: This is the field name for the password that will be provided by the Allscripts support. Please note that the password needs to be updated every 90 days.

  2. Service User Name: This is the field name for the Service User Name that will be provided by the Allscripts support.

  3. Data Fetch Logic: This drop-down field decides which location-level property becomes the primary property. The property selected here becomes the main property and it is mandatory to specify this field at location level.

  4. PMS User Name: This is the field name for the PMS UserName that will be provided by the Allscripts support.

  5. Appointment Status: The status for which the client wants to send a review request.

  6. Appointment Type: The type for which the client wants to send a review request.

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 drop down and click on ‘Add.’
(In 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 changes if required.

  1. Status: It shows the status of integration (Active or inactive).

  2. Frequency: It is the number of times integration will sync with CRM (Days or Hours).

  3. Next RunTime: It is the next scheduled time when the integrations will run.

  4. Location Name: Enter the location name provided by the business

  5. Customer fetch delay: It is used if businesses want to send review requests with a delay (number of days). You can set a delay or leave it blank

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

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

Note: For SMB and Enterprise you can use ‘manage the locations’ using this curl command.

Curl Commands

Create Integration Group (Curl Command)

Copy this 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":149547879572938,"integrationGroupProperties":[{"propertyKey":"User_Name","propertyValue":"10220c34e:0010220^1^","isSecure":true},{"propertyKey":"PM_Password","propertyValue":"F5trgFre5","isSecure":true},{"propertyKey":"pms_user_name","propertyValue":"Birdeye","isSecure":false},{"propertyKey":"allscripts.appointment.type","propertyValue":"WELLBAB1","isSecure":false},{"propertyKey":"allscripts.appointment.status","propertyValue":"Acknowledge","isSecure":false}],"integrationSourceId":32,"integrationGroupTriggers":[{"triggerId":56,"triggerTypeId":1}]} '
  • 10220c34e:0010220^1^ - User_Name - This will be shared by Allscripts via Secure email. ServiceUser can be found in two different formats.

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

  • F5trgFre5 - PM_Password - This will be shared by Allscript during the initial setup

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

  • Birdeye - Pms_user_name - This will be shared by Allscripts during the initial setup

  • WELLBAB1 ALL_SCRIPTS_APPOINTMENT_TYPES -This will be shared by Allscripts during the initial setup

  • Acknowledge- ALL_SCRIPTS_APPOINTMENT_STATUS - This will be shared by Allscripts during the initial setup

NOTE: We will get the group ID once we run the first curl (Integration Group) and make a note of group ID as that will required while we will be doing the integration mapping.

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

Copy this Curl Command

curl -X GET https://common-services.Birdeye.com/integration/trigger/integrationtriggers/sourceid/32 -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": 56,"triggerService": "allscriptsAppointmentTriggerService","displayName": "Allscripts Appointment Trigger","description": "This trigger is used to fetch appointments from Allscripts based upon the date specified","active": true,"integrationTriggerType": [{"id": 1,"name": "JOB"}],"actionGroupId": 1}]56- Trigger ID

Find business integration group details (Curl Command)

Copy this Curl Command

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

Sample Response:

[{"groupId": 1314,"integrationSourceType": {"id": 32,"integrationSource": "ALLSCRIPTS","sourceCategory": "Healthcare","integrationType": "Birdeye API","oauthEnabled": false},"integrationGroupTriggers": [{"triggerId": 56,"triggerTypeId": 1,"actionIds": [1]}]}]
  • 1314 - 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 a 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": 1314,"integrationGroupTriggers":[{"triggerId":56,"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

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

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

Integration Mapping Single Location

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 'Accept: application/json' -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{ "businessNumber": 149547899859217,"integrationGroupId" : 1314, "active": true} '
  • 149547899859217 - Business Number: Enter the Business number here

  • 1314 - Integration Group ID: Enter the Integration Group ID which was returned when the Integration group was created.

Integration Mapping Multi-Location

Copy this Curl Command

curl -X PUT https://common-services.Birdeye.com/integration/add/businessintegrationmapping -H 'Accept: application/json' -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{ "businessNumber": 149547899859217,"integrationGroupId" : 1314, "active": true,"integrationProperties": [{"propertyKey" : "allscripts.location.name","propertyValue": "Loudoun Office","isSecure":false}]}'
  • 149547899859217 - Business Number: Enter the business number here.

  • 1314 - Integration Group ID: Enter the Integration Group ID which was returned when the Integration group was created.

  • Loudoun Office - Location Name: The Location Name will be shared by customer in the initial setup call.

NOTE: Location Name is mandatory in case of multilocation.

Know About Appointment Status & Appointment Types(Optional)

NOTE: Get User Details from Email

The ServiceUser displayed here represents “ubiquity_id”.
The username and password here, represent “Pms_user_name” and “PM_Password”. 3

These details will be shared by Allscripts team to allscripts@Birdeye.com under the file named “message.html”.

Configuring Group property details

NOTE: ServiceUser displayed here “10220c34e:0010220^1^” is a combination of three values: (i) ubiquity_id: 10220c34e (ii) client_id: 0010220 (iii) tenent_id: 1

These values will be used to create group properties.

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.

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 Allscripts are:

  1. ‘Appointment status’ is not in the allowed list

  2. ‘Appointment type’ is not in the allowed list

  3. ‘Location name’ is not in the allowed list

  4. Integration is beta

Troubleshooting steps:

  1. Check for pms_appointment_status in bc-json-logs for the value present for the customer.

  2. Check for pms_appointment_type in bc-json-logs for the value present for the customer.

  3. Check for pms_appointment_practice_name in bc-json-logs for the value present for the customer.

  4. The Integration Source is not Live and is in the Pre-Launch phase.

Did this answer your question?