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:
-
Assign Engage licenses to all users who should have access to this functionality. Users do not need to be assigned to Engage groups.
-
Ensure Configuring Call Planning is complete.
-
Ensure Lightning for My Schedule is enabled for users on the Browser platform.
-
Ensure users have access to Microsoft Outlook.
-
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
- 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_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.
- 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
- Ensure admins and end users have at least Read FLS to the IsAllDayEvent field on the Event object, if Events Management is enabled.
- 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:
- 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
- Select Manage Profiles or Manage Permission Sets and assign the Veeva Microsoft Graph API Integration Connected App to the appropriate profiles or permission sets.
- 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.
Reactivating Users’ Microsoft Outlook Integrations
To reactivate the Microsoft Outlook integration for a deactivated user:
- 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.
- Ensure configuration is complete for Integrating My Schedule and Microsoft Outlook Calendars.
- 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 a Sandbox org is refreshed and configuration is copied from a Production org, admins must deselect the MS_Graph_API_Authorized_vod check box on all User_vod records (set the field value to false) and delete External_Calendar_vod records for all users
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:
- Select the Single sign-on app extension section from the Device Features page.
- Select Microsoft Azure AD from the SSO app extension type picklist.
- Enter the following text in the App bundle ID field: com.veevasystems.Veeva
- 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:
- 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.
-
Enter your Microsoft company credentials (for example, first.last@verteo.com) and complete the Microsoft Outlook authentication dialogue from the default browser for your device. Only one email credential can be used per CRM user.
When they complete the authentication prompt, iPad users are automatically redirected from their default browser. If the authentication fails, users are notified with an authentication failure message.
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:
-
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.
- Select the Add Calendar button under the calendar panel in My Schedule.
-
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:
- Select the gear icon in the My Schedule header.
- Select the Add Calendar button in the Outlook section of the Options menu.
-
Enter your Microsoft company credentials (for example, first.last@verteo.com) and complete the Microsoft Outlook authentication dialogue from the default browser for your device. Only one email credential can be used per CRM user.
When they complete the authentication prompt, iPad users are automatically redirected from their default browser. If the authentication fails, users are notified with an authentication failure message.
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 day. 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. If users backdate planned calls beyond the current day, the backdated calls do not display in Microsoft Outlook. Entries backdated to a day previous to the created date are not included in the sync to Microsoft Outlook. For example, a call backdated to earlier in the same day displays in Microsoft Outlook, but a call backdated to the previous week does not display.When records are pushed from Veeva CRM to Microsoft Outlook, a maximum of 10,000 records per user are pushed in each sync.
New entries, edits, and deletions of existing 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.
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:
When Displaying Events in My Schedule for Event Team Members is enabled, events also display in Microsoft Outlook for event team members.
Meeting requests are not supported in the Microsoft Outlook integration, and unassigned presentations and unavailable time slots do not display in Microsoft Outlook calendars.
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
-
Do not delete Veeva CRM calendars from Microsoft Outlook. If a Veeva CRM calendar is deleted in Microsoft Outlook, the user's integration must be fully deactivated and then reactivated.
- 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
- The following default browsers are supported for user authentication:
- Microsoft Edge
- Safari
- Google Chrome
- Microsoft User Access and Refresh tokens are stored in an encrypted database