n8n 学习管理系统集成:3 个任务搭出每周课程提醒工作流
【免费下载链接】n8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.项目地址: https://gitcode.com/GitHub_Trending/n8/n8n
n8n 是一个 fair-code(公平代码)许可的工作流自动化平台,把 400 多个现成集成节点和自定义代码放在同一个可视化画布上,支持自托管或云服务。本文围绕n8n 学习管理系统集成这个主题,带你用 3 个独立小任务搭出一条自动工作流:每周一上午 9 点,从 LMS(学习管理系统)API 拉取本周课程数据,整理成课程与作业提醒,自动推送到班级 Slack 频道。每个任务都可以单独完成,你已经会哪部分,就可以直接跳过。
搭建前的准备
开始之前,先备齐 3 样东西:
一个可用的 n8n 实例
不想折腾:注册 n8n 云服务账号,浏览器直接进编辑器;
想数据留在自己手里:用 Docker 本地自托管。仓库里的
docker/images/n8n/目录提供现成的镜像与启动脚本,一条命令即可:# 用 Docker 启动 n8n,然后浏览器打开 http://localhost:5678 docker compose up -d
LMS 的 API 凭据
- 向学习管理系统管理员索取:API 基础地址(形如
https://lms.yourschool.edu/api)和一个 API Key。 - 拿不到 Key 也没关系,可以先拿任何公开的 JSON 接口练手,流程完全一样。
- 向学习管理系统管理员索取:API 基础地址(形如
Slack 机器人令牌
- 在 Slack 管理后台创建一个自定义应用(Custom App);
- 开启"发送消息"(Chat)权限;
- 把应用拉进课程群,拿到以
xoxb-开头的 Bot Token。
💡 三个凭据在 n8n 里统一放在"凭据"面板里管理,后面的任务会用到。
任务一:配置定时触发,让工作流每周一自动运行
要做什么:让整条流程每周一上午 9:00 自动跑一次,不需要人点。
怎么做:
- 新建工作流,点击画布上的
+添加第一个节点。 - 在节点搜索框里输入
Cron,选中Cron定时触发器。搜索框支持按名称直接筛选,找不到节点时先看一眼这里: - 展开参数,把触发时间设置为:小时
9、分0、星期Monday。 - 保存。
做完看到什么效果:选中 Cron 节点后,面板会显示"下次运行时间",应该指向最近的周一上午 9 点。工作流本身还不会发送任何东西——它现在只是在等那个时间点。
任务二:用 HTTP Request 节点从 LMS 拉取课程数据
要做什么:在触发之后,调用学习管理系统的接口,把本周课程列表取回来。
怎么做:
- 点 Cron 节点的输出端口,添加一个HTTP Request节点。
- 请求方法选
GET,URL 填入课程接口地址,例如:{你的API基础地址}/courses。 - 配置认证:根据 LMS 的鉴权方式选择对应的凭据类型(自定义 Header、Query 参数或 OAuth 等)。首次使用时 n8n 会打开一个凭据创建面板,按界面逐项填入 API 地址、账号和 Key,保存后即可在所有节点复用:
- 响应格式保持默认 JSON。
做完看到什么效果:手动点一次运行后,HTTP Request 节点上会显示"收到 N 条数据",点开输出面板能看到课程数组,每条记录大致包含课程名、开始日期、作业截止时间等字段。只要数据能取回来,这个任务就通过了。
任务三:格式化消息,用 Slack 节点推送到课程群
要做什么:把上一节点的 JSON 数据整理成人能读的一句话,发到课程 Slack 频道。
怎么做:
在 HTTP Request 后面接一个Code节点,把课程数据拼成消息文本。下面这段短脚本的作用,就是把本周课程逐条转成"课程名 + 截止日期"的行:
const courses = $input.first().json.courses; const lines = courses.map(c => `《${c.name}》开始 ${c.startDate},作业截止 ${c.homeworkDeadline}`); return [{ json: { text: `📚 本周课程更新\n${lines.join('\n')}` } }];再添加一个Slack节点,接在 Code 节点后面。节点的参数都通过下拉框选择,例如 Resource 选
Message、Operation 选Send:在 Slack 节点里选刚才创建的凭据,Channel 填入课程群 ID(或群名),Text 字段用表达式引用上一步的结果:
{{ $json.text }}。保存。
做完看到什么效果:运行一次工作流,课程 Slack 群会收到一条消息,列出本周每门课程的开始时间和作业截止时间。这就是整条 n8n 学习管理系统集成流程的终点。
联调与验证
按顺序确认 4 点,流程就跑通了:
- 点画布下方橙色的Execute Workflow按钮,触发一次完整运行。
- 逐个点击每个节点,检查输入输出:Cron 有触发记录 → HTTP Request 拿到课程数组 → Code 输出的
text排版正常。 - 到 Slack 课程群确认消息真的送达,格式符合预期。
- 全部通过后,把右上角的Inactive开关切到激活状态。此后每周一上午 9 点工作流自动执行,随时可以切到 "Executions" 页签查看历史运行记录。
两个最常见的小问题:
- Slack 收不到消息:检查 Bot Token 是否开了发送消息权限、应用是否已加入该频道。
- HTTP Request 返回 401:API Key 填错或已过期,回 LMS 后台重新生成。
延伸应用
流程跑通后,可以继续尝试这几件事:
- 减少打扰:在数据处理后加一个IF节点,本周没有作业时改发"本周无作业",或者干脆不发。
- 多一个渠道:复制消息分支,再接一个Email节点,把同一份提醒抄送到学生邮箱。
- 数据回流:用 HTTP Request 发
PUT请求,把批改后的成绩写回学习管理系统,完成双向同步。
想深入某个节点的行为,可以阅读项目内对应源码:packages/nodes-base/nodes/HttpRequest/HttpRequest.node.ts与packages/nodes-base/nodes/Slack/Slack.node.ts;仓库docker/images/n8n/下的 README 也说明了自托管镜像的构建细节,适合想自己打包部署的读者。
【免费下载链接】n8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.项目地址: https://gitcode.com/GitHub_Trending/n8/n8n
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考