-
第4章 节点开发实战
4.1 基础操作节点:流程中的“执行者”
什么是基础操作节点?
如果把工作流比作“做一道菜”,触发器是“开火”,那基础操作节点就是切菜、倒油、翻炒这些具体动作。它们负责处理数据、操作文件、发送通知等“体力活”,是流程中最常用的节点类型。
4.1.1 数据处理:给信息“整理打扮”
场景:从杂乱的数据中提取有用信息,或者把数据转换成需要的格式(比如把“20231001”变成“2023-10-01”)。
实例1:提取订单中的用户手机号
假设Webhook触发后收到的原始数据是:
json
{
"order": {
"id": "ORD20231001",
"user": {
"name": "张三",
"contact": {
"phone": "13800138000",
"email": "zhangsan@example.com"
}
},
"amount": 299
}
}
现在需要提取用户手机号“13800138000”,步骤如下:
1.拖入“数据处理”节点,选择“字段提取”功能;
2.配置“数据源”为“触发器输出”(即Webhook收到的数据);
3.设置“提取规则”:
1.目标字段名:user_phone(自定义变量名,后续节点可用)
2.提取路径:$.order.user.contact.phone(JSONPath语法,.表示层级关系);
4.测试运行,节点输出会生成{{user_phone}}变量,值为“13800138000”。
JSONPath快速入门:
$.order.id → 取order下的id字段(结果:ORD20231001)
$.order.user.contact.* → 取contact下的所有字段(结果:phone和email的值)
实例2:日期格式化
原始数据中的创建时间是"create_time": "202310011430"(格式:年月日时分),需要转换成"2023-10-01 14:30:00":
1.数据处理节点选择“格式转换”功能;
2.输入字段:{{create_time}}(原始时间变量);
3.源格式:YYYYMMDDHHmm(年-月-日-时-分);
4.目标格式:YYYY-MM-DD HH:mm:ss;
5.输出变量:formatted_time。
4.1.2 文件操作:流程中的“文件管家”
场景:读取本地或云端文件(如Excel、CSV),或者生成新文件(如报表、日志)。
实例:读取Excel销售数据并汇总
1.拖入“文件操作”节点,选择“读取Excel”功能;
2.配置文件来源:
o存储位置:“COZE云盘”(提前上传“销售数据.xlsx”到云盘);
o文件路径:/sales/2023Q3.xlsx;
o工作表:“Sheet1”;
3.设置读取范围:“从第2行开始(跳过表头),读取所有数据”;
4.输出变量:sales_data(数组格式,每个元素是一行数据,如[{"日期":"2023-07-01","销售额":5000}, ...]);
5.后续可接“数据计算”节点,用sum(sales_data.销售额)计算总销售额。
避坑指南:
Excel文件如果有合并单元格,读取时可能会出现数据错位,建议提前处理表格格式;
大文件(超过10MB)建议用“分页读取”,避免节点执行超时。
4.2 逻辑控制节点:流程中的“交通指挥官”
什么是逻辑控制节点?
如果流程中的节点都是“直行”,遇到岔路或重复任务就会“迷路”。逻辑控制节点就像“交通信号灯”和“环岛”,决定流程“走哪条路”“是否重复”“遇到异常怎么办”。
4.2.1 条件分支:“如果…就…否则…”
场景:根据不同条件执行不同步骤(比如“订单金额>1000元需审核,否则直接发货”)。
实例:电商订单自动处理分支
1.拖入“条件分支”节点,放在“订单数据解析”节点之后;
2.点击“添加分支条件”,设置:
o分支1(金额>1000):
条件:{{order.amount}} > 1000(订单金额变量大于1000)
后续节点:“发送审核通知”→“等待审核结果”
o分支2(金额≤1000):
条件:{{order.amount}} <= 1000
后续节点:“自动创建物流单”→“发送发货短信”
3.(可选)设置“默认分支”:当所有条件都不满足时执行(如金额为负数时触发“异常订单提醒”)。
条件配置技巧:
支持多条件组合(AND/OR),比如{{amount}}>1000 AND {{user.vip_level}}=true(金额超1000且是VIP用户);
文本判断用“包含”“等于”,比如{{order.status}} == "已支付"(注意字符串要加双引号)。
4.2.2 循环节点:重复做同一件事
场景:对一组数据逐个处理(比如“给列表中的5个客户分别发送短信”)。
实例:批量发送会员生日祝福
假设member_list变量是会员数组:[{"name":"张三","phone":"138...","birthday":"10-01"}, ...]
1.拖入“循环”节点,选择“遍历数组”模式;
2.配置“循环变量”:
o数组来源:{{member_list}}(要遍历的会员列表);
o当前项变量:current_member(每次循环取一个会员,如第1次是张三,第2次是李四);
3.在循环体内添加“发送短信”节点,内容:
"亲爱的{{current_member.name}},祝您生日快乐!生日月消费享8折~";
4.设置“循环次数限制”:最多50次(防止数组过大导致流程卡死)。
循环终止条件:
遍历数组模式:自动在数组结束后停止;
条件循环模式:设置停止条件(如{{count}} >= 10,循环10次后停止)。
4.2.3 异常处理:给流程“买保险”
场景:节点执行失败时(如API调用超时、数据库连接错误),避免整个流程崩溃,而是执行备用方案。
实例:API调用失败后自动重试
1.拖入“try-catch”节点(try块放可能出错的操作,catch块放异常处理);
2.try块:添加“调用物流API”节点(可能因网络问题失败);
3.catch块:
o添加“等待”节点(等待5秒后重试);
o添加“重试次数判断”条件分支:
如果{{retry_count}} < 3(重试次数<3),回到“调用物流API”节点;
否则,添加“发送错误通知”节点(通知运维人员手动处理);
4.设置“异常变量”:error_msg(存储错误信息,如“API超时”)。
4.3 AI能力节点:让流程“聪明起来”
什么是AI能力节点?
普通节点只能“按规则办事”,而AI节点能“理解意思”“自己思考”。比如自动识别客户邮件是“投诉”还是“咨询”,或者根据用户画像写个性化文案。
4.3.1 自然语言处理:让流程“读懂文字”
实例1:客户反馈自动分类
收到客户反馈文本:"我的订单3天了还没发货,到底怎么回事?",需要自动分类为“物流问题”:
1.拖入“NLP意图识别”节点;
2.配置“模型”:选择COZE内置的“通用意图分类模型”;
3.输入文本:{{customer_feedback}}(客户反馈变量);
4.设置“分类标签”:["物流问题", "产品质量", "退款申请", "咨询"];
5.输出变量:intent(分类结果,如“物流问题”),后续可根据intent转发给对应部门。
实例2:自动提取订单号
从客户消息中提取订单号:"麻烦查一下ORD20231001这个订单的物流"
1.拖入“实体提取”节点,选择“自定义实体”;
2.定义实体类型:“订单号”,规则:以ORD开头,后接8位数字(正则表达式:ORDd{8});
3.输入文本:{{customer_message}};
4.输出变量:order_id(提取结果:“ORD20231001”)。
4.3.2 内容生成:让流程“写文案”
实例:生成个性化营销短信
根据用户画像(性别、购买历史)生成短信:
1.拖入“内容生成”节点,选择“营销文案模板”;
2.配置“用户画像变量”:
o姓名:{{user.name}}
o性别:{{user.gender}}
o最近购买商品:{{user.last_purchase}}(如“运动鞋”);
3.输入模板:
"亲爱的{{user.name}},您最近购买的{{user.last_purchase}}已到货!{{if user.gender == '女'}}专属女性用户的优惠券已发放,点击领取~{{else}}男士新品专区已上线,快来看看吧!{{/if}}";
4.输出变量:marketing_sms(生成结果:“亲爱的张三,您最近购买的运动鞋已到货!男士新品专区已上线,快来看看吧!”)。
4.4 外部系统集成节点:打通“内外世界”
什么是外部系统集成节点?
工作流很少“孤军奋战”,通常需要和公司的CRM、财务软件、微信群等外部系统“对话”。集成节点就是它们之间的“翻译官”。
4.4.1 数据库连接:读写数据的“桥梁”
实例:查询MySQL数据库中的用户信息
1.拖入“数据库”节点,选择“MySQL”连接器(首次使用需先配置数据库连接:主机地址、端口、账号密码);
2.编写SQL查询语句:
SELECT name, phone FROM users WHERE id = {{user_id}}({{user_id}}是流程中的用户ID变量);
3.设置“输出格式”:“JSON对象”(结果:{"name":"张三","phone":"138..."});
4.后续节点可直接使用{{db_result.name}}调用查询结果。
注意:生产环境中避免用SELECT *查询所有字段,只取需要的字段(如name、phone),提高效率。
4.4.2 API调用:对接第三方服务
实例:调用天气API查询今日天气
1.拖入“API调用”节点,选择“REST API”类型;
2.配置请求参数:
o请求方法:GET
oURL:https://api.weather.com/now?city={{city}}&key=your_api_key({{city}}是城市变量,key是API密钥);
o请求头:Content-Type: application/json;
3.解析响应:假设API返回{"temp": 25, "condition": "晴天"},提取{{api_response.temp}}和{{api_response.condition}};
4.输出变量:today_weather(如“25℃,晴天”)。
4.4.3 消息通知:让相关人“知情”
实例:用企业微信机器人发送告警
1.在企业微信中创建群机器人,获取Webhook地址(如https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx);
2.拖入“消息通知”节点,选择“企业微信机器人”;
3.粘贴Webhook地址,选择消息类型“文本”;
4.消息内容:"【订单系统告警】订单{{order_id}}支付超时,请及时处理!";
5.测试发送:点击“测试”按钮,群内会收到告警消息。
本章小结
节点是工作流的“肌肉”,决定了流程能做多少事。本章你学会了:
基础操作节点:用数据处理提取/转换信息,用文件操作读写Excel;
逻辑控制节点:用条件分支处理不同场景,用循环批量操作,用try-catch处理异常;
AI能力节点:用NLP识别意图/提取实体,用内容生成写个性化文案;
外部集成节点:连接MySQL查数据,调用API对接第三方服务,发消息通知相关人员。
本站原创,转载请注明出处:https://www.xin3721.com/ArticlePrograme/robot/52946.html