Salesforce CTI
Medical Information Cloud Inquiry Management has been designed to be compatible with the inherent Computer Telephony Integration (CTI) integration capabilities of the Salesforce platform by leveraging a custom Visualforce page that is invoked when a user initiates the creation of a new Interaction.
This custom page performs a couple of key functionalities, namely:
Create and save a new Interaction.
Navigate the user to the edit interface for the newly created Interaction.
Unpack any received parameters to initiate an automated account search such that the user can relate the new Interaction to an HCP or Organization.
This same page can be accessed programmatically to handle the creation of new Interactions and initiate an automated Account search to expedite the association of related Accounts. This can be extremely helpful in cases such where a Computer Telephony Integration (CTI) solution is used in conjunction with Medical Information Cloud Inquiry Management as the system can initiate an account search on behalf of the user, reducing the amount of time required to capture key information.
Configuring the CTI application
To configure the CTI application to open the url '/apex/MED_NewCase', use the following URL parameters.
<ANI>
<ANI> is a configurable parameter for accepting the phone number to search. You can configure this parameter in the Global_Setting.New Case Phone Param and gets stamped to Case.MED_ANI and used for the phone search
uiVersion
The uiVersion controls the account search UI that is opened, Options are `v2`,`v3`.
accountID
To configure, set to the Salesforce ID of an Account record in MIC. This will automatically set the account on the created case as well as set the case country to match that of the Account.
searchParams
This parameter pre-populates search parameters in the automatically opened and executed search. JSON or & delimited. Keys are:
MED_Country__c, MED_Phone__c (all versions)
Field Name (v2 ui)
<Object>.<Field>.<RecordType>, (v3 UI)
caseFields
Key value of fields and value to set on the case that is created.
Specifying compound parameters
The caseFields and searchParams fields contain multiple key/value pairs that can be specified in one of the two ways shown below.
JSON `
{key1:value1,key2:value2}
`&delimited `
key1=value1&key2=value2
`
Note
After formatting, the entire string should be URL encoded before adding it to the URL parameter.
Phone search
The automated account phone search leverages URL query string parameters to dictate to Medical Information Cloud Inquiry Management the values to be leveraged in an automated search. To enable and leverage the automated account phone search feature, perform the following administrative tasks:
Note
Providing a country is required. Examples showing how to incorporate a country into the URL are provided in step 2 below for both Account Search V2 and Account Search V3.
Determine the name of the URL parameter being used by your CTI solution or applicable integration(s) to pass the phone number value that is to be leveraged for the automated search. If able, use the out-of-the-box parameter name of ‘ani’. If unable to use the out-of-the-box field, a custom parameter name can be used instead by navigating to the Global Setting (
MED_Global_Setting__mdt
) custom metadata type to edit the available record and enter the name of the query string parameter in the ‘New Case Phone Param’ field. Values entered are case-sensitive and are stamped toMED_ANI__c
on the case.Configure the CTI application (or other integrations if applicable) such that the user is navigated to the following URL:
/apex/MED_NewCase?<parameter name from step 1>=XXXXXXXXX
where XXXXXXXXX is the phone number to be searched. Any format of phone number value can be received as long as it has been URL encoded.Example for customers using Account Search V2: If leveraging the out-of-the-box field and an inbound phone value of +19999999999 the appropriate URL would be:
/apex/MED_NewCase?ANI=555-666-7777&searchParams=MED_Country__c%3DUSapex/MED_NewCase?ani=%2B19999999999
Example for customers using Account Search V3: /apex/MED_NewCase?ANI=555-666-7777&searchParams=%7B%22MED_Contact_Information_c.MED_Country_c.MED_Address%22%3A%22US%22%7D
The main difference between the two examples is the format of the search parameters. In other words, instead the URL encoded field=value, it is URL encoded JSON (e.g., {"<object:Account|MED_Contact_Information__c>field> <RecordTypeDeveloperName>":"<value>"}).
Extended attribute search
In addition to the phone number, any search field exposed on the Account Search user interface can be referenced and leveraged in the automated search, through the use of the additional query string parameter searchParams
. For more sophisticated CTI solutions and integrations this can be a way to further reduce the amount of time and effort required to lookup records within the console.
To take advantage of extended attribute search pass, a URL encoded string of key=value
pairs as the value for the searchParams
query string parameter. For example, to include a search based on the postal code of the inbound caller in addition to the phone number the configured URL would look like: /apex/MED_NewCase?searchParams=MED_Phone__c%3D%252B19999999999%26MED_Postal_Code__c%3D60606
Further, you can control which Account Search UI is opened by adding the setUIVersion to v2 or v3 URL parameter to the MED_NewCase page.
Extended attributes
Additional fields on case and additional search fields can be set using the `caseFields` and `searchParams` parameters respectively. These take URL encoded key/value pares that can be specified in either of two ways:
JSON `{key1:value1,key2:value2}`
& delimited `key1=value1&key2=value2`
Build the JSON or & delimited string then URL encode the entire string and set it to the appropriate value. For caseFields, the key is simply the field API name of the case field. For search params, the keys MED_Country__c
and MED_Phone__c
are always accepted. Other fields the key differs depending if you are using Account Search v2 or v3. For v2, the key is simply the field API name of the search field. For v3, the key is more precise and is the format <Object>.<Field>.<RecordType> for fields on account,the record type is optional. Example: `caseFields=MED_External_Idc%3DExt123%26MED_ANI__c=%35555`
Considerations
While technically feasible to pass the phone number in both the ani and searchParams values it is recommended to only pass the value in one spot.
Ensure the fields that are referenced within the Phone and Extended Attribute Search are exposed on the Account Search interface.
It is assumed that these links will be accessed by users who are operating within the console.