-
Notifications
You must be signed in to change notification settings - Fork 0
Custom Fuuz Only JSONata Library
Article Type: Concept / Reference Audience: App Admins, Developers, Solution Architects Module: Fuuz Platform (Screen Designer, Data Flows, Transforms) Applies to Versions: 3.0+
The Fuuz platform extends the standard JSONata expression language with a library of 294 custom bindings (functions) for industrial automation and enterprise integration. This page is the complete reference for every binding, organized by where it runs (Frontend, Backend, or Shared) and by functional category.
The Fuuz Industrial Operations Platform extends the standard JSONata expression language with a comprehensive library of 294 custom bindings (functions) developed specifically for industrial automation and enterprise integration scenarios. These bindings enable powerful data transformations, UI interactions, file manipulations, and system integrations without requiring specialized knowledge of underlying technologies.
Note: These custom bindings are available exclusively within the Fuuz Platform and extend the standard JSONata specification. Standard JSONata functions documented at docs.jsonata.org remain fully supported.
Bindings are grouped by Type, which determines where they can be used:
- Frontend — available only in Screen Designer (frontend) transforms.
- Backend — available only in Data Flows and backend transforms.
- Shared — available everywhere (Screen Designer, Data Flows, and Transforms).
A simple example combining custom bindings in a transform:
$groupBy(orders, function($v) { $v.customerId })
~> $mapValues(function($o) { $sum($o.total) })
This comprehensive reference documents all 294 custom bindings available in the Fuuz Platform, organized by Type and Category with Name, Signature, Description, and Example usage.
| Binding | Signature | Description | Example |
|---|---|---|---|
$writeToClipboard() |
$writeToClipboard(data) |
Write data to the clipboard. | $writeToClipboard({"a":1}) |
$readFromClipboard() |
$readFromClipboard() |
Read data from the clipboard. | $readFromClipboard() |
| Binding | Signature | Description | Example |
|---|---|---|---|
$addNotificationMessage() |
$addNotificationMessage(title, options) |
Adds a notification message to the UI for the current user, optionally displaying a snackbar. Severity can be info, error, warning, or success. Note: this binding is frontend-only. |
$addNotificationMessage("Error processing request", {"message": "This is a longer message describing what went wrong. It will be displayed in the message popup.", "severity": "error", "data": {"additionalInformation": "This additional information will also be displayed alongside the message in the popup."}}) |
$navigateBack() |
$navigateBack() |
Navigate back one page. | $navigateBack() |
$navigateTo() |
$navigateTo(pathname, options) |
Navigate to the pathname provided. Options: newWindow (open a new window and navigate to pathname if true), replace (replace the pathname of the page with the new one if true). |
$navigateTo('/system/configuration/calendars?CalendarTable.view=Default', {'newWindow': true, 'replace': false}) |
$navigateReload() |
$navigateReload() |
Reload the current page. | $navigateReload() |
$showAlertDialog() |
$showAlertDialog(message, options) |
Show an alert dialog; it operates identically to the alert HOC function. Options: title (string), icon (string or object), buttonColor (string). |
$showAlertDialog("Text to display", {'title': 'Title', 'icon': 'save', 'buttonColor': 'red'}) |
$showConfirmDialog() |
$showConfirmDialog(message, options) |
Show a confirm dialog; it operates identically to the confirm HOC function. Options: title (string), delayTimeinSeconds (number), icon (object or string), buttonColor (string). |
$showConfirmDialog("Text to display", {'title': 'Title', 'delayTimeinSeconds': 5, 'icon': 'file', 'buttonColor': 'secondary'}) |
$showFormDialog() |
$showFormDialog(object) |
Show a form dialog; it operates identically to the showFormDialog HOC function. It displays a form built from the provided JSON object. | $showFormDialog({'title': 'Create Screen Version', 'formInputs': [{'name': 'description', 'description': 'The description of the screen version.', 'type': 'markdown', 'dataPath': 'description', 'label': 'Description', 'validation': {'required': false}}, {'name': 'versionNumber', 'description': 'The initial version number for the screen.', 'type': 'text', 'dataPath': 'versionNumber', 'label': 'Version Number', 'validation': {'required': true}}], 'submitIcon': 'plus', 'data': {'description': '', 'versionNumber': '0.0.1'}}) |
These bindings are invoked through a screen component, e.g. $components.Table1.fn.loadData(...). Replace Table1, Form1, Container1, or ActionButton1 with the name of your component.
| Binding | Signature | Description | Example |
|---|---|---|---|
$loadData() (table) |
$components.Table1.fn.loadData({filter: {field: {condition: value}}, rowLimit: 500}) |
Load data from the backend into a table, with filter and pagination. filter and rowLimit are optional parameters. |
$components.Table1.fn.loadData({filter: {id: {_contains: '123'}}, rowLimit: 500}) |
$search() |
$components.Table1.fn.search({rowsPerPage: 500}) |
Search data in a table based on the filter provided in the filter form. rowsPerPage is an optional parameter. |
$components.Table1.fn.search({rowsPerPage: 500}) |
$setData() |
$components.Table1.fn.setData([{id: 1, field1: "value1", field2: "value2"}, ...]) |
Set custom data in a table, overwriting the entire table data. The id field is required; field1, field2, etc. are optional fields which can be set as columns in the table. |
$components.Table1.fn.setData([{id: 1, field1: "value1", field2: "value2"}, {id: 2, field1: "value1", field2: "value2"}]) |
$addRows() |
$components.Table1.fn.addRows([{id: 1, field1: "value1", field2: "value2"}, ...]) |
Add custom rows to the end of a table. The id field is required; field1, field2, etc. are optional fields which can be added as columns in the table. |
$components.Table1.fn.addRows([{id: 1, field1: "value1", field2: "value2"}, {id: 2, field1: "value1", field2: "value2"}]) |
$updateRows() |
$components.Table1.fn.updateRows([{id: 1, field1: "value1", field2: "value2"}, ...]) |
Match rows based on id and update rows already in the table. The id field is required; field1, field2, etc. are optional fields. |
$components.Table1.fn.updateRows([{id: 1, field1: "value1", field2: "value2"}, {id: 2, field1: "value1", field2: "value2"}]) |
$upsertRows() |
$components.Table1.fn.upsertRows([{id: 1, field1: "value1", field2: "value2"}, ...]) |
Match rows based on id; add new rows that aren't already in the table and update rows that are. The id field is required; field1, field2, etc. are optional fields. |
$components.Table1.fn.upsertRows([{id: 1, field1: "value1", field2: "value2"}, {id: 2, field1: "value1", field2: "value2"}]) |
$deleteRows() |
$components.Table1.fn.deleteRows([id1, id2, id3]) |
Delete rows in a table by id. | $components.Table1.fn.deleteRows([1,2,3]) |
$selectRow() |
$components.Table1.fn.selectRow([id1, id2, id3]) |
Select rows in a table by id. | $components.Table1.fn.selectRow([1,2,3]) |
$deselectRow() |
$components.Table1.fn.deselectRow([id1, id2, id3]) |
Deselect rows in a table by id. | $components.Table1.fn.deselectRow([1,2,3]) |
$toggleRowSelection() |
$components.Table1.fn.toggleRowSelection([id1, id2, id3]) |
Toggle selection of rows in a table by id. | $components.Table1.fn.toggleRowSelection([1,2,3]) |
$selectAllRows() |
$components.Table1.fn.selectAllRows() |
Select all rows, regardless of filtering — including rows that are not visible due to grouping being enabled and their groups not expanded. | $components.Table1.fn.selectAllRows() |
$deselectAllRows() |
$components.Table1.fn.deselectAllRows() |
Clear all row selections, regardless of filtering. | $components.Table1.fn.deselectAllRows() |
$selectAllFiltered() |
$components.Table1.fn.selectAllFiltered() |
Select all filtered rows. | $components.Table1.fn.selectAllFiltered() |
$deselectAllFiltered() |
$components.Table1.fn.deselectAllFiltered() |
Clear all filtered selections. | $components.Table1.fn.deselectAllFiltered() |
$setSelectedRows() |
$components.Table1.fn.setSelectedRows([id1, id2, id3]) |
Set the selection of rows by id(s) in a table. | $components.Table1.fn.setSelectedRows([1,2,3]) |
$setValue() |
$components.Form1.fn.setValue(field, data) |
Set the value of a field in a form. field is the data path of the form field; data is the value to set. |
$components.Form1.fn.setValue('Text1', 'dummy text') |
$focus() |
$components.Form1.fn.focus(field) |
Set cursor focus on a field in a form. field is the data path of the form field. |
$components.Form1.fn.focus('Text1') |
$blur() |
$components.Form1.fn.blur(field) |
Blur cursor focus of a field in a form. field is the data path of the form field. |
$components.Form1.fn.blur('Text1') |
$loadData() (form) |
$components.Form1.fn.loadData() |
Reload data in a form. | $components.Form1.fn.loadData() |
$getUpdateMutation() |
$components.Form1.fn.getUpdateMutation() |
Get the mutation query for updating data in a form. It generates the mutation query for the form if and only if the Data Model for the form is set. | $components.Form1.fn.getUpdateMutation() |
$getUpdatePayload() |
$components.Form1.fn.getUpdatePayload() |
Get the payload for the mutation of data in a form. | $components.Form1.fn.getUpdatePayload() |
$validate() |
$components.Form1.fn.validate() |
Validate a form and return an array of errors. | $components.Form1.fn.validate() |
$save() |
$components.Form1.fn.save(isSaveAll = false) |
Save the details of a form. By default it saves modified fields only; to save all fields pass true to the save function. |
$components.Form1.fn.save() |
$getVariables() |
$components.Form1.fn.getVariables() |
Get all the variables of the form. | $components.Form1.fn.getVariables() |
$delete() |
$components.Form1.fn.delete() |
Delete the form data. | $components.Form1.fn.delete() |
$hide() |
$components.Container1.fn.hide() |
Set container visibility to hidden. | $components.Container1.fn.hide() |
$show() |
$components.Container1.fn.show() |
Set container visibility to shown. | $components.Container1.fn.show() |
$toggle() |
$components.Container1.fn.toggle() |
Toggle container visibility. | $components.Container1.fn.toggle() |
$resetHidden() |
$components.Container1.fn.resetHidden() |
Reset all the hidden fields in a container. | $components.Container1.fn.resetHidden() |
$execute() |
$components.ActionButton1.fn.execute({field: value}) |
Execute the action of another action button. field and value are optional parameters for the action button; you can pass any number of parameters. |
$components.ActionButton1.fn.execute({'Text1': 'dummy text'}) |
| Binding | Signature | Description | Example |
|---|---|---|---|
$readEDI(x12) |
$readEDI(string, object, object) |
Reads an EDI document with the EDINation API and returns JSON. | $readEDI('x12', {"fileName": "", "fileContents": ""}, {"options": {"apiOptions": {"ignoreNullValues": false, "continueOnError": false, "charSet": 'utf-8', "model": undefined}}}) |
$readEDI(edifact) |
$readEDI(string, object, object) |
Reads an EDI document with the EDINation API and returns JSON. | $readEDI('edifact', {"fileName": "", "fileContents": ""}, {"options": {"apiOptions": {"ignoreNullValues": false, "continueOnError": false, "charSet": 'utf-8', "model": undefined, "eancomS3": false}}}) |
$writeEDI(x12) |
$writeEDI(string, object, object) |
Writes a JSON EDI document to EDINation, returning an EDI string. | $writeEDI('x12', data, {"options": {"apiOptions": {"preserveWhitespace": false, "charSet": 'utf-8', "postfix": undefined}}}) |
$writeEDI(edifact) |
$writeEDI(string, object, object) |
Writes a JSON EDI document to EDINation, returning an EDI string. | $writeEDI('edifact', data, {"options": {"apiOptions": {"preserveWhitespace": false, "charSet": 'utf-8', "postfix": undefined, "sameRepetionAndDataElement": false, "eancomS3": false}}}) |
$validateEDI(x12) |
$validateEDI(string, object, object) |
Validates a JSON EDI document against the EDINation API. | $validateEDI('x12', data, {"options": {"apiOptions": {"basicSyntax": false, "syntaxSet": undefined, "skipTrailer": false, "structureOnly": false}}}) |
$validateEDI(edifact) |
$validateEDI(string, object, object) |
Validates a JSON EDI document against the EDINation API. | $validateEDI('edifact', data, {"options": {"apiOptions": {"syntaxSet": undefined, "skipTrailer": false, "structureOnly": false, "decimalPoint": '.', "eancomS3": false}}}) |
$ackEDI(x12) |
$ackEDI(string, object, object) |
Writes an EDI document and returns an ACK. | $ackEDI('x12', data, {"options": {"apiOptions": {"basicSyntax": false, "syntaxSet": undefined, "detectDuplicates": false, "tranRefNumber": 1, "interchangeRefNumber": 1, "ackForValidTrans": false, "batchAcks": true, "technicalAck": undefined, "ack": '997', "ak901isP": false}}}) |
$ackEDI(edifact) |
$ackEDI(string, object, object) |
Writes an EDI document and returns an ACK. | $ackEDI('edifact', data, {"options": {"apiOptions": {"syntaxSet": undefined, "detectDuplicates": false, "tranRefNumber": 1, "interchangeRefNumber": 1, "ackForValidTrans": false, "batchAcks": true, "technicalAck": undefined, "eancomS3": false}}}) |
| Binding | Signature | Description | Example |
|---|---|---|---|
$pdfToJson() |
$pdfToJson(string, object?) |
Converts a PDF file into JSON. | $pdfToJson("+kUKKbEVU8fDa2jHfjwcXdMDKzVt5S8s...") |
$mergePDFs() |
$mergePDFs([string]) |
Merges multiple base-64 encoded PDFs into a single document. | $mergePDFs(["+kUKKbEVU8fDa2...", "+kUKKbEVU8fDa2...", ...]) |
$rotatePDF() |
$rotatePDF(string, angle) |
Rotates a base-64 encoded PDF to a specified angle in degrees. Angle must be a multiple of 90. | $rotatePDF("+kUKKbEVU8fDa2...", 90) |
| Binding | Signature | Description | Example |
|---|---|---|---|
$eventsBetween() |
$eventsBetween(momentObject, momentObject, object) |
Returns the events for a calendar between two dates. | $eventsBetween($moment(), $moment(), calendar) |
$getEventEnd() |
$getEventEnd(object) |
Returns the end of the first occurrence of an event. | $getEventEnd(event) |
$getEventEnd() |
$getEventEnd(object, momentObject) |
Returns the end of the next occurrence of an event after the given moment. | $getEventEnd(event, $moment()) |
$getEventsAt() |
$getEventsAt(momentObject, object) |
Returns the events occurring in the given moment. | $getEventsAt($moment("2000-07-23T18:36:00.000Z"), calendar) |
$getEventsAt() |
$getEventsAt(string, object) |
Returns the events occurring in the given moment. | $getEventsAt("2000-07-23T18:36:00.000Z", calendar) |
$getAvailabilityBetween() |
$getAvailabilityBetween(momentObject, momentObject, object) |
Returns the events for a calendar between two dates, categorized by availability. | $getAvailabilityBetween($moment(), $moment(), calendar) |
$availableAt() |
$availableAt(momentObject, calendar) |
Returns true if there is at least one event marked as available in the given moment. |
$availableAt($moment(), calendar) |
| Binding | Signature | Description | Example |
|---|---|---|---|
$cuid() |
$cuid() |
Generates a CUID. | $cuid() |
$uuid() |
$uuid() |
Generates a V4 UUID. | $uuid() |
$throw() |
$throw(string, object?) |
Throws a ThrowBindingError which halts execution of the transform. The error will use the provided string as the message, and the data property will include any properties on the object passed to the second parameter. | $throw("Oh no, something broke!", {"moreDetail": true}) |
$coalesce() |
$coalesce(array) |
Returns the first value from the array that is not null or undefined. | $coalesce([undefined, null, "test"]) |
$identity() |
$identity(any) |
Returns the value it is given. | $identity("hello") |
$tryCatch() |
$tryCatch(function, function) |
Returns a new function that takes the same arguments as the first function and will run in a try/catch block. The catching function must be either anonymous or have a signature matching the trying function with the addition of a starting error object. | $tryCatch($fn1, $fn2) |
$nullIf() |
$nullIf(any, any) |
Returns null if the given value is equal to the comparison value; otherwise, it returns the value. | $nullIf("", "") |
$cronConverter() |
$cronConverter(string, string?) |
Returns the object from cron-converter. | $cronConverter("*/10 9-17 1 * *", "Etc/UTC") |
$wait() |
$wait(number) |
Pause execution for the given number of milliseconds. | $wait(1000) |
$retry() |
$retry(function, object?, function?) |
Returns a function to retry a number of times. The options object accepts retries and delay (ms) between retries. Optional function to return when a retry fails. |
$retry(function() { $http("get", {"url": "https://testnotreal.com"}) }, {"retries": 5, "delay": 1000}) |
$arrayToCsv() |
$arrayToCsv(array<object>, object?) |
Converts an array of objects into a CSV string. Documentation on options is located at npmjs.com/package/json-2-csv. | $arrayToCsv([{"name":"Bill","city":"Troy","state":"MI"},{"name":"Ted","city":"Clarkston","state":"MI"},{"name":"John","city":"Orange County","state":"CA"}], {"checkSchemaDifferences": false, "delimiter": {"field": ',', "wrap": '"', "eol": '\n'}, "emptyFieldValue": none, "excelBOM": false, "expandArrayObjects": false, "keys": null, "prependHeader": true, "sortHeader": false, "trimHeaderFields": false, "trimFieldValues": false}) |
$csvToArray() |
$csvToArray(string, object?) |
Converts a CSV string into an array of objects. Documentation on options is located at npmjs.com/package/json-2-csv. | $csvToArray('Name,City,State\nJohn,"Orange County",CA\nBill,Troy,MI\nTed,Waterford,MI', {"delimiter": {"field": ',', "wrap": '"', "eol": '\n'}, "excelBOM": false, "keys": null, "trimHeaderFields": false, "trimFieldValues": false}) |
$epcToUrn() |
$epcToUrn(string, object?) |
Converts an RFID tag's EPC value to a URN value. The default standard is set to GRAI96. User-defined parsing logic can be implemented using the userDefined object in options. |
$epcToUrn('330C4C06E8700440000AB45C', {paddWithZeros: false, standard: "GRAI96", userDefined: {partition: {startPos: 11, endPos: 14}, prefixBits: {0: 40, 1: 37, 2: 34, 3: 30, 4: 27, 5: 24, 6: 20}, assetBits: {0: 4, 1: 7, 2: 10, 3: 14, 4: 17, 5: 20, 6: 24}}}) |
$numeral() |
$numeral(value) |
Converts a JSON value to a Numeral.js object for parsing or formatting. Documentation is located at numeraljs.com. | $numeral("5000").format("0,0.00") |
$parseInt() |
$parseInt(string, number?) |
Converts a string to a number using the default or a specified base (radix, default 10). | $parseInt('FF00', 16) |
$decimalToString() |
$decimalToString(array<number>, string?) |
Decodes a decimal array into a string using the specified encoding (defaults to utf-8). For a list of supported encodings check encoding.spec.whatwg.org/#encodings. | $decimalToString([116, 101, 115, 116], 'utf-8') |
$parseNumber() |
$parseNumber(value) |
Converts a JSON value to a number. Returns undefined if the provided value is unable to be parsed into a number. | $parseNumber("5") |
$pluralize() |
$pluralize(string, string) |
Returns the provided string in pluralized form, using standard grammatical rules for the provided locale. | $pluralize('dog', 'en') |
$singularize() |
$singularize(string, string) |
Returns the provided string in singular form, using standard grammatical rules for the provided locale. | $singularize('dogs', 'en') |
$camelCase() |
$camelCase(string) |
Returns the provided string in lowerCamelCase. | $camelCase('one two three') |
$snakeCase() |
$snakeCase(string) |
Returns the provided string in snake_case. | $snakeCase('one two three') |
$kebabCase() |
$kebabCase(string) |
Returns the provided string in kebab-case. | $kebabCase('one two three') |
$lowerFirst() |
$lowerFirst(string) |
Returns the provided string with the first character changed to lowercase. | $lowerFirst('one two three') |
$upperFirst() |
$upperFirst(string) |
Returns the provided string with the first character changed to uppercase. | $upperFirst('one two three') |
$startCase() |
$startCase(string) |
Returns the provided string in Start Case. | $startCase('one two three') |
$htmlEscape() |
$htmlEscape(string) |
Converts the characters &, <, >, ", and ' in a string to their corresponding HTML entities. |
$htmlEscape("&") |
$htmlUnescape() |
$htmlUnescape(string) |
Converts the HTML entities &, <, >, ", and ' in a string to their corresponding characters. |
$htmlUnescape("&") |
$uriEscape() |
$uriEscape(string) |
URI escapes the given string. Does not handle the following characters: ?, =, /, and &. |
$uriEscape("https://mozilla.org/?x=шеллы") |
$uriUnescape() |
$uriUnescape(string) |
Reverses URI escaping on the given string. Does not handle the following characters: ?, =, /, and &. |
$uriUnescape("https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B") |
$uriEscapeComponent() |
$uriEscapeComponent(string) |
URI escapes the given string, including the following characters: ?, =, /, and &. |
$uriEscapeComponent("?x=шеллы") |
$uriUnescapeComponent() |
$uriUnescapeComponent(string) |
Reverses URI escaping on the given string, including handling of the following characters' escape sequences: ?, =, /, and &. |
$uriUnescapeComponent("%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B") |
$markdownToHtml() |
$markdownToHtml(string) |
Convert Markdown content to HTML. | $markdownToHtml('# Marked in Node.js\n\nRendered by **marked**.') |
$richTextToMarkdown() |
$richTextToMarkdown(object) |
Convert serialized RawDraftContent to Markdown. | $richTextToMarkdown({"blocks": [{"key": "butoo", "text": "Reg BOLD BOLD ITALIC UNDERLINE", "type": "unstyled", "depth": 0, "inlineStyleRanges": [{"offset": 4, "length": 26, "style": "BOLD"}, {"offset": 9, "length": 21, "style": "ITALIC"}, {"offset": 21, "length": 9, "style": "UNDERLINE"}], "entityRanges": [], "data": {}}, {"key": "acsru", "text": "Code Block Entity", "type": "code", "depth": 0, "inlineStyleRanges": [], "entityRanges": [], "data": {}}], "entityMap": {}}) |
$markdownToRichText() |
$markdownToRichText(string) |
Converts Markdown to serializable RichText objects. | $markdownToRichText("**Markdown** text here") |
$plainTextToRichText() |
$plainTextToRichText(string) |
Converts plain text to serializable RichText objects. | $plainTextToRichText("Plain text here") |
$richTextToPlainText() |
$richTextToPlainText(object) |
Convert serialized RawDraftContent to plain text. | $richTextToPlainText({"blocks": [{"key": "butoo", "text": "Reg BOLD BOLD ITALIC UNDERLINE", "type": "unstyled", "depth": 0, "inlineStyleRanges": [{"offset": 4, "length": 26, "style": "BOLD"}, {"offset": 9, "length": 21, "style": "ITALIC"}, {"offset": 21, "length": 9, "style": "UNDERLINE"}], "entityRanges": [], "data": {}}, {"key": "acsru", "text": "Code Block Entity", "type": "code", "depth": 0, "inlineStyleRanges": [], "entityRanges": [], "data": {}}], "entityMap": {}}) |
$richTextToHTML() |
$richTextToHTML(object) |
Convert serialized RawDraftContent to HTML. | $richTextToHTML({"blocks": [{"key": "butoo", "text": "Reg BOLD BOLD ITALIC UNDERLINE", "type": "unstyled", "depth": 0, "inlineStyleRanges": [{"offset": 4, "length": 26, "style": "BOLD"}, {"offset": 9, "length": 21, "style": "ITALIC"}, {"offset": 21, "length": 9, "style": "UNDERLINE"}], "entityRanges": [], "data": {}}, {"key": "acsru", "text": "Code Block Entity", "type": "code", "depth": 0, "inlineStyleRanges": [], "entityRanges": [], "data": {}}], "entityMap": {}}) |
$path() |
$path(object, string | array<string>) |
Returns the value at the provided path in the object. | $path({"parent":{"child":[1,2,3]}}, "parent.child") |
$omit() |
$omit(object, array<string>) |
Returns the object with the provided properties omitted. | $omit({"parent":{"child":[1,2,3],"name":"Daphne"}}, "parent.name") |
$pick() |
$pick(object, array<string>) |
Returns the object with only the provided properties included. | $pick({"parent":{"child":[1,2,3],"name":"Daphne"}}, "parent.name") |
$values() |
$values(object) |
Returns an array of values in the given object. | $values({"a":1,"b":2,"c":3}) |
$mapValues() |
$mapValues(object, function) |
Returns an array of values in the given object based on the function. | $mapValues({"a":1,"b":2,"c":3}, function($v){$v}) |
$mapKeys() |
$mapKeys(object, function) |
Returns an array of keys in the given object based on the function. | $mapKeys({"a":1,"b":2,"c":3}, function($v) { $v }) |
$mergeDeep() |
$mergeDeep(array<object>) |
Returns an object which includes all properties from the provided objects, recursively merged. In the event that multiple objects contain the same property, properties from objects with higher array indexes override properties from lower array indexes. | $mergeDeep() |
$has() |
$has(object, string) |
Returns true or false depending on whether the provided property exists in the provided object. |
$has({"parent":{"child":[1,2,3],"name":"Daphne"}}, "parent.name") |
$toPairs() |
$toPairs(object) |
Returns an array of key-value pair arrays, in the shape of [[key1, value1], [key2, value2]]. |
$toPairs({"key": "value"}) |
$fromPairs() |
$fromPairs(array<array>) |
Transforms an array of key-value pairs into an object. | $fromPairs([["key", "value"]]) |
$jsonParse() |
$jsonParse(string) |
Parses a string representation of a JSON value into the value it represents. | $jsonParse('{"value": true}') |
$jsonStringify() |
$jsonStringify(any JSON type, object?) |
Serializes a JSON value into a string. | $jsonStringify({"value": true}, {"space": 2}) |
$chunk() |
$chunk(array, number) |
Creates an array of elements split into groups the length of size. If the array can't be split evenly, the final chunk will be the remaining elements. | $chunk([1..200], 10) |
$uniq() |
$uniq(array) |
Returns the provided array with duplicate values removed. Equality is determined by reference for objects. | $uniq([1,1,2,3,4,5,5,5]) |
$partition() |
$partition(array, function) |
Creates an array of elements split into two groups, the first of which contains elements the predicate returns truthy for, the second of which contains elements the predicate returns falsey for. The predicate is invoked with one argument: (value). | $partition(a, function($v) {}) |
$groupBy() |
$groupBy(array, function) |
Takes an array and a key function, returns an object. All values with the same key are added to an array property in the object named based on the key. | $groupBy([{"id": 1, "name": "test 1"}, {"id": 1, "name": "test 2"}], function($v) { $v.id }) |
$indexBy() |
$indexBy(array, function) |
Similar to $groupBy, except the properties contain only the last matching element for the key. |
$indexBy([{"id": 1, "name": "test 1"}, {"id": 2, "name": "test 2"}, {"id": 1, "name": "test 3"}], function($v) { $v.id }) |
$uniqBy() |
$uniqBy(array, function) |
Similar to $uniq, except this function takes a function that returns the value to determine uniqueness by. |
$uniqBy([{"value": 1}, {"value": 1}], function($v) { $v.value }) |
$flatten() |
$flatten(array, number?) |
Given an array of arrays, this will flatten the arrays to the given depth. Depth defaults to 1. | $flatten([[[1]]], 2) |
$first() |
$first(array) |
Returns the first element of the array. | $first([1, 2, 3]) |
$last() |
$last(array) |
Returns the last element of the array. | $last([1, 2, 3]) |
$takeFirst() |
$takeFirst(array, number?) |
Returns an array containing the first n elements from the given array. | $takeFirst([1, 2, 3], 2) |
$takeLast() |
$takeLast(array, number?) |
Returns an array containing the last n elements from the given array. | $takeLast([1, 2, 3], 2) |
$findFirst() |
$findFirst(array, function) |
Returns the first element where the predicate function returns true. |
$findFirst([obj1, obj2, obj3], myPredFunc) |
$findLast() |
$findLast(array, function) |
Returns the last element where the predicate function returns true. |
$findLast([obj1, obj2, obj3], myPredFunc) |
$findFirstIndex() |
$findFirstIndex(array, function) |
Returns the first index where the predicate function returns true. |
$findFirstIndex([obj1, obj2, obj3], myPredFunc) |
$findLastIndex() |
$findLastIndex(array, function) |
Returns the last index where the predicate function returns true. |
$findLastIndex([obj1, obj2, obj3], myPredFunc) |
$flatMap() |
$flatMap(array, function) |
Returns a new transformed array, but flattened. | $flatMap([1, 2, 3, 4, 5], myFunc) |
$dropFirst() |
$dropFirst(array, number) |
Returns all but the first n elements of the given list. | $dropFirst([1, 2, 3, 4, 5], 2) |
$dropLast() |
$dropLast(array, number) |
Returns all but the last n elements of the given list. | $dropLast([1, 2, 3, 4, 5], 2) |
$partitionBetween() |
$partitionBetween(array, function, function, object) |
Partitions an array based on beginning and ending predicate functions, collecting all values between matching elements. | $partitionBetween([{"name": "ST"}, {"name": "N1"}, {"name": "SE"}], function($i) { $i.name = "ST" }, function($i) { $i.name = "SE" }, {"includeEndElement": true}) |
$isArray() |
$isArray(any JSON type) |
Determines whether the given value is an array. | $isArray([]) |
$isString() |
$isString(any JSON type) |
Determines whether the given value is a string. | $isString("") |
$isBoolean() |
$isBoolean(any JSON type) |
Determines whether the given value is a boolean. | $isBoolean(true) |
$isInteger() |
$isInteger(any JSON type) |
Determines whether the given value is an integer number. | $isInteger(1) |
$isFloat() |
$isFloat(any JSON type) |
Determines whether the given value is a floating point number. Integer numbers also count as floating point numbers as JSON only has a singular number type. | $isFloat(1.5) |
$isNumber() |
$isNumber(any JSON type) |
Determines whether the given value is a number. | $isNumber(1.5) |
$isObject() |
$isObject(any JSON type) |
Determines whether the given value is an object. | $isObject({}) |
$isUndefined() |
$isUndefined(any JSON type) |
Determines whether the given value is undefined. | $isUndefined(undefined) |
$isNil() |
$isNil(any JSON type) |
Determines whether the given value is null or undefined. | $isNil(null) |
$isNaN() |
$isNaN(any JSON type) |
Determines whether the given value is NaN. | $isNaN(null) |
$isEmpty() |
$isEmpty(any JSON type) |
Determines whether the given value is an empty array, object, or string. | $isEmpty({}) |
$isNilOrEmpty() |
$isNilOrEmpty(any JSON type) |
Determines whether the given value is undefined, null, or an empty array, object, or string. | $isNilOrEmpty(null) |
$pathSatisfies() |
$pathSatisfies(object, string | array<string>, function) |
Given an object, a path, and a predicate function, this function will return true if the predicate returns true for the value at the given path. |
$pathSatisfies({"name": "Henry Nord"}, "name", function($v) { $v = "Henry Nord" }) |
$visitPreorder() |
$visitPreorder(array | object, function) |
Uses a preorder traversal to visit each element of a JSON object and allows recursive replacement of any nested objects. | $visitPreorder(tree, function($v) {( $merge([$v, {"hello": "world"}]); )}) |
$convertCharacterSet() |
$convertCharacterSet(string, string, string?) |
Converts a string from a source encoding to a target encoding. | $convertCharacterSet("你好,世界", "ascii") |
$parseUrl() |
$parseUrl(string) |
Parse a URL into a JSON object. | $parseUrl("https://mfgx.io/path?query=true") |
$urlStringify() |
$urlStringify(any JSON type, optional json options) |
Takes JSON data and optionally options from the qs library in JSON format and returns the JSON data formatted as a querystring. | $urlStringify({"param1": 1, "param2": "2"}, {addQueryPrefix: true}) |
$parseGraphQLStatement() |
$parseGraphQLStatement(string) |
Parse a GraphQL statement to the AST format. | $parseGraphQLStatement() |
$parseExpression() |
$parseExpression(string) |
Parse a JSONata expression to the AST format. | $parseExpression("$sum(example.value)") |
$semverParse() |
$semverParse(any) |
Attempt to parse a string as a semantic version, returning either a SemVer object or null. | $semverParse('1.2.3') |
$semverValid() |
$semverValid(string) |
Return the parsed version, or null if it's not valid. The optional boolean argument will let you choose to interpret versions or ranges loosely. | $semverValid('1.2.2') |
$semverClean() |
$semverClean(string, boolean?) |
Clean a string to be a valid semver if possible. This will return a cleaned and trimmed semver version. If the provided version is not valid, null will be returned. This does not work for ranges. The optional boolean argument will let you choose to interpret versions loosely. | $semverClean('1.2.2') |
$semverInc() |
$semverInc(string, string, boolean?, string?) |
Return the version incremented by the release type (major, premajor, minor, preminor, patch, prepatch, or prerelease), or null if it's not valid. The third argument is an optional additional identifier string argument that will append the value of the string as a prerelease identifier. | $semverInc('1.2.3', 'prerelease', 'beta') |
$semverDiff() |
$semverDiff(string, string, boolean?) |
Returns the difference between two versions by the release type (major, premajor, minor, preminor, patch, prepatch, or prerelease), or null if the versions are the same. An optional third argument can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverDiff('1.2.2', '2.0.1') |
$semverMajor() |
$semverMajor(string, boolean?) |
Return the major version number. Optionally, include a boolean to interpret the version loosely. | $semverMajor('1.2.2') |
$semverMinor() |
$semverMinor(string, boolean?) |
Return the minor version number. Optionally, include a boolean to interpret the version loosely. | $semverMinor('1.2.2') |
$semverPatch() |
$semverPatch(string, boolean?) |
Return the patch version number. Optionally, include a boolean to interpret the version loosely. | $semverPatch('1.2.2') |
$semverPrerelease() |
$semverPrerelease(string) |
Returns an array of prerelease components, or null if none exist. | $semverPrerelease('1.2.3-alpha.1') |
$semverCompare() |
$semverCompare(string, string, boolean?) |
Return 0 if v1 == v2, 1 if v1 is greater, or -1 if v2 is greater. Sorts in ascending order if passed to Array.sort(). An optional third argument can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverCompare('1.2.2', '2.0.1') |
$semverRcompare() |
$semverRcompare(string, string, boolean?) |
The reverse of compare. Sorts an array of versions in descending order when passed to Array.sort(). An optional third argument can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverRcompare('1.2.2', '2.0.1') |
$semverCompareLoose() |
$semverCompareLoose(string, string) |
Compare while interpreting versions and ranges loosely; be more forgiving about not-quite-valid semver strings. (Any resulting output will always be 100% strict compliant.) For backwards compatibility reasons, if the options argument is a boolean value instead of an object, it is interpreted to be the loose param. | $semverCompareLoose('1.2.2', '2.0.1') |
$semverCompareBuild() |
$semverCompareBuild(string, string) |
The same as compare but considers build when two versions are equal. Sorts in ascending order if passed to Array.sort(). | $semverCompareBuild('1.2.2', '2.0.1') |
$semverSort() |
$semverSort(array<string>, boolean?) |
Sorts an array of semver entries in ascending order using compareBuild(). Additionally, an optional argument can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverSort(['v0.0.9','v0.0.2','1.1.1','v0.1.1','1.2.2','2.0.1']) |
$semverRsort() |
$semverRsort(array<string>, boolean?) |
Sorts an array of semver entries in descending order using compareBuild(). Optionally, an additional argument can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverRsort(['v0.0.9','v0.0.2','1.1.1','v0.1.1','1.2.2','2.0.1']) |
$semverGt() |
$semverGt(string, string, boolean?) |
Greater-than comparison. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverGt('1.2.3', '9.8.7') |
$semverLt() |
$semverLt(string, string, boolean?) |
Less-than comparison. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverLt('1.2.3', '9.8.7') |
$semverEq() |
$semverEq(string, string, boolean?) |
Equality comparison. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverEq('1.1.1', '1.1.1') |
$semverNeq() |
$semverNeq(string, string, boolean?) |
Inequality comparison. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverNeq('1.1.1', '1.1.1') |
$semverGte() |
$semverGte(string, string, boolean?) |
Greater-than or equal-to comparison. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverGte('1.2.3', '1.1.1') |
$semverLte() |
$semverLte(string, string, boolean?) |
Less-than or equal-to comparison. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverLte('1.2.3', '1.1.1') |
$semverCmp() |
$semverCmp(string, string, string, boolean?) |
Pass in a comparison string, and it'll call the corresponding semver comparison function. === and !== do simple string comparison, but are included for completeness. Throws if an invalid comparison string is provided. The fourth argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. |
$semverCmp('1.2.3', '<=', '1.1.1') |
$semverCoerce() |
$semverCoerce(string, string) |
Coerces a string to SemVer if possible. | $semverCoerce('1.2.3', '1.1.1') |
$semverSatisfies() |
$semverSatisfies(string, string, boolean?) |
Return true if the version satisfies the range. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. |
$semverSatisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') |
$semverMaxSatisfying() |
$semverMaxSatisfying(array<string>, string, boolean?) |
Return the highest version in the list that satisfies the range, or null if none of them do. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverMaxSatisfying(['v0.0.9','v0.0.2','1.1.1','v0.1.1','1.2.2','2.0.1'], '<1.1.1') |
$semverMinSatisfying() |
$semverMinSatisfying(array<string>, string, boolean?) |
Return the lowest version in the list that satisfies the range, or null if none of them do. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverMinSatisfying(['v0.0.9','v0.0.2','1.1.1','v0.1.1','1.2.2','2.0.1'], '<1.1.1') |
$semverToComparators() |
$semverToComparators(string, string, boolean?) |
Mostly just for testing and legacy API reasons. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverToComparators('<= 1.1.1', '1.2.3') |
$semverMinVersion() |
$semverMinVersion(string, boolean?) |
Return the lowest version that can possibly match the given range. The second argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverMinVersion('<= 2.1.2') |
$semverValidRange() |
$semverValidRange(string, boolean?) |
Return the valid range or null if it's not valid. The second argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. | $semverValidRange('<=1.1.1 || >= 1.1.1') |
$semverOutside() |
$semverOutside(string, string, string, boolean?) |
Return true if the version is outside the bounds of the range in either the high or low direction. The hilo argument must be either the string > or <. (This is the function called by gtr and ltr.) The fourth argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. |
$semverOutside('1.3.2', '<= 2.1.2', '<') |
$semverGtr() |
$semverGtr(string, string, boolean?) |
Return true if the version is greater than all the versions possible in the range. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. |
$semverGtr('1.1.1', '<=1.0.0') |
$semverLtr() |
$semverLtr(string, string, boolean?) |
Return true if the version is less than all the versions possible in the range. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. |
$semverLtr('1.1.1', '<=1.0.0') |
$semverIntersects() |
$semverIntersects(string, string, boolean?) |
Return true if any of the ranges' comparators intersect. The third argument is optional and can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. |
$semverIntersects('>= 1.0.0', '<=1.2.3') |
$semverSimplifyRange() |
$semverSimplifyRange(array<string>, string) |
Return a "simplified" range that matches the same items in the versions list as the range specified. Note that it does not guarantee that it would match the same versions in all cases, only for the set of versions provided. This is useful when generating ranges by joining together multiple versions with || programmatically, to provide the user with something a bit more ergonomic. If the provided range is shorter in string-length than the generated range, then that is returned. |
$semverSimplifyRange(['1.1.3', '3.2.3'], '>= 2.1.1') |
$semverRangeSubset() |
$semverRangeSubset(string, string, string?) |
Return true if the subRange range is entirely contained by the superRange range. The optional final argument can be passed in as a boolean which will let you choose to interpret versions or ranges loosely. |
$semverRangeSubset('<1.1.1', '>3.2.1') |
$validateSchema() |
$validateSchema(any JSON type) |
Takes a JSON object and validates that it is a JSON Schema object. | $validateSchema({"id":1,"label":2}) |
$validateJson() |
$validateJson(any JSON type, json schema) |
Takes JSON data and a schema and validates that the JSON matches the schema, throwing any validation errors. | $validateJson([1, 2, 3, 4, 5], {"type": "array", "items": {"type": "number"}}) |
$isValidJson() |
$isValidJson(any JSON type, json schema) |
Takes JSON data and a schema and returns a boolean indicating if the data matches the schema. | $isValidJson([1, 2, 3, 4, 5], {"type": "array", "items": {"type": "number"}}) |
$mapParallel() |
$mapParallel(object, function, number?) |
Takes an array and a mapping function, returns a new array where the values have been replaced with the output of the mapping function. The default degree of parallelism is 8. | $mapParallel([{"id": 1, "name": "test 1"}, {"id": 1, "name": "test 2"}], function($v) { $v.name }, 2) |
$mapValuesParallel() |
$mapValuesParallel(object, function, number?) |
Takes an object and a mapping function, returns a new object where the values have been replaced with the output of the mapping function. The default degree of parallelism is 8. | $mapValuesParallel({"hello": "John", "goodbye": "Joan"}, function($v) { $v = "John" ? "Joan" : $v }, 2) |
$filterParallel() |
$filterParallel(array, function, number?) |
Takes an array and a predicate function, returns an array. The resulting array contains all the values for which the predicate returns true. The default degree of parallelism is 8. |
$filterParallel([{"id": 1, "name": "test 1"}, {"id": 1, "name": "test 2"}], function($v) { $v.name = "test 1" }, 2) |
$groupByParallel() |
$groupByParallel(array, function, number?) |
Takes an array and a key function, returns an object. All values with the same key are added to an array property in the object named based on the key. The default degree of parallelism is 8. | $groupByParallel([{"id": 1, "name": "test 1"}, {"id": 1, "name": "test 2"}], function($v) { $v.id }, 2) |
$timesParallel() |
$timesParallel(number, function, number?) |
Executes a function N number of times, in parallel. Results are collected as an array. This is essentially a functional version of a for loop. The default degree of parallelism is 8. | $timesParallel(5, function($n) { $n }, 2) |
$flattenObject() |
$flattenObject(object, options) |
Flattens the object — it returns an object one level deep, regardless of how nested the original object was. Options: delimiter (use a custom delimiter for (un)flattening your objects, instead of .), safe (when enabled, preserves arrays and their contents; disabled by default), maxDepth (maximum number of nested objects to flatten). |
$flattenObject({'key1': {'keyA': 'valueI'}, 'key2': {'keyB': 'valueII'}, 'key3': {'a': {'b': {'c': 2}}}, 'this': [{'contains': 'arrays'}, {'preserving': {'them': 'for you'}}]}, {'maxDepth': 2, 'safe': true, 'delimiter': '/'}) |
$unflattenObject() |
$unflattenObject(object, options) |
Unflattens an object which is flattened. Options: delimiter (use a custom delimiter for (un)flattening your objects, instead of .), object (when enabled, arrays will not be created automatically when calling unflatten), overwrite (when enabled, existing keys in the unflattened object may be overwritten if they cannot hold a newly encountered nested value). |
$unflattenObject({"key1/keyA": "valueI", "key2": true, "key2/keyB": "valueII", "key3/a/b/c": 2, "this/0/contains": "array to object", "this/1/preserving/them": "for you"}, {'object': true, 'delimiter': '/', 'overwrite': true}) |
$objectDiff() |
$objectDiff(object, object, options) |
Compares two objects and returns the differences. Options: detailed (boolean — show a breakdown of which properties were added, removed, and changed), ignore (array of arrays — exclude key paths from comparison). |
$objectDiff({"a": 1, "b": 2, "foo": {"bar": true}}, {"a": 1, "b": 3, "c": 4, "foo": {"bar": false}}, {"detailed": true, "ignore": [["foo", "bar"]]}) |
$urlJoin() |
$urlJoin(array) |
Join an array of URL paths using a URL join. The joined URL will remove any duplicate / in the path and add them if they are not provided. |
$urlJoin(["http://www.google.com", "a", "/b/cd", "?foo=123"]) |
$startsWith() |
$startsWith(string, pattern) |
Checks to see if the string starts with the pattern. | $startsWith('foobar', 'foo') |
$endsWith() |
$endsWith(string, pattern) |
Checks to see if the string ends with the pattern. | $endsWith('foobar', 'bar') |
$removeLeadingValues() |
$removeLeadingValues(string, pattern) |
Removes specified leading values from the string. This will loop until the string no longer begins with the pattern. | $removeLeadingValues('foobar', 'foo') |
$replaceLeadingValues() |
$replaceLeadingValues(string, pattern, replacement) |
The string is what is being modified. If the string begins with the pattern, it will be replaced by the replacement. If the pattern appears multiple times in a row, it will be replaced for each time it appears. | $replaceLeadingValues('foobar', 'foo', 'replace') |
$jsonToJsonSchema() |
$jsonToJsonSchema(json, options) |
Converts a JSON object into JSON Schema, lists which fields are required, and finds the most compatible type for arrays. | $jsonToJsonSchema({"test": [1, "str", 3]}, {"required": true, "arrays": {"mode": "all"}}) |
$jsonToJsonSchema() |
$jsonToJsonSchema(json, options) |
Converts a JSON object into JSON Schema and classifies the array type by its first element. | $jsonToJsonSchema({"test": [1, "str", 3]}, {"required": false, "arrays": {"mode": "first"}}) |
$jsonToJsonSchema() |
$jsonToJsonSchema(json, options) |
Converts a JSON object into JSON Schema and lists the type of each element in an array. | $jsonToJsonSchema({"test": [1, "str", 3]}, {"required": false, "arrays": {"mode": "tuple"}}) |
$jsonToJsonSchema() |
$jsonToJsonSchema(json, options) |
Converts a JSON object into JSON Schema, requiring all elements in arrays to be the same type. If not, an error is thrown. | $jsonToJsonSchema({"test": [1, 2, 3]}, {"required": false, "arrays": {"mode": "uniform"}}) |
$all() |
$all(array, function) |
Returns true if all elements of the array satisfy the predicate function and false otherwise. |
$all([3, 5, 7, 9], function($el) { $el % 2 = 1 }) |
$any() |
$any(array, function) |
Returns true if any element of the array satisfies the predicate function and false otherwise. |
$any([2, 3, 5, 7], function($el) { $el % 2 = 0 }) |
$jsonToMarkdown() |
$jsonToMarkdown(array<object>) |
Converts a JSON input to Markdown. Documentation: npmjs.com/package/json2md. | $jsonToMarkdown([{"h1": "John"}, {"blockquote": 30}, {"h3": "New York"}]) |
| Binding | Signature | Description | Example |
|---|---|---|---|
$parseX12() |
$parseX12(string) |
Converts an X12 EDI string into a JSON object. | $parseX12("ISA*00* *00* *ZZ*EMEDNYBAT *ZZ*ETIN...") |
$formatX12() |
$formatX12([string]) |
Converts a parsed X12 EDI array of objects into a formatted JSON object. Includes the $parseX12 binding. |
$formatX12($parseX12("ISA*00* *00* *ZZ*EMEDNYBAT *ZZ*ETIN...")) |
| Binding | Signature | Description | Example |
|---|---|---|---|
$encryptHmac() |
$encryptHmac(algorithm, key, string, encoding?) |
Returns a digest encrypted with the key based on the supplied algorithm, in the supplied (optional, default base64) encoding. The algorithm can be any supported OpenSSL method. | $encryptHmac('sha256', 'foo', 'bar', 'base64') |
$hash() |
$hash(algorithm, string, encoding?) |
Returns a hash of the string based on the algorithm provided, in the supplied (optional, default base64) encoding. The algorithm can be any supported OpenSSL method. | $hash('sha256', 'foobar', 'base64') |
| Binding | Signature | Description | Example |
|---|---|---|---|
$crossJoin() |
$crossJoin(array, array, string, object?) |
Cross-joins the left and right arrays. Every value in the left array will be joined to every value in the right array. | $crossJoin(left, right, 'joinedKey', {'grouped': false}) |
$innerJoin() |
$innerJoin(array, array, string | array<string> | function, string | array<string> | function, string, object?) |
Performs an inner join between the left and right arrays. The accessors can be either a path string (separated by periods), an array of path elements, or a function. Only values from the left side with a match on the right side will be returned. | $innerJoin(left, right, 'leftKey', 'rightKey', 'joinedKey', {'grouped': false}) |
$leftAntiJoin() |
$leftAntiJoin(array, array, string | array<string> | function, string | array<string> | function) |
Performs an anti semi-join against the left array. Only values from the left side without a match on the right side will be kept. | $leftAntiJoin(left, right, 'leftKey', 'rightKey') |
$leftOuterJoin() |
$leftOuterJoin(array, array, string | array<string> | function, string | array<string> | function, string, object?) |
Performs an outer join between the left and right arrays. The accessors can be either a path string (separated by periods), an array of path elements, or a function. All values from the left side will be returned, regardless of whether there is a match on the right side. | $leftOuterJoin(left, right, 'leftKey', 'rightKey', 'joinedKey', {'grouped': false}) |
$leftSemiJoin() |
$leftSemiJoin(array, array, string | array<string> | function, string | array<string> | function) |
Performs a semi-join against the left array. Only values from the left side with a match on the right side will be kept. | $leftSemiJoin(left, right, 'leftKey', 'rightKey') |
| Binding | Signature | Description | Example |
|---|---|---|---|
$moment() |
$moment(string?, string?, string? | boolean?, boolean?) |
Returns a moment.js instance of the given date string. | $moment("01/01/2019 09:00:00AM", "MM/DD/YYYY hh:mm:ssA") |
$moment() |
$moment(string?, string?, string? | boolean?, boolean?) |
Returns the beginning of day. | $moment().subtract(1, 'days').startOf('day') |
$moment() |
$moment(string?, string?, string? | boolean?, boolean?) |
Returns the end of day. | $moment().subtract(1, 'days').endOf('day') |
$moment() |
$moment(string?, string?, string? | boolean?, boolean?) |
Returns the start of last month. | $moment().subtract(1, 'month').startOf('month') |
$moment() |
$moment(string?, string?, string? | boolean?, boolean?) |
Returns the end of last month. | $moment().subtract(1, 'month').endOf('month') |
$moment() |
$moment(string?, string?, string? | boolean?, boolean?) |
Returns the start of the current month. | $moment().startOf('month') |
$moment() |
$moment(string?, string?, string? | boolean?, boolean?) |
Returns the end of the current month. | $moment().endOf('month') |
$momentTz() |
$momentTz(string?, string?, string?) |
Returns a moment.js instance of the given date string, with the timezone assumed to be the given timezone. | $momentTz("01/01/2019 09:00:00AM", "MM/DD/YYYY hh:mm:ssA", "America/Detroit") |
$momentTzTimezones() |
$momentTzTimeZones() |
Returns Moment timezones. | $momentTzTimezones() |
$momentTzGuess() |
$momentTzGuess(boolean?) |
Uses the Internationalization API (Intl.DateTimeFormat().resolvedOptions().timeZone) in supported browsers to determine the user's time zone. You can optionally pass a boolean that will ignore cached values. This function will only work correctly when run through a frontend transform; when run in the backend it will return UTC. |
$momentTzGuess() |
$momentMax() |
$momentMax(array, boolean?) |
Receives an array of $moment objects or moment-compatible values and returns the maximum (most distant future) value. You can optionally pass a boolean that will ignore invalid dates. |
$momentMax([$moment("2030-12-15").subtract(1, "days"), $moment("2030-12-15").add(10, "days"), $moment("2030-12-15").subtract(5, "days")]) |
$momentMin() |
$momentMin(array, boolean?) |
Receives an array of $moment objects or moment-compatible values and returns the minimum (most distant past) value. You can optionally pass a boolean that will ignore invalid dates. |
$momentMin([$moment("2030-12-15").subtract(1, "days"), $moment("2030-12-15").add(10, "days"), $moment("2030-12-15").subtract(5, "days")]) |
| Binding | Signature | Description | Example |
|---|---|---|---|
$jsonToXml() |
$jsonToXml(object | array<object>, object?) |
Returns an XML string representation of the given JSON object or array. For options go to npmjs.com/package/xml2js. | $jsonToXml({"parent": {"child": [1,2,3]}}, {"headless": false}) |
$xmlToJson() |
$xmlToJson(string, object?) |
Returns a JSON representation of the given XML string. For options go to npmjs.com/package/xml2js. | $xmlToJson('<?xml version="1.0" encoding="UTF-8" standalone="yes"?><parent><child>1</child><child>2</child><child>3</child></parent>') |
These are standard JSONata functions with enhanced implementations in the Fuuz Platform. See docs.jsonata.org for full reference documentation.
| Binding | Signature | Description | Example |
|---|---|---|---|
$string() |
$string(arg) |
Casts the arg parameter to a string using the JSONata casting rules. |
$string(arg) |
$length() |
$length(str) |
Returns the number of characters in the string str. |
$length("Hello World") |
$substring() |
$substring(str, start[, length]) |
Returns a string containing the characters in the first parameter str starting at position start (zero-offset). |
$substring("Hello World", 3) |
$substringBefore() |
$substringBefore(str, chars) |
Returns the substring before the first occurrence of the character sequence chars in str. |
$substringBefore("Hello World", " ") |
$substringAfter() |
$substringAfter(str, chars) |
Returns the substring after the first occurrence of the character sequence chars in str. |
$substringAfter("Hello World", " ") |
$uppercase() |
$uppercase(str) |
Returns a string with all the characters of str converted to uppercase. |
$uppercase("Hello World") |
$lowercase() |
$lowercase(str) |
Returns a string with all the characters of str converted to lowercase. |
$lowercase("Hello World") |
$trim() |
$trim(str) |
Normalizes and trims all tabs, carriage returns, line feeds, contiguous whitespace, and trailing and leading whitespace characters in str. |
$trim(" HelloWorld ") |
$pad() |
$pad(str, width [, char]) |
Returns a copy of the string str with extra padding, if necessary, so that its total number of characters is at least the absolute value of the width parameter. |
$pad("foo", -5, "#") |
$contains() |
$contains(str, pattern) |
Returns true if str is matched by pattern, otherwise it returns false. |
$contains("abracadabra", "bra") |
$split() |
$split(str, separator [, limit]) |
Splits the str parameter into an array of substrings. |
$split("so many words", " ") |
$join() |
$join(array[, separator]) |
Joins an array of component strings into a single concatenated string with each component string separated by the optional separator parameter. |
$join(['a','b','c']) |
$match() |
$match(str, pattern [, limit]) |
Applies the str string to the pattern regular expression and returns an array of objects, with each object containing information about each occurrence of a match within str. |
$match("ababbabbcc", /a(b+)/) |
$replace() |
$replace(str, pattern, replacement [, limit]) |
Finds occurrences of pattern within str and replaces them with replacement. |
$replace("John Smith and John Jones", "John", "Mr") |
$eval() |
$eval(expr [, context]) |
Parses and evaluates the string expr, which contains literal JSON or a JSONata expression, using the current context as the context for evaluation. |
$eval("[1,2,3]") |
$base64encode() |
$base64encode(str) |
Converts an ASCII string to a base 64 representation. | $base64encode("myuser:mypass") |
$base64decode() |
$base64decode(str) |
Converts base 64 encoded bytes to a string, using a UTF-8 Unicode codepage. | $base64decode("bXl1c2VyOm15cGFzcw==") |
$number() |
$number(arg) |
Casts the arg parameter to a number. |
$number("5") |
$abs() |
$abs(number) |
Returns the absolute value of the number parameter, i.e. if the number is negative, it returns the positive value. |
$abs(-5) |
$floor() |
$floor(number) |
Returns the value of number rounded down to the nearest integer that is smaller or equal to number. |
$floor(5.8) |
$ceil() |
$ceil(number) |
Returns the value of number rounded up to the nearest integer that is greater than or equal to number. |
$ceil(5.3) |
$round() |
$round(number [, precision]) |
Returns the value of the number parameter rounded to the number of decimal places specified by the optional precision parameter. |
$round(123.456, 2) |
$power() |
$power(base, exponent) |
Returns the value of base raised to the power of exponent. |
$power(2, 8) |
$sqrt() |
$sqrt(number) |
Returns the square root of the value of the number parameter. |
$sqrt(4) |
$random() |
$random() |
Returns a pseudo-random number greater than or equal to zero and less than one (0 ≤ n < 1). | $random() |
$formatNumber() |
$formatNumber(number, picture [, options]) |
Casts the number to a string and formats it to a decimal representation as specified by the picture string. | $formatNumber(12345.6, "#,###.00") |
$formatBase() |
$formatBase(number [, radix]) |
Casts the number to a string and formats it to an integer represented in the number base specified by the radix argument. |
$formatBase(100, 2) |
$formatInteger() |
$formatInteger(number, picture) |
Casts the number to a string and formats it to an integer representation as specified by the picture string. | $formatInteger(2789, "w") /* A,a,i,I,w,W,Ww... */ |
$parseInteger() |
$parseInteger(string, picture) |
Parses the contents of the string parameter to an integer (as a JSON number) using the format specified by the picture string. | $parseInteger("twelve thousand, four hundred and seventy-six", "w") /* A,a,i,I,w,W,Ww... */ |
$sum() |
$sum(array) |
Returns the arithmetic sum of an array of numbers. It is an error if the input array contains an item which isn't a number. | $sum([5,1,3,7,4]) |
$max() |
$max(array) |
Returns the maximum number in an array of numbers. It is an error if the input array contains an item which isn't a number. | $max([5,1,3,7,4]) |
$min() |
$min(array) |
Returns the minimum number in an array of numbers. It is an error if the input array contains an item which isn't a number. | $min([5,1,3,7,4]) |
$average() |
$average(array) |
Returns the mean value of an array of numbers. It is an error if the input array contains an item which isn't a number. | $average([5,1,3,7,4]) |
$boolean() |
$boolean(arg) |
Casts the argument to a Boolean. | $boolean(0) |
$not() |
$not(arg) |
Returns Boolean NOT on the argument. arg is first cast to a boolean. |
$not(true) |
$exists() |
$exists(arg) |
Returns Boolean true if the arg expression evaluates to a value, or false if the expression does not match anything (e.g. a path to a non-existent field reference). |
$exists(SomeObject) |
$count() |
$count(array) |
Returns the number of items in the array parameter. |
$count([1,2,3,1]) |
$append() |
$append(array1, array2) |
Returns an array containing the values in array1 followed by the values in array2. |
$append([1,2,3], [4,5,6]) |
$sort() |
$sort(array [, function(left, right)]) |
Returns an array containing all the values in the array parameter, but sorted into order. |
$sort(Account.Order.Product, function($l, $r) {$l.Description.Weight > $r.Description.Weight}) |
$reverse() |
$reverse(array) |
Returns an array containing all the values from the array parameter, but in reverse order. |
$reverse(["Hello", "World"]) |
$shuffle() |
$shuffle(array) |
Returns an array containing all the values from the array parameter, but shuffled into random order. |
$shuffle([1..9]) |
$zip() |
$zip(array1, ...) |
Returns a convolved (zipped) array containing grouped arrays of values from the array1 ... arrayN arguments from index 0, 1, 2, etc. |
$zip([1,2,3],[4,5],[7,8,9]) |
| Array slice | array[[start..end]] |
Returns a portion of the specified array. | array[[0..$count(array)]] |
$keys() |
$keys(object) |
Returns an array containing the keys in the object. If the argument is an array of objects, then the array returned contains a de-duplicated list of all the keys in all of the objects. | $keys(object) |
$lookup() |
$lookup(object, key) |
Returns the value associated with key in object. If the first argument is an array of objects, then all of the objects in the array are searched, and the values associated with all occurrences of key are returned. |
$lookup(object, key) |
$spread() |
$spread(object) |
Splits an object containing key/value pairs into an array of objects, each of which has a single key/value pair from the input object. | $spread(object) |
$merge() |
$merge(array<object>) |
Merges an array of objects into a single object containing all the key/value pairs from each of the objects in the input array. | $merge(array<object>) |
$each() |
$each(object, function) |
Returns an array containing the values returned by the function when applied to each key/value pair in the object. | $each(Address, function($v, $k) {$k & ": " & $v}) |
$now() |
$now([picture [, timezone]]) |
Generates a UTC timestamp in ISO 8601 compatible format and returns it as a string. All invocations of $now() within an evaluation of an expression will return the same timestamp value. |
$now() |
$millis() |
$millis() |
Returns the number of milliseconds since the Unix Epoch (1 January, 1970 UTC) as a number. All invocations of $millis() within an evaluation of an expression will return the same value. |
$millis() |
$fromMillis() |
$fromMillis(number [, picture [, timezone]]) |
Converts the number representing milliseconds since the Unix Epoch (1 January, 1970 UTC) to a formatted string representation of the timestamp as specified by the picture string. | $fromMillis(1510067557121) |
$toMillis() |
$toMillis(timestamp [, picture]) |
Converts a timestamp string to the number of milliseconds since the Unix Epoch (1 January, 1970 UTC) as a number. | $toMillis("2017-11-07T15:07:54.972Z") |
$map() |
$map(array, function(value [, index [, array]])) |
Returns an array containing the results of applying the function parameter to each value in the array parameter. |
$map(Email.address, function($v, $i, $a) {'Item ' & ($i+1) & ' of ' & $count($a) & ': ' & $v}) |
$filter() |
$filter(array, function(value [, index [, array]])) |
Returns an array containing only the values in the array parameter that satisfy the function predicate (i.e. the function returns Boolean true when passed the value). |
$filter(Account.Order.Product, function($v, $i, $a) {$v.Price > $average($a.Price)}) |
$reduce() |
$reduce(array, function(i, j) [, init]) |
Returns an aggregated value derived from applying the function parameter successively to each value in array in combination with the result of the previous application of the function. |
$product := function($i, $j){$i * $j}; $reduce([1..5], $product) |
$sift() |
$sift(object, function(value [, key [, object]])) |
Returns an object that contains only the key/value pairs from the object parameter that satisfy the predicate function passed in as the second parameter. |
Account.Order.Product.$sift(function($v, $k) {$k ~> /^Product/}) |
| Binding | Signature | Description | Example |
|---|---|---|---|
$log() |
$log(message, meta, level) |
Logs a statement with a message of a level and optionally a meta object. The level argument is optional; valid values include error, warn, info, verbose, debug, silly; invalid values default to info. This object is stored as a JSONB blob within Postgres. Check your console log. |
$log('some message', {'some object': {'some key': 'some value'}}, 'info') |
$getCalendar() |
$getCalendar(object) |
Returns an MFGx calendar and its events by id. | $getCalendar({"id": id}) |
$getCalendar() |
$getCalendar(object) |
Returns an MFGx calendar and its events by the calendar's name. | $getCalendar({"name": calendarName}) |
$query() |
$query(object) |
Returns relevant information for the GraphQL query and variables provided. | $query({"statement": '', "variables": {}}) |
$document() |
$document(object[, options]) |
Generates and returns an MFGx document based on the id and payload, as a base64 encoded PDF string. | $document({"documentDesignId": "", "payload": {}, "name": "", "documentRenderFormatId": undefined, "culture": undefined}, {"returnContent": true}) |
$mutate() |
$mutate(object) |
Returns relevant information for the GraphQL mutation and variables provided. | $mutate({"statement": '', "variables": {}}) |
$integrate() |
$integrate(object) |
Executes the request provided and returns relevant information. | $integrate({"Request": {"connectionName": "", "payload": []}}) |
$integrate() |
$integrate(array) |
Executes the requests provided and returns relevant information. | $integrate([{"connectionName": "", "payload": []}]) |
$executeFlow() |
$executeFlow(string, object) |
Executes a request/response flow based on the id and payload and returns the value of the response node. | $executeFlow(flowId, payload) |
$executeTransform() |
$executeTransform(string, object) |
Executes a saved transform based on the id of the transform, returning the evaluation of the response. | $executeTransform(transformId, payload) |
$executeDeviceGatewayFunction() |
$executeDeviceGatewayFunction(object) |
Executes an Edge Gateway function. | $executeDeviceGatewayFunction({"deviceGatewayId": "", "functionId": "", "request": {}}) |
$executeDeviceFunction() |
$executeDeviceFunction(object) |
Executes a device function. | $executeDeviceFunction({"deviceId": "", "functionId": "", "request": {}}) |
$executeDeviceFunction() |
$executeDeviceFunction(object) |
Executes a device function with a request id and timeout. | $executeDeviceFunction({"requestId": "", "deviceId": "", "functionId": "", "request": {}, "functionTimeoutSeconds": 10}) |
- Frontend: 39 bindings (Screen Designer only)
- Shared: 247 bindings (Screen Designer + Data Flows + Transforms)
- Backend: 8 bindings (Data Flows + Transforms only)
| Category | Type | Count | Description |
|---|---|---|---|
| Core | Shared | 145 | Utility functions for strings, arrays, objects, type checking, validation |
| JSONata Extended | Shared | 56 | Standard JSONata functions with enhanced implementations |
| Screen Designer | Frontend | 30 | UI component manipulation, table/form operations |
| Integration | Shared | 13 | GraphQL, external systems, device functions |
| Moment (Date/Time) | Shared | 12 | Date/time manipulation using Moment.js |
| EDINation | Backend | 8 | X12 and EDIFACT EDI processing |
| Calendars | Shared | 7 | Production calendar and scheduling operations |
| Navigation | Frontend | 7 | Page navigation, dialogs, notifications |
| Joins | Shared | 5 | SQL-style join operations on arrays |
| Files | Shared | 3 | PDF manipulation |
| Clipboard | Frontend | 2 | Read/write clipboard |
| XML | Shared | 2 | JSON/XML conversion |
| Encryption | Shared | 2 | Encrypt/decrypt functions |
| EDI | Shared | 2 | EDI utility functions |
| Version | Date | Editor | Description |
|---|---|---|---|
| 2.0 | 2026-01-29 | Fuuz Documentation Team | Complete rewrite - all 294 bindings documented in comprehensive table format |
| 1.0 | 2025-01-11 | Fuuz Documentation Team | Initial Release - 294 custom bindings documented |
Related Resources: Standard JSONata: docs.jsonata.org | Fuuz Platform: fuuz.com
- Jsonata-Tutorial
- Expressions
- Data-Flow-Nodes-Reference
- Slow-Transform-Performance-JSONata-vs-JavaScript-Optimization-Guide
Source: support.fuuz.com
Getting Started (14)
- Access Field Level Help within the Fuuz Platform
- Field-Level Help
- Fuuz Platform 101: Low/No-Code Technology in Manufacturing
- Fuuz Platform Architecture
- Getting to Know the Fuuz Platform
- Logging into Fuuz – Cloud Access
- Manage what displays in Field Level Help throughout Fuuz
- Recovering Your Fuuz Account
- Sharing A Page
- Switching Between Apps in Fuuz
- Switching between Fuuz Environments (Build, QA, Production)
- Trouble Logging Into Fuuz
- Unique Email Plus Addressing
- Welcome To Industry Accelerators!
Training Guides (52)
Applications
- Brand and Configure Your Application
- Create an Application
- Deactivate (Retire) an Application
- Find Pages Beyond the Left Menu
- Install a Fuuz Package
- Navigate the Application Designer
- Retire an Application
Access & Users
- Approve Access Requests
- Approve Application Access Requests
- Configure the Internal Password Policy
- Create a Role
- Create an API Key
- Deactivate and Reactivate a User
- Grant Permissions with Policies
- Investigate Login Activity
- Invite a User to an Application
- Manage App Users
- Request Access to an Application
- Switch Applications, Roles, and Environments
- Understand Developer Access
- Understand Web Access
- Use the User Menu (Profile, Theme, and More)
Data Models & Schema
- Add a Custom Field
- Create a Data Model
- Create a Sequence
- Design Model Fields in the Schema Designer
- Relate Two Data Models
Screens
Weather Lookup Series — guided 3-part build
- Part 1 · Build the Screen (Beginner)
- Part 2 · Store the Readings (Intermediate)
- Part 3 · Watched Locations & Scheduled Capture (Advanced)
Data Flows & Integrations
- Call an External API with a Flow
- Connect to External Systems
- Create a Data Flow
- Create a Notification Channel
- Create a Webhook
- Save Queries, Scripts, and Data Mappings
- Schedule a Data Flow
- Use the Script Editor
Data, Reporting & Monitoring
- Browse Data with Data Explorer
- Build a Document (Report or Label)
- Check Component References
- Create Configuration Records (Modules, Units, Calendars, and More)
- Explore the GraphQL API
- Export Data
- Import Data into an Application
- Investigate Application Logs
- Save an Export Configuration
- Trace a Data Change
Enterprise & Organizations
Platform Concepts & Architecture (10)
- Bridging the Red and Blue Data Divide - How Fuuz Became the First Industrial Platform to Merge Operational and Business Intelligence
- Claude AI Skills for the Fuuz Platform
- Cool Things we built with Fuuz Episode 1 12.5.2025 (Public)
- Differences between MES and ERP from an ERP Consultant Eric Kimberling
- Fuuz can be your "Connected Worker Platform"
- Listen and Learn what MES is and what makes it unique
- Manufacturers struggle with Build versus Buy for their MES and what are the Core 4 Elements
- Stock Price Application
- Why All Manufacturers Build their MES System Part 1
- Why All Manufacturers Build their MES System Part 2
Screens & Application Design (17)
- Application Designer Guide
- Array Input
- Combobox
- Dynamic Field Configurations
- Fuuz Deployment Methodologies
- Fuuz Form Detail Screen Specification
- Historical Data Table Screen Design Standard
- JSON
- JSON Form Fields in Action Steps
- JSON Schema Inputs
- Master Data Table Screen Design Standard
- Mobile Screen Design Standard
- Screen Context Container
- Screen Generation (AI) Flow Template V1.5.1
- Setup Data Table Screen Design Standard
- Table Column Conditional Formatting
- Transform Data in a Column
Data Models & Schema (8)
Data Flows & Scripting (51)
Designing Flows
- Data Flow Design Standards
- Data Flow Logs
- Debugging and Testing our Fuuz Data Flows
- Flow Schedules
- Fuuz Data Flows enable DataOps at Scale, ETL, iPaaS and more
- How to Create APIs Using Data Flows in Fuuz
- How To General E-Commerce Integrations using Data Flows in Fuuz iPaaS
- How to Setup a daily file import using Fuuz Data Flows
- Managing Large Datasets in Fuuz: Data Flow Engine Performance Optimization
- The Power of Data Flows - Unlocking Industrial Intelligence with Fuuz
- Using Fuuz with FTP integrations and Data Flows iPaaS
Data Flow Nodes
- Data Flow Nodes Reference
- Debugging & Context Nodes
- Flow Control Nodes
- Fuuz Platform Nodes
- IIoT & Gateway Nodes
- Integration Nodes
- Notification Nodes
- Source & Trigger Nodes
- Transform Nodes
JSONata Reference
- Aggregation Functions
- Array Functions
- Boolean Functions
- Boolean Operators
- Comparison Operators
- Composition
- Construction
- Constructs
- Custom Fuuz Only JSONata Library
- Date Time Functions
- Date Time Processing
- Expressions
- Fuuz Bindings: $predicateFilter
- Higher Order Functions
- Jsonata Tutorial
- Numeric Functions
- Numeric Operators
- Object Functions
- Other Operators
- Path Operators
- Predicate Expressions
- Processing Model
- Regex
- Simple Queries
- Slow Transform Performance: JSONata vs JavaScript Optimization Guide
- Sorting Grouping and Aggregation
- String Functions
Scripting
Integrations & Connectors (30)
General & iPaaS
- API Keys
- Cloud Connectors - Complete Reference Guide
- Connecting a CRM with your ERP using Fuuz
- Connecting a Vending Machine to your ERP system using Fuuz
- Creating a Scheduled Integration & Sending a CSV File in an Email
- Debug a NetSuite SOAP API integration
- Fuuz Connections help you integrate your Systems and Devices
- Fuuz has lists of Connectors and Drivers you can use
- Fuuz has pre-built integration Connectors
- How to create a check an ODBC connection with another system
- How to Create a RESTful API Using the Fuuz Platform
- How to create a simple Integration and Store data in Fuuz
- How To Design or Configure Policies and Policy Groups for my App in Fuuz
- How to Integrate Fuuz with another product or another API
- How to Integrate with an HR system like ADP using Fuuz iPaaS
- How to use API Explorer and GraphQL to Query Data in Fuuz for Beginners
- How you Integrate your ERP with your MES
- Industry 3 and Industry 4 differences in ERP and MES Integrations
- Integrated Carrier Package
- Make REST-Based Calls With An API Key
- Policy Groups
- System connectivity validation - testing a connection when your 3rd party moves its hosting
- Using Fuuz as an iPaaS to Connect - to an API, Collect - Data from the API, Store - that data in Fuuz tables
Plex
- How to connect using Plex UX datasources from Fuuz iPaaS
- How to integrate with Plex Classic using Fuuz iPaaS
- How to Setup and Connect to Plex APIs
EDI
IIoT & Edge Gateway (18)
- Edge Connections: Complete Industrial Integration Reference
- Edge Gateway Flows
- Edge Gateway Installation Step-by-Step
- Edge to Cloud Infrastructure
- Gateway Deployment & Architecture
- Gateway System Requirements
- How IIoT fits into the Industrial Data "Stack"
Physical Device Connectors
- Connecting To Kepware OPCUA Server
- Fanuc Robot Connectivity using Edge Gateway
- HMI Template Standard - ISA-101 Compliant
- How to connect OPC/UA simulator to the Edge Gateway
- Modbus TCP
- MQTT
- Omron PLC/HMI NX102 Connectivity with Edge Gateway
Edge Data Connectors
Reporting, Documents & Dashboards (8)
- Building a Non-Conformance Report (NCR) Application in Fuuz
- Create responsive structured dashboard layouts using the Grid Container and Grid Cell components
- How to add visualizations (charts and graphs) to reports in Fuuz for Beginners
- How to build real-time reports in Fuuz from scratch for Beginners
- How to modify existing reports in Fuuz for Beginners
- Non-Conformance Report Accelerator
- Printing Documents
- Printing Documents From Fuuz
Administration & Access Control (27)
- Access Control
- Access Requests
- Access Requests: Overview
- Access Type Overview
- Access Types
- Add Users to Fuuz Apps
- App Admin Access
- App Management
- App Users
- Applications (Tenants)
- Authentication Events
- Change a User's Access Type
- Configurations
- Create Users and Set Access Type
- Enterprise Admin Overview
- Enterprise Users
- Enterprise Users vs Access Requests
- How To Login to your Fuuz Enterprise - Non Single Sign On
- How To Login to your Fuuz Enterprise - Single Sign On
- Identity Providers
- Notifications
- Notifications
- Organizations
- Roles
- Settings
- Switching my active Role within Fuuz
- Troubleshooting User Login Errors Due to Identity Provider Misconfiguration
Data Management (8)
Accelerators, Templates & Packages (8)
- Create a Quality Batch Golden Record Analysis Tool in Fuuz
- Fuuz Developer 101 Bootcamp - 2026 Schedule & Enrollment
- Fuuz Developer 101 Bootcamp - Program Overview
- Fuuz Industry Accelerators - Installation & Best Practices
- Fuuz Industry Accelerators - Overview
- How-To: Managing Green/Blue Deployments with Fuuz Package Management Zero-Downtime
- Model Agnostic Scheduling System APS
- Setting up In-House Fuuz
Design Standards (1)
How-To Guides (8)
- Connecting to Fuuz from a remote system to execute a Fuuz API
- Connecting to Fuuz from a remote system to execute a Fuuz API - Extended Features Part 2
- Data Mapping
- Document your Application using Atlassian Confluence and our Pre-Built App
- Fuuz Platform Capabilities
- How to add multiple data records to the Fuuz database with a single API call
- How to on Best Practices for Designing Flows in Fuuz
- Using the Transformation Explorer
FAQ & Troubleshooting (1)
Release Notes (117)
2026
- 2026.1 (January 2026)
- 2026.2 (February 2026)
- 2026.3 (March 2026)
- 2026.4 (April 2026)
- 2026.5 (May 2026)
- 2026.6 (June 2026)
2025
- 2025.1 (January 2025)
- 2025.10 (October 2025)
- 2025.11 (November 2025)
- 2025.12 (December 2025)
- 2025.2 (February 2025)
- 2025.4 (April 2025)
- 2025.5 (May 2025)
- 2025.6 (June 2025)
- 2025.7 (July 2025)
- 2025.8 (August 2025)
- 2025.9 (September 2025)
2024
- 2024.1 (January 2024)
- 2024.10 (October 2024)
- 2024.11 (November 2024)
- 2024.12 (December 2024)
- 2024.2 (February 2024)
- 2024.3 (March 2024)
- 2024.4 (April 2024)
- 2024.5 (May 2024)
- 2024.6 (June 2024)
- 2024.7 (July 2024)
- 2024.8 (August 2024)
- 2024.9 (September 2024)
2023
- 2023.5 (May 2023)
- 2023.1 (January 2023)
- 2023.10 (October 2023)
- 2023.11 (November 2023)
- 2023.12 (December 2023)
- 2023.2 (February 2023)
- 2023.3 (March 2023)
- 2023.4 (April 2023)
- 2023.6 (June 2023)
- 2023.7 (July 2023)
- 2023.8 (August 2023)
- 2023.9 (September 2023)
2022
- 2022 Q1 Fuuz Package Updates (03/11/2022)
- 2022 Q1 Fuuz Release Notes v3.87.0 (03/17/2022)
- 2022 Q1 MFGx Release Notes v3.78.0 (01/06/2022)
- 2022 Q1 MFGx Release Notes v3.79.0 (01/13/2022)
- 2022 Q1 MFGx Release Notes v3.80.0 (01/20/2022)
- 2022 Q1 MFGx Release Notes v3.81.0 (01/27/2022)
- 2022 Q1 MFGx Release Notes v3.82.0 (02/03/2022)
- 2022 Q1 MFGx Release Notes v3.83.0 (02/10/2022)
- 2022 Q1 MFGx Release Notes v3.85.0 (02/28/2022)
- 2022 Q2 Fuuz Release Notes v3.90.0 (04/14/2022)
- 2022 Q2 Fuuz Release Notes v3.91.0 (04/21/2022)
- 2022 Q2 Fuuz Release Notes v3.92.0 (04/28/2022)
- 2022 Q2 Fuuz Release Notes v3.93.0 (05/06/2022)
- 2022 Q2 Fuuz Release Notes v3.94.0 - v3.97.0 (June 13, 2022)
- 2022 Q2 Fuuz Release Notes v3.98.0 (06/16/2022)
- 2022 Q2 Fuuz Release Notes v3.99.0 (06/30/2022)
- 2022 Q3 Fuuz Release Notes v3.100.0 🎉 (07/06/2022)
- 2022 Q3 Fuuz Release Notes v3.101.0 (07/21/2022)
- 2022 Q3 Fuuz Release Notes v3.102.0 (08/11/2022)
- 2022 Q3 Fuuz Release Notes v3.103.0 (08/18/2022)
- 2022 Q4 Fuuz Release Notes v3.107.0 - v3.109.0 (10/27/2022)
2021
- 2021 Q1 MFGx Release Notes v3.29.0 (1/7/2021)
- 2021 Q1 MFGx Release Notes v3.30.0 (1/14/2021)
- 2021 Q1 MFGx Release Notes v3.34.0 (2/4/2021)
- 2021 Q1 MFGx Release Notes v3.37.0 (2/26/2021)
- 2021 Q1 MFGx Release Notes v3.38.0 (3/5/2021)
- 2021 Q1 MFGx Release Notes v3.40.0 (3/25/2021)
- 2021 Q1 MFGx.io Release Notes v3.32.0 (1/21/2021)
- 2021 Q1 MFGx.io Release Notes v3.33.0 (1/28/2021)
- 2021 Q2 MFGx Release Notes v3.41.0 (4/1/2021)
- 2021 Q2 MFGx Release Notes v3.42.0 (4/8/2021)
- 2021 Q2 MFGx Release Notes v3.43.0 (4/16/2021)
- 2021 Q2 MFGx Release Notes v3.44.0 (4/22/2021)
- 2021 Q2 MFGx Release Notes v3.45.0 (4/29/2021)
- 2021 Q2 MFGx Release Notes v3.47.0 (5/13/2021)
- 2021 Q2 MFGx Release Notes v3.48.0 (5/20/2021)
- 2021 Q2 MFGx Release Notes v3.48.0 (5/27/2021)
- 2021 Q2 MFGx Release Notes v3.50.0 (6/03/2021)
- 2021 Q2 MFGx Release Notes v3.51.0 (6/10/2021)
- 2021 Q2 MFGx Release Notes v3.52.0 (6/17/2021)
- 2021 Q2 MFGx Release Notes v3.54.0 (6/28/2021)
- 2021 Q3 Fuuz Release Notes v3.58.0 (7/22/2021)
- 2021 Q3 MFGx Release Notes v3.55.0 (7/1/2021)
- 2021 Q3 MFGx Release Notes v3.60.0 (8/5/2021)
- 2021 Q3 MFGx Release Notes v3.61.0 (8/17/2021)
- 2021 Q3 MFGx Release Notes v3.62.0 (8/19/2021)
- 2021 Q4 MFGx Release Notes v3.68.0 (10/8/2021)
- 2021 Q4 MFGx Release Notes v3.69.0 (10/14/2021)
- 2021 Q4 MFGx Release Notes v3.70.0 (10/21/2021)
- 2021 Q4 MFGx Release Notes v3.71.0 (10/28/2021)
- 2021 Q4 MFGx Release Notes v3.72.0 (11/04/2021)
- 2021 Q4 MFGx Release Notes v3.73.0 (11/11/2021)
- 2021 Q4 MFGx Release Notes v3.74.0 (11/19/2021)
- 2021 Q4 MFGx Release Notes v3.75.0 (12/02/2021)
- 2021 Q4 MFGx Release Notes v3.76.0 (12/09/2021)
- 2021 Q4 MFGx Release Notes v3.77.0: The Holiday Update (12/16/2021)
2020
- 2020 Q2 MFGx Release Notes v2.32.0 (4/9/2020)
- 2020 Q2 MFGx Release Notes v2.33.0 (4/16/2020)
- 2020 Q2 MFGx Release Notes v2.35.0 (4/30/2020)
- 2020 Q2 MFGx Release Notes v3.5.0 (6/18/2020)
- 2020 Q2 MFGx Release Notes v3.6.0 (6/25/2020)
- 2020 Q2 MFGx.io Release Notes v2.32.0 (4/9/2020)
- 2020 Q3 MFGx Release Notes v3.10.0 (7/23/2020)
- 2020 Q3 MFGx Release Notes v3.11.0 (7/30/2020)
- 2020 Q3 MFGx Release Notes v3.13.0 (8/13/2020)
- 2020 Q3 MFGx Release Notes v3.17.0 (9/21/2020)
- 2020 Q3 MFGx Release Notes v3.7.0 (7/6/2020)
- 2020 Q3 MFGx Release Notes v3.8.0 (7/9/2020)
- 2020 Q4 MFGx Release Notes v3.20.0 (10/13/2020)
- 2020 Q4 MFGx Release Notes v3.21.0 (10/15/2020)
- 2020 Q4 MFGx Release Notes v3.22.1 (10/22/2020)
- 2020 Q4 MFGx Release Notes v3.23.0 (11/5/2020)
- 2020 Q4 MFGx Release Notes v3.24.0 (11/12/2020)
- 2020 Q4 MFGx Release Notes v3.26.0 (12/3/2020)
- 2020 Q4 MFGx Release Notes v3.27.0 (12/10/2020)
- 2020 Q4 MFGx Release Notes v3.28.0 (12/17/2020)