Available States:
JSON to JSON
CSV to JSON
XML to JSON
YAML to JSON
XLSX to JSON
TXT to JSON
Go to the right pane of your circuit.
Select Data Transformation and choose JSON Conversion.
Select the required state in the JSON conversion category.
Drag and drop the selected state into your circuit.
Under Configuration:
Type is set to Task by default.
Task ID is preselected based on the chosen state and can be modified from the dropdown.
Configure the Payload using the following common fields (as applicable):
Qntrl File ID – The ID of the file uploaded in the Qntrl Files module.
Index – The starting index of the data to process.
Range – The number of records to process from the starting index.
Encoding Type – The file encoding format. Defaults to UTF-8 if not specified. Incorrect encoding may prevent the file from being read.
Configure Error Handling, if required.
Data: Static or dynamic input JSON.
Qntrl File ID: Provide a file-based JSON input instead of inline data (optional).
Script Type: Select JSONata or JSLT from the dropdown.
Script: Script the transformation logic
Variables: Define variables to reference within the script
{"Json 2 Json Converter": {"start": true,"module": "json_conversion","task_id": "json_to_json","payload": {"qntrl_file_id": "{file_id}","script_type": "JSONata","script": "Account.Order.Product"},"next": "End"}}
JSLT
{"Json 2 Json Converter": {"start": true,"module": "json_conversion","task_id": "json_to_json","payload": {"qntrl_file_id": "{file_id}","script_type": "Jslt","script": {"user": {"name": "upper-case(.name)","age": ".age","location": ".city","isAdult": ".age >= 18"}}},"next": "End"}}
JSONata with Variables
{"Json 2 Json Converter": {"start":true,"module": "json_conversion","task_id": "json_to_json","payload": {"variables": {"greeting": "Hello"},"data": {"name": "Alice"},"script_type": "JSONata","script": "$greeting & ', ' & name"}"next": "End"},}
Converts a CSV file into JSON. Supports custom delimiters, headers, quote characters, and null value handling.
Header: Manually define column names when Has Header is disabled.
Delimiter: Character used to separate values (e.g., comma, semicolon)
Quote Char: Character used to quote fields containing special characters, preventing them from being split.
Escape Char: Character used to escape the quote character within a field.
NA Values: Strings to treat as missing values (NaN).
Null Substitute: Replacement value for recognized NaN entries.
When defining headers manually (i.e., Has Header is disabled), each column entry supports the following keys:
name: The column name to assign in the JSON output.
type: The data type of the column (e.g., string, number, datetime).
input: Specify the format and timezone of the date value in the source CSV.
output: Specify the desired format and locale of the date value in the JSON output.
{"New State 1": {"type": "task","module": "json_conversion","task_id": "csv_to_json","payload": {"qntrl_file_id": "{file_id}","has_header": false,"delimiter": ",","quote_char": "\"","headers": [{"name": "EmployeeID","type": "number"},{"name": "DOB","type": "datetime","input": {"format": "yyyy-MM-dd HH:mm:ss","zone": "UTC"},"output": {"format": "yyyy-MMMM-dd HH:mm:ss","locale": "fr"}}]},"end": true}}
{"XML Json Converter": {"start":true,"module": "json_conversion","task_id": "xml_to_json","payload": {"qntrl_file_id": {file_id},"range":5},"next": "End"},}
Converts a YAML file into JSON format. Supports alias limiting to handle complex YAML structures safely.
{
"YAML Json Converter": {
"start": true,
"module": "json_conversion",
"task_id": "yaml_to_json",
"payload": {
"qntrl_file_id": "{file_id}",
"max_aliases": 10
},
"next": "End"
}
}
Converts spreadsheet data from an Excel file into JSON. Supports sheet selection and flexible header configuration.
Sheet Index: Index of the sheet to process.
Sheet Name: Name of the sheet to process.
Has Header: Indicates whether the first row contains column headers.
Header Index: Row index to use as the header row
Header Behavior:
If has_header = true, the first row is treated as column names.
If has_header = false, columns are auto-generated as column1, column2, etc.
You can manually define column names when headers are not present.
Code View
{
"XLSX Json Converter": {
"start": true,
"module": "json_conversion",
"task_id": "xlsx_to_json",
"payload": {
"qntrl_file_id": "{file_id}",
"has_header": true,
"headers": [
{
"name": "person",
"type": "string"
},
{
"name": "age",
"type": "number"
},
{
"name": "DOB",
"type": "datetime",
"input": {
"format": "yyyy-MM-dd HH:mm:ss",
"zone": "UTC"
},
"output": {
"format": "yyyy-MMMM-dd HH:mm:ss",
"locale": "fr"
}
}
]
},
"next": "End"
}
}Converts structured text files into JSON. Supports three parsing methods depending on the structure of your text file.
Builder View Additional Properties
Delimiter: Character used to split values in delimiter-based parsing (e.g., ,, |, >).
Has Header: Enable this option if the first row contains column headers. When enabled, the first row is treated as column names.
Columns: If Has Header is disabled, define columns manually by specifying the column name, data type, and parsing rule.
Parsing Methods
Delimiter-Based Parsing: Used when values in the text file are separated by a consistent character such as ,, |, or >.
Index-Based (Fixed-Width) Parsing: Used for fixed-length text files where each field occupies a defined character position. Specify the start and end positions to define column boundaries.
Regex-Based Parsing: Used for unstructured or semi-structured text files (e.g., log files) where fields are identified using pattern matching.

Code View
John Doe 35
Jane Smith 28
Bob Johnson 42
-> Config
{
"TXT Json Converter": {
"start": true,
"module": "json_conversion",
"task_id": "txt_to_json",
"payload": {
"qntrl_file_id": "{file_id}",
"has_header": false,
"columns": [
{
"name": "firstName",
"start": 0,
"end": 19,
"type": "string"
},
{
"name": "lastName",
"start": 20,
"end": 39,
"type": "string"
},
{
"name": "age",
"start": 40,
"end": 42,
"type": "number"
}
]
}
}
}
-> Response
[{ "firstName": "John", "lastName": "Doe", "age": 35 },{ "firstName": "Jane", "lastName": "Smith", "age": 28 },{ "firstName": "Bob", "lastName": "Johnson", "age": 42 }]
-> Input
2025-07-29 10:00:00 INFO User logged in
2025-07-29 10:05:00 ERROR Failed to load resource
2025-07-29 10:10:00 INFO User logged out
-> Config
{"TXT Json Converter": {
"start": true,
"module": "json_conversion",
"task_id": "txt_to_json",
"payload": {
"qntrl_file_id": "{file_id}",
"has_header": false,
"columns": [
{
"name": "date",
"regex": "^\\d{4}-\\d{2}-\\d{2}",
"type": "date"
},
{
"name": "time",
"regex": "\\d{2}:\\d{2}:\\d{2}",
"type": "time",
"format": "HH:mm:ss"
},
{
"name": "level",
"regex": "(INFO|ERROR|WARN)",
"type": "string"
},
{
"name": "message",
"regex": "(INFO|ERROR|WARN) (.*)$",
"type": "string"
}
]
}
}
}
-> Response
[{"date": "2025-07-29","time": "10:00:00","level": "INFO","message": "User logged in"},{"date": "2025-07-29","time": "10:05:00","level": "ERROR","message": "Failed to load resource"},{"date": "2025-07-29","time": "10:10:00","level": "INFO","message": "User logged out"}]
-> Input
John | Doe | true | 1985-12-15
Jane | Smith | false | 1990-05-10
Bob | Johnson | true | 1978-03-22
-> Config
{
"TXT Json Converter": {
"start": true,
"module": "json_conversion",
"task_id": "txt_to_json",
"payload": {
"qntrl_file_id": "{file_id}",
"has_header": false,
"delimiter": "|",
"columns": [
{
"name": "firstName",
"type": "string"
},
{
"name": "lastName",
"type": "string"
},
{
"name": "isActive",
"type": "boolean"
},
{
"name": "birthDate",
"type": "date"
}
]
}
}
}-> Response
[{"firstName": "John","lastName": "Doe","isActive": true,"birthDate": "1985-12-15"},{"firstName": "Jane","lastName": "Smith","isActive": false,"birthDate": "1990-05-10"},{"firstName": "Bob","lastName": "Johnson","isActive": true,"birthDate": "1978-03-22"}]
You are currently viewing the help articles of Qntrl 3.0. If you are still using our older version and require guidance with it, Click here.