通过Power Automate创建Dynamics 365 Appointment生成Teams会议遇阻
解决方案:通过Power Automate生成带Teams在线会议的Dataverse Appointment
方案1:使用Dataverse原生AddOnlineMeeting Action(最优解)
- 不要直接创建带在线会议标记的Appointment,先创建草稿状态的Appointment:
- 设置
StateCode=0(草稿)、StatusCode=1(未开始) - 提前填好
RequiredAttendees/OptionalAttendees(用分号分隔的邮箱,比如user1@contoso.com;user2@contoso.com)
- 设置
- 接着调用Dataverse的
AddOnlineMeetingAction,传入刚创建的Appointment ID - 这个Action会自动调用Teams服务生成完整的在线会议信息(包括Join URL、Meeting ID等),且组织者默认是触发流的用户(前提是流的Dataverse连接开启了使用调用者的连接,若之前保存后重置,尝试重新创建连接并确认该选项)
方案2:修复Teams Connector的组织者问题
- 若想用Teams Connector创建会议再同步到Dataverse,用托管身份+解决方案流绕过连接重置问题:
- 在Power Platform Admin Center给目标环境启用托管身份
- 将流移入解决方案,设置流的运行身份为调用者
- 创建Teams连接时选择「使用托管身份」,在「创建会议」操作中把
Organizer字段设为触发流的用户邮箱(从自定义实体的创建者字段提取,比如triggerOutputs()?['body/_createdby_value@Microsoft.Dynamics.CRM.emailaddress1']) - 会议创建后,将Teams会议的Join URL、Meeting ID同步到Dataverse的Appointment对应字段
方案3:修正插件实现逻辑
- 之前插件仅设置
IsOnlineMeeting=1和MeetingType无效,需调用Dataverse的AddOnlineMeeting消息:// 插件Post-operation阶段执行,目标为Appointment实体 var addOnlineMeetingReq = new AddOnlineMeetingRequest { Target = new EntityReference("appointment", ((Entity)context.InputParameters["Target"]).Id), MeetingType = MeetingType.TeamsMeeting }; context.OrganizationService.Execute(addOnlineMeetingReq); - 插件注册时设置执行用户为调用用户,确保会议组织者是触发记录创建的用户,而非插件注册账户
方案4:传统工作流+Power Automate批量补参会人
- 若传统工作流能生成Teams会议但无法添加多参会人,用以下组合方式:
- 传统工作流创建带Teams会议的Appointment(先填一个参会人占位)
- Power Automate监听Appointment创建事件,循环处理参会人列表,通过
Add Activity Party操作批量添加参会人到该Appointment
内容的提问来源于stack exchange,提问作者ReshDev
相关产品推荐
相关产品推荐

