Enabling Microsoft 365 Calendar Sync

Follow
Please note: This content is intended for Practifi System Administrators and is technical in nature. The steps described in this article may not be able to be completed without System Administrator permissions. Please discuss your integration installation plans with your Practifi Customer Support Team for their assistance.
Einstein Activity Capture and other third-party calendar sync tools must be turned off before turning on the event sync for Microsoft Calendar Sync. If not turned off, it will trigger event notification emails to be sent to clients. For instructions on disabling, please consult our Disabling Calendar Sync Tools article. If you have any questions, please contact your CSM or our Practifi Support Team. 

Overview

Microsoft 365 Calendar Sync allows users to view their calendars in both Microsoft 365 and Practifi. When this sync is enabled in your firm's Practifi organization, you can view events in either system and have confidence that you are seeing your entire schedule. Practifi Administrators can choose a one-way event sync (Microsoft to Practifi or vice-versa) or a two-way event sync between Microsoft 365 and Practifi.

This article outlines the steps to enable Microsoft 365 Calendar Sync in your organization. For more information about the Microsoft 365 calendar sync, please consult our Using Microsoft 365 Calendar Sync article.

Before You Begin

This calendar sync is part of our Microsoft 365 Sync, a paid add-on feature. Please note that the number of users granted access must be the same as the number of licenses in your Practifi contract. Contact your Client Success Manager to discuss pricing in more detail and sign up for the service. You cannot enable this functionality in your organization without purchasing this add-on. 

Please note: This integration works only with Microsoft Cloud. It is not compatible with Exchange servers on-premises or self-hosted Exchange servers.


Enablement Process

The majority of the enablement steps for Microsoft 365 Calendar Sync are identical to the steps for enabling Microsoft 365 Email Sync, with additional steps for enabling event sync and configuring sync settings. These are described in the sections below. To begin the enablement process, System Administrators should complete the steps described in our Enabling Microsoft 365 Email Sync article before proceeding to the next section of this article.

Enabling Event Sync

Important: Microsoft 365 Calendar Sync uses the Microsoft Graph API to access your firm's Microsoft Cloud services. Due to the nature of the Microsoft Graph API, any update made to a past or future calendar event from Practifi to Microsoft Outlook will automatically trigger Microsoft Outlook to send an updated event invitation to all attendee inboxes. For this reason, we recommend Administrators examine all potential risks before enabling the two-way calendar sync feature. Enabling the two-way event sync without careful consideration may result in unwanted event invitations, updates or cancellations being sent to end clients.


To enable event sync for users, navigate to the Users & Mailboxes tab of the Microsoft 365 Sync page within the Settings app. The Sync Events option appears as a column in the User table alongside Sync Emails. Check the box for each user you would like to enable the feature for. To save time, you can check the box in the header row beside Sync Events to select all users listed. 

Screen_Shot_2022-09-01_at_12.15.52_PM.png

If a user is linked to more than one mailbox—for example, if they're the nominated user for a shared mailbox—then you'll need to select which mailbox is their Primary Mailbox. This is the mailbox whose Microsoft 365 calendar will be used for any of that user's Events created in Practifi and also the email address from which Event invitations will be sent. 

Once you've checked the box beside each user that you would like to use the Microsoft 365 calendar sync, select Save to finalize your changes.

Sync Settings

Once the users have been enabled, you can modify sync settings to suit your firm's needs. On the Sync Settings tab, scroll down to locate the Event Settings section. Within this section, you can modify settings by toggling off and on the different event setting options. The options available are as follows:

  • Sync Internal Events: An internal event is one that’s only attended by team members who are also Practifi users. Enable this setting if your firm uses Practifi as an internal business management solution.

  • Delete Synced Events: When an event is deleted from one system, choose how that affects the other (either delete it as well or keep it). If Practifi is the system of record for your business, you should use a stricter policy as compared to Microsoft 365.

    • Set the "from Microsoft 365" option to "Yes" if you want to delete an event in Practifi whenever a synced event is deleted from Microsoft. 
    • Set the "from Practifi" option to "Yes" if you want to delete an event in Microsoft whenever a synced event is deleted from Practifi. 
  • Sync Private Events: Certain events are marked as private by their organizers in Practifi or Microsoft 365. Choose whether to include these in your firm’s sync.

  • Sync Direction: Choose whether to implement a comprehensive two-way solution or keep things simple with a one-way approach. There are two one-way options: Microsoft to Practifi or Practifi to Microsoft. If you select Microsoft to Practifi, this means events created in Microsoft will flow into Practifi, but events created in Practifi will not appear in Microsoft.
    If you enable the two-way option, if a synced Event is updated in both systems in between syncs, the changes made in Microsoft 365 will take precedence.

  • Sync Unmatched Events: All events in synced calendars will appear in Practifi, even if they aren’t related to any records. Enable this setting if your firm uses Practifi as its primary calendaring solution.

Once you have modified the settings to suit your firm's needs, select Save to finalize your changes. 

 

Screen_Shot_2022-09-01_at_12.16.11_PM.png

Microsoft Integration Settings

There are other event sync settings that deal with how historical and future events are handled. To access these, do the following:

  1. Click the Setup cog in the upper right-hand corner of Practifi and select Salesforce Setup.
  2. In the Quick Find box, search for Custom Settings and select Custom Settings from the suggestions.
  3. On the Custom Settings page, next to Microsoft Integration Settings, click the Manage link.

    Screenshot 2023-11-16 at 1.44.33 PM.png

  4. On the Microsoft Integration Settings page, you can click the Edit button to configure the following settings:
    • Commencement Date: This is the date on which the syncing of past events from Microsoft into Practifi begins. This field is automatically populated with the date of six months prior to the sync being enabled.
      Please note: Historical events will not sync from Practifi to Microsoft.
    • Future Inbound Event Sync Range in Years: This field sets the number of years into the future that Microsoft events will sync into Practifi. This means that any change to events within that range will be synced. The default value is 10.
    • Future Outbound Event Sync in Months: This field sets the number of months into the future that Practifi events will sync into Microsoft 365. This means that any change to events within that range will be synced. The default value is 24.

IMPORTANT: The Practifi event sync to Microsoft is trigger-based, so any future-dated events will only sync to Microsoft after an insert/update/delete action is made on the Practifi Event record. This means if you are enabling two-way event sync for the first time, existing future-dated Practifi event records that fit within the Future Outbound Event Sync in Months (automatically set to 24 months) setting will not automatically sync to Microsoft unless those Practifi events are edited in some manner and then re-saved. Note that updates made to the attendees list in Practifi will not trigger an updated sync to Microsoft.

Syncing Event Locations

Syncing Event locations between systems is supported in Practifi as Resource Calendars, which surface the location as a “resource” with its own calendar, allowing it to be managed as a typical meeting room.

Please note that in order for this sync to occur, administrators must first recreate your Microsoft 365 locations as Resource Calendars with names identical to those found in Microsoft 365. To avoid sync conflicts, Microsoft 365 locations must have unique names.

Sync Considerations

When syncing Events, the following should be considered:

  • Attachments - Event attachments are currently unsupported.

  • Data imports - Importing events into Practifi is unsupported; only events created in the Practifi UI will be synchronized with Microsoft 365. This is by design, as any calendar event synchronized with Microsoft 365 causes invitations to be sent. In a typical import scenario, this isn’t desired.

  • Draft events - Draft events in Microsoft 365 won’t appear in Practifi. To sync them, they must first be saved as confirmed calendar entries.

  • Maximum attendees - Only 50 attendees are synced per Event. If more than 50 exist, then the first 50 are selected alphabetically.

  • Private events - Supported in both directions but without attendees.

  • Secondary user calendars - This is not currently supported functionality; only the user’s default calendar will be synced.

  • Shared calendars - Only personal calendars are currently supported.

  • Acceptance status - An invited client member does not need to accept a meeting invite for it to sync correctly to their client record, nor will the acceptance status of an event impact whether the event sync occurs.

Practifi Protect Compatibility 

Practifi Protect and Microsoft 365 Calendar Sync can be enabled at the same time. However, the encryption introduced by Practifi Protect prevents Microsoft 365 Sync’s record-matching logic from operating. This means that firms cannot encrypt the below fields if they want to make use of them in the matching process:

  • Email (Contact)

  • Alternative Email (Contact)

  • Other custom email fields on Contact

  • Email (User)

This guidance is taken from Salesforce Help, and is one of the trade-offs inherent in enabling Salesforce Shield, the technology behind Practifi Protect.


Object & Field Mapping

The tables below outline the object and field mapping for the integration. Where picklist values are mapped, the value mappings are based on which bullet items appear on the same line in each column. 

Objects

Practifi (object) Microsoft 365 (collection) Notes
Calendar  location Resource Calendars provide a great home for 365's locations information, allowing room availability to appear in Practifi alongside Events. 

These should be prioritized in sync operations and should always come ahead of Events and Emails to ensure they don't wait in the queue when sync volumes exceed daily limits. 
Event event The calendar items themselves.
EventRelation

attendee (for Attendees)

location (for Resources)

The internal and external attendees of the event, as well as the location/s where the event is held.

 

Calendar

Practifi (Field Label) Microsoft 365 (property) Notes
IsActive N/A Predefined as True.
Name displayName  

Type

  • Resource

locationType

  • default
Value combination is predefined and cannot be changed in Practifi. If the Type is modified in Microsoft 365, it does not change in Practifi.

 

Event

Practifi (Field Label) Microsoft 365 (property) Notes
All-Day Event isAllDay  
Assigned To organizer Exceptions apply in certain situations, such as when handling internal attendees.
Attendees (EventRelation) attendees collection  
Description body Stored as HTML in Microsoft 365, but plain text in Practifi.
Duration (DurationInMinutes) N/A Calculated automatically using the Start and End values.
End end Synced using UTC, with user's local time settings applied in Practifi.
External ID id  
Location location  
Resources location collection Using Resource Calendars via EventRelation.
Microsoft 365 Sync Status N/A
  • Set to Never if the record hasn't been synced with Microsoft 365. 
  • Set to Active if the record is part of the ongoing scheduled sync job.
  • Set to Inactive if the record was once synced, but has now been deactivated as per Deactivate Sync for Past Events.

Private

  • Unchecked
  • Checked

sensitivity

  • Normal
  • Private
Other sensitivity settings in Microsoft 365 aren't supported.

Recurring in Microsoft 365

recurrence

 

Reminder Date/Time

reminderMinutesBeforeStart

This is captured differently between systems. Practifi sets the calendar date/time at which the reminder will be set and Microsoft sets the amount of minutes prior to the Event's Start. Calculation logic is used to translate these values.

Reminder Set

N/A

Populated based on the presence of a reminderMinutesBeforeStart value.

Show Time As

  • Busy
  • Out of Office
  • Free

showAs

  • busy
  • ooo, workingElsewhere
  • free, tentative, unknown
 

Start

start

Synced using UTC, with user's local time zone settings applied in Practifi.

Subject

subject

 

Teams Meeting

isOnlineMeeting = true

onlineMeetingProvider = teamsForBusiness

 

Teams Meeting URL

onlineMeetingURL

 

 

EventRelation

Practifi (Field Label) Microsoft 365 (property) Notes
EventId parent Event resource  
RelationId

emailAddress (if Attendee)

displayName (if Location)

Matching logic used to derive User and Contact Ids from email address.

Status

  • New
  • Accepted
  • Declined

responseStatus

  • none, notResponded
  • organizer, tentativelyAccepted, accepted
  • declined
 

 

Data Model Extensions

The table below outlines the fields added to the Event object in Practifi to support this integration. Select the tab to expand this table and view these fields. 

 

Event Fields

Name Field Type Notes
Recurring in Microsoft 365 Text (255) Read-only field
Microsoft 365 Sync Status  Picklist

Available values: 

  • Never
  • Active 
  • Inactive

Read-only field

Send Invitations to Attendees Checkbox The default value is determined by the Send Invitations to Attendees setting. 
Show Time As Picklist  
Teams Meeting Checkbox  
Teams Meeting URL URL (255) Read-only field

 

Customization Considerations

The following items have been modified by this feature. If your firm has customized them, then you’ll need to either copy the changes into your customized version or switch to the default version and redo your changes.

  • Lightning pages

    • Event Record Page

  • Page layouts

    • Event Layout

 

Troubleshooting

Practifi Administrators can view error logs on the Logs & Errors tab within the Microsoft 365 Sync page. To view only error logs, click the Errors Only button to filter the page.

Errors that display 0 values in the Records Processed, Synced Successfully and Errors columns are usually due to Graph API errors like access token expired or internal errors. This type of error is often resolved when the sync re-runs.

Log entries with a Retry link are often the result of errors during processing in Azure. We recommend clicking the Retry link next to the error to see if that resolves it. 

To retry all email and event sync errors from the past 30 days at once, click the Retry Errors from Last 30 Days button.

 

image.png


To view in-depth error logs, open the Salesforce Developer Console and use this query for more detailed information:

SELECT Id, practifi__Error_Message__c, practifi__External_System__c, practifi__Date_Time__c, practifi__Is_Error__c FROM practifi__Integration_Log__c WHERE practifi__external_system__c = 'Microsoft Email Sync' AND practifi__is_error__c = true ORDER BY practifi__Date_Time__c DESC

0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.