Account Search
The Account Search capability lets Medical Information Cloud users search for and retrieve Account data from an external Veeva Vault CRM instance. It supports both Person accounts (Healthcare Professionals) and Institution accounts (Healthcare Organizations), and runs live searches against Vault CRM through the standard Medical Information Cloud account search interface.
How it works
- A Medical Information Cloud user (or an automated inbound form process) initiates an account search with one or more filters.
- The connector builds a Vault Query Language (VQL) query from the search criteria and the configured field mappings.
- The query runs against the Vault CRM instance using the cached authenticated session.
- Vault CRM returns matching records, which the connector transforms into standard Medical Information Cloud Account and Contact Information records before presenting them for selection.
Configuration
Account Search uses the Medical Information Cloud Master Data Management (MDM) configuration to determine which Vault CRM instance to query, which Vault fields map to the Account and Contact Information objects, and which value transformations to apply.
Vault CRM integration user
Searches run as a dedicated Vault CRM integration user. That user must have read access to the following Vault CRM objects:
address__vaccount__vaffiliation__v
External Credential and Named Credential
For each Vault CRM instance, create an External Credential, a Principal, and a Named Credential under Setup → Security → Named Credentials. The connector reads the username and password from the External Credential principal to obtain a Vault session.
-
On the External Credentials tab, click New and enter:
- Label -
Vault CRM <INSTANCE>(for example,Vault CRM US). - Name -
Vault_CRM_<INSTANCE>(for example,Vault_CRM_US). - Authentication Protocol -
Basic Authentication.
- Label -
-
In the Principals section of the new External Credential, click New and enter:
- Parameter Name - for example,
Vault CRM US User. - Sequence Number -
1. - Identity Type -
Named Principal. - Username and Password - the credentials of the Vault CRM integration user.
- Parameter Name - for example,
-
On the Named Credentials tab, click New and enter:
- Label -
Vault CRM <INSTANCE>. - Name -
Vault_CRM_<INSTANCE>. This value is referenced byMED_MDM_Connection__mdt.MED_MDM_Named_Credentials__cand byKLAB_VaultCRM_Org__mdt.KLAB_Named_Credential__c. - URL - the Vault CRM instance URL (for example,
https://myvault.veevavault.com). - External Credential - the External Credential created above.
- Allowed Namespaces -
mvn. - Allow Formulas in HTTP Body - checked.
- Label -
In connector versions 2.3 and earlier this integration used a Legacy Named Credential. Starting with version 2.4, Legacy Named Credentials are no longer supported and the External Credential plus Named Credential setup above is required. When upgrading from 2.3 or earlier, replace the existing Legacy Named Credential with the new structure and keep the same Name so that existing metadata references continue to resolve.
Grant access to Medical Information Cloud agents
The External Credential principal must be granted to the users who run
account searches. Either reuse an existing permission set assigned to those
users or create a new one (for example, Vault CRM Connector Access), then
add an External Credential Principal Access entry for each Vault CRM
principal. Without this access, callouts fail with an authentication error.
Add the source picklist value
Add Vault CRM as an allowed value of the MED_Source__c restricted
picklist for the record types used by the connector:
- Account
- MED_Contact_Information__c
- MED_Affiliation__c
If Vault CRM is missing from the picklist, the connector's account upsert
fails with the error bad value for restricted picklist field: Vault CRM.
Map fields and values
Account Search reuses the standard Medical Information Cloud MDM custom metadata types. Configure them as follows:
MED_MDM_Connection__mdt- register the Vault CRM connection and point it at the Named Credential created above.MED_MDM_Field_Mapping__mdt- map each Vault CRM field to the Account or Contact Information field that should receive it.MED_MDM_Value_Mapping__mdt- translate Vault CRM values (for example country and state codes, or record-type values) into the equivalent Medical Information Cloud values.
The connector ships a default set of mappings that you can modify or extend. For field descriptions, see Master Data Management.
Handle unmapped values
When transforming a Vault CRM result, the connector resolves each value
through MED_MDM_Value_Mapping__mdt. If no row matches the value returned by
Vault, the connector performs a second lookup using the sentinel value
<unknown> (including the angle brackets) in MED_MDM_Value__c:
- If an inbound
<unknown>row exists for that field mapping, the connector applies itsMED_Salesforce_Value__cto the Medical Information Cloud field and records a warning so operators know the value was not mapped explicitly. - If no
<unknown>row exists, the raw Vault value is used as-is and no warning is raised.
To control the default for unexpected Vault values, add a dedicated
<unknown> value-mapping row per field - for example a safe picklist value
or an "unmapped" sentinel - while still surfacing the warning.
You can set MED_Salesforce_Value__c to the literal string null. After
value mapping, Account Search converts that string into an empty value on the
Medical Information Cloud record, so an optional text field can be cleared
when a specific Vault code should mean "no value".