使用 n8n 搭建定时发送天气邮件的工作流
n8n 介绍
n8n 是一款开源的工作流自动化工具,它允许用户通过可视化界面创建、编辑和运行自动化任务。与传统编程方式不同,n8n采用节点连接的方式,将各种应用程序和数据源链接起来,实现自动化操作,设计理念是“连接一切”。
该工具的核心特点包括:
- 丰富的节点生态:n8n拥有超过400个节点,覆盖主流应用和服务,如GitHub、Slack、Google Drive、数据库(MySQL、MongoDB)以及各类API,支持数据传输、处理和同步。
- 可视化工作流设计:用户可通过拖拽节点并连接形成工作流程,界面直观,即使非技术人员也能快速上手。
- 强大的脚本支持:在节点配置中,用户可使用JavaScript编写自定义代码,实现灵活的数据清洗、转换或复杂逻辑处理。
- 可扩展性和自定义性:支持开发自定义节点或调用外部API,满足特定业务需求,同时提供企业版以支持多用户管理、权限控制等高级功能。
创建工作流
注册并成功登录n8n平台,导航至“概述”页面,点击右上角“创建工作流”按钮,进入编辑器页面。 
添加触发器
触发器是工作流的起点,决定了流程何时以及如何开始执行,比如手动触发,定时触发,应用事件触发等等。此处我们添加一个定时触发器,并设置每天早上 8:30 触发。 在编辑器页面,点击页面的“+”按钮,选择“按计划”触发。
在弹出的定时触发器中,根据需求填写“触发天数”和“时间”,点击Add Rule按钮可添加多个触发规则,让工作流在不同时间运行。:
- Trigger Interval:工作流触发的间隔周期,例如:秒(Seconds),分钟(Minutes),小时(Hours),天(Days)等等
- Days Between Triggers:工作流触发的间隔时间
- Trigger at Hour:工作流在一天中触发的具体时间,例如:8点
- Trigger at Minute:工作流在一天中触发的具体分钟,例如:30秒 此处我们选择,间隔周期为 Days,间隔时间为 1,具体时间为 8am,具体分钟为 30,点击执行步骤,右侧查看输出结果(选择JSON)。
查看结果时,发现时区为America/New_York,所以我们需要修改时区为Asia/Shanghai。 返回画布,点击编辑器上方右边的“···”按钮,选择设置,在弹框中修改时区并保存。 保存时区后,在画布中双击组件,点击执行步骤,重新查看输出结果,时区展示正确。 

添加HTTP请求
使用HTTP请求组件获取天气信息。点击定时触发器后的“+”按钮,选择“核心 -> HTTP Request”组件。 
在弹出的HTTP请求界面展示三个部分:
- 左侧展示上一个组件的输出数据,此处作为输入数据
- 中间是HTTP Request的配置参数
- 右侧是当前组件的输出数据,且作为下一个组件的输入数据 开始配置参数,选择HTTP请求方法为 GET,并输入URL。(需要用户去注册接口盒子平台获取个人ID和KEY)
https://cn.apihz.cn/api/tianqi/tqyb.php?id=10011034&key=b4138a4432bf6ac940702dc1d9368969&sheng=湖北&place=武汉&day=1&hourtype=1填入数据后,点击执行步骤,右侧查看输出结果(选择JSON)。 
添加AI Agent组件
此时我们获取到的是全天的天气信息,所以我们要添加AI,将全部数据交给AI进行分析,并输出准确且简单易懂的结论。 点击上一个组件后的“+”按钮,选择“人工智能 -> AI Agent”组件。 
在弹出的AI Agent页面,选择提示来源(Source for Promp) 和提示信息(Prompt)。
- Source for Promp:选择Define below,自定义提示来源
- Prompt:鼠标悬浮Prompt输入框,右上角切换为表达式,输入
{{ $json }},意思是获取HTTP Request组件输出的全部json数据 点击Add Option按钮,选择System Message,输入要发给AI的消息。
你是一个专业的气象学家,并且很有生活经验。根据输入的信息,生成一个简短的邮件,邮件内容是对于出行和生活的提示,要求语气更生动一些,但也要带上数据,体现气象科学的严谨,只输出结果,不要思考过程:
至此,添加AI Agent步骤完成,我们需要返回画布,在编辑器右上角点击“保存”按钮,并点击菜单“个人”切换页面,进行凭证和大语言模型的添加操作。 
添加凭证
在选择大语言模型前,我们需要添加模型的凭证信息。 浏览器新开一个页面,打开AGIOne平台,注册账号并登录,在模型广场中选择要添加的模型,点击API调用进入详情页面,获取API Key和URL信息。
返回n8n个人页面,切换标签页到“凭证”,点击右上角“创建凭证”按钮,
搜索要连接的应用或服务,此处搜索并选择OpenAi,点击“继续”,
将获取到的API Key和Base URL填入面板并点击“保存”,页面提示连接测试成功,表示Key已生效,点击面板右上角“×”按钮,返回个人页面,凭证保存成功后我们要去选择并使用模型。 Base URL: https://agione.cc/hyperone/xapi/api
添加大语言模型
切换到概览,点击刚刚保存的工作流“My workflow”,回到画布页面,
在画布页面,AI Agent组件下方有三个按钮,我们点击“Chat Model +”按钮,在Language Models页面选择一个模型,此处我选择“OpenAI Chat Model”。
在弹出的OpenAI Chat Model页面,选择我们刚刚加入的凭证,Model筛选改为“按ID”,将在AGIOne平台中选择的模型ID复制到输入框,选择完成后返回画布,点击画布下方“执行工作流程”按钮。(暂不支持Responses API,请关闭Use Responses API开关)
工作流执行完成后,双击AI Agent组件,观察配置页面左下角,模型添加成功,点击执行步骤,右侧查看输出结果(选择JSON)。 
添加Markdown组件
AI输出的信息一般是Markdown格式,但邮件客户端不一定支持Markdown渲染,所以添加Markdown组件的目的是将Markdown转换成HTML。 点击上一个组件后的“+”按钮,选择“数据转换 -> Markdown”组件。 
在弹出的Markdown页面:
- Mode选择Markdown to HTML
- 鼠标悬浮Markdown输入框,右上角切换为表达式,鼠标抓取输入数据中的output字段拖拽至Markdown输入框,自动生成表达式
{{ $json.output }},意思是获取AI Agent组件输出的json数据中output字段的值 - Destination Key默认使用data 配置参数后,点击执行步骤,右侧查看输出结果(选择JSON)。

添加发送邮件组件
天气预报内容已生成,但我无法在每天的8点30打开n8n去执行工作流查看天气,所以要将信息每天自动发送至我的邮件,便于查看。 点击上一个组件后的“+”按钮,直接搜索email,选择“Send Email -> Send an Email”组件。 
在弹出的Send Email页面,点击“要连接的凭证”下拉框,选择创建新凭证,在弹出的面板中,输入User、Password、Host和Port信息(这些信息可在所使用的邮件平台设置页面,第三方客户端登录中获取),点击保存按钮,页面提示连接测试成功,表示邮件信息已生效。
点击面板右上角“×”按钮,返回Send Email页面:
- 选择刚刚添加邮件凭证
- Operation:默认选择Send
- From Email:输入发件人的电子邮件地址
- To Email:输入收件人的电子邮件地址
- Subject:输入邮箱的主题,例如:武汉今日天气
- HTML:鼠标悬浮HTML输入框,右上角切换为表达式,使用鼠标将上一个组件输出的data数据拖拽至HTML框中 配置参数后,点击执行步骤,右侧查看输出结果(选择JSON)。
登录收件的邮箱地址,查看是否收到邮箱,若收到,表示发送成功。
最后,返回画布,在编辑器左上角修改工作流名称为“天气提示”,在右上角保存和激活,这样工作流就会在每天早上8:30发送天气提示至邮件了! 