自动化每日Outlook日历会议摘要
总体目标
该工作流会在预定时间(默认每天上午8点)自动运行,计算当天的日期范围,从指定的Microsoft Outlook账户获取当天的所有日历事件,将这些事件格式化为用户友好的HTML电子邮件,然后将摘要发送到指定邮箱。
工作原理(逐步分解):
节点:计划触发器(计划触发器节点)
- 类型:
n8n-nodes-base.scheduleTrigger
- 目的: 在预定义时间自动启动工作流。
- 配置:
- 规则 > 间隔 > 触发时间:8
(根据n8n服务器的时区,每天上午8:00触发)
- 规则 > 间隔 > 触发时间:8
- 输出: 在预定时间触发工作流执行。
节点:代码(代码节点)
- 类型:
n8n-nodes-base.code
- 目的: 动态计算“今天”的开始和结束时间戳,基于工作流触发时间。
- 配置(JS代码):
- 获取当前日期和时间(工作流运行时间)。
- 将
today
设置为当天的开始时间(00:00:00)。 - 将
tomorrow
设置为下一天的开始时间(00:00:00)。 - 将这些转换为ISO字符串格式(例如,
2023-10-27T00:00:00Z
)。
- 输出: 包含
today
和tomorrow
ISO日期字符串的JSON对象。
节点:Microsoft Outlook(Microsoft Outlook节点)
- 类型:
n8n-nodes-base.microsoftOutlook
- 目的: 从Outlook获取计算日期范围内的日历事件。
- 配置:
- 资源:事件
- 过滤器(自定义):
start/dateTime ge '{{$json.today}}' and start/dateTime lt '{{$json.tomorrow}}'
(OData过滤器,用于获取今天开始或之后且明天之前的所有事件。)
- 输出: 来自Outlook的事件对象列表。
节点:编辑字段(设置节点)
- 类型:
n8n-nodes-base.set
- 目的: 转换并简化Outlook的事件数据结构。
- 配置: 将Outlook事件字段映射到新字段名:
id
subject
description
(来自bodyPreview
)meeting_start
meeting_end
attendees
meeting_organizer
meeting_organizer_email
meeting_link
- 输出: 包含简化会议详情的JSON对象列表。
节点:生成HTML(代码节点)
- 类型:
n8n-nodes-base.code
- 目的: 生成一个HTML电子邮件正文,总结所有会议,并创建邮件主题行。
- 配置(JS代码):
- 处理来自“编辑字段”节点的所有会议项。
- 定义
generateMeetingReminderEmail
函数,将每个会议格式化为HTML“卡片”。 - 转义HTML特殊字符,格式化时间、与会者等。
- 将所有卡片拼接成完整的HTML文档。
- 生成主题行(例如,“🗓️ 您今天的会议 – 周五,10月27日”)。
- 输出: JSON对象:
{ "subject": "邮件主题字符串", "html": "生成的HTML内容字符串" }
节点:发送电子邮件(电子邮件发送节点)
- 类型:
n8n-nodes-base.emailSend
- 目的: 将生成的HTML摘要邮件发送到指定收件人。
- 配置:
- 发件人:
[email protected]
- 收件人:
[email protected]
- 主题:
{{ $json.subject }}
(来自“生成HTML”节点) - HTML:
{{ $json.html }}
(来自“生成HTML”节点)
- 发件人:
- 输出: 邮件发送状态。
便签
- 更新时间: 在“计划触发器”节点附近;根据需要配置触发时间。
- 更新邮件详情: 在“发送电子邮件”节点附近;更改发件人和收件人邮箱地址。
如何自定义
计划(计划触发器节点):
修改触发时间、分钟或周几以更改工作流运行时间。-
日期范围(代码节点):
调整JS代码以更改日期范围(例如,下一个工作日或下周)。 -
Outlook日历(Microsoft Outlook节点):
指定日历ID或优化OData过滤器以选择事件。 -
事件详情(编辑字段节点):
添加、删除或修改提取的事件字段。 -
邮件外观和内容(生成HTML节点):
更改CSS样式、会议详情或主题行逻辑。 -
无会议场景:
在“编辑字段”节点后使用“If”节点处理无会议日(例如,发送“今天无会议!”邮件或跳过邮件)。 -
邮件收件人(发送电子邮件节点):
更新“发件人”和“收件人”邮箱;多个收件人用逗号分隔。
错误处理
- 使用“错误触发器”节点捕获和处理故障(Outlook API或SMTP错误)。
- 发送警报或记录错误。
使用场景
- 自动化每日个人会议简报: 获取每日会议摘要邮件。
- 自动化团队会议摘要: 发送每日团队日历摘要邮件。
- 主动每日计划: 自动了解当天的日程安排。
所需凭证
在n8n实例的凭证下添加以下凭证:
-
Microsoft Outlook(OAuth2 API):
- 使用节点:“Microsoft Outlook”节点
- 工作流中的凭证名称:
Outlook
(ID:JcYqVJwcwZIhB8oy
) - 需要OAuth2和
Calendars.Read
权限。
-
SMTP:
- 使用节点:“发送电子邮件”节点
- 工作流中的凭证名称:
SMTP账户
(ID:vCexcphurglwGBfk
) - 需要SMTP服务器详情(主机、端口、用户名、密码)。
确保这些凭证配置正确并具有所需权限。激活工作流以按计划执行。
由Akhil使用n8n制作,充满❤️。