Power Automate无直接添加动作,如何自动导入Microsoft Forms新客户至Microsoft Bookings?
解决方案:Power Automate实现Forms提交自动添加Bookings新客户
核心思路
由于Microsoft Bookings内置连接器无直接创建客户的动作,可通过Microsoft Graph API结合Power Automate的「HTTP」动作实现,这是当前内置工具链下最可行的替代方案。
具体步骤
1. 前置准备:配置Graph API权限
- 进入Azure Active Directory → 应用注册 → 新建注册
- 为应用添加
Bookings.ReadWrite.All应用权限,并完成管理员同意 - 记录生成的客户端ID、客户端密码、租户ID,后续HTTP动作会用到
2. 工作流分步实现
步骤1:触发条件(已完成)
保留已设置的「当Microsoft Forms表单被提交时」触发动作,提取表单中的客户核心信息(姓名、邮箱、电话等)。
步骤2:检查客户是否已存在
- 添加Bookings连接器的「列出客户」动作
- 新增「筛选数组」动作:
- 输入内容选择「列出客户」的返回结果
- 筛选条件设为:
@equals(item()?['email'], triggerBody()?['rXXXXXX'])(rXXXXXX替换为Forms中邮箱字段的响应ID) - 若筛选数组输出为空,判定为新客户,执行下一步;否则跳过添加流程
步骤3:调用Graph API添加新客户
先添加一个「HTTP」动作获取访问令牌:
- 方法:
POST - URI:
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token - 头部:
Content-Type: application/x-www-form-urlencoded - 正文:
grant_type=client_credentials&client_id={clientId}&client_secret={clientSecret}&scope=https://graph.microsoft.com/.default
(替换{tenantId}、{clientId}、{clientSecret}为前置准备中记录的信息)
再添加「HTTP」动作创建客户:
- 方法:
POST - URI:
https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/{bookingBusinessId}/customers
({bookingBusinessId}可通过Bookings连接器的「获取我的预订业务」动作获取) - 头部:
Content-Type:application/jsonAuthorization:Bearer @{outputs('获取访问令牌')?['body']['access_token']}
- 正文(根据表单字段调整):
{ "displayName": "@{triggerBody()?['rXXXXXX']}", "emailAddress": "@{triggerBody()?['rXXXXXX']}", "phone": "@{triggerBody()?['rXXXXXX']}" }
简化替代方案(适合自助场景)
若对重复客户容忍度较高,可在Bookings中生成服务预订链接,Forms提交后自动将链接发送给客户。客户点击链接完成预订时,Bookings会自动创建其客户记录,但此方式无法后台直接创建客户,仅适用于允许用户自助操作的场景。
内容的提问来源于stack exchange,提问作者Stoufa
相关产品推荐
相关产品推荐

