当前位置: 首页 > news >正文

n8n实践-使用n8n搭建一个定时发送天气预报邮件的工作流

前言


传统的定时任务,一般是使用linux cron定时运行某个位置的某个脚本。

  1. 需要准备各种运行环境;
  2. 脚本比较分散,管理起来相对麻烦;
  3. 需要有一定的代码能力,比如常见的shell、python等等;
  4. 不方便接入ai, 更换ai也比较麻烦。

工作流的好处是:

  1. 把定时任务、触发任务等统一管理;
  2. 减少代码开发量,不会写代码也没关系,简单的代码也可以交给豆包这些ai去帮忙写;
  3. 调用ai处理数据过程简化,不必写底层调用ai的驱动;
  4. 可以运用各种插件,并且社区也会分享各种有趣好用的工作流。

上一篇记录了如何在debian11 上使用 podman 启动一个 n8n 容器,本篇准备记录一下搭建一个定制发送天气预报的工作流。虽然有点为了用而用的感觉,但也算某种意义上的 hello world 了。

正文


需求:
每天早上 7:30 自动获取天气数据,通过ai分析后生成通俗、生动的出行和生活提示,最后把提示通过邮件发送给自己。

大致流程:
每天早上 7:30 触发 -> 调用第三方平台接口获取天气数据 -> 将数据丢给ai分析 -> ai生成的数据整理一下,给自己发邮件

1. 创建工作流

点击首页右上角按钮,创建一个工作流

image

2. 添加触发器

触发器,也就是工作流的起点,有各种各样的触发条件,比如手动触发、计划触发等等。现在希望每天早上 7:30 触发,所以添加一个按计划触发的组件。

image

填写时间,选择触发周期为 Day, 触发间隔 1, 具体时间 7am, 具体分钟数 30, 对应每天早上 7:30 触发。
填写完毕后,点击执行步骤,右侧可以看到执行详情。

image

点击返回画布,返回主页面。然后点击保存 (随时保存是一个好习惯。。)

3. 添加http请求组件

点击时间触发器后面的“+”号,选择 核心-> HTTP Request 组件
image

image

点击 Http Request 后,自动添加了一个组件,并弹出组件设置界面:
image

从组件界面上,可以看到分为了三部分:

  • 左边是上一个组件的输出数据,这里作为本组件的输入部分;
  • 中间是这个组件的配置
  • 右边是这个组件执行后的输出数据,作为下一个组件的输入。

下面开始配置组件。
保持这个界面不动,在浏览器新开一个页面,访问: https://www.apihz.cn/api/tqtqyb.html
image

这是接口盒子平台提供的一个免费查询天气的接口,需要先注册一下,获取到id和key, 注册完成后,再次访问此界面,界面会自动生成一个填写了个人id和key的示例url,url 和返回参数的说明接口盒子已经给了,这里不做赘述。一般只需要核对id、key, 然后把sheng改成自己的省、place改成自己的市即可。

https://cn.apihz.cn/api/tianqi/tqyb.php?id=88888888&key=88888888&sheng=四川&place=绵阳&day=1&hourtype=1

将这个url填入到n8n上面的Http Request组件中,method 选择get,点击执行步骤,右侧输出选择 JSON格式,结果如下:
image

此时,已经成功调用了接口盒子的接口,获取到了天气数据,包括调用接口时的实时数据以及当天的按小时划分的数据。可以添加一个筛选组件对数据的筛选和处理,可以自行探索,比如只要实时数据,可以查看参考中的链接[1].

这里目的是获取全天的天气预报,所以把所有数据丢给ai, 相信ai可以给出更全面的分析。

4. 添加并配置ai事务

同样,点击上一个组件的加号,添加新组件。人工智能-> AI Agent
image

image

添加完成后,弹出如下窗口
image

上面是如何选择上一步的数据,下面是这些数据用那个ai模型处理(Chat Model)、数据缓存(Memory)、工具(Tool)
这里不需要 Memory 以及 Tool,仅 Chat Model 就行。

点击 Chat Model 选择并配置模型,点击后,自动弹出界面:
image

这里选择 DeepSeek 模型, 选择完成后,保持此界面。浏览器新开一个界面,申请一个deepseek api key:
访问:https://platform.deepseek.com/
登录后,点击 Api Keys -> 创建 api key
image

创建完成后,复制key (注意,这里key复制完成后,再次刷新页面,无法复制key,所以key要保存好)
然后,充值。。。可以充值几块钱,基本上每次调用花几分钱。

回到n8n界面,在deepseek 组件配置中,点击创建新凭证,这里如果之前其他项目配置过,可以直接复用。
image

将上面的key填入配置后,页面提示连接成功,表示 key 生效了。
image

返回画布,重新点击打开 ai agent 组件:
image

第一个选项,信息源选择 Define below,意思是按照下面的选项自定义信息源。
第二的选项,输入 {{ $json }}, 意识是取上一个Http Request 组件获取到的全部 json 数据,如果想要取部分数据,可以直接用鼠标从左侧json数据中拖动。
点击 Add Option, 选择 System Message,作为ai提示词。也就是给ai立设定,让它进入或扮演某个角色。

添加完毕后,点击执行步骤,等一会可以看到右侧有处理好的数据:
image

5.将数据转换为html

同样,在AI Agent组件后面,添加一个组件 Markdown,可以直接搜索组件名称,也可以通过 数据转换-> Markdown 找到。这个组件的作用是将Markdown转换成html,或者将 html 转换为 Markdown.

这里的目的是将Markdown转换为html。因为ai一般输出格式是Markdown,包括字体大小、表格、代码高亮等等,但是要求显示时支持Markdown渲染,邮件客户端不一定支持Markdown渲染,所以需要将Markdown转换为html,html 可以很好地保留Markdown的格式。

配置时:
Mode 选择 Markdown to HTML,然后将左侧的数据中的"output"使用鼠标直接拖拽到第二的选项中,第三个选项使用默认的data
点击执行步骤后,输出到右侧。

image

6. 发送邮件

添加组件:Send Mail

image

现在需要配置邮件的账号信息。以QQ邮箱为例:
在网页登录QQ邮箱,依次找到设置->安全设置
开启SMTP服务(参考页面提示配置方法),点击生成授权码(后续作为发邮件时的密码)
image

回到n8n Send Email 组件配置,点击创建新凭证(如果之前已经添加过,直接可以复用凭证)
User 填写邮箱账号:xxx@qq.com
Password 填写上面的授权码
Host 填写 smtp.qq.com
Port 使用默认的 465
下面的不用管,点击保存。
image

接下来继续配置 Send mail
Operation 选择 Send
From Email 填写你自己的QQ邮箱地址
To Email 填写要邮件接收者的邮箱地址
Subject 邮箱主题:比如天气
Email Format 选择 Html
将上一步Markdown 输出的data字段拖拽到 HTML框中
image

点击执行步骤,如果收到了邮件,表示发送成功。

最后,回到画布,然后修改左上角的工作流名称为 天气提示;在右上角点击保存、激活,然后一个工作流就设计完成了。
image

参考


[1]. n8n 就像拼乐高 ,手把手搭建高效 AI 信息搜集流!

http://www.wxhsa.cn/company.asp?id=7763

相关文章:

  • Cython-编程学习指南第二版-全-
  • 印度尼西亚股票数据API对接实现
  • OpenBMB 发布无分词器 TTS VoxCPM;儿童口语硬件 Dex 融资 480 万美元:拍摄真实物体,对话学习外语丨日报
  • 一天一款实用的AI工具,第1期,AI标题生成工具
  • 重组蛋白表达避坑指南
  • 易被忽略的vim中视图模式
  • 电商核心业务 - 指南
  • 一言
  • ai
  • LlamaIndex 项目深度技术分析 - 详解
  • 深入解析:css消除图片下的白边
  • linux增加网卡ip地址
  • Python 包与环境管理简史:从混乱到优雅
  • qoj853 Flat Organization
  • shell命令中循环执行操作的命令
  • 2025年9月中国数据库排行榜:达梦挺进榜眼位,崖山首入前十强
  • 基于QEMU模拟器搭建Builtroot下的QT开发环境
  • vlan
  • windosw 配置arp绑定
  • 2024年最受欢迎的渗透测试工具盘点
  • Unity学习 5.6 FBX
  • SEERC 2022 题面简要翻译
  • 【稳定检索、线上线下参会、马理工主办】第十一届建筑、土木与水利工程国际学术会议(ICACHE 2025)
  • telnet安装与开启
  • 20250917NOIP#21
  • 又一个新项目完结,炸裂!
  • 阿里云防刷神器ESA搞活动免费领取
  • 报错TypeError: Unknown file extension .ts - broky
  • 抗 IgE 单克隆抗体联合变应原免疫治疗(AIT):过敏性疾病治疗的协同新策略
  • php怎么关闭数据库连接