- Home
- Resources
- Integrations
- KoBoToolbox
KoBoToolbox n8n integrationAutomate KoBoToolbox with n8n.
Field data should not sit in a form waiting for someone to open a laptop. The KoBoToolbox n8n integration gives you a node with 17 operations over 4 resources, forms, submissions, files and hooks, and a trigger that starts a workflow on each new submission. Built for teams collecting offline and processing centrally.
Verified Trustpilot reviews · AI, automation & growth agency
What does the KoBoToolbox n8n integration actually cover?
The KoBoToolbox n8n integration wires a data collection account into the rest of your tools through two nodes. The KoBoToolbox node holds 17 operations spread over 4 resources: File, Form, Hook and Submission. The KoBoToolbox Trigger listens to 1 event and starts a workflow when a form receives a new submission. Both run on the same credential, which is the saved login n8n keeps for an app, here an API token.
First scenario, the submission that turns into a row. The trigger fires on formSubmission, the workflow reshapes the item and appends it to a Google Sheets tab the coordination team already opens every morning. The manual CSV export stops being part of anyone's week.
Second scenario, the review loop that closes itself. A submission lands, the workflow posts the answers to Slack, a supervisor replies, and the workflow writes that decision back with submission.setValidation, which sets Approved, Not Approved or On Hold on the submission itself. The verdict lives in KoBoToolbox instead of a chat thread nobody can audit later.
Third scenario, the hooks that fail quietly. hook.getLogs pulls a hook's logs filtered on Failed, hook.retryAll relaunches every failed attempt on that hook, and the count goes to Telegram. A broken downstream system stops being something you discover three weeks later.
Attachments follow the same path: the submission operations can download them into binary properties, and the workflow forwards them as a Gmail message without anyone opening the KoBoToolbox interface.
Two things to keep in mind. When an endpoint of the KoBoToolbox API sits outside the 17 operations of the node, the HTTP Request node calls it directly and reuses the same credential through predefined authentication, so no workflow is stuck. And on any listing, Return All decides the volume: left off, the node stops at Limit, and a truncated export looks exactly like a complete one. If you are still picking a platform, the n8n review is the longer read.
How do you connect KoBoToolbox to n8n?
- 01
Grab your API token
Open your KoBoToolbox account and go to Account Settings, where the API token is displayed. That string is the only secret n8n needs. Note which server the account lives on at the same time, because the credential asks for it in the next step and the two values are not interchangeable.
- 02
Create the credential in n8n
In n8n, open the Credentials menu and add a KoBoToolbox credential. API Root URL takes the address of the server where the account was created:
https://kf.kobotoolbox.orgfor the Global KoBoToolbox Server,https://eu.kobotoolbox.orgfor the European Union one. API Token takes the string from Account Settings. Save it once and every workflow can reuse it. - 03
Pick the form in the node
Drop the KoBoToolbox node or the KoBoToolbox Trigger on the canvas and select the credential from the dropdown. Form Name or ID then loads the forms of that account, so you choose by name instead of hunting for an ID like
aSAvYreNzVEkrWg5Gdcvg. You can also pass the ID through an expression, the small piece of code n8n evaluates at runtime.
What starts a KoBoToolbox workflow?
KoBoToolbox Trigger is the node that starts a workflow when something happens in KoBoToolbox. It listens to 1 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your KoBoToolbox account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
form.*1Configuration notes
01Configure the KoBoToolbox Trigger
The trigger node starts a workflow on new submissions of one form, and it creates and deletes the hook on the KoBoToolbox side by itself, so there is nothing to configure in KoBoToolbox. It reads submissions the same way the Get a submission operation does, with the same reformatting options.
Key parameters
- Form Name or ID: required, the form being watched. Choose it from the list n8n loads from the account, or pass an ID such as
aSAvYreNzVEkrWg5Gdcvgthrough an expression. - Reformat: in the Options collection, applies some reformatting to the submission data, such as parsing GeoJSON coordinates, instead of handing you the raw payload.
02On Form Submission
formSubmission is the single event of the catalogue, the whole form family, and it is set on the Trigger On parameter. The mechanism is a webhook, meaning a URL that KoBoToolbox calls the moment something happens, so each submission reaches the workflow in seconds with no polling loop in between. Trigger version 1.
Key parameters
- Download Attachments: pulls the pictures or videos submitted with the answers into the workflow rather than leaving them behind.
- Attachments Naming Scheme and Attachments Prefix: name the binary properties, either as a sequence or from the original form question ID, with an index starting at 0 added to the prefix.
- File Size: which version of an attachment to retrieve when several are available.
- Multiselect Mask and Number Mask: comma-separated wildcard selectors for the fields to parse as arrays or as numbers.
What can the KoBoToolbox node do?
The KoBoToolbox node exposes 17 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Delete | Logs | Get Validation Status | Redeploy | Retry All | Retry One | Update Validation Status |
|---|---|---|---|---|---|---|---|---|---|---|
| File | ✓ | ✓ | ✓ | ✓ | ||||||
| Form | ✓ | ✓ | ✓ | |||||||
| Hook | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| Submission | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
File
4 operationsCreate a file
file.createWhat you see in n8n
Notes & use cases
Uploads a file to a form, either from binary data the workflow already carries or from a public link.
Key parameters
- Form Name or ID: the form that receives the file, chosen from the dropdown or passed as an ID through an expression.
- File Upload Mode: two choices, Binary File when the file travels inside the item, URL when KoBoToolbox should fetch it itself.
- Property Name: the binary property holding the file. Supported types are image, audio, video, csv, xml and zip.
- File URL: the HTTP(s) link to the file, used in URL mode.
Delete a file
file.deleteWhat you see in n8n
Notes & use cases
Removes one file from a form, by its identifier.
Key parameters
- File ID: the uid of the file, which starts with
af, for exampleafQoJxA4kmKEXVpkH6SYbhb. It is the identifier, not the file name. - Form Name or ID: the form the file belongs to, since the same workflow may juggle several.
Get a file content
file.getWhat you see in n8n
Notes & use cases
Reads a file already attached to a form and can bring its content into the workflow as binary data.
Key parameters
- File ID: the uid starting with
af, often taken from a previous node with{{ $json.field }}. - Download File Content: whether the content is downloaded into a binary property, or not.
- Property Name: the name of the binary property the file is written into.
Get many files
file.getAllWhat you see in n8n
Notes & use cases
Lists the files attached to a form, with a single parameter to fill.
Key parameters
- Form Name or ID: the only required field here. Pick the form from the list, and the node returns its files.
Form
3 operationsGet a form
form.getWhat you see in n8n
Notes & use cases
Returns a single form from the account.
Key parameters
- Form Name or ID: the form to read. The dropdown is the fast path; the expression syntax is the one to use when the ID comes from an earlier node.
Get many forms
form.getAllWhat you see in n8n
Notes & use cases
Walks through the forms of the account and returns them as items.
Key parameters
- Return All: on, the node chains the API pages until every form is back; off, it stops at Limit.
- Limit: the maximum number of forms returned when Return All stays off.
- Filter: in Options, a text search on form data, for example
owner__username:meg AND name__icontains:quixotic. - Sort: in Options, the ordering criteria applied to the result.
Redeploy Current Form Version
form.redeployWhat you see in n8n
Notes & use cases
Redeploys the current version of a form from the workflow.
Key parameters
- Form Name or ID: the form to redeploy, named once in the node and reused on every run.
Hook
5 operationsGet a hook
hook.getWhat you see in n8n
Notes & use cases
Returns a single hook definition declared on a form.
Key parameters
- Hook ID: the identifier of the hook, which starts with
h, for examplehVehywQ2oXPYGHJHKtqth4. - Form Name or ID: the form carrying that hook.
Get Many hooks
hook.getAllWhat you see in n8n
Notes & use cases
Lists the hooks declared on one form, so you can see what that form is wired to.
Key parameters
- Return All: on, every hook of the form comes back; off, the node stops at Limit.
- Limit: the ceiling applied when Return All is left off.
Get Logs for a hook
hook.getLogsWhat you see in n8n
Notes & use cases
Fetches the logs of a hook, with filters to narrow down what came back.
Key parameters
- Hook ID: the hook whose logs you want, identifier starting with
h. - Log Status: All, Failed, Pending or Success.
- Start Date and End Date: the minimum and the maximum date of the logs retrieved, which is how you keep a check focused on one window instead of replaying the whole history.
Retry All hooks
hook.retryAllWhat you see in n8n
Notes & use cases
Relaunches every failed attempt of a given hook in a single call, so a backlog of errors clears without the workflow walking through the logs one by one.
Key parameters
- Hook ID: the hook whose failed attempts are replayed.
- Form Name or ID: the form the hook is attached to.
Retry One hook
hook.retryOneWhat you see in n8n
Notes & use cases
Replays one precise attempt instead of the whole batch.
Key parameters
- Hook Log ID: the log to replay, identifier starting with
hl, for examplehlSbGKaUKzTVNoWEVMYbLHe. - Hook ID: the hook that log belongs to.
Submission
5 operationsDelete a submission
submission.deleteWhat you see in n8n
Notes & use cases
Erases a single submission from a form.
Key parameters
- Submission ID: a number, for example
245128, not the respondent's name. - Form Name or ID: the form holding that submission.
Get a submission
submission.getWhat you see in n8n
Notes & use cases
Retrieves one submission and its data, with a set of options to shape the response.
Key parameters
- Submission ID: the numeric identifier of the submission, often passed as
{{ $json.field }}from an earlier node. - Fields to Retrieve: a comma-separated list such as
_submission_time,_submitted_by. Left blank, all fields come back. - Reformat: applies the reformatting logic, including parsing GeoJSON coordinates.
Get many submissions
submission.getAllWhat you see in n8n
Notes & use cases
Collects the submissions of a form in bulk, which is the operation most exports are built on.
Key parameters
- Return All: on, the node pages through every submission; off, it stops at Limit.
- Filter: None or JSON, and with JSON selected, Filters (JSON) carries the query.
- Sort: in Options, sort predicates in MongoDB JSON format, for example
{"_submission_time":1}.
Get the validation status for a submission
submission.getValidationWhat you see in n8n
Notes & use cases
Tells you where one submission stands in the review process, without touching it.
Key parameters
- Submission ID: the numeric identifier of the submission being checked.
- Form Name or ID: the form it was submitted to.
Update the validation status for a submission
submission.setValidationWhat you see in n8n
Notes & use cases
Writes the review decision back onto the submission, so the status lives in the data rather than in a conversation.
Key parameters
- Validation Status: Approved, Not Approved or On Hold, the three values the node accepts.
- Submission ID: the numeric identifier of the submission being updated.
Need help automating KoBoToolbox with n8n?
A person reads every message.


