经常用n8n流程和龙虾的朋友可能会有一个疑问:希望在用飞书龙虾的时候,可以触发自己已经搭建好的n8n流程,这个应该如何实现。
举个简单的例子,比如我们在n8n搭了个搜索B站最近一周相关视频的工作流,现在我们想在飞书龙虾可以直接使用。我们在飞书里对龙虾说「搜一下 飞书多维表格 最近在B站有什么新视频」,龙虾触发 n8n,n8n 调 TikHub 接口搜索 B 站最近一周的相关视频,整理出 Top5 标题 + 播放量 + 链接,推回给你。
今天我们就来讲讲这种飞书龙虾和n8n的结合应该如何实现。
一、整体架构
飞书龙虾(识别意图 + 发 HTTP 请求)
↓
n8n Webhook 接收
↓
n8n 调 TikHub接口 搜 B 站
↓
n8n 格式化结果
↓
Respond to Webhook 返回
↓
龙虾展示结果给你
只有 3 个 n8n 节点:Webhook → 接口搜索B站 + 格式化(Code)→ Respond to Webhook。
下面我们聊聊如何来配置
二、n8n 工作流搭建

节点 1:Webhook(接收龙虾的请求)
这个节点是流程的开始节点,目的是接收龙虾的请求,来触发流程运行。
添加「Webhook」节点:
| 参数 | 值 |
|---|---|
| HTTP Method | POST |
| Path | bilibili-search |
| Response Mode | Using ‘Respond to Webhook’ Node |
配置完成后,复制 Webhook URL:
https://你的n8n地址/webhook/bilibili-search

节点 2:TikHub Search + Format(Code 节点)
添加「Code」节点,执行模式选 Run Once for All Items。
这个节点做三件事:从龙虾传来的消息里提取关键词 → 调 TikHub接口 搜索 B 站 → 格式化成可读文本。
const webhookBody = $('Webhook').item.json.body || $('Webhook').item.json;
const userInput = (webhookBody.query || webhookBody.text || 'n8n自动化').trim();
const keyword = userInput
.replace(/搜一下/g, '')
.replace(/帮我搜/g, '')
.replace(/最近/g, '')
.replace(/在B站有什么.*/, '')
.replace(/b站/gi, '')
.replace(/视频/g, '')
.trim() || userInput;
const apiKey = '你的TikHub API Key';
const nowSec = Math.floor(Date.now() / 1000);
const weekAgoSec = nowSec - 7 * 24 * 60 * 60;
const params = new URLSearchParams({
keyword: keyword,
page: '1',
page_size: '10',
order: 'click',
duration: '0',
pubtime_begin_s: String(weekAgoSec),
pubtime_end_s: String(nowSec),
});
const url = `https://api.tikhub.io/api/v1/bilibili/web/fetch_general_search?${params}`;
let searchResp;
try {
searchResp = await this.helpers.httpRequest({
method: 'GET',
url,
headers: { Authorization: `Bearer ${apiKey}` },
});
} catch (e) {
return [{ json: { message: `❌ TikHub 请求失败:${e.message}` } }];
}
const resultList = searchResp?.data?.data?.result || [];
const videos = resultList
.filter(item => item.type === 'video' && item.bvid)
.slice(0, 5);
if (videos.length === 0) {
return [{ json: { message: `🔍 「${keyword}」在 B 站近一周没有搜到相关视频,换个关键词试试?` } }];
}
const lines = videos.map((v, i) => {
const title = (v.title || '').replace(/<[^>]+>/g, '');
const play = v.play ? `▶️ ${v.play.toLocaleString()}` : '';
const link = `https://www.bilibili.com/video/${v.bvid}`;
const author = v.author || '—';
return `${i + 1}. ${title}\n ${play} 👤 ${author}\n 🔗 ${link}`;
});
const header = `📺 「${keyword}」B 站近一周热门视频 Top${videos.length}\n\n`;
const message = header + lines.join('\n\n');
return [{ json: { message } }];
代码说明:
- 从龙虾传来的消息里提取关键词(去掉”搜一下””B站”等无用词)
- 调 TikHub 的 B 站综合搜索接口,按点击量排序,取近一周数据
- 只保留视频类型结果,取 Top5
- 格式化为「标题 + 播放量 + 作者 + 链接」的清单

节点 3:Respond to Webhook(返回结果给龙虾)
添加「Respond to Webhook」节点:
| 参数 | 值 |
|---|---|
| Respond With | Text |
| Response Body | {{ $('TikHub Search + Format').item.json.message }} |
| Response Code | 200 |
这个节点把格式化好的文本作为 HTTP 响应返回,龙虾拿到后直接展示在对话里。

三、飞书龙虾配置
1.创建技能
直接在飞书龙虾里,新建技能

或者直接在龙虾会话框里,直接把下面的指令给龙虾
帮我创建一个技能,名称叫「B站视频搜索」。
触发条件:当用户消息里包含「搜一下」「搜B站」「B站视频」任意一个关键词时触发。
执行动作:发送 HTTP 请求
- 请求方式:POST
- 请求地址:https://你的n8n地址/webhook/bilibili-search
- Content-Type:application/json
- 请求体:{"query": "{{用户消息原文}}"}
响应处理:把接口返回的文本内容直接展示给用户。
然后我们等待技能创建完成即可。

2.保存并测试
我们试试看是否成功。
在飞书里对龙虾说:
搜一下 飞书多维表格 最近在B站有什么新视频
触发技能后,n8n流程也会开始自动运行。
3-5 秒后,龙虾则会返回查询的结果

在n8n里,我们也可以看到流程的流转日志

我们也可以搜别的关键词:
搜一下 n8n 自动化搜一下 AI Agent搜一下 Coze Bot 教程
关键词换了,n8n 自动提取并搜索,返回对应结果。
四、最后
所以如果我们之前搭了很多n8n流程,现在想和龙虾搭配使用的话,这篇文章或许对你有帮助。
跑通了「龙虾说话 → n8n 调外部 API → 结果推回来」这个基础模式之后,我们可以换成任何外部 API:
| 你对龙虾说的话 | n8n 调的接口 | 返回结果 |
|---|---|---|
| 搜一下 AI Agent B站视频 | TikHub B 站搜索 | Top5 视频标题+链接 |
| 帮我看看今天 AI 新闻热点 | TikHub + DeepSeek | 热点摘要 + 差异化角度 |
| 生成 5 个关于 CRM 的选题 | DeepSeek(带定位 Prompt) | 选题清单 |
| 更新公众号文章数据 | 微信公众号统计 API | 阅读/转发数据 |
龙虾是”嘴”,n8n 是”手脚”,外部 API 是”工具箱”。
📋 这套龙虾接n8n配置,我整理成模板了
跟着上面步骤搭要花点时间。想直接拿现成的改,加我微信备注「龙虾」,我发你。
🤔 卡在某一步了?
最容易卡的是Webhook地址和参数格式的对接。如果你照着做没跑通,或者你们公司情况不太一样,可以找我聊聊,我免费帮你看看怎么调。不合适我也会直说。
扫码加我,备注「龙虾」领模板
想看更多这类方案,我都整理在 吨师傅工具箱 里了:客户管理、进销存、工单报修……按场景分好类,可以直接抄。


