Email Synchronization
Synchronization Logic
The Email Auto-save feature powered by Email Sync allows users to automatically save incoming and outgoing emails related to specific Address Book Entries or Leads from Outlook to Maximizer. Once a user enables the Email Auto-save for a specific Maximizer Entry the integration retrieves the selected Entry and uses their associated email addresses to fetch new email messages from Microsoft Outlook.
- Incoming Emails: If the incoming email sync is enabled, the system will fetch all incoming emails linked to the selected Maximizer Entries, regardless of the folder they appear in within Outlook.
- Outgoing Emails: For outgoing emails, only messages stored in the Sent folder will be retrieved. Emails moved to any other folder within Outlook will not be synced.
-
Duplicate Check: When saving new emails to Maximizer, the system checks if the email has already been synced by searching its own database. If the email has already been saved, it will be skipped.
Note: This duplicate check only applies to emails saved through the sync process. If an email was saved manually or through another method, the sync will save it again without verifying its existence in Maximizer.
Limitations
-
Initial Auto-Save Activation: When the "Email Auto-save" toggle is enabled for the specific entry, all incoming and outgoing emails will be automatically saved to Maximizer. However, the sync is not retroactive, meaning it only starts saving emails from the moment it is enabled for a specific email address. Past emails will not be added to the timeline; only new emails going forward will be automatically saved to Maximizer.
- Incoming Emails: Currently, only emails where the subscribed email address is the sender are saved to Maximizer. Emails where the subscribed address is in the Cc field are not saved. This is due to a limitation in Microsoft.
- Outgoing Emails: For outgoing emails, the sync retrieves all messages from the Sent folder that were sent after the last sync. These emails are then filtered by the subscribed address. No other folders are monitored besides the Sent folder. Outgoing emails are only saved for recipients in the To field. This is a limitation imposed by Microsoft.
- Email Auto-save Behavior: If the "Email Auto-save" feature is enabled for a contact and a specific email was automatically saved through the sync but later manually deleted from Maximizer, the user will not be able to resave the email via the Outlook integration.
Contact Synchronization
Settings & Status
Once the integration is enabled it will run continuously with the specific frequency of sync runs. After every sync run a new record will be created for you in the “History” table on the “Configuration” page.
Note: You can access the “Configuration” page by clicking the “Configure” button on the “Microsoft Outlook Sync” page in the App Directory.
The following capabilities and information are provided on the Configuration page:
- Microsoft and Maximizer accounts that are being synced.
- To connect integration to a different Microsoft Outlook 365 account you should reinstall the integration proving the desired account details at the Microsoft authentication step of the installation.
- Sync status.
- You can switch the “Contact Sync” toggle to the left to disable the sync.
- History statuses:
- Enqueued: sync engine enqueues user to sync.
- Syncing: data for the user is currently in syncing process.
- Complete: Sync has completed
- Warning: Sync has failed with minor issue and is going to try again on next run, i.e. Outlook API is down.
- Problem: Sync has encountered a major issue and will attempt to retry. This could be due to authentication failure or the user lacking mandatory permissions, or a different reason. Typically, the user needs to take specific actions to resolve the issue.
- Your Favorite List in Maximizer that is being synced with the “Maximizer” category in Outlook.
- Open the dropdown list with the complete list of your Favorite Lists in Maximizer to find and pick a different Favorite List if needed.
- Sync History. Every record in the sync history includes the following information:
- State of the most recent syncs, indicating if it was completed successfully.
- Number of contacts that were successfully synced
- Number of contacts that were ignored
- You can click on the number of the ignored contacts in the last sync run to access a complete list of ignored contacts. From the “Ignored contacts” list you can open any Maximizer entry for editing. It will be opened for you in a new tab.
- To edit Outlook contacts that were ignored, you should locate corresponding contacts in Outlook under the “Maximizer” category and click “Edit” button.
- Start date and time of the sync run
- End date and time of the sync run
- Duration of the sync run
- Note that may include additional details about the specific sync run.
Conflict Resolution
Maximizer entry:
- We highly recommend maintaining your data clean and consistent and ensuring all of the three mandatory fields – First Name, Last Name and Email Address – have valid and actual data but in the situation when some of the contacts you desire to keep in sync have missing data for mandatory fields, you can fill the gaps with the dummy data. For that you can use the mass update feature in Maximizer’s Address Book.
- Mass update records with no email with a dummy Email Address, i.e. missing@email.com
- Mass update records with no last name with a dummy Last Name, i.e. “_”
- Mass update records with no first name with a dummy First Name, i.e. “_”
- Mass update records with invalid exchange email address with a dummy Email Address, i.e. missing@email.com.
- After applying global edits to your Favorite List in Maximizer we advise refreshing the list and sorting it again by Email, First Name, and Last Name ensuring that there are no records with blanks in those fields.
Outlook contact:
-
- If you have multiple contacts in Outlook that miss either of the critical data – First Name, Last Name and Email Address – you may want to leverage the export/import capability in Outlook to apply mass editing to your contacts. Otherwise, we can move them to a category other than “Maximizer” to exclude them from the sync.
- To export or import your Outlook contacts in a CSV file select the “Manage contacts” option while in the “People” interface in Outlook 365.
- If you have multiple contacts in Outlook that miss either of the critical data – First Name, Last Name and Email Address – you may want to leverage the export/import capability in Outlook to apply mass editing to your contacts. Otherwise, we can move them to a category other than “Maximizer” to exclude them from the sync.
- “Duplicate: Last Name, First Name, or Email”:
- You may need to review your contact list (in either Maximizer or Outlook, or both) and merge or remove duplicating entries that have identical First Name, Last Name and Email Address. Note: You can leverage different tools, like Microsoft Excel, to speed up the editing process. Export your Favorite List in Maximizer or Contact List in Outlook to edit it externally. Then import the edited version.
⚠️ Note: The Sync only checks for duplicate entries when the initial sync happens. During subsequent syncs, the system doesn't search for duplicate contacts. If a contact is added in Outlook, the system assumes it's brand new and doesn't verify if that same contact already exists in Maximizer based on their first name, last name, or email. Thus, during the next sync, it assumes all new contacts in Outlook aren't in Maximizer (or vice versa). |
Synchronization Logic
- The integration maintains in sync Maximizer contacts or individuals that have all three required fields — First Name, Last Name, and Email Address – to Outlook contacts under the “Maximizer” category that have the same critical data available and valid (First Name, Last Name, and Email).
- Any contact/individual missing one or more of the mandatory fields is ignored.
- The Sync creates "Individual” entries in Maximizer from contacts in Outlook “Maximizer” category and places them in the selected Favorite List.
- The Sync creates Outlook contacts in “Maximizer” category if there is a new entry in the selected Favorite List in Maximizer.
- “Company” type records in the Maximizer favorite list are not processed by integration. They are also not included in the list of Ignored contacts.
- The integration can keep in sync up to 20k contacts.
- The sync runs every 10 minutes. Note: Maximizer reserves the right to adjust the frequency of the sync runs.
- The most recent changes to Maximizer or Outlook contacts that are in sync affect the sync result.
- The synchronization between Maximizer and Outlook contacts happens in two steps – initial sync and subsequent sync. The initial sync runs just once, after it, only subsequent sync applies, unless the user changes the settings.
- First sync – the sync retrieves contacts from two sources:
- Contacts assigned to the chosen category in Outlook.
- Contacts in the user's Favorite List within Maximizer.
- Next, it processes both lists to exclude duplicate contacts and contacts missing mandatory properties, those are added to the Ignored List.
- It then compares the remaining contacts from both lists to find matching contacts. Please refer to the Contact Mapping Schema for a detailed understanding of how matching contacts are identified.
- The sync process then performs a two-way matching for unmatched contacts:
- For unmatched Outlook contacts, it searches Maximizer using the Octopus API. Identified matches are paired and added to the user's Favorite List.
- On the other hand, for unmatched Maximizer contacts, it searches Outlook using the Graph API. Matches are paired and assigned to the chosen category.
- Finally, the process creates contacts without matches in Maximizer and Outlook, categorizes them, and adds them to the Favorite List.
- Subsequent sync – the sync retrieves newly created, modified or deleted contacts from Outlook and from Maximizer using the date and time from the last run. The sync also checks whether the newly created contacts have matching records in another system.
- First sync – the sync retrieves contacts from two sources:
- The contacts are considered the same if the first name, last name and at least one email address matches.
- The Sync replaces the primary address of the contact in Maximizer or the Business address in Outlook with the most recent version. If the address is empty, it will be pulled as empty and will clear the one in a different system.
- The Sync synchronizes 2 business phone numbers, 1 home number and 1 mobile number from Outlook to the phone types that match Main, Fax, Home, Mobile or Cell phone types in Maximizer. Note: The Sync doesn't overwrite phone numbers if there is a value in both Maximizer and Outlook.
- The Sync doesn’t create custom labels for phone numbers in either Outlook or Maximizer. New contacts created in Maximizer have labels Main, Fax, Cell (or Mobile), Home, and are mapped to their Outlook counterparts.
- The Sync doesn’t delete contacts from Outlook or Maximizer if they were deleted in either of the systems.
- If the contact that is in sync is deleted in Outlook, it will be removed from the selected Favorite list in Maximizer but the entry itself will still be available in the Address Book.
- If a contact synced with Maximizer is deleted in Maximizer, the "Maximizer" category will be removed from that contact in Outlook, but the contact itself will remain in your contact list.
- Users can customize Contacts Sync settings, including the Favorite List and connected Microsoft account. Updating any of these settings or disabling and re-enabling the sync will trigger a fresh synchronization of contacts.
- The Sync removes invalid email addresses from the contacts during the sync as Outlook doesn’t allow invalid emails.
Contact Mapping Schema
Maximizer | Outlook |
Company Name | Company Name |
First Name | Given Name |
Middle Name | Middle Name |
Last Name | Surname |
Position | Job Title |
Department | Department |
Division | Office Location |
Email1 | Email Addresses |
Email2 | Email Addresses |
Email3 | Email Addresses |
Phone1 | Mobile Phone |
Phone2 | Business Phones |
Phone3 | Business Phones |
Phone4 | Home Phones |
Address | Business Address |
– | Home Address |
– | Other Address |
File As | * |
* File As is filled as follows when mapping from Maximizer to Outlook:
- The contact is a new contact in Maximizer that must be created in Outlook, then the FileAs will be created as "FirstName LastName", i.e. "John Smith".
- The contact exists in Outlook and needs to pull updates from Maximizer:
- If the FirstName or LastName were updated in Maximizer, the FileAs will be updated as "FirstName LastName", otherwise the current FileAs is kept.
Calendar Synchronization
Synchronization Logic
- As soon as the one-way sync occurs from Outlook to Maximizer, the Outlook calendar is considered the source of truth. Any changes made in the Maximizer calendar will be ignored or overwritten by the details from the Outlook event.
- The rolling window defines the timeframe for syncing appointments, currently set to include appointments from 15 days in the past to 30 days in the future relative to today. These settings are predefined and may change over time.
- Synchronization occurs in two phases: initial sync and subsequent syncs. The initial sync happens only once, after which only subsequent syncs take place unless the user modifies sync settings.
Note: Disabling and re-enabling the sync will trigger a fresh synchronization of appointments.- Initial Sync – This first synchronization retrieves all eligible appointments from Outlook within the rolling window, excluding incomplete or unsupported recurring appointments, which are added to an ignored list. Before creating new appointments in Maximizer, the sync checks if they already exist; matched appointments are updated, and unmatched ones are created in Maximizer.
-
Subsequent sync – Each subsequent sync retrieves only new, modified, or deleted appointments in Outlook since the last sync and processes them within the rolling window. The sync also checks the ignored list to identify any fixed appointments that can now be included.
- The subsequent sync follows the same process as in the initial sync:
- Excludes incomplete or unsupported recurring appointments.
- Identifies and matches existing Maximizer appointments.
- Creates unmatched appointments and update matched ones.
- Deletes any appointments in Maximizer that were removed in Outlook.
- The subsequent sync follows the same process as in the initial sync:
- Updated Recurring Series: If a recurring series in Outlook has its pattern updated, the sync checks if the new pattern is supported. Supported changes prompt a deletion and recreation of the series in Maximizer, while unsupported changes are added to the ignored list and remain unchanged.
- Deleted appointments in Maximizer: Since Outlook is the primary data source, any deleted appointments in Maximizer that remain in Outlook may be recreated in Maximizer on the next sync. However, these appointments are only recreated if they have been modified in Outlook or fall within the current rolling window.
-
Matching logic
-
Non-recurring appointments match based on these properties:
- Subject
- StartDate
- EndDate
-
Recurring appointments match on:
- Subject
- StartDate
- EndDate
- Recurring pattern
-
Non-recurring appointments match based on these properties:
- Attendees are added to the Maximizer appointment description as AbEntries or Leads if they match existing records by the email address. The sync first attempts to match attendees to AbEntries; if none are found, it checks for Leads.
- Appointments lacking critical information, such as subject, start date, or end date, or appointments that belong to the non-supported recurring patterns are ignored and displayed in the list of ignored appointments.
Appointment Mapping Rules
The below table shows which property in the Outlook event is mapped to the Maximizer appointment.
Outlook Event Property | Maximizer Appointment Property | Comment |
Subject | Subject | Outlook event must have a subject in order to be synced to Maximizer |
StartDate | StartDate | Maximizer date is always UTC. Outlook returns the datetime along with the timezone |
EndDate | EndDate | Maximizer date is always UTC. Outlook returns the datetime along with the timezone. Outlook events without an end date are assigned a default end date of 2200-01-01 in Maximizer |
IsAllDay | --- | When IsAllDay the sync sends only the date to maximizer, it will make the appointment all day |
Body.Content | Description | |
Body.Content | DescriptionRichText | |
Sensitivity (normal, personal, private, confidential) | Private | Private will be true if sensitivity is either private or confidential |
Priority (low, normal, high) | Priority (low, med, high) | Default is Medium |
Location.DisplayName | Location | |
RecurringPattern | RecurringPattern | |
ReminderMinutesBeforeStart | Users.Item.Alarm | To create reminder in Maximizer the sync must get the StartDate and subtract ReminderMinutes from it |
--- | Users.Item.Reminder | |
--- | Organizer | Organizer is always be the login user |
Attendees | AbEntries | Looks for existing AbEntries for the email addresses, maps all the existing ones |
Attendees | Leads | Look for existing Leads for the email addresses, maps all the existing ones |
Limitations:
- Unsupported recurrence patterns include:
- Monthly or yearly intervals exceeding one
- Specific day-of-month or day-of-week recurrence
- Maximizer fields in appointments such as Subject and Description have character limits. Any field exceeding the maximum length is truncated to fit within these limits.
- Subject: 1024
- Description: 8192
- Appointment Organizer in Maximizer: The integration user is designated as the organizer for all their synced appointments in Maximizer.
Task Synchronization
Synchronization Logic
- The Outlook To Do list is created when the user creates or updates the Outlook Sync configuration. The default name for the list is "Maximizer", however, if a "Maximizer" list already exists in Outlook it will create the list with a versioned name, for instance, "Maximizer (2)".
- The synchronization between Maximizer and Outlook tasks happens in two steps – the initial sync and subsequent syncs. The first sync runs just once, after it, only subsequent sync happens, unless the user changes the settings. Note: Disabling and re-enabling the sync will trigger a fresh synchronization of tasks.
- Initial sync – the first sync retrieves all the overdue tasks (incomplete tasks) from last two weeks to today and all the tasks (complete and incomplete) from today and forward from Maximizer and creates them in Outlook. As the first sync starts with a new/empty Outlook To Do list, it does not pull any data from Outlook into Maximizer. Note: The sync range mentioned above only applies for the initial sync. Maximizer reserves the right to change the sync range. To ensure a smooth first sync, please make sure your Outlook To Do list is clear of any existing tasks.
- Subsequent sync – the sync retrieves newly created, modified or deleted tasks from Outlook and from Maximizer since the last sync run.
Note: To be synced your tasks in Maximizer must not be empty, as well as the title of your Outlook tasks must not be blank.
- Tasks classification list:
- Outlook:
- Created: tasks that were created, including new recurring series, that are not in sync.
- Updated: non-recurring tasks that were modified and are in sync.
- Deleted: tasks that were deleted and are in sync.
- Recurrences in sync: recurring tasks where its series is already in sync.
- Maximizer:
- Created: tasks that were created, including new recurring series, that are not in sync and are assigned to the user.
- Updated: non-recurring tasks that were modified and are in sync.
- Deleted: tasks that were deleted and are in sync or tasks that were unassigned from the user.
- Recurrences in sync: recurring tasks where its series is already in sync.
- Outlook:
Task Mapping Rules
Mandatory properties to sync tasks:
- Maximizer – the task subject must not be empty
- Outlook – the task title must not be empty.
From Maximizer to Outlook:
- Subject
- The first line of Subject of the Maximizer task will be mapped to the Title of the To Do Task in Outlook.
- If the length of the first line exceeds 255 characters, the exceeding content will be shifted to the second line.
- Any content below the first line will be mapped to the Outlook’s To Do Task Note.
- DateTime
- As Outlook’s To Do Task/DueDate supports only the date, Maximizer’s tasks with both date and time will be converted to full-day tasks (date only) before syncing to Outlook.
- Priority
- Maximizer task priority can be customized by the user.
- Only default values (HI, LOW, MED) will be mapped.
- Other customized values, such as "high" in a different language, will be mapped as MED.[EZ1]
- The default value from Maximizer "MED" is mapped to "Normal" in Outlook.
The below table contains which property in Maximizer Task is mapped to Outlook Task.
Maximizer Task Property | Outlook Task Property | Comment |
Task's 1st line | Title | Extra information on item 4 of the above list |
Task's 2nd line and forward | Body | |
Status or Completed | Status | Completed and Status are two different properties in Maximizer, when the Completed is true, it will set Completed Status in Outlook Task, otherwise it will map using the Status property |
DateTime | DueDateTime | |
Priority | Importance | Default value from Maximizer "MED", which is mapped to "Normal" in Outlook |
CompletionDate | CompletedDateTime | |
Alarm | IsReminderOn | if Alarm in Maximizer is not null, then it will set IsReminderOn to true, otherwise false |
Alarm | ReminderDateTime | It will user Alarm datetime from Maximizer and set TimeZone to UTC |
Recurrence.Pattern.Type | Recurrence.Pattern.Type | |
Recurrence.Pattern.FirstDayOfWeek | Recurrence.Pattern.FirstDayOfWeek | When null, the default is "Sunday" |
Recurrence.Pattern.Interval | Recurrence.Pattern.Interval | |
Recurrence.Pattern.Index | Recurrence.Pattern.Index | When null the default is "first". Property is also known as WeekIndex |
Recurrence.Pattern.Month | Recurrence.Pattern.Month | |
Recurrence.Pattern.DayOfMonth | Recurrence.Pattern.DayOfMonth | |
Recurrence.Pattern.DaysOfWeek | Recurrence.Pattern.DaysOfWeek | |
Recurrence.Range.StartDate | Recurrence.Range.StartDate | |
Recurrence.Range.EndDate | Recurrence.Range.EndDate | |
Recurrence.Range.Occurrences | Recurrence.Range.NumberOfOcurrences | This property value is always 0 in Graph API (Outlook), even when the sync forces a value. |
Recurrence.Range.RecurrenceTimeZone | Recurrence.Range.RecurrenceTimeZone | Default is UTC. |
From Outlook to Maximizer
- Alarm
- Due to Maximizer not allowing alarm time after the due datetime, the alarm time will be adjusted to the due datetime if set after the due datetime.
- DueDate
- In Outlook, the due date is an optional field, and in Maximizer it is mandatory. If the due date is not specified in Outlook, and if alarm time is set, alarm day + 1 day will be utilized as the due date, otherwise, the creation date will be utilized as the due date before syncing with Maximizer.
The below table contains which property in Outlook Task is mapped to Maximizer Task.
Outlook Task Property | Maximizer Task Property | Comment |
Title | Task's 1st line | If the title is null or empty, the default value will be a "." |
Body | Task's 2nd line and forward | |
Status | Completed | If outlook status is completed, it will set true, otherwise false |
Status | Status | If outlook status is completed, value will be set to null, otherwise, map accordingly |
- | AssignedTo | Will assigned the task to the user for new tasks, and for updates it will ignore the update in case the task has been unassigned from the user |
Importance | Priority | Will map accordingly, if Importance in outlook is null the default value will be "MED" |
DueDateTime or ReminderDateTime or CreatedDateTime | DateTime | When outlook's Due Date is not null, will use it, otherwise will check if reminder is on, in case it is on it will use the ReminderDateTime. If previous are false, it will use the outlook's created date |
CompletedDateTime | CompletionDate | |
IsReminderOn and ReminderDateTime | Alarm | When reminder is off, it will set maximizer alarm as null. When reminder is on, will set alarm using the reminder date |
Recurrence.Pattern.Type | Recurrence.Pattern.Type | |
Recurrence.Pattern.FirstDayOfWeek | Recurrence.Pattern.FirstDayOfWeek | When null, the default is "sunday" |
Recurrence.Pattern.Interval | Recurrence.Pattern.Interval | |
Recurrence.Pattern.Index | Recurrence.Pattern.Index | When null the default is "first". Property is also known as WeekIndex |
Recurrence.Pattern.Month | Recurrence.Pattern.Month | |
Recurrence.Pattern.DayOfMonth | Recurrence.Pattern.DayOfMonth | |
Recurrence.Pattern.DaysOfWeek | Recurrence.Pattern.DaysOfWeek | |
Recurrence.Range.StartDate | Recurrence.Range.StartDate | |
Recurrence.Range.EndDate | Recurrence.Range.EndDate | |
Recurrence.Range.NumberOfOcurrences | Recurrence.Range.Occurrences | This property value is always 0 in Graph API (Outlook), even when the sync forces a value |
Recurrence.Range.RecurrenceTimeZone | Recurrence.Range.RecurrenceTimeZone | Default is UTC |
FAQ
What happens if I update the Task Sync settings?
At the moment, you can't select a specific Outlook To Do List for syncing. You can only enable or disable the task sync feature. If you disable and re-enable the sync, it will automatically trigger a complete resynchronization of your tasks.
Please reach out to our dedicated support team at support@maximizer.com if you experience any issues or have feedback.
© Maximizer Services Inc. All rights reserved.
Send feedback on this topic to Maximizer Services Inc.