Skip to main content

Migrating to the new Microsoft Exchange Online connectivity

Perform the following steps to migrate to the new version of Microsoft Exchange Online connector.

On-prem environments

For on-prem environments, download the new connectivity package from the Omada Community.

Edit queries

  1. In the Queries and mappings view, select the Resource object type (Source: Generic resources). Click Edit. Enter the following details:

Parameters:

ParameterValue
SourceGeneric resources
DistinctYes
FilterType=="Exchange User Mailbox" || Type=="Exchange Mailbox Access"
DescriptionGeneric resources - User Mailbox and Mailbox Access

Mappings:

DestinationOperatorSource
Business keyExpressionstring.Format("\<system\>{0}\</system\>\<genericresource\>{1}\</genericresource\>",BuiltIn.SystemShortName, BusinessKey)
Security resource business keyExpressionstring.Format("\<system\>{0}\</system\>\<genericresource\>{1}\</genericresource\>",BuiltIn.SystemShortName, BusinessKey)
NameMapName
CategoryMapCategory
TypeMapType
Short nameExpressionstring.Format("{0}\_{1}", BuiltIn.SystemShortName, BusinessKey)
Logical keyExpressionstring.Format("{0}\_{1}", BuiltIn.SystemShortName, BusinessKey)
  1. Edit the User Mailbox (Resource assignment - Source: Mailboxes) query:

Parameters:

ParameterValue
SourceMailboxes
Mailbox subtypeUserMailbox
FilterType=="User mailbox"
DescriptionOnline user mailboxes

Mappings:

DestinationOperatorSource
Resource Business keyExpressionstring.Format("\<system\>{0}\</system\>\<genericresource\>{1}\</genericresource\>",BuiltIn.SystemShortName,RecipientTypeDetails)
Account - CBKLookupBusinessKey=ExternalDirectoryObjectID
Business keyExpressionType=="User mailbox"?"<exchangeguid>"+ExchangeGuid+"</exchangeguid>":null
PRIMARY_EMAIL (1)MapPrimarySmtpAddress
ADDITIONAL_EMAILS (2)MapEmailAddresses
HIDEINADDRESSLIST (1)MapHiddenFromAddressListsEnabled
ISSUEWARNINGQUOTAMapIssueWarningQuota
PROHIBITSENDQUOTAMapProhibitSendQuota
PROHIBITSENDRECEIVEQUOTAMapProhibitSendReceiveQuota
WEBMAIL (1)MapOWAEnabled

(1) - history
(2) - history and multivalued

  1. Delete the following query: Resource assignment - Source: Mailboxes - Online shared mailboxes.
  2. Edit the Mailbox access (Full Access and Send As) query (Resource assignment - Source: Mailbox access):

Parameters:

ParameterValue
SourceMailboxes
Mailbox subtypeUserMailbox
FilterLinkedMasterAccount != null && LinkedMasterAccount != "NT AUTHORITY"
DescriptionOnline user mailbox access - Send as and Full Access

Mappings:

DestinationOperatorSource
Resource Business keyExpressionstring.Format("\<system\>{0}\</system\>\<genericresource\>{1}\</genericresource\>",BuiltIn.SystemShortName, Type == "Full access" ? "fullmailboxaccess": "sendasmailboxaccess")
Account – CBKLookupDistinguishedName=LinkedMasterAccount
Target – CBKstring.Format("{0}\_\<exchangeguid\>{1}\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Business keyExpressionstring.Format("\<account\>{0}\</account\>\<resource\>{1}\</resource\>\<target\>{2}\</target\>", LinkedMasterAccount, Type, ExchangeGuid)
LinkedMasterAccountMapLinkedMasterAccount
AccessTypeMapType
MAILBOXREFExpressionstring.Format("{0}\_\<exchangeguid\>{1}\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
  1. Edit the Access Mailbox (send on behalf) query (Resource assignment - Source: Mailboxes):
ParameterValue
SourceMailboxes
Mailbox subtypeUserMailbox
FilterType=="Send on behalf"
DescriptionOnline user mailbox access - Send on Behalf

Mappings:

DestinationOperatorSource
Resource Business keyExpressionstring.Format("\<system\>{0}\</system\>\<genericresource\>sendonbehalfofmailboxaccess\</genericresource\>",BuiltIn.SystemShortName)
Account – CBKLookupBusinessKey=GrantSendOnBehalfTo
Target – CBKExpressionstring.Format("{0}\_\<exchangeguid\>{1}\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Business keyExpressionstring.Format("\<account\>{0}\</account\>\<resource\>{1}\</resource\>\<target\>{2}\</target\>", GrantSendOnBehalfTo, Type, ExchangeGuid)
PRIMARY_EMAIL (1)MapPrimarySmtpAddress
IdentityMapIdentity
RecipientTypeDetailsMapRecipientTypeDetails
ExternalDirectoryObjectIDMapExternalDirectoryObjectID
GrantSendOnBehalfToMapGrantSendOnBehalfTo
MAILBOXREFExpressionstring.Format("{0}\_\<exchangeguid\>{1}\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)

(1) - history

  1. Create a new Resource query: Shared, Room and Equipment Mailbox – Full Access:

Parameters:

ParameterValue
SourceMailboxes
Mailbox subtypeEquipmentMailbox,RoomMailbox,SharedMailbox
DistinctYes
DescriptionOnline SharedMailbox, EquipmentMailbox, RoomMailbox - FullAccess

Mappings:

DestinationOperatorSource
Business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_FullAccess\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Security resource business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_FullAccess\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
NameDisplayName + "_FullAccess"
CategoryConstantPermission
TypeExpressionRecipientTypeDetails == "RoomMailbox" ? "Exchange Room Mailbox" : RecipientTypeDetails == "SharedMailbox" ? "Exchange Shared Mailbox" : RecipientTypeDetails == "EquipmentMailbox" ? "Exchange Equipment Mailbox" : null
Short NameExpressionstring.Format("\<exchangeguid\>{0}\_FullAccess\</exchangeguid\>", ExchangeGuid)
Logical keyExpressionstring.Format("\<exchangeguid\>{0}\</exchangeguid\>", DisplayName)
PRIMARY_EMAIL (1)MapPrimarySmtpAddress
RecipientTypeDetailsMapRecipientTypeDetails
IdentityMapIdentity

(1) history

  1. Create a new Resource query: Shared, Room and Equipment Mailbox – Send As:

Parameters:

ParameterValue
SourceMailboxes
Mailbox subtypeEquipmentMailbox,RoomMailbox,SharedMailbox
DistinctYes
DescriptionOnline SharedMailbox, EquipmentMailbox, RoomMailbox - SendAs

Mappings:

DestinationOperatorSource
Business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_SendAs\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Security resource business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_SendAs\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
NameExpressionDisplayName + "_SendAs"
CategoryConstantPermission
TypeExpressionRecipientTypeDetails == "RoomMailbox" ? "Exchange Room Mailbox" : RecipientTypeDetails == "SharedMailbox" ? "Exchange Shared Mailbox" : RecipientTypeDetails == "EquipmentMailbox" ? "Exchange Equipment Mailbox" : null
Short NameExpressionstring.Format("\<exchangeguid\>{0}\_SendAs\</exchangeguid\>", ExchangeGuid)
DescriptionExpressionstring.Format("\<exchangeguid\>{0}\_SendAs\</exchangeguid\>", DisplayName)
PRIMARY_EMAIL*MapPrimarySmtpAddress
RecipientTypeDetailsMapRecipientTypeDetails
IdentityMapIdentity

(1) history

note

Do not use the description field, Omada is using this field to trigger event definitions.

  1. Create a new Resource query: Shared, Room and Equipment Mailbox – Send on Behalf:

Parameters:

ParameterValue
SourceMailboxes
Mailbox subtypeEquipmentMailbox,RoomMailbox,SharedMailbox
DistinctYes
DescriptionOnline SharedMailbox, EquipmentMailbox, RoomMailbox - SendOnBehalf

Mappings:

DestinationOperatorSource
Business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_SendOnBehalf\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Security resource business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_SendOnBehalf\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
NameExpressionDisplayName + "_SendOnBehalf"
CategoryConstantPermission
TypeExpressionRecipientTypeDetails == "RoomMailbox" ? "Exchange Room Mailbox" : RecipientTypeDetails == "SharedMailbox" ? "Exchange Shared Mailbox" : RecipientTypeDetails == "EquipmentMailbox" ? "Exchange Equipment Mailbox" : null
Short NameExpressionstring.Format("\<exchangeguid\>{0}\_SendOnBehalf\</exchangeguid\>", ExchangeGuid)
DescriptionExpressionstring.Format("\<exchangeguid\>{0}\_SendOnBehalf\</exchangeguid\>", DisplayName)
PRIMARY_EMAIL (1)MapPrimarySmtpAddress
RecipientTypeDetailsMapRecipientTypeDetails
IdentityMapIdentity

(1) history

note

Do not use the description field, Omada is using this field to trigger event definitions.

  1. Create a new Resource assignment query: Shared, Room and Equipment Mailbox (Full Access):

Parameters:

ParameterValue
SourceMailbox access
Mailbox subtypeEquipmentMailbox,RoomMailbox,SharedMailbox
FilterLinkedMasterAccount != null && LinkedMasterAccount != "NT AUTHORITY" && Type == "Full access"
DescriptionOnline EquipmentMailbox, RoomMailbox and SharedMailbox access - Full Access

Mappings:

DestinationOperatorSource
Resource Business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_FullAccess\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Account - CBKLookupDistinguishedName=LinkedMasterAccount
Target - CBKExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_FullAccess\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Business keyExpressionstring.Format("\<account\>{0}\_\</account\>\<exchangeguid\>{1}\_FullAccess\</exchangeguid\>", LinkedMasterAccount, ExchangeGuid)
LinkedMasterAccountMapLinkedMasterAccount
AccessTypeMapType
  1. Create a new Resource assignment query: Shared, Room and Equipment Mailbox (Send As):

Parameters:

ParameterValue
SourceMailbox access
Mailbox subtypeEquipmentMailbox,RoomMailbox,SharedMailbox
FilterLinkedMasterAccount != null && LinkedMasterAccount != "NT AUTHORITY" && Type == "Send as"
DescriptionOnline EquipmentMailbox, RoomMailbox and SharedMailbox access - Send as

Mappings:

DestinationOperatorSource
Resource Business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_SendAs\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Account - CBKLookupDistinguishedName=LinkedMasterAccount
Target - CBKExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_SendAs\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Business keyExpressionstring.Format("\<account\>{0}\_\</account\>\<exchangeguid\>{1}\_SendAs\</exchangeguid\>", LinkedMasterAccount, ExchangeGuid)
LinkedMasterAccountMapLinkedMasterAccount
AccessTypeMapType

11 Create a new Resource assignment query: Shared, Room and Equipment Mailbox (Send on Behalf):

Parameters:

ParameterValue
SourceMailboxes
Mailbox subtypeEquipmentMailbox,RoomMailbox,SharedMailbox
FilterType==”Send on behalf”
DescriptionOnline EquipmentMailbox, RoomMailbox and SharedMailbox access - send on behalf

Mappings:

DestinationOperatorSource
Resource Business keyExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_SendOnBehalf\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Account - CBKLookupBusinessKey=GrantSendOnBehalfTo
Target - CBKExpressionstring.Format("{0}\_\<exchangeguid\>{1}\_SendOnBehalf\</exchangeguid\>", BuiltIn.SourceSystemID, ExchangeGuid)
Business keyExpressionstring.Format("\<account\>{0}\_\</account\>\<exchangeguid\>{1}\_SendOnBehalf\</exchangeguid\>", GrantSendOnBehalfTo, ExchangeGuid)
PRIMARY_EMAIL*MapPrimarySmtpAddress
IdentityMapIdentity
RecipientTypeDetailsMapRecipientTypeDetails
ExternalDirectoryObjectIDMapExternalDirectoryObjectID
GrantSendOnBehalfToMapGrantSendOnBehalfTo

Edit Distribution Groups queries

By default, Omada applies a single query to retrieve only Distribution Groups during the import process. This means that Microsoft 365 Groups and Mail-Enabled Security Groups are not included. If needed, the filter can be removed or adjusted to import all group types.

Distribution Groups – Resource

Parameters:

ParameterValue
SourceDistribution Group
FilterType=="DistributionGroups" && DistributionGroupIsDirSynced == "False" && !(Convert.ToString(DistributionGroupType).Contains("SecurityEnabled"))
DescriptionDistribution Groups

Mappings:

DestinationOperatorSource
Business keyExpressionDistributionGroupGuid
Security resource business keyExpressionDistributionGroupGuid
NameMapDistributionGroupName
CategoryConstantDistribution Group
TypeConstantExchange Distribution Group
Display nameMapDistributionGroupDisplayName
Short NameExpressionDistributionGroupName
Logical key (1)Expression!string.IsNullOrEmpty(DistributionGroupCustomAttribute1) ? DistributionGroupCustomAttribute1 : DistributionGroupGuid
Distinguished nameMapDistributionGroupDistinguishedName
DistributionGroupTypeMapDistributionGroupType
DistributionGroupExternalDirectoryObjectIdMapDistributionGroupExternalDirectoryObjectId
DistributionGroupIsDirSyncedMapDistributionGroupIsDirSynced

(1) Omada uses DistributionGroupCustomAttribute1 to store the logic key when creating distribution groups through resource. This is used to prevent the duplication of resources during the import process. If you are already using this attribute for another purpose, you can choose any other available custom attribute — Exchange supports up to 15 (CustomAttribute1 to CustomAttribute15). Update the reference in your task mappings (DistributionGroup) configuration accordingly.

Distribution Groups – Resource Assignments

Parameters:

ParameterValue
SourceDistribution groups
FilterType=="DistributionGroupMembers" && MemberRecipientTypeDetails == "UserMailbox" && DistributionGroupIsDirSynced == "False" && !(Convert.ToString(DistributionGroupType).Contains("SecurityEnabled"))
DescriptionOnline distribution groups members

Mappings:

DestinationOperatorSource
Resource Business keyMapDistributionGroupGuid
Account - CBKLookupBusinessKey=MemberExternalDirectoryObjectId
DescriptionMapMemberRecipientTypeDetails

Administrative Roles – Resource Assignments

Parameters:

ParameterValue
SourceAdministrative resources
FilterType=="Members" && RecipientType?.ToString().IndexOf("Group") \< 0 && MemberRecipientTypeDetails =="UserMailbox"
DescriptionOnline role assignments

Mappings:

DestinationOperatorSource
Resource Business keyExpressionstring.Format("\<system\>{0}\</system\>\<resource\>{1}\</resource\>",BuiltIn.SystemShortName, RoleGroupSamAccountName.ToLower() )
Account - CBKLookupBusinessKey=MemberExternalDirectoryObjectId
Business keyExpressionstring.Format("\<account\>{0}\</account\>\<resource\>{1}\</resource\>", MemberExternalDirectoryObjectId, RoleGroupSamAccountName.ToLower())
DescriptionMapMemberRecipientTypeDetails

Run an import

At this point, run the data import.

Starting an import

Provisioning

Deleting the resource type attribute sets

After running the import, go to Setup > Master Data > Resources > Resource Types and delete the attribute set from the following resource types:

  • Exchange Room Mailbox
  • Exchange Shared Mailbox
  • Exchange Equipment Mailbox

Task mappings

Create the following task mappings:

Data model object type: MailboxAccess

Task mappings

Source:

Mapping typeResource type
AssignmentExchange Shared Mailbox

Mapping:

DestinationOperatorSource
Object IdMapObjectId
Object typeConstantMailboxAccess
OperationMapOperation
IdentityMapROPE_AccountName
mailboxPermissionExpressionROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("FULLACCESS") ? "Full Access" : ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("SENDAS") ? "Send As" : ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("SENDONBEHALF") ? "Send on Behalf" : null
userMailboxGuidExpressionROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").Substring(0, ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").LastIndexOf("\_"))

Data model object type: SharedMailbox

Source:

Mapping typeResource type
ResourceExchange Shared Mailbox

Mapping:

DestinationOperatorSource
Object IdMapObjectId
Object typeConstantSharedMailbox
OperationMapOperation
IdentityExpressionOperation == "DeleteIfExists" || Operation == "Delete" ? RLM_NAME.Replace("\_FullAccess", "") : null
NameExpressionRLM_NAME.Replace("\_FullAccess", "")
DisplayNameExpressionRLM_NAME.Replace("\_FullAccess", "")
AliasExpressionRLM_NAME.Replace("\_FullAccess","").Replace(" ","")

Data model object type: MailboxAccess

Source:

Mapping typeResource type
AssignmentExchange Room Mailbox

Mapping:

DestinationOperatorSource
Object IdMapObjectId
Object typeConstantMailboxAccess
OperationMapOperation
IdentityMapROPE_AccountName
mailboxPermissionExpressionROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("FULLACCESS") ? "Full Access" : ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("SENDAS") ? "Send As" : ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("SENDONBEHALF") ? "Send on Behalf" : null
userMailboxGuidExpressionROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").Substring(0, ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").LastIndexOf("\_"))

Data model object type: RoomMailbox

Source:

Mapping typeResource type
ResourceExchange Room Mailbox

Mapping:

DestinationOperatorSource
Object IdMapObjectId
Object typeConstantRoomMailbox
OperationMapOperation
IdentityExpressionOperation == "DeleteIfExists" || Operation == "Delete" ? RLM_NAME.Replace("\_FullAccess", "") : null
NameExpressionRLM_NAME.Replace("\_FullAccess", "")
DisplayNameExpressionRLM_NAME.Replace("\_FullAccess", "")
AliasExpressionRLM_NAME.Replace("\_FullAccess","").Replace(" ","")

Data model object type: MailboxAccess

Source:

Mapping typeResource type
AssignmentExchange Equipment Mailbox

Mapping:

DestinationOperatorSource
Object IdMapObjectId
Object typeConstantMailboxAccess
OperationMapOperation
IdentityMapROPE_AccountName
mailboxPermissionExpressionROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("FULLACCESS") ? "Full Access" : ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("SENDAS") ? "Send As" : ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").EndsWith("SENDONBEHALF") ? "Send on Behalf" : null
userMailboxGuidExpressionROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").Substring(0, ROPE_ResourceIdentifier.Replace("\<EXCHANGEGUID\>","").Replace("\</EXCHANGEGUID\>","").LastIndexOf("\_"))

Data model object type: EquipmentMailbox

Source:

Mapping typeResource type
ResourceExchange Equipment Mailbox

Mapping:

DestinationOperatorSource
Object IdMapObjectId
Object typeConstantEquipmentMailbox
OperationMapOperation
IdentityExpressionOperation == "DeleteIfExists" || Operation == "Delete" ? RLM_NAME.Replace("\_FullAccess", "") : null
NameExpressionRLM_NAME.Replace("\_FullAccess", "")
DisplayNameExpressionRLM_NAME.Replace("\_FullAccess", "")
AliasExpressionRLM_NAME.Replace("\_FullAccess","").Replace(" ","")

Data model object type: DistributionGroup

Source:

Mapping typeResource type
ResourceExchange Distribution Group

Mapping:

DestinationOperatorSource
Object IdMapObjectId
Object typeConstantDistributionGroup
OperationMapOperation
IdentityExpressionOperation == "Create" || Operation == "CreateIfNotExists" ? null : RLM_ODWBUSIKEY.Substring(RLM_ODWBUSIKEY.IndexOf("\_") + 1, RLM_ODWBUSIKEY.LastIndexOf("\<") - RLM_ODWBUSIKEY.IndexOf("\_") - 1)
NameMapRLM_NAME
DisplayNameMapRLM_NAME
TypeConstantDistribution
bundledAttributesExpressionstring.Format("CustomAttribute1={0}", RLM_ODWLOGICKEY)

Data model object type: DistributionGroupAssignment

Source:

Mapping typeResource type
AssignmentExchange Distribution Group

Mapping:

DestinationOperatorSource
Object IdMapObjectId
Object typeConstantDistributionGroupAssignment
OperationMapOperation
IdentityMapROPE_AccountName
distributionGroupGuidExpressionROPE_ResourceCBK.Substring(ROPE_ResourceCBK.IndexOf("\_") + 1, ROPE_ResourceCBK.LastIndexOf("\<") - ROPE_ResourceCBK.IndexOf("\_") - 1)

Event definitions

For efficient resource provisioning (including distribution groups), establish event definitions that trigger create and delete operations. To create event definitions, implement a code method to GenerateGUID in the logical key field.

Event Exchange Online – Distribution Group – Create

  1. Go to Setup > Administration > Process configuration > Event definitions. Click New. Enter the following details:

    • Name: Event Exchange Online - Distribution Group - Create
    • Event is triggered when: A new object is created
    • Triggers on objects of type: Resources
  2. Click Apply.

  3. Create two execute code methods by clicking New.

Method 1:

Method

Method 2:

Method
  1. Click OK.
  2. Click Filter to create a new filter. Enter the following details:
Filter
  1. Click OK, Close and then OK.

Event Exchange Online – Distribution Group – Delete

  1. Go to Setup > Administration > Process configuration > Event definitions. Click New. Enter the following details:

    • Name: Event Exchange Online - Distribution Group - Delete
    • Event is triggered when: An existing object is deleted
    • Triggers on objects of type: Resources
  2. Click Apply.

  3. Create a new code method by clicking New. Select Execute code method and enter the following details:

Method
  1. Click OK.
  2. Click Filter to create a new filter. Enter the following details:
Filter
  1. Click OK, Close and then OK.

Event Exchange Online – SharedMailbox, RoomMailbox and EquipmentMailbox - Create

  1. Go to Setup > Administration > Process configuration > Event definitions. Click New. Enter the following details:

    • Name:: Event Exchange Online - SharedMailbox, EquipmentMailbox, RoomMailbox – Create
    • Event is triggered when: A new object is created
    • Triggers on objects of type: Resources
  2. Click Apply.

  3. Create a new code method by clicking New. Select Execute code method and enter the following details:

Method
  1. Click OK.
  2. Create another code method by clicking New. Select Execute code method and enter the following details:
Method
  1. Click OK.
  2. Click Filter to create a new filter. Click Filter expressions and then New. Enter the following details:
Filter
  1. Click OK.
  2. Create a new filter. Enter the following details:
Filter
  1. Click OK.

Event Exchange Online – SharedMailbox, RoomMailbox and EquipmentMailbox - Delete

  1. Go to Setup > Administration > Process configuration > Event definitions. Click New. Enter the following details:

    • Name: Event Exchange Online - SharedMailbox, EquipmentMailbox, RoomMailbox – Delete
    • Event is triggered when: An existing object is deleted
    • Triggers on objects of type: Resources
  2. Click Apply.

  3. Create a new code method by clicking New. Select Execute code method and enter the following details:

Method
  1. Click OK.
  2. Click Filter to create a new filter. Click Filter expressions and then New. Enter the following details:
Filter
  1. Click OK.
  2. Create a new filter. Enter the following details:
Filter
  1. Click OK.