Skip to main content

File trigger

The File type starts a workflow when a file is sent to Ecosystem. The workflow reads and processes the file content, whose data is exposed in data and context:

{
"data": { "filename": "orders-2026-07-20.csv" },
"context": { "source": "FTP_SFTP" }
}

Parameters​

ParameterTypeRequiredDefaultDescription
NameString✅—Trigger label in the lists.
Path (slug)String✅—URL identifier, generated from the name.
TagsList❌—Labels for search and filters.
DescriptionString✅—Specifies the role of the trigger for the team.
SourceDIRECT_UPLOAD / FTP_SFTP / EMAIL✅—File reception mode.
File formatCSV / XLS / XML / JSON / RAW✅—Parsing format applied to the file.
Extensions

Specify the expected file extensions to avoid triggering the workflow on irrelevant files.

Sending sources​

Direct upload​

Send the file from the Send files tab of the trigger. Each uploaded file triggers the workflow.

FTP / SFTP​

The trigger monitors a remote directory. The connection is configured with:

ParameterTypeRequiredDescription
HostString✅IP address or domain name of the FTP server.
PortNumber✅Listening port of the FTP connections.
FTP/SFTP credentialsPASSWORD / PRIVATE_KEY✅PASSWORD (username/password) or PRIVATE_KEY (username/privateKey/passphrase).
Working directory (workingPath)String✅Monitored folder.
Archive directory (archivePath)String✅Destination folder after reading.
Archive with timestamp (archiveWithTimestamp)Boolean❌Adds a timestamp to the archived file name.
Overwrite archive (overwriteArchive)Boolean❌Allows overwriting in the archive.
Test connectionButton❌Tests the connection with the configured access on a chosen environment.
Polling interval (CRON)String❌Interval at which file retrieval occurs (default: every minute).
Schedule (cronConfig)String❌File retrieval schedule.
Time zone (timezone)String❌Time zone applied to the CRON schedule.

To build the retrieval schedule, use the generator below then report the expression in the corresponding field:

CRON expression generator
Choose a preset or build your expression field by field, then copy it into the Cron config field of the trigger. Click several values in the same field to combine them (e.g. Monday and Thursday, at 4:05 and 4:55).
Presets
Custom expression
Minute
Hour
Day of month
Month
Day of week
0 9 * * *
This expression means: every day, at 09:00.
Next runs:
• Friday, October 16, 2026 at 09:00 AM
• Saturday, October 17, 2026 at 09:00 AM
• Sunday, October 18, 2026 at 09:00 AM
• Monday, October 19, 2026 at 09:00 AM
• Tuesday, October 20, 2026 at 09:00 AM
The next-runs calculation uses your browser's time zone. The trigger interprets the expression in the time zone configured in its Timezone field.

By email​

Send an email with attached files: Ecosystem analyzes the attachments to extract the data. It is recommended to fill in a sender whitelist: Ecosystem only takes into account files coming from addresses listed in this list. The trigger's email address is communicated after deployment: click on the tag bearing the environment name, the address appears in a pop-in.

ParameterTypeRequiredDescription
Sender whitelist (sendersEmailsWhiteList)List❌Whitelist of allowed senders.
Allow empty send (noFilesAllowed)Boolean❌Allows sending without an attachment.

Options per format​

CSV​

ParameterDescription
Delimiter (delimiter)Separator character (default: ,).
Trim whitespace (trim)Removes whitespace from column names.
Skip empty lines (skipEmptyLines)Ignores empty lines.
Skip number of lines (skipNumberOfLines)Number of lines to skip before reading.
Forced headers (headers)Forced headers to replace those of the file.
Group data by key (dataGroupByKey)Key for logical grouping of the read data.
Processing mode (processingMode)PROCESS_FILE_PER_LINE or PROCESS_WHOLE_FILE (default: PROCESS_WHOLE_FILE).
Processing interval (processingIntervalInLinesMode)Delay in milliseconds between each line in line-by-line mode.

XLS​

ParameterDescription
Sheet name (sheetName)Name of the sheet to read (first sheet by default).
Skip empty lines (skipEmptyLines)Ignores empty lines.
Skip number of lines (skipNumberOfLines)Number of lines to skip before reading.
Forced headers (headers)Forced headers to replace those of the file.
Group data by key (dataGroupByKey)Key for logical grouping of the read data.
Processing mode (processingMode)PROCESS_FILE_PER_LINE or PROCESS_WHOLE_FILE (default: PROCESS_WHOLE_FILE).
Processing interval (processingIntervalInLinesMode)Delay in milliseconds between each line in line-by-line mode.

XML​

The workflow receives an automatic conversion to JSON of the received XML file.

ParameterDescription
Extraction path (dataExtractionPath)Extraction path (jsonPath format). In whole-file mode (PROCESS_WHOLE_FILE), $ to process the whole file from its beginning, or the name of a particular section. In line-by-line mode (PROCESS_FILE_PER_LINE), the name of the lines — e.g. orders.order for order tags within an orders array.
Processing mode (processingMode)PROCESS_FILE_PER_LINE or PROCESS_WHOLE_FILE.
Processing interval (processingIntervalInLinesMode)Delay in milliseconds between each line in line-by-line mode.
Parsing mode (parsingMode)NATIVE (default) or DETAILED.
Skip empty lines (skipEmptyLines)Ignores empty lines.
Skip number of lines (skipNumberOfLines)Number of lines to skip before reading.

JSON​

ParameterDescription
Skip empty lines (skipEmptyLines)Ignores empty lines.
Extraction path (dataExtractionPath)Extraction path of the JSON data.
Processing mode (processingMode)PROCESS_FILE_PER_LINE or PROCESS_WHOLE_FILE.
Processing interval (processingIntervalInLinesMode)Delay in milliseconds between each line in line-by-line mode.

RAW​

For data coming from a plain-text file, the file content is passed through as-is; if the file is ASCII or binary, it is sent in base64. No parsing option.

Processing mode​

Whatever the input format, two processing modes are possible:

  • Whole file: a single execution, with the file in its entirety.
  • Line by line: one execution per line of the file; the input data of each execution represents the corresponding line.

The per-line processing interval adds a wait time between two lines, useful when the recipient of the lines (database, API…) cannot absorb the lines at maximum speed.

Input​

The trigger receives a file from one of the configured sources (upload, monitored FTP/SFTP directory, email attachment). The content is parsed according to the configured File format — for example, a CSV:

orderId,status
CMD-4821,new
CMD-4822,new

Output​

The workflow receives the parsed content of the file in data — the whole file (whole-file mode) or the current line (line-by-line mode) — with the metadata in context:

PropertyDescription
dataParsed content of the file (JSON object) or current line depending on the processing mode.
data.filenameName of the source file.
context.sourceSending source (DIRECT_UPLOAD, FTP_SFTP, EMAIL).
{
"data": { "orderId": "CMD-4821", "status": "new" },
"context": { "source": "FTP_SFTP" }
}

Errors​

  • Parsing failure — a file that does not match the configured format makes the execution fail; the failure is handled by the connected On Error node.
  • Double processing — the trigger continuously monitors the configured directory, detects new files and avoids processing the same file twice.

Limits​

  • By email: 5 files maximum per email, 10 MB per file maximum. Each file sent generates a separate trace.
  • Line-by-line mode: the processing interval (processingIntervalInLinesMode) adds a configurable delay between each line.

Example​

Processing CSV files from an SFTP: create a File type trigger with an FTP_SFTP source pointing to /uploads/orders, associate a workflow that reads, parses and processes each line, then archives the processed file. After deployment, the trigger automatically monitors the directory.

See also​