File Upload Node
TL;DR: A File Upload node pauses the flow and asks the chat user to hand over one or more files (JPG, PNG, PDF, HEIC, TXT) directly in the conversation. You define one or more upload fields, each with its own allowed types, size and count limits, and a required toggle. Submitted files are streamed to a server-side processing script and are not stored. If every field is optional, the user can skip the upload and keep chatting.
A File Upload node lets the bot collect documents or images from the user mid-conversation - for example an ID document, a photo, or a signed PDF. When the flow reaches the node, the chat widget shows an upload card; once the user submits (or skips), the conversation continues.
Configuring the node
The node is configured in the flow editor side panel.
Prompt
An optional message shown above the upload fields (e.g. "Please upload the following documents"). Leave it empty to show only the fields.
Upload fields
A node has one or more upload fields. Each field is a separate slot the user fills independently:
- Field name - required label shown to the user (e.g.
ID document). - Description - optional text explaining what to upload (e.g. "Front and back of your ID card").
- Allowed file types - one or more of
jpg,png,pdf,heic,txt. The user can only select matching files.txtfiles must be UTF-8 or UTF-16 encoded. - Max. number of files - how many files this field accepts (1 up to the platform maximum). A value above 1 lets the user add several files to the same field.
- Max. size (MB) - per-file size limit for this field, up to the platform maximum.
- Required - When on, the user must provide at least one file for this field before they can submit.
Use Add upload field to add more fields and the trash icon to remove one. At least one field must remain.
File processing script
Every File Upload node has an always-on file processing script (Python). It runs on the server after the user submits files for this node, receiving the uploaded files. See Post-Processing Scripts for the related concept on response nodes.
What the user sees
In the chat widget the bot renders the prompt followed by one upload card per field. Each card shows the field name, its description, and a rules line summarising the allowed types, size limit, and file count.
- The user drags files onto a card or browses for them. Files are validated in the browser for type, size, and count, and can be removed before submitting.
- The Submit button activates once at least one file is selected and every required field is satisfied. During the upload it is disabled and shows a progress label.
- Skip - if all fields are optional and no files are selected, the button becomes a Skip action instead. The user can dismiss the upload and continue the conversation without providing any file.
- After a successful submit the card freezes and shows the submitted files. Text input stays disabled for the duration of the upload.