10分钟!用飞书卡片+n8n零代码搞定自动化

简介: 手把手教你用飞书卡片+n8n搭建零代码自动化应用。

最近在玩飞书的开放能力,发现了一个很有意思的组合:

飞书卡片搭建工具 + n8n = 零代码搭交互应用

飞书卡片就是个可视化设计器,拖拽组件就能做出很好看的卡片。更牛的是,还能用 AI 一键生成。

配合 n8n,基本不用写代码(或者只写一点点),就能做出各种自动化工具。

wxv_4256211503583690767

今天这篇文章,我会用两个实战案例来展示这套技术栈的能力:

  1. 入群欢迎系统:单向通知场景
  2. 天气查询助手:双向交互场景

掌握这两个模式,你就能快速复制到其他场景:查快递、查工单、CRM 查询……

用到的东西:

飞书开放平台(卡片工具 + 长连接)、n8n、第三方 API(高德地图)

看起来很简单?确实如此。但在开始之前,我们需要做一些准备工作。

我会用 10 分钟带你完成:

  1. 飞书侧:创建应用 + 配置长连接
  2. n8n 侧:安装插件 + 创建凭证

准备好后,我们就能开始搭建第一个系统了。

一、准备工作

正式开始之前,得先把飞书和 n8n 连起来。

说实话,这部分最烦,但必须做。

不过好消息是:

  • 只需要做一次,后面所有自动化都能复用
  • 我会说清楚为什么要这么做,而不是让你盲目照做
  • 我踩过的坑,你都不用再踩一遍

预计 10 分钟,泡杯咖啡慢慢来。☕

一)第一关:在飞书创建一个"应用"

1、为什么要创建应用?

你可能纳闷:我不是有飞书账号吗?为啥还要创建应用?

因为飞书把用和开发分开了。

你的飞书账号是拿来聊天、看文档的。

但要调 API、接收事件、做自动化?那得有个应用身份。

两者身份不同,能力也不同。

2、怎么创建?

1)进入飞书开放平台

访问 https://open.feishu.cn/,使用你的飞书账号登录。点击创建企业自建应用。

Image

2)起个名字
  • 应用名称:比如n8n+飞书的那些玩法(可以随便起)

  • 应用描述:随便写点,比如n8n 自动化工作流

  • 应用图标:上传一个图标

    Image

点击创建,应用创建成功。

3)复制两个关键信息

创建完成后,进入应用详情页,你会看到:

  • App ID:格式类似 cli_a1b2c3d4e5f6g7h8
  • App Secret:格式类似 xxxxxxxxxxxxxxxxxxxx

把这两个复制到记事本,待会要用。

Image

💡

小提示:App Secret 就像密码,不要泄露给别人

二)第二关:启用机器人功能

1、机器人能干啥?

飞书的机器人能力,就是让你的应用能:

  • 向用户或群组自动发送消息
  • 响应用户的消息
  • 进行群组管理

2、怎么启用?

1)找到机器人功能

在应用详情页,左侧菜单添加应用能力→ 点击机器人。

Image

2)点击添加

看到说明后,点击添加即可。

Image

启用后,你的应用就有了对话能力,可以进入下一关配置权限了。

三)第三关:给应用"开门禁卡"(权限配置)

1、为什么需要配置权限?

你刚创建的应用,就像一个刚入职的新员工,什么都做不了。

你需要给它开门禁卡,告诉飞书:这个应用可以读消息、发消息、加入群聊……

2、怎么配置?

1) 进入权限管理

点击左侧菜单「权限管理」

Image

2)快捷导入权限

不用一个个勾选,直接用批量导入: 点击右上角批量导入,粘贴下面这段 JSON:

{
  "scopes": {
    "tenant": [
      "im:message:send_as_bot",
      "im:message.group_at_msg:readonly",
      "im:chat.members:read"
    ]
  }
}

Image

点击确认新增权限。

3) 申请权限

导入后,点击页面上的申请开通。

Image

如果你是管理员,会立即通过;如果不是,需要等管理员审批!

四)第四关:配置长连接(先了解,稍后配置)

1、为什么需要长连接?

这是整个准备工作里最关键的一步。

问题是这样的:n8n 需要监听飞书的事件(比如有人进群、有人发消息),才能触发自动化。

我们可以看到飞书提供两种方式让应用接收事件通知:

  1. 1.长连接:n8n 和飞书建立持久连接,实时接收事件
  2. 2.Webhook:飞书推送事件到你的服务器(需要公网 IP)

Image

💡

我们选择长连接的原因

  • 不需要公网 IP(n8n 可以部署在内网)
  • 配置简单(不需要处理 Webhook 验证)
  • 实时性更好(事件推送延迟更低)

2、先别急着配置!

这里有个先有鸡还是先有蛋的问题:

  • 飞书说:你先把 n8n 启动监听,我才让你保存配置
  • n8n 说:你先给我个 Workflow,我才能监听

解决方法:我们分两步走,先跳过这一关,等配置好 n8n 后再回来。

你只需要知道:长连接的配置需要 n8n 和飞书同时在线才能成功保存,否则会出现如下情况。

Image

别担心,后面我会带你一步步完成

五)第五关:配置 n8n(装个插件)

1、为什么需要装插件?

技术上来讲,n8n 确实可以直接调用飞书 API,不需要插件。

但那样你需要:

  • 自己处理 OAuth 认证
  • 手动拼接 HTTP 请求
  • 解析复杂的 JSON 响应
  • 处理错误重试逻辑
  • 管理 Token 刷新...

装个插件,这些全帮你搞定了,效率差太大了。

2、怎么装?

1)打开 n8n 的设置

点击左下角齿轮图标

Image

然后选择社区节点

Image

2)安装插件

点击安装按钮,输入包名: n8n-nodes-feishu-lark

Image

点击安装,等几秒钟。

3)验证安装

安装成功后,在节点列表里搜索 Lark,应该能看到:

Image

六)第六关:告诉 n8n 你的飞书账号

1、为什么需要这步?

n8n 装好插件了,但它还不知道你的飞书应用是哪个。

你需要把之前复制的 App ID 和 App Secret 告诉它。

2、怎么配置?

1)创建凭证

点击右上角「Credentials」

Image

搜索「Lark Tenant」,点击进入

Image

2)填写信息
  • Base URL: 选择 https://open.feishu.cn
  • App ID:你在飞书开放平台复制的 App ID
  • App Secret:你在飞书开放平台复制的 App Secret

点击保存

Image

这个凭证后续所有 Lark 节点都会用到,只需要创建一次。

七)第七关:打通飞书和 n8n(最后一步!)

还记得吗?飞书的长连接配置,需要 n8n 先监听。

现在,n8n 配置好了,我们可以完成这个任务了!

1、在 n8n 中创建测试 Workflow

新建 Workflow

点击New Workflow,命名为飞书连接测试。

拖入 Lark Trigger 节点

从右侧节点列表,拖入Lark Trigger。

Image

配置节点

Credential:选择刚才创建的凭证

Image

点击Execute Workflow按钮

Image

这会让 n8n 进入监听状态。

Image

关键:不要关闭这个页面!保持监听状态!

2、回到飞书保存长连接配置

切换到飞书开放平台

进入你的应用 → 左侧菜单「事件与回调」→「事件配置」。

选择长连接

在订阅方式处,选择长连接。

点击保存。

Image

如果保存成功

  • 说明 n8n 和飞书已经连上了!跳到下一步

如果失败,提示"应用未建立长连接"

  • 检查 n8n 是否在Execute Workflow状态
  • 检查凭证(App ID/Secret)是否正确
  • 尝试重新点击 n8n 的Execute Workflow,然后立即保存飞书配置

wxv_4256215247519744008

3、发布应用版本

非常重要的一步:很多人配置完就以为完事了,结果不生效。

原因是:飞书要求发布新版本,配置才会生效。

怎么做:

保存成功后,点击页面上面的创建版本,然后保存。

Image

只有发布后,配置才会真正生效!

4、最后一步:把机器人拉进群

打开飞书

找到你要测试的群聊。

添加机器人

点击群设置 → 群机器人 → 添加机器人 → 搜索你刚创建的应用名称 → 添加。

Image

Image

群里会提示:"XXX 邀请 YYY 加入此群"。

5、测试连接是否成功

回到 n8n

  1. 1.停止Execute Workflow(点击节点上的按钮)
  2. 2.将 Workflow 设置为Active状态(右上角开关变绿)

现在,长连接就会持续保持了。

在群里发条消息

随便发什么都行,比如:"测试"。

查看 n8n 执行历史

看 n8n 的执行历史(Executions)是否有新记录。

如果看到有新的执行记录,说明连接成功了!

Image

恭喜!最烦的准备工作做完了。

这些配置只需要做一次,后续所有自动化都能复用。接下来,我们就可以开始搭建具体的自动化系统了!

二、第一个案例:入群欢迎提醒

前面那些准备工作做完了,现在终于能干点有意思的了。

接下来 10 分钟,咱们做第一个真正能用的东西:入群欢迎提醒。

先说说我们要做啥:

新人进群时,自动发张精美卡片:

  • @ 新人(他立刻收到通知)
  • 显示群名、群规则
  • 四个快捷按钮(大礼包、课程动态、往期分享、微信群聊话题分享)

最开始,我用的是纯文本消息。

在 n8n 里写了一大段代码,像这样:

// 获取新加入的用户信息
const newUsers = $input.first().json.users;
const groupName = $input.first().json.name
const chatId = $input.first().json.chat_id;

// 构建欢迎消息
let welcomeMessage = "🎉 欢迎新伙伴加入「${groupName}」群!\n\n";

// 如果有多个新用户
if (newUsers.length > 1) {
const userNames = newUsers.map(user =>`@${user.name}`).join(' ');
  welcomeMessage = `🎉 欢迎 ${userNames}  加入群聊!\n\n`;
} else {
const userOpenId = newUsers[0].user_id.open_id
  welcomeMessage = `🎉 欢迎 <at user_id="${userOpenId}"></at> 加入「${groupName}」群!\n\n`;
}

welcomeMessage += `这里是我们的 n8n 工作流自动化实战课群聊,你可以:
- 有问题随时在群里交流
- 查看课程资料 & 实战案例 👉 https://dcn0h1uoszk5.feishu.cn/wiki/C0i9wU5S4iPWIJkONKEcbNktnAd?fromScene=spaceOverview

期待与你一起提升工作效率! 🚀`;

// 按照飞书API要求格式化content - 关键修改在这里!
const contentJson = {
text: welcomeMessage
};

// 将JSON对象序列化为字符串,这是飞书API要求的格式
const contentString = JSON.stringify(contentJson);


return {
chatId: chatId,
content: contentString,
messageType: "text"
};

效果确实有。

新人进群,0.5 秒内就能收到欢迎消息,24 小时在线,永不掉线。

但问题也很明显,维护太麻烦了。

有一天,我在飞书开放平台瞎逛,看到了卡片搭建工具。

点进去一看,这不就是我想要的吗!

牛在哪?

拖拽组件就能设计,像做 PPT。有 AI 辅助生成,丢张效果图,AI 自动给你生成卡片。

支持动态变量,能个性化。组件超丰富,按钮、图片、列表、表单...啥都有。

最关键的是:不!用!写!代!码!

我当时试了一下,用 AI 生成了一张卡片,真的只花了 2 分钟。

然后微调了一下,加了两个变量(用户名和群名),加了三个快捷按钮,又花了 3 分钟。

总共 5 分钟,搞定了一张比纯文本方便太多的卡片。

我当时就想,早知道有这个,我还写个屁的代码啊!

下面我就带你们从零做一遍,真的超级简单。

一)第一步:让 AI 帮你生成卡片

1、打开 AI 助手

打开飞书卡片搭建工具:https://open.feishu.cn/cardkit

点击那个AI生成卡片。

这个功能真的是神器,能省你好多时间。

Image

2、跟 AI 说你想要啥

我当时是这样说的:

根据截图,做一个新用户进群的卡片,需要支持 @ 新用户进群

等了大概 10 秒,AI 就给我生成好了。

3、第一眼看到的时候,我真的惊了

AI 生成的卡片,已经有了:

  • 标题:"🎉 欢迎加入「XXX」群!"
  • 欢迎语:"欢迎 @某某 加入「XXX」群!"
  • 群介绍(用列表排好的,很清晰)

基本上 80% 能用了!

我当时心里想:这也太牛逼了吧,我还准备自己拖半天组件呢。

Image

二)第二步:让卡片能"动起来"

AI 生成的卡片有个问题:它是死的。

每次发送,内容都一样。

但我需要:

  • @ 的人不一样(每次进群的人不同)
  • 群名不一样(我可能用在好几个群)

怎么办?加变量!

这个其实很简单,就是告诉卡片:"这里要填一个动态的东西,别写死"。

1、添加变量

点右上角变量标签。

点 + 添加自定义变量,加两个:

Image

📌

变量 1:

  • 变量名:user_id
  • 类型:文本

📌

变量 2:

  • 变量名:group_name
  • 类型:文本

这两个变量,待会儿 n8n 会传过来。

2、在卡片里用上这两个变量

找到欢迎语那个文本框,点进去。

原来写的是:

欢迎 @用户780206 加入「n8n+飞书的那些玩法」群!

改成:

Image

这样一来:

  • { {user_id}} 会被替换成真实的用户 ID
  • { {group_name}} 会被替换成真实的群名

无论谁进群、进哪个群,都能正确显示。

三)第三步:加三个快捷按钮

卡片已经挺好看了,但我想让它更实用。

我加了四个按钮:

  • 领取新人大礼包
  • 课程更新动态
  • 精彩案例回顾
  • 热门讨论话题

新人最想知道:有啥福利、能学啥、咋深度参与。直接把答案放按钮里,省得后面一个个发。

1、怎么加?

拖个按钮组件到卡片底部,内容填上 🎁 领取新人大礼包

Image

然后再创建一个点击事件,动作选择“打开链接”,兜底链接填上 你的资料链接

Image

复制 3 次,改改文字和链接,搞定。

四)第四步:保存模板

点右上角「保存」。

这时候会生成一个模板 ID:

AAqhdhCuYfJNw

复制下来!待会儿在 n8n 里要用!

另外我们还需要做一下发布,同时将这个卡片和我们的应用做绑定。

Image

卡片部分到这里就完了,超简单吧?

五)第五步:在 n8n 里搭工作流

卡片做好了,现在要让它活起来。

其实就是:

  1. 1.监听有人进群
  2. 2.拿到新人的ID
  3. 3.把这些信息传给卡片
  4. 4.发到群里

在 n8n 里,只需要 4 个节点。

Image

整体结构长这样

[Lark Trigger] 监听事件
    ↓
[Template Config] 存卡片模板 ID
    ↓
[Router] 筛出"进群"事件
    ↓
[Send Message] 发卡片

每个节点都很简单,我一个个说。

1、节点 1:Lark Trigger

为啥选 Any Event?

因为后面会用 Router 过滤,这样更灵活。以后想处理别的事件(比如有人发消息),直接加个分支就行。

2、节点 2:Template Config

在 Lark Trigger 后面,拖个Edit Fields节点。

干啥用?

存卡片模板 ID。

为啥不直接写在 Send Message 里?

因为如果写死了,换卡片模板就得改工作流。存成变量,以后换模板改这一个地方就行。

Image

3、节点 3:Router

在 Template Config 后面,拖个Switch节点。

为啥需要?

因为 Lark Trigger 会接收所有事件:有人进群、有人退群、有人发消息...

我们只关心有人进群,其他的不管。

Image

这样,只有新人加入的事件,才会走到下一个节点。

4、节点 4:Send Message

在 Router 的新人加入分支后,拖个Lark节点。最重要的是关注 Content 数据

{
  "type": "template",
  "data": {
    "template_id": "{
  { $('Card Config').item.json.GroupWelcomeCard }}",
    "template_variable": {
      "user_id": "{
  { $json.users[0].user_id.open_id }}",
      "group_name": "{
  { $json.name }}"
    }
  }
}

这段 JSON 干了啥?

把卡片模板 ID、新用户 ID、群名,全塞进去。

然后飞书就知道:用哪个卡片模板,@ 谁,显示啥群名。

就这么简单!

六)第六步:测试

保存工作流,点右上角开关,设为Active。

然后邀请个人进群试试。

Image

三、第二个案例:天气查询

和第一个案例不同,这次我们要做一个双向交互系统。

用户不是被动接收,而是主动发起查询,还能填表单。

听起来复杂?其实只是多了3个配置:

1. 开启机器人菜单

2. 配置两个事件监听

3. 准备3张卡片(表单→加载中→结果)

下面我重点讲和第一个案例不一样的地方。

一)核心差异点

1、差异1: 开启机器人菜单

第一个案例,机器人是被动触发(有人进群才发消息)。

这次,我们要让机器人有个入口,用户随时能点。

怎么做?

进入飞书开放平台 → 你的应用 → 左侧菜单机器人→机器人自定义菜单

配置如下:

Image

📌

关键信息:

  • 菜单名称:天气查询
  • 响应动作:推送事件
  • 事件ID:weather_inquiry_request(这个ID 待会儿要在 n8n 的 Router 里用到)

保存后,创建版本发布。

现在,用户点开机器人,就能看到这个天气查询按钮了。

2、差异2: 新增两个事件监听

第一个案例只监听了用户进群事件。

这次,我们需要监听两个新事件:

1)事件配置 → 添加事件

找到并添加:机器人自定义菜单事件 (application.bot.menu_v6)

Image

为什么要加这个?

用于监听用户点击天气查询按钮。点击后,我们发一张表单卡片让用户输入城市。

2)回调配置 → 添加回调

添加:卡片回传交互 (card.action.trigger)

Image

为什么要加这个?

用于监听用户在卡片上的操作:

  • 提交表单
  • 点击快捷城市按钮
  • 点击查询天气按钮

配置完成后,别忘了创建版本发布!

📌

两个事件的区别:

第一个"机器人自定义菜单事件":监听用户点击菜单按钮

第二个"卡片回传交互":监听用户在卡片上的所有交互操作

3、差异3: 三张卡片的设计逻辑

这次不是一张卡片搞定,而是3张卡片无缝切换:

用户点击天气查询

→ 弹出表单卡片(输入城市)

Image

→ 提交后显示"查询中"卡片(用户马上有反馈)

Image

→ 2-3秒后更新为结果卡片(显示天气详情)

Image

为什么要3张卡片?

很多人会问:直接等 API 返回结果,一步到位不是更简单?

问题是用户体验差。

如果调用高德 API + DeepSeek 处理需要 2-5 秒,用户会盯着空白屏幕干等。

中间插入查询中状态,体验提升10倍。

就像外卖App,下单后立刻显示商家接单中,而不是等商家真的接单了才有反应。

Image

二)n8n工作流架构

我们直接看整体架构

Image

工作流分两条线:

【欢迎新人】

【天气查询】:

Router 判断事件类型

→ 如果是点击菜单:发表单卡片

→ 如果是提交表单:

① 立即回复查询中卡片(用户马上有反馈)

② 后台调高德API+DeepSeek生成报告

③ 更新卡片为最终结果

核心节点就3个:

  • Weather Agent (调高德地图+AI处理)
  • Getting the weather(发"查询中"卡片)
  • Send Weather Report(更新为结果卡片)

为什么用 Update Message Card 而不是 Send Message?

因为要在原卡片上更新,而不是发新消息。用户体验更好。

写在最后

说实话,刚开始做自动化的时候,我也担心过。

会不会让社群变得冷冰冰的?会不会少了人情味?

直到有一天,一个学员私信我:你们的社群很有温度。虽然知道有些是自动回复,但感觉每条消息都是为我准备的。

那一刻我突然明白了。

机器人帮我处理90%的重复工作,我就有时间去做那10%最重要的事:

真诚地回答一个深度问题、给焦虑的学员一句鼓励、优化一个让人眼前一亮的细节。

这才是自动化的意义。

如果这篇文章对你有帮助,欢迎转发给更多需要的人。

有问题随时在社群里交流,我每天都会认真看。

我们一起把自动化玩得更溜!

相关文章
|
4天前
|
存储 人工智能 安全
AI 越智能,数据越危险?
阿里云提供AI全栈安全能力,为客户构建全链路数据保护体系,让企业敢用、能用、放心用
|
7天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
412 93
|
7天前
|
SQL 人工智能 自然语言处理
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
随着生成式AI的普及,Geo优化(Generative Engine Optimization)已成为企业获客的新战场。然而,缺乏标准化流程(Geo优化sop)导致优化效果参差不齐。本文将深入探讨Geo专家于磊老师提出的“人性化Geo”优化体系,并展示Geo优化sop标准化如何帮助企业实现获客效率提升46%的惊人效果,为企业在AI时代构建稳定的流量护城河。
403 156
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
|
6天前
|
数据采集 缓存 数据可视化
Android 无侵入式数据采集:从手动埋点到字节码插桩的演进之路
本文深入探讨Android无侵入式埋点技术,通过AOP与字节码插桩(如ASM)实现数据采集自动化,彻底解耦业务代码与埋点逻辑。涵盖页面浏览、点击事件自动追踪及注解驱动的半自动化方案,提升数据质量与研发效率,助力团队迈向高效、稳定的智能化埋点体系。(238字)
296 158
|
14天前
|
机器人 API 调度
基于 DMS Dify+Notebook+Airflow 实现 Agent 的一站式开发
本文提出“DMS Dify + Notebook + Airflow”三位一体架构,解决 Dify 在代码执行与定时调度上的局限。通过 Notebook 扩展 Python 环境,Airflow实现任务调度,构建可扩展、可运维的企业级智能 Agent 系统,提升大模型应用的工程化能力。