n8n小案例

简单使用n8n小案例

前几天看到了这个自动化程序项目,感觉很有意思,花了一上午部署学习了一下,于是有了下面这篇部署构建第一个程序的教程

Tips:该教程使用了部分AI生成的代码

部署

直接使用docker 是最简单的 官网教程:n8n github

docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

这里我使用的docker desktop 部署的,直接点点点也挺方便

部署之后点击对应的端口即可:localhost:5678

注册

这里正常注册就行

创建自动化工作流

点击Create Workflow创建工作流

进入页面

这里创建工作流必须要一个启动节点,也就是触发器,没有触发器,完成工作流创建之后是启动不了的

点击中间的+号创建触发器,这里直接选简单任务触发器,就是常见的定时任务

这里几个参数就是正常的定时任务参数 定时周期什么的,很简单

上面的简单解释就是 以天为周期,每天为周期,在整点(midnight),在0分钟执行

创建完成之后,点击后面的+号,创建任务,也就是你想执行的任务

这里因教程需要,需要制作一个每日(9-18点)提醒喝水任务,所以就创建一个邮件发送节点

这里需要填入几个参数,发送方邮件地址,接受方邮件地址,以及认证消息(下图)

然后保存即可

现在可以简单的测试一下了,点击前面的红色按钮(Test workflow) 就能直接执行工作流

【注意】:有的人可能发现,我明明是执行的定时任务,为什么他不定时呢 这里就是n8n的设计了,直接点击test不是执行定时任务,而是测试任务,主要目的是测试任务可执行性,教程到这,如果你的测试任务没问题,就可以点击页面上方的inactive 按钮开启工作流,这个按钮才是真正的开启定时任务

到这里本来应该就可以了,但是不符合我们的真是实际需求,每个小时都需要提醒吗?

显然不是,只有白天才需要提醒,所以这里需要修改,这里添加一个函数

搜索 function 找到code 添加

这里需要编写函数,执行逻辑,这里直接问ai ,获取当前时间,并且判断是否为当天的9点到18点,是返回时间,否返回null

// 初始化一个空数组,用于存储处理后的数据
const formattedItems = [];
​
// 遍历所有输入项
for (const item of $input.all()) {
    // 获取当前项中的日期字段(假设字段名为 currentDate)
    const originalDate = new Date(item.json.currentDate);
​
    if (!isNaN(originalDate.getTime())) { // 检查日期是否有效
        // 转换日期格式为 YYYY-MM-DD HH:mm:ss
        const formattedDate = `${originalDate.getFullYear()}-${String(originalDate.getMonth() + 1).padStart(2, '0')}-${String(originalDate.getDate()).padStart(2, '0')} ${String(originalDate.getHours()).padStart(2, '0')}:${String(originalDate.getMinutes()).padStart(2, '0')}:${String(originalDate.getSeconds()).padStart(2, '0')}`;
​
        // 判断是否在 9 点到 18 点之间
        const hours = originalDate.getHours();
        const isWithinWorkingHours = hours >= 9 && hours < 18;
​
        // 将转换后的日期和判断结果添加到新的对象中
        formattedItems.push({
            json: {
                ...item.json, // 保留原始数据
                formattedDate, // 添加新字段:格式化后的日期
                isWithinWorkingHours // 添加新字段:是否在工作时间内
            }
        });
    } else {
        // 如果日期无效,仍然保留原始数据,并标记错误
        formattedItems.push({
            json: {
                ...item.json,
                formattedDate: null, // 标记为无效
                isWithinWorkingHours: false // 无效日期视为不在工作时间内
            }
        });
    }
}
​
// 返回处理后的数据
return formattedItems;

然后再添加一个if判断,白天时间提醒,晚上不提醒 这里的if可以接受前面个节点返回的数据 判断是否存在就行了

运行

最后保存,返回主页面,点击inactive就行

写在最后

自动化工作流纵然比较方便,但是学习和调试时间成本比较大,就这个小小的功能,我从零到一都是花了三个小时,网上教程较少,大伙还得多加学习

### n8n与DeepSeek的集成 #### 集成概述 n8n是一个强大的工作流自动化工具,允许用户创建复杂的工作流来连接不同服务。通过将n8n与DeepSeek集成,可以实现更高效的数据检索和处理流程。这种组合能够显著提升工作效率,尤其是在涉及大量非结构化数据的情况下[^1]。 #### 实现方式 为了使n8n能与DeepSeek协同工作,通常需要开发特定节点(node),该节点作为两者之间的桥梁。此节点应具备向DeepSeek发送请求的能力,并解析返回的结果用于后续操作。下面展示了一个简单的Python脚本片段,可用于构建这样的自定义节点: ```python import requests def query_deepseek(document_id): url = f"https://api.deepseek.com/v1/documents/{document_id}/retrieve" headers = { 'Authorization': 'Bearer YOUR_ACCESS_TOKEN', 'Content-Type': 'application/json' } response = requests.get(url, headers=headers) if response.status_code == 200: return response.json() else: raise Exception(f"Error retrieving document: {response.text}") ``` 这段代码展示了如何利用`requests`库发起HTTP GET请求到DeepSeek API端点,获取指定ID的文档详情。实际应用中可能还需要考虑错误处理机制以及身份验证逻辑等细节问题。 #### 应用场景举例 当企业内部存在海量历史档案资料时,借助于上述提到的人工智能代理技术,配合n8n设计出一套完整的自动化方案就显得尤为重要了。比如,在接收到新客户咨询邮件后触发相应事件,自动调用DeepSeek接口查询匹配度最高的过往案例供客服人员参考;或是定期扫描某类文件夹内的新增PDF文件,经过OCR识别转换为文本格式后再存入数据库以便日后快速定位查阅等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值