I need to create an automation to migrate scheduled meeting invites (including attendees, organizers, attachments, start time, end time, meeting occurrence, and external email attendees) of all users in the existing tenant to another new tenant. Kindly advise on the usage of logic app consumption workflow with Microsoft graph API will help me to achieve this. Looking for suggestions and advises I create a JSON schema which helps to migrate scheduled meeting invites from one tenant to another tenant as shared below:
{
"$schema":"http://json-schema.org/draft-07/schema#",
"type":"object",
"properties":{
"sourceTenantId":{
"type":"string",
"description":"The ID of the source tenant where the meetings are currently scheduled.",
"examples":[
"sourceTenantId"
]
},
"sourceTenantToken":{
"type":"string",
"description":"The access token for the source tenant, obtained through the Microsoft Graph API authentication process.",
"examples":[
"sourceTenantToken"
]
},
"destinationTenantId":{
"type":"string",
"description":"The ID of the destination tenant where the meetings will be migrated.",
"examples":[
"destinationTenantId"
]
},
"destinationTenantToken":{
"type":"string",
"description":"The access token for the destination tenant, obtained through the Microsoft Graph API authentication process.",
"examples":[
"destinationTenantToken"
]
},
"userIds":{
"type":"array",
"description":"An array of user IDs whose scheduled meetings will be migrated.",
"items":{
"type":"string"
},
"maxItems":80000,
"examples":[
[
"user1",
"user2",
"user3",
"..."
]
]
},
"meetingFilter":{
"type":"string",
"description":"An optional filter to limit the set of meetings to migrate, based on the Microsoft Graph API filter syntax.",
"examples":[
"$filter=start/dateTime ge '2022-01-01T00:00:00Z' and start/dateTime lt '2022-02-01T00:00:00Z'"
]
}
},
"required":[
"sourceTenantId",
"sourceTenantToken",
"destinationTenantId",
"destinationTenantToken",
"userIds"
]
}
I was thinking of using HTTP trigger of logic app consumption workflow as mentioned below,
A connector to authenticate and Authorize the source and destination tenant using Tenant Id
An HTTP trigger with GET action to retrieve all scheduled meetings from the source tenant which includes attendees, organizers, attachments, start time, end time and meeting occurrence, external email ids
An HTTP trigger with POST to create a meeting in the destination tenant using the above GET action HTTP trigger
A notification message to all users using a response trigger
Where to find Audience I'd while performing azure ad oauth in HTTP trigger of any action like GET, PUT, POST, PATCH, DELETE.
Do I need to use for each loop action to automate the migration process without me entering details manually to ensure no details are getting missed while migration? Kindly advise on the approach I am planning to take and I am open to hearing from your perspective as well.