KoboToolbox 节点#
使用 KoboToolbox 节点实现 KoboToolbox 工作流程自动化,并将 KoboToolbox 与其他应用程序集成。n8n 内置支持多种 KoboToolbox 功能,包括创建、更新、删除和获取文件、表单、钩子和提交记录。
本页面列出了 KoboToolbox 节点支持的操作列表及相关资源链接。
认证配置#
有关设置身份验证的指南,请参阅 KoboToolbox 认证配置。
操作列表#
- 文件(File)
- 创建(Create)
- 删除(Delete)
- 获取(Get)
- 批量获取(Get Many)
- 表单(Form)
- 获取(Get)
- 批量获取(Get Many)
- 重新部署(Redeploy)
- 钩子(Hook)
- 获取(Get)
- 批量获取(Get Many)
- 日志(Logs)
- 全部重试(Retry All)
- 单次重试(Retry One)
- 提交(Submission)
- 删除(Delete)
- 获取(Get)
- 批量获取(Get Many)
- 获取验证状态(Get Validation Status)
- 更新验证状态(Update Validation Status)
模板和示例#
浏览 KoboToolbox 集成模板,或搜索所有模板
选项配置#
查询选项#
提交查询操作支持以下选项:
- 在**参数(Parameters)**面板的主区域:
- 起始位置(Start) 控制查询的起始索引偏移量(用于 API 分页逻辑)
- 限制数量(Limit) 设置返回记录的最大数量。注意:无论设置何值,API 始终限制返回 30,000 条记录
- 在**查询选项(Query Options)**区域,可启用以下参数:
- 查询条件(Query) 允许使用 MongoDB 的 JSON 查询格式指定过滤条件。例如:
{"status": "success", "_submission_time": {"$lt": "2021-11-01T01:02:03"}}表示查询所有状态字段值为 "success" 且在 2021年11月1日 01:02:03 之前提交的记录 - 字段筛选(Fields) 允许指定需要获取的字段列表,以减轻响应负载
- 排序规则(Sort) 允许以 MongoDB JSON 格式提供排序条件列表。例如:
{"status": 1, "_submission_time": -1}表示按状态升序排列,再按提交时间降序排列
- 查询条件(Query) 允许使用 MongoDB 的 JSON 查询格式指定过滤条件。例如:
有关这些选项的更多详细信息,请参阅 Formhub API 文档
提交选项#
所有返回表单提交数据的操作都提供了调整响应的选项,包括:
- 下载选项:允许下载与每个特定表单提交相关的附件(例如图片和视频),还可选择命名模式及要下载的文件大小(如果可用 - 通常针对图片)。
- 格式化选项:按照关于格式化中的说明执行重新格式化操作。
关于格式化#
KoboToolbox 提交数据的默认 JSON 格式有时难以处理,因为它不感知模式,所有字段都以字符串形式返回。 本节点提供了轻量级的格式化逻辑,通过 Reformat? 参数启用,该参数在所有返回表单提交的操作中可用:提交查询、获取和附件下载操作。 启用格式化后:
- 按照表单组别将 JSON 重组为多级层次结构。默认情况下,问题分组层次结构通过字段名称中的
/字符实现,例如Group1/Question1。启用格式化后,n8n 会将其重组为嵌套 JSON 对象格式Group1.Question1。 - 重命名字段以去除
_(许多下游系统不支持此符号)。 - 将所有地理空间字段(点、线和区域问题类型)解析为标准 GeoJSON 格式。
- 将所有匹配多选掩码通配符掩码的字段拆分为数组。由于多选字段以空格分隔的字符串形式出现,无法通过算法推测,因此必须提供字段命名掩码。掩码格式为逗号分隔的列表,支持
*通配符。 - 将所有匹配数字掩码通配符掩码的字段转换为 JSON 浮点数。
这是一个详细的 JSON 示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26| ``` { "_id":471987, "formhub/uuid":"189436bb09a54957bfcc798e338b54d6", "start":"2021-12-05T16:13:38.527+02:00", "end":"2021-12-05T16:15:33.407+02:00", "Field_Details/Field_Name":"Test Fields", "Field_Details/Field_Location":"-1.932914 30.078211 1421 165", "Field_Details/Field_Shape":"-1.932914 30.078211 1421 165;-1.933011 30.078085 0 0;-1.933257 30.078004 0 0;-1.933338 30.078197 0 0;-1.933107 30.078299 0 0;-1.932914 30.078211 1421 165", "Field_Details/Crops_Grown":"maize beans avocado", "Field_Details/Field_Size_sqm":"2300", "version":"veGcULpqP6JNFKRJbbMvMs", "meta/instanceID":"uuid:2356cbbe-c1fd-414d-85c8-84f33e92618a", "_xform_id_string":"ajXVJpBkTD5tB4Nu9QXpgm", "_uuid":"2356cbbe-c1fd-414d-85c8-84f33e92618a", "_attachments":[], "_status":"submitted_via_web", "_geolocation":[ -1.932914, 30.078211 ], "_submission_time":"2021-12-05T14:15:44", "_tags":[], "_notes":[], "_validation_status":{}, "_submitted_by":null }
---|---
启用重新格式化功能,并为多选字段和数字格式设置相应的掩码(例如分别使用 `Crops_*` 和 `*_sqm`),n8n 会将其解析为:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| ```
{
"id":471987,
"formhub":{
"uuid":"189436bb09a54957bfcc798e338b54d6"
},
"start":"2021-12-05T16:13:38.527+02:00",
"end":"2021-12-05T16:15:33.407+02:00",
"Field_Details":{
"Field_Name":"Test Fields",
"Field_Location":{
"lat":-1.932914,
"lon":30.078211
},
"Field_Shape":{
"type":"polygon",
"coordinates":[
{
"lat":-1.932914,
"lon":30.078211
},
{
"lat":-1.933011,
"lon":30.078085
},
{
"lat":-1.933257,
"lon":30.078004
},
{
"lat":-1.933338,
"lon":30.078197
},
{
"lat":-1.933107,
"lon":30.078299
},
{
"lat":-1.932914,
"lon":30.078211
}
]
},
"Crops_Grown":[
"maize",
"beans",
"avocado"
],
"Field_Size_sqm":2300
},
"version":"veGcULpqP6JNFKRJbbMvMs",
"meta":{
"instanceID":"uuid:2356cbbe-c1fd-414d-85c8-84f33e92618a"
},
"xform_id_string":"ajXVJpBkTD5tB4Nu9QXpgm",
"uuid":"2356cbbe-c1fd-414d-85c8-84f33e92618a",
"attachments":[],
"status":"submitted_via_web",
"geolocation":{
"lat":-1.932914,
"lon":30.078211
},
"submission_time":"2021-12-05T14:15:44",
"tags":[],
"notes":[],
"validation_status":{},
"submitted_by":null
}
---|---
## 操作不受支持时的解决方案#
若当前节点不支持您需要的操作,可以使用 HTTP 请求节点 调用该服务的 API。
您可以在 HTTP 请求节点中使用为本服务创建的凭据:
1. 在 HTTP 请求节点中,选择 **Authentication(认证)** > **Predefined Credential Type(预定义凭据类型)**
2. 选择需要连接的服务
3. 选择您的凭据
更多信息请参阅 自定义 API 操作。