Appendix: JSONata function library
Frontend
alert
Shows a model popup with a message
Sample output:clearCache
clears the HTTP cache - can be used in conjunction with expressions that trigger side effects on the backend
Sample output:confirm
displays a confirmation dialog and returns true if the user clicked yes
Sample output:dialog
Shows a dialog to enter 'to' and 'text'. If the user submits via 'ok', an object with these fields is returned
$dialog({
'title':'Send Message',
'message':'Please enter your message',
'inputs':['to', 'content'],
'buttons':[{'label':'ok', 'type':'submit'},'cancel'],
'options':{'alert':'info'}
})
navigate
points the browser to the URL
Sample output:navigate
scrolls the page to the DOM element with the given id. In this case, we scroll to the widget that has the title 'Top'
Sample output:notify
Shows a message in the snackbar at the bottom of the screen
Sample output:progress
shows a progress indicator with the message 'working...' for 1 second until the expression execution completes
Sample output:prompt
Prompts the user for an input. Returns the input or undefined if the prompt is cancelled
Sample output:refresh
refreshes the screen just (just like hitting the refresh icon in the toolbar)
Sample output:reload
reloads the browser page
Sample output:setVariable
Sets the browser session variable x to 1. The new value can be read in other places via variable.x
Sample output:sleep
sleeps for 1000 milliseconds
Sample output:speak
performs a text to english speech for 'Test'
Sample output:stopSpeech
stops any text to speech that's in progress
Sample output:translate
Lookup the text in the translation file and return the match for the current locale
Sample output:Backend
adHocQuery
Run query 'select * from EMPLOYEES' on database 'northwind'
Sample output:[ {
"EMPLOYEES.EMPLOYEE_ID" : 1,
"EMPLOYEES.LAST_NAME" : "Davolio",
"EMPLOYEES.FIRST_NAME" : "Nancy"
} ]
all
get all records of the REQUESTS table in the database 'sqlite'
Sample output:[ {
"ID" : 1,
"name" : "Can you please send me an offer",
"submitted" : "2021-01-01 10:20",
"customer" : "ALFKI",
"user" : "user"
} ]
all
get the first ten records of the REQUESTS table in the database 'sqlite', sort by 'ID', descending=true, with the filter customer='ALFKI'
Sample output:[ {
"ID" : 1,
"name" : "Can you please send me an offer",
"submitted" : "2021-01-01 10:20",
"customer" : "ALFKI",
"user" : "user"
} ]
call
call function 'add' from the function catalog using the provided parameter
Sample output:chat
Call the LLM comlpetion API of OpenAI with the query 'hi', the system prompt 'be funny', and the 'openai' credential
$chat('https://api.openai.com/v1/chat/completions', 'hi', [{'role': 'system', 'content': 'be funny!'}], [], {'model':'gpt-4o-mini'}, {'Authorization': 'openai', 'dj-timeout-seconds': 60})
[ {
"role" : "system",
"content" : "be funny!"
}, {
"content" : "hi",
"role" : "user"
}, {
"role" : "assistant",
"content" : "Hello! How can I tickle your funny bone today?",
"refusal" : null,
"annotations" : [ ]
} ]
classifyEntities
Reconciles entities and finds common classifications that all entities are an instance of
Sample output:create
create a new record in database 'sqlite', table 'REQUESTS'
Sample output:curl
open the HTTP GET service at the given URL and pass the authorization header
$curl('GET', 'http://localhost:8080/rest/manage/version', null, {'Authorization': 'Basic YWRtaW46ZGpkamRq'})
delete
delete REQUEST 7 in the database 'sqlite'
Sample output:djRoles
Returns the roles of the current user
Sample output:djUser
Returns the current user
Sample output:djVersion
Returns the platform version information
Sample output:{
"version" : "6.1.0-d26fc67-6f4f682",
"title" : "dashjoin-platform",
"vendor" : "Dashjoin",
"name" : "Dashjoin Low Code Development and Integration Platform",
"buildTime" : "2025-07-31T11:22:48+0000",
"runtime" : "21.0.6",
"workingDir" : "/deployments",
"home" : "/mnt/dashjoin/app",
"appurl" : "https://github.com/dashjoin/dashjoin-demo"
}
echo
prints 'hi' to the log and returns 'hi'
Sample output:erDiagram
generate database schema information for database 'sqlite'
Sample output:"Table REQUESTS{\n ID INTEGER [primary key]\n name VARCHAR\n submitted VARCHAR\n customer VARCHAR [ref: > CUSTOMERS.CUSTOMER_ID]\n user VARCHAR\n}"
etl
Run an ETL that loads data into the sqlite database with createSchema set to true
Sample output:etlSync
Compares two tables with URL / file information to determine which files changed. These can be used for a delta ETL.
Sample output:exec
run the script 'bin/test.sh'
Sample output:gitCommit
git commit a set of files
Sample output:gitPull
Pull the dashjoin app
Sample output:gitRestore
git restore 'dashjoin-demo.db'
Sample output:gitStatus
return the git status of the dashjoin app
Sample output:[ {
"path" : "dashjoin-demo.db",
"type" : "modified",
"diff" : "diff --git a/dashjoin-demo.db b/dashjoin-demo.db\nindex 6fdb4ce..d29b8f1 100644\n--- a/dashjoin-demo.db\n+++ b/dashjoin-demo.db\nBinary files differ\n"
} ]
incoming
get all records from all databases that point to northwind EMPLOYEE 2
Sample output:[ {
"id" : {
"database" : "northwind",
"table" : "EMPLOYEES",
"pk" : [ 1 ]
},
"pk" : "dj/northwind/EMPLOYEES/EMPLOYEE_ID",
"fk" : "dj/northwind/EMPLOYEES/REPORTS_TO"
} ]
index
In ETL mapping expressions, generates a unique row index ID
Sample output:isRecursiveTrigger
checks if a trigger expression (e.g. onUpdate) calls itself in order to avoid endless recursions
Sample output:ls
Lists all URLs found at file:upload
Sample output:[ {
"url" : "file:upload/openapi.yaml",
"folder" : false,
"size" : 480,
"modified" : 1737640794571,
"etag" : null
} ]
openCsv
Open 'file:upload/test.csv', parse the semi-colon delimited CSV, convert it to JSON and return it
Sample output:openExcel
Open 'file:upload/test.xlsx', and return a JSON map of all sheets
Sample output:openJson
Open 'file:upload/test.json', parse the JSON content and return it
Sample output:openText
Open 'file:upload/test.json' and return it base64 encoded
Sample output:openText
Open 'file:upload/test.json' using ISO_8859_1 encoding
Sample output:openXml
Open 'file:upload/test.xml', parse the XML content, convert it to JSON and return it
Sample output:openYaml
Open 'file:upload/test.yaml', parse the YAML content, convert it to JSON and return it
Sample output:parseCsv
Parse a string to CSV, convert it to JSON and return it
Sample output:parseExcel
Parses a base64 data URL to Excel, converts that to JSON and return it
Sample output:parseHtml
Open the dashjoin website, parse the HTML and extract all h1 elements
Sample output:parseJson
Parse a string to JSON and return it
Sample output:parseUrl
Parses a URL and return an object describing it
Sample output:{
"authority" : "dashjoin.com",
"defaultPort" : 443,
"file" : "/s?q",
"host" : "dashjoin.com",
"path" : "/s",
"port" : -1,
"protocol" : "https",
"query" : "q",
"userInfo" : null
}
parseXml
Parse a string to XML, convert it to JSON and return it
Sample output:parseYaml
Parse a string to YAML, convert it to JSON and return it
Sample output:query
run query 'group' on database 'northwind'
Sample output:query
run query 'list' on datanase 'northwind' using query parameters limit 1 and offset 3
Sample output:[ {
"CATEGORIES.CATEGORY_ID" : 4,
"CATEGORIES.CATEGORY_NAME" : "Dairy Products",
"CATEGORIES.DESCRIPTION" : "Cheeses",
"CATEGORIES.PICTURE" : ""
} ]
queryGraph
run graph query cypher on over all databases
Sample output:read
read the records with primary key 7 from table 'REQUESTS' in database 'sqlite'
Sample output:reconcileEntity
Uses the wikidata query service to reconcile a string to a wikidata id
Sample output:[ {
"id" : "Q312",
"label" : "Apple Inc.",
"description" : "American multinational technology company based in Cupertino, California"
} ]
saveTable
save the data (with primary key id) to the test table in the sqlite database
Sample output:search
Sample output:[ {
"id" : {
"database" : "northwind",
"table" : "EMPLOYEES",
"pk" : [ 2 ]
},
"column" : "LAST_NAME",
"match" : "Fuller"
} ]
search
run a full text search for 'Fuller'over the EMPLOYEES table in the 'northwind' database. Limit the result size to 5.
Sample output:[ {
"id" : {
"database" : "northwind",
"table" : "EMPLOYEES",
"pk" : [ 2 ]
},
"column" : "LAST_NAME",
"match" : "Fuller"
} ]
stats
return database statistics
Sample output:[ {
"ID" : "dj/sqlite/REQUESTS/ID",
"count" : 6,
"nulls" : 0,
"countdistinct" : 6,
"min" : 1,
"max" : 8,
"dbType" : "INTEGER",
"type" : "number",
"detectedType" : "string"
} ]
streamCsv
open semi-colon delimited file file:upload/test.csv and stream the records into the ETL queue from the foreach expression
Sample output:streamDb
stream the records of the ORDERS table of the northwind database into the ETL queue from the foreach expression
Sample output:streamJson
open file:upload/test.json, locate the array at the JSON Pointer /data and stream the array items into the ETL queue from the foreach expression
Sample output:streamXml
open file:upload/test.xml, locate the array at the JSON Pointer /data and stream the array items into the ETL queue from the foreach expression
Sample output:traverse
gets all related records for ORDER 10250 from the ORDER_DETAILS table (via foreign key ORDER_DETAILS.ORDER_ID)
Sample output:traverse
get the related customer for ORDER 10250 from the CUSTOMER table (via foreign key CUSTOMER_ID)
Sample output:{
"CUSTOMER_ID" : "HANAR",
"COMPANY_NAME" : "Hanari Carnes",
"CITY" : "Rio de Janeiro",
"PHONE" : "(21) 555-0091"
}
update
update REQUEST 7 in the database 'sqlite'
Sample output:upsert
inserts or updates record in database 'sqlite', table 'REQUESTS'
Sample output:urlExists
checks if a URL exists
Sample output:uuid
Generates a random UUID
Sample output:wait
Waits before returning the parameter (server-side equivalent of $sleep)
Sample output: