如何用Power Automate从通话日志列表更新联系人列表的最新通话日期
解决方案:用Power Automate同步联系人列表的最新通话日期
整体流程思路
先按客户分组聚合通话日志里的最晚通话日期,再匹配联系人列表更新对应字段,避免逐条遍历的低效问题。
具体步骤
1. 触发流(手动触发)
- 选择「手动触发流」作为起点,无需添加输入参数。
2. 获取所有通话日志条目
- 添加「获取项目」动作,选择你的Call Log列表。
- (可选)若通话日志条目较多,开启「分页」设置,避免遗漏数据。
3. 按客户分组并提取最晚通话日期
- 添加「选择」动作,仅保留所需字段:
- 从动态内容中选择
Client(通话日志的客户字段) - 从动态内容中选择
Call Date(通话日志的日期字段)
- 从动态内容中选择
- 添加「分组」动作:
- 「来自」选择上一步「选择」的输出
- 「依据」设置为
Client - 「操作」选择「最大值」
- 「选择」设置为
Call Date
这一步会直接生成每个客户对应的最晚通话日期,输出格式示例:
[ { "key": "Client 1", "value": "2024-07-29" }, { "key": "Client 2", "value": "2024-03-20" } ]
4. 遍历分组结果,更新联系人列表
- 添加「应用到每一个」动作,选择上一步「分组」的输出。
- 在「应用到每一个」内添加「获取项目」动作,筛选联系人列表中匹配当前客户的条目:
- 选择Contacts列表
- 「筛选查询」输入:
Name eq '@{items('应用到每一个')?['key']}'
注意:
Name是联系人列表的客户名字段,需与实际列名一致;若为中文列名,要使用列的内部名称(可在列表设置中查看) - 接着添加「更新项目」动作:
- 选择Contacts列表
- 「项目ID」选择上一步「获取项目」输出的
ID - 「Latest Call Date」(联系人列表的日期字段)选择
items('应用到每一个')?['value']
注意事项
- 确保两个列表的客户名称完全一致(大小写、空格均需匹配),否则筛选会失败。
- 若联系人列表中无对应客户,「获取项目」会返回空值,「更新项目」不会执行,也不会报错。
- 若日期格式出现异常,可在「选择」动作中用
formatDateTime()函数转换,例如formatDateTime(item()?['Call Date'], 'yyyy-MM-dd')
内容的提问来源于stack exchange,提问作者grc
相关产品推荐
相关产品推荐

