Skip to main content

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

  1. A Medical Information Cloud user (or an automated inbound form process) initiates an account search with one or more filters.
  2. The connector builds a Vault Query Language (VQL) query from the search criteria and the configured field mappings.
  3. The query runs against the Vault CRM instance using the cached authenticated session.
  4. 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__v
  • account__v
  • affiliation__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.

  1. 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.
  2. 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.
  3. On the Named Credentials tab, click New and enter:

    • Label - Vault CRM <INSTANCE>.
    • Name - Vault_CRM_<INSTANCE>. This value is referenced by MED_MDM_Connection__mdt.MED_MDM_Named_Credentials__c and by KLAB_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.
note

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
note

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 its MED_Salesforce_Value__c to 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.

note

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".