链接:https://community.n8n.io/
n8n-workflows 是一种帮你自动连接
不同软件和在线服务,让它们按设定步骤自动传递数据
、完成任务
的“自动化工作流”~
docs:n8n-workflows
本项目帮助管理和探索n8n工作流。
它能自动扫描和分析工作流文件,提取关键信息如名称、触发器和关联服务。
所有数据将存入可搜索的数据库,并通过REST API提供访问。
可以快速定位特定工作流、查看详细描述,甚至获取其结构可视化图表。
架构
章节导航
第1章:工作流索引流程
欢迎来到N8N工作流索引项目
在本章中,我们将介绍实现n8n工作流智能搜索
的第一步:“工作流索引流程”。
核心价值
当您积累了大量n8n工作流后,如何快速找到特定功能的工作流(如处理"客户支持工单"且使用"Gmail"的工作流)?传统方式需要逐个打开文件查看,效率低下。
工作流索引流程如同图书馆的编目系统,通过以下步骤实现高效管理:
- 扫描:遍历指定目录下的所有工作流
JSON
文件 - 分析:提取关键元数据(名称、节点数、关联服务等)
- 编目:将结构化数据存入数据库
- 增量更新:通过文件哈希值识别变更,避免重复处理
使用方式
通过命令行工具启动索引流程:
n8n-workflows --index
执行后将输出索引报告:
📚 N8N工作流索引器
==============================
🔄 开始工作流索引...
✅ 索引完成!
📊 结果:
• 已处理:15
• 已跳过:25
• 错误:0
• 总文件数:40
技术实现
核心流程
关键代码
- 文件扫描(
Python实现
):
def get_json_files(dir_path):
return [str(p) for p in Path(dir_path).rglob("*.json")]
- 变更检测(
哈希计算
):
def get_file_hash(file_path):
with open(file_path, "rb") as f:
return hashlib.md5(f.read()).hexdigest()
- 数据库更新(
SQL语句
):
INSERT OR REPLACE INTO workflows
(filename, name, nodes_count)
VALUES (?, ?, ?)
总结
工作流索引流程通过:
- 自动化文件扫描
- 智能变更检测
- 高效数据库更新
为工作流管理系统奠定数据基础。下一章将深入讲解工作流分析引擎如何提取元数据
。
第2章:工作流分析引擎
在第1章工作流索引流程中,我们了解了如何扫描和准备工作流文件。
本章将深入探讨核心环节——工作流分析引擎,它如同"智能翻译器",将原始JSON转化为结构化数据。
核心功能
问题场景
面对如0150_Awsrekognition_GoogleSheets_Automation_Webhook.json
这样的工作流文件,原始JSON包含大量复杂字段(nodes
、connections
等),难以快速理解其功能。
解决方案
分析引擎通过七步转换流程:
- 读取JSON:解析文件结构
提取
基础信息:获取ID、名称、激活状态统计
节点数:计算工作流规模评估
复杂度:根据节点数分级(低/中/高)- 识别触发器:判断启动方式(Webhook/定时/手动)
发现
集成服务:列出所有外部服务(如Gmail、AWS等)生成
描述:自动创建易读摘要
技术实现
处理流程示例
输入输出对比
原始JSON片段:
{
"nodes": [
{
"type": "n8n-nodes-base.awsRekognition",
"name": "AWS Rekognition"
}
]
}
分析结果:
{
"name": "AWS识别谷歌表格自动化",
"node_count": 6,
"trigger_type": "Webhook",
"integrations": ["AWS识别","HTTP请求","谷歌表格"],
"description": "基于Webhook的AWS识别服务,集成3个外部服务,包含6个节点"
}
核心代码
- 主分析函数 (
analyze_workflow_file
)
def analyze_workflow_file(file_path):
with open(file_path) as f:
data = json.load(f)
return {
'name': format_name(file_path),
'node_count': len(data['nodes']),
'trigger_type': detect_trigger(data['nodes']),
'integrations': find_integrations(data['nodes'])
}
- 服务名称映射
SERVICE_MAP =
{
'awsrekognition': 'AWS识别',
'googlesheets': '谷歌表格',
'httprequest': 'HTTP请求'
}
- 触发器检测
def detect_trigger(nodes):
for node in nodes:
if 'webhook' in node['type']:
return 'Webhook'
elif 'schedule' in node['type']:
return '定时'
return '手动'
总结
工作流分析引擎通过:
- 智能解析原始JSON
- 精准识别关键特征
自动生成易读摘要
为工作流管理系统提供结构化数据基础。
下一章将介绍如何高效管理
这些数据:第3章 工作流数据库管理