Integrating My Schedule and Microsoft Outlook Calendars

  • Browser
  • iPad

To make scheduling more efficient for users, admins can integrate My Schedule and Microsoft Outlook calendars into one view, enabling users to view all their appointments in one place. Users can view My Schedule entries in their Microsoft Outlook calendar, or vice versa.

The integration is bi-directional. It is not possible to configure the integration for only one direction—for example, you cannot configure the integration to pull events from Microsoft Outlook but not push Veeva CRM entries to Microsoft Outlook. The integration only applies to the Microsoft Outlook calendar. My Schedule does not sync with the Microsoft Teams calendar.

Who Can Use This Feature?

  • Platforms – Browser, iPad
  • Licensing – Available to users with Engage licenses. Users do not need to be assigned to Engage groups.
  • Users – End Users

Configuration for Integrating My Schedule and Microsoft Outlook Calendars

Granting Veeva Consent in the Azure Tenant as a Microsoft Global Administrator

Before enabling this functionality for all users, Microsoft Global Administrators must grant tenant wide consent to the Veeva App in the Azure tenant from the Veeva-hosted webpage.

This allows the app to do the following:

  • Create, read, update and delete events in all calendars the user has permission to access. This includes delegate and shared calendars.
  • Read users’ primary email addresses
  • See and update the data you gave it access to, even when users are not currently using the app
  • Read and create online meetings on behalf of the signed-in user. Required for Scheduling and Starting Microsoft Teams Meetings.
  • Read online meeting artifacts on behalf of the signed-in user. Required for Scheduling and Starting Microsoft Teams Meetings.
  • See basic user profile information when the user signs in with their work or another account
  • Read the full set of profile properties, reports, and managers of other users in the organization, on behalf of the signed-in user

Ensure the Veeva CRM Graph API integration is granted the following permissions:

Multiple Veeva CRM orgs can connect to the same Microsoft tenant.

Granting tenant wide consent enables Veeva CRM to request information through the Microsoft Graph API, but it does not provide access to Microsoft Office 365 information. Information about users' Microsoft Outlook or Microsoft Teams accounts is only gathered after the individual user authenticates their Microsoft credentials from Veeva CRM. The Veeva CRM Microsoft Integration uses Microsoft's best practices for authorization (authZ), authentication (OpenId Connect over OAuth 2), data in transit (HTTPS and TLS 1.2+ encryption) and data at rest. Only Microsoft has access to user credentials.

For more control over the integration from the Microsoft side, admins can assign the application to specific users or groups of users, instead of granting access to all users. For more information on assigning applications to Microsoft groups, see Microsoft's Manage users and groups assignment documentation.

Configuring the Microsoft Outlook Integration in Veeva CRM

To enable this functionality:

  1. Assign Engage licenses to all users who should have access to this functionality. Users do not need to be assigned to Engage groups.

  2. Ensure Configuring Call Planning is complete.

  3. Ensure Lightning for My Schedule is enabled for users on the Browser platform.

  4. Ensure users have access to Microsoft Outlook.

  5. Grant admins and end users the following permissions:

    To quickly grant users permissions for this feature, use the MS_GRAPH_API_USER_vod permission set. For more information, see Configuring Microsoft Integrations with the Microsoft Graph API Permission Set.

    Object

    OLS

    Record Types

    Fields

    FLS

    Account

    R

    n/a

    • Formatted_Name_vod
    Read

    Call2_vod

    R

    n/a

    • Account_vod
    • Call_DateTime_vod (optional)
    • Call_Date_vod
    • Duration_vod (optional)
    • Call_Channel_vod
    • Parent_Call_vod

    Read

    External_Calendar_vod

    CRUD

    Microsoft_Outlook_vod

    Required:

    • External_Calendar_ID_vod
    • Is_Default_Calendar_vod
    • Title_vod

    *Optional:

    • Allowed_Online_Meeting_Providers_vod
    • Default_Online_Meeting_Provider_vod
    • Can_Edit_vod
    • Can_Share_vod
    • Can_View_Private_Items_vod
    • Change_Key_vod
    • Color_vod
    • Hex_Color_vod
    • Is_Removable_vod
    • Is_Tallying_Responses_vod
    • Owner_Name_and_Address_vod

    Edit

    External_Calendar_Event_vod

    CRUD

    Microsoft_Outlook_vod

    Required:

    • End_Datetime_vod

    • End_TimeZone_vod

    • Event_Created_Datetime_vod

    • Event_Last_Modified_Datetime_vod

    • External_Calendar_Event_ID_vod

    • Is_All_Day_vod

    • Original_End_TimeZone_vod

    • Original_Start_TimeZone_vod

    • Sensitivity_vod

    • Series_Master_ID_vod

    • Start_Datetime_vod

    • Start_TimeZone_vod

    *Optional:

    • Allow_New_Time_Proposals_vod

    • Attendees_vod

    • Body_Content_Type_vod

    • Body_Preview_vod

    • Categories_vod

    • Change_Key_vod

    • Description_vod

    • Has_Attachments_vod

    • Hide_Attendees_vod

    • iCalUID_vod

    • Importance_vod

    • Is_Cancelled_vod

    • Is_Draft_vod

    • Is_Organizer_vod

    • Is_MS_Teams_Meeting_vod

    • Is_Reminder_On_vod

    • Locations_vod

    • MS_Teams_Join_URL_vod

    • Online_Meeting_Provider_vod

    • Organizer_Name_and_Email_Address_vod

    • Recurrence_vod

    • Reminder_Minutes_Before_Start_vod

    • Response_Requested_vod

    • Show_As_vod

    • Title_vod

    Edit
    User n/a n/a
    • Enable_MS_Outlook_Calendar_vod

    • MS_Graph_API_Authorized_vod

    • MS_Outlook_Last_Pull_Activity_vod

    • MS_Outlook_Last_Push_Activity_vod

    Edit

    *To control which information from a Microsoft Outlook entry is pulled in to Veeva CRM, admins can remove users’ FLS permissions for fields which are not required for the integration. Changes to FLS permissions only apply for future entries. After a user’s FLS permission for a field is removed, the data from that field continues to display on previously synced Microsoft Outlook entries in Veeva CRM, until they are updated and resynced.

  6. Ensure admins and end users have the following permissions, if Medical Events are enabled:

    Object

    OLS

    Record Types

    Fields

    FLS

    Medical_Event_vod

    R

    n/a

    • Start_Date_vod
    • End_Date_vod
    • Start_Time_vod
    • End_Time_vod

    Read

  7. Ensure admins and end users have at least Read FLS to the IsAllDayEvent field on the Event object, if Events Management is enabled.
  8. Enable VMOCs for the following objects:
  • External_Calendar_vod
  • External_Calendar_Event_vod

Assigning Users to the Integration

To make the integration available to users:

  1. Edit the policies for the Veeva Microsoft Graph API Integration Connected App:
  • Navigate to the App Manager in Salesforce Setup

  • Select Manage for the Veeva Microsoft Graph API Integration App
  • Select Edit Policies

  • In the OAuth Policies section, select Admin approved users are pre-authorized from the Permitted Users picklist
  • Select Save

  • Select OK to confirm the change

  1. Select Manage Profiles or Manage Permission Sets and assign the Veeva Microsoft Graph API Integration Connected App to the appropriate profiles or permission sets.
  2. Select the Enable_MS_Outlook_Calendar_vod check box on the User record for each user who should have access to the feature.

    To deactivate the Microsoft Outlook integration for an individual user, deselect the Enable_MS_Outlook_Calendar_vod check box on the appropriate User record. The integration ends and events are not shared between the calendars. Previously created External_Calendar_vod and External_Calendar_Event_vod records are not automatically removed from Veeva CRM. Admins must delete or archive those records. If Unavailable_Time_vod records are associated with the user's external calendar events, the Unavailable_Time_vod records must be deleted first.

Reactivating Users’ Microsoft Outlook Integrations

To reactivate the Microsoft Outlook integration for a deactivated user:

  1. Delete or archive the user’s existing External_Calendar_vod and External_Calendar_Event_vod records.

    If Unavailable_Time_vod records are associated with the user's external calendar events, the Unavailable_Time_vod records must be deleted first.

  2. Ensure configuration is complete for Integrating My Schedule and Microsoft Outlook Calendars.
  3. Select the Enable_MS_Outlook_Calendar_vod check box on the appropriate User record.

After users are reactivated, it may take up to an hour for them to view Veeva CRM calendars in Microsoft Outlook.

Testing the Microsoft Outlook Integration

For Sandbox testing, connect the Sandbox org with a test Microsoft Outlook account. Within an org, each Microsoft Outlook account can only be connected to one user, and vice versa. The same Microsoft Outlook account cannot be used for multiple users.

Using multiple Microsoft accounts for the same Salesforce user is not supported. This means once a Salesforce user is authenticated with one Microsoft account, the same user cannot be re-authenticated with a different Microsoft account. To re-authenticate the user with a different Microsoft account, admins must contact Veeva.

If authentication errors occur, check your organization’s IT logs and policies, and contact Veeva.

Enabling SSO with Microsoft Intune

If required by the organization's IT policies, admins can use Microsoft Intune to enable Apple single sign-on (SSO) for Microsoft integrations with Veeva CRM. To configure SSO for Microsoft integrations, admins must create a single sign-on app extension configuration profile in the Microsoft Intune admin center and assign the profile to the appropriate devices and user groups.

When creating the configuration profile in Microsoft Intune, set the device features for the configuration profile as follows:

  1. Select the Single sign-on app extension section from the Device Features page.
  2. Select Microsoft Azure AD from the SSO app extension type picklist.
  3. Enter the following text in the App bundle ID field: com.veevasystems.Veeva
  4. Enter the following attributes under Additional configuration:
  • Key: AppPrefixAllowList
  • Type: String
  • Value: com.veevasystems.

The period at the end of com.veevasystems. must be included.

For more information on SSO with Microsoft Intune, see Microsoft's Use the Microsoft Enterprise SSO plug-in on iOS/iPadOS devices documentation.

Signing in to Microsoft Outlook on First Login

When iPad users first sign in to Veeva CRM after this feature is enabled, they are prompted to also sign in to Microsoft Outlook. Alternatively, users can sign in to Microsoft Outlook from My Schedule. If single sign-on or two-factor authentication are enabled in Microsoft Outlook, users are redirected to the single sign-on or two-factor authentication page after entering their credentials.

If the organization uses a Salesforce custom domain or OAuth, users may not receive a prompt to sign in to Microsoft Outlook when they open the Veeva CRM app. To trigger the prompt, ask users to log out of Veeva CRM.

To sign in to Microsoft Outlook from Veeva CRM:

  1. Select Sign In from the Microsoft Outlook prompt. The default browser for the user's device displays. If users select Not Now, they can sign in later from My Schedule.

  2. Enter your Microsoft company credentials (for example, first.last@verteo.com) and complete the Microsoft Outlook authentication dialogue . Only one email credential can be used per CRM user.

To view Microsoft Outlook entries in My Schedule, users must sync. If users navigate to My Schedule without syncing, they are prompted to sync.

Signing in to Microsoft Outlook from My Schedule

Alternatively, users can sign in to Microsoft Outlook from My Schedule.

To sign in from the Browser platform:

  1. Clear Microsoft cookies if you have both a company-provided Microsoft Outlook account and a personal Microsoft Outlook account.

    If you do not clear Microsoft cookies before signing in, your personal Microsoft Outlook account is linked to My Schedule. To remove your personal Microsoft Outlook account from My Schedule, your organization's admin must log a support ticket with Veeva CRM and clear Microsoft cookies.

  2. Select the Add Calendar button under the calendar panel in My Schedule.

  3. Complete the Microsoft Outlook authentication dialogue that displays in a popup window. Ensure you use your Microsoft company credentials to sign in (for example, first.last@verteo.com). Only one email credential can be used per CRM user.

To sign in from the iPad platform:

  1. Select the gear icon in the My Schedule header.

  2. Select the Add Calendar button in the Outlook section of the Options menu.
  3. Enter your Microsoft company credentials (for example, first.last@verteo.com) and complete the Microsoft Outlook authentication dialogue. Only one email credential can be used per CRM user.

Viewing Microsoft Outlook Calendar Entries in My Schedule

Once users successfully sign in to Microsoft Outlook from Veeva CRM, newly created, updated, or deleted Microsoft Outlook calendar entries are reflected in Veeva CRM in real time.

To view recent updates, iPad users must sync their devices.

When users create new calendars in Microsoft Outlook after the initial pull, the newly created calendar is reflected in Veeva CRM in one hour. Real-time updates to entries from the new calendar are available within 24 hours. When users delete a calendar in Microsoft Outlook, the deleted Microsoft Outlook calendar is not removed from Veeva CRM.

The initial sync includes Microsoft Outlook events from Sunday of the current week up to 90 days after the current date. In order for a Microsoft Outlook calendar to display in Veeva CRM, there must be at least one event on the calendar within the next 90 days. After the initial sync, events are synced from the current date up to 90 days after the current date. Past Microsoft Outlook events continue to display in My Schedule, but they are not updated or deleted.

Microsoft Outlook events display in My Schedule if the current user is the entry owner or an attendee on the Outlook event. When users create, edit, or delete future Outlook entries in their Microsoft Outlook calendars, the corresponding entry is updated in My Schedule. If the attendee declines the Microsoft Outlook event, the entry is removed from My Schedule with the next sync. Microsoft Outlook event data is stamped to the External_Calendar_vod and External_Calendar_Event_vod objects.

Entries from the users’ selected Microsoft Outlook calendars display with a colored outline to differentiate them from calls and activities created in Veeva CRM. The outline color for Microsoft Outlook entries in My Schedule is based on the entry color in Microsoft Outlook. The color is pulled from Microsoft's hexColor field to the Hex_Color_vod field on the External_Calendar_vod object in Veeva CRM. If a color is not set for the entry in Microsoft Outlook, the entry displays in blue by default.

Microsoft Outlook calendar entries are read-only in My Schedule. To view a popover with more information about an Microsoft Outlook calendar entry, select the entry.

Selecting Additional Microsoft Outlook Calendars

If users have multiple Microsoft Outlook calendars, they can choose which of their Microsoft Outlook calendars display in My Schedule. To modify which calendars display, select or deselect the appropriate calendars. For iPad users, additional calendars display under the Outlook section of the Options menu.

In Lightning for My Schedule, additional calendars display on the calendar panel.

If the DISPLAY_EXTERNAL_CALENDARS_TO_MANAGERS_vod Veeva Setting is populated with the number 1, managers can view their reports' external calendar events in Lightning for My Schedule on the Browser platform. For more information on this functionality, see Viewing Users' Calendars with Manager View.

Private Microsoft Outlook Entries in My Schedule

When a Microsoft Outlook entry is set as private, only the minimally required information is pulled into Veeva CRM. The following fields are minimally required:

  • External_Calendar_vod object:
  • External_Calendar_ID_vod
  • Is_Default_Calendar_vod
  • Title_vod
  • External_Calendar_Event_vod object:
  • End_Datetime_vod
  • End_TimeZone_vod
  • Event_Created_DateTime_vod
  • Event_Last_Modified_Datetime_vod
  • External_Calendar_Event_ID_vod
  • Is_All_Day_vod
  • Original_End_TimeZone_vod
  • Original_Start_TimeZone_vod
  • Sensitivity_vod
  • Series_Master_ID_vod
  • Start_Datetime_vod
  • Start_TimeZone_vod

In My Schedule, the entry displays as Private.

Viewing My Schedule Entries in Microsoft Outlook Calendars

In Microsoft Outlook, Veeva CRM displays under the My Calendars section. When new users connect their Microsoft Outlook accounts to Veeva CRM, there must be at least one entry in My Schedule in the next 90 days in order for the Veeva CRM calendar option to display in Microsoft Outlook. The initial sync includes My Schedule entries starting in the current week. After the initial sync, events are synced from the current date onwards. Past My Schedule events continue to display in Microsoft Outlook, but they are not updated or deleted. When records are pushed from Veeva CRM to Microsoft Outlook, a maximum of 10,000 records per user are pushed in each sync.

Editing My Schedule entries from the Microsoft Outlook calendar is not supported. Changes made to My Schedule entries in Microsoft Outlook are not reflected in Veeva CRM.

The Veeva CRM calendar label in Microsoft Outlook includes the user’s name. If the User_Identifier_vod field on the User_vod object is populated, the user identifier is also included. For example, Veeva CRM - Sarah Jones (sjonesUserIdentifier). Calendar labels are only pushed from Veeva CRM in the initial sync.

Veeva recommends users do not change Veeva calendar names in Microsoft Outlook.

The following types of My Schedule entries display in the Microsoft Outlook calendar:

Meeting requests are not supported in the Microsoft Outlook integration, and unassigned presentations and unavailable time slots do not display in Microsoft Outlook calendars.

Edits and deletions for entries are updated hourly. If users create, edit, or delete My Schedule entries while they are offline, entries are updated in the Microsoft Outlook calendar after the device is online again.

When My Schedule entries are pushed to Microsoft Outlook, the subject, start datetime, and content properties are populated with the following field values:

Outlook Property

  My Schedule Entry Type
 

Call2_vod

Event

Medical_Event_vod

Time_Off_Territory_vod

subject

Formatted_Name_vod*

Subject

Name

Reason_vod

start datetime

Call_Datetime_vod (if Call_Datetime_vod is not populated, Date_vod is used instead) 

StartDateTime

Start_Time_vod 

Time_vod

content

Translated picklist value from the Call_Channel_vod field

n/a

* When child accounts are enabled, the Parent_Child_Name_vod field value from the Child_Account_vod object is used instead

Considerations

  • All entries on users’ Microsoft Outlook calendars are pulled into Veeva CRM. It is not possible to filter or control which events are pulled into Veeva CRM.

  • If a user's Salesforce username changes or they need to use a different Microsoft Outlook account, contact Veeva to reset the connection between Microsoft and Veeva CRM

  • Microsoft User Access and Refresh tokens are stored in an encrypted database

Related Topics