How does role management work from the perspective of the user management functionality of Veeva Align?
The Role Management feature of User Management is enabled in Veeva Align. In the event that Manage CRM Users is set to Manage CRM Users and Role Hierarchy. The purpose of this article is to explain the logic of Role Management as well as the Role Override sub-feature.
The Push to CRM process refers to the Push initiated from the Veeva CRM Org Level.
Scenario #1: Role Override (CRM Role) is not used on Roster Member records
This scenario means that the CRM Role field is not placed on the Roster Member Page Layout and is not populated.
- The Veeva Align Push to CRM option uses only Upsert Bulk API actions for every Role Management-related action. This includes new territory creations and Parent Territory adjustments in Veeva Align. All roles and parent roles are upserted from the side of Veeva Align into Veeva CRM.
In Salesforce, Role is the label, and User Role is the API name of this standard Salesforce object.
An upsert action updates any existing records, if the records do not exist, the Upsert action creates them.
- The Veeva Align Push to CRM does not delete User Roles even if the Territory is end-dated.
- The Veeva Align Push to CRM does not null out Parent Roles in Veeva CRM even if the Parent Territory is nulled out of a Territory in Veeva Align. All Territories, with the exception of the highest Territories in the hierarchy, require a current Parent Territory in Veeva Align and also in Veeva CRM.
- In the event the Parent Territory of a current Territory is end-dated in Veeva Align, the Parent Role is not updated due to the Push to CRM error:
territory__aln Failed to delete. Reason: DELETE_FAILED: Territory "x" is associated to active child territories.
This is an expected error, all Territories, with the exception of the highest ones, require a current Parent Territory in Veeva Align and also in Veeva CRM.
- Veeva Align does not use Integration Status 2 (IS2) records to track Role Upsert History, if a Role does not exist in CRM. Veeva Align tries to upsert it by the Push to CRM process. This is also applied to the case when the Role gets deleted in Veeva CRM. In the event, a Role is deleted in Veeva CRM, Align tries upserting it again.
In the event, the Roster Member record is assigned to multiple territories, the CRM Role field must be used. This leads to Scenario #2.
Scenario #2: Role Override (CRM Role) is used on Roster Member records
This scenario means that the CRM Role field is placed on the Roster Member Page Layout and is populated.
- In the event, the roster member record is assigned to a CRM Role, Veeva Align upserts that User Role for that particular User in Veeva CRM, regardless of which Territory (Only one Territory) the user is assigned to in Veeva Align. This is also applied in case the user is end-dated or inactivated in Veeva Align. An IsActive=False (Active Unchecked) user can have a role in Salesforce from a technical perspective.
- In the event, the Roster Member record is assigned to multiple territories, the CRM Role field must be populated with the External ID of a current (active) Territory or the DeveloperName of an existing UserRole in CRM, depending on what the requirement is. The Creating and Updating Roles in CRM Align help documentation explains both Role Management scenarios which are possible to configure:
- Mirroring Territory Hierarchy
- Not Mirroring Territory Hierarchy
The following error displays if the CRM Role field is not populated:
Roster Member is assigned to multiple Territories. The Roster Member crm_role__aln field needs to be populated with the externalId of an active territory or the DeveloperName of an existing UserRole in CRM
- In case the Roster Member record is not assigned to any territories, the Push to CRM process initiated from the Veeva CRM Org level manages the User record in CRM. All Users, including inactive ones require a CRM Profile in Salesforce. For this reason, the CRM Profile is required to be populated. Another option is to use a Functional Profile, however that requires a Territory assignment. The CRM Role is optional in this case.
- If the CRM Profile is populated on a Roster Member record whose CRM Role is null and is not assigned to any Territories, then the Push to CRM process nulls out the User Role field for the User in Veeva CRM. When the CRM Role field is populated appropriately based on Creating and Updating Roles in CRM The CRM Role is assigned to the user in Veeva CRM.
The following error is present as validation to avoid any of the misconfiguration scenarios:
Either crm_profile__aln must be specified or the Roster Member should be assigned to a Territory which has a related Functional Profile.
- Regarding Roster Member End Dates and Deactivations, it is recommended to review the following article first: How to Inactivate CRM User / Roster Member Records From the Perspective of the Veeva Align / Veeva CRM Integration and User Management if Enabled?
An IsActive=False (Active Unchecked) user can have a Role in Salesforce from a technical perspective. This means that if a Roster Member has the CRM Role field populated in Veeva Align, that Role value remains in Veeva CRM using the Push to CRM. This occurs even if the Roster Member record is end-dated (Roster Member End Date) or inactivated using the CRM user status field.
- Just as in Scenario #1, Veeva Align Veeva Align does not use Integration Status 2 (IS2) records to track CRM Role updates.
- A current Territory refers to a non-end dated Territory in Veeva Align, which exists in Veeva CRM (CRM is Deleted is false). Current Territories may be referred to as Active territories, however, the Active word is not to be confused with the status__v value of territories that must stay active__v.
- Roster Member records must not be inactivated by the status__v field either. They have to be inactivated by the CRM User Status field.
Align Help Documentation:
- How to Inactivate CRM User / Roster Member Records From the Perspective of the Veeva Align / Veeva CRM Integration and User Management if Enabled?
- What Is the Impact in Veeva Align and Veeva CRM if a Territory is End-Dated in Veeva Align?
- Why Soft-Deleted ObjectTerritory2Assocation (OT2A) Records Cannot be Retrieved and Restored in Salesforce (Veeva CRM)?
- Is it Required to Inactivate Veeva Align Territories Once they are End Dated and Their Deletion is Pushed out to Veeva CRM? Is the status__v Field Relevant on any Other Veeva Align Objects?