Integration and HTTP
Learn how to call external services, validate XML against XSD schemas, transform XML, send emails, and create calendar items in Ninox scripts.
Integration functions connect your app to services and communication tools outside Ninox. You can call APIs, validate XML against schemas, transform XML, send emails, and create appointments or reminders where the environment supports it.
In this chapter, you will learn how to:
Call external services with HTTP.
Transform XML.
Create appointments.
appointment()
Create an appointment value
email()
Return or reuse an email value
formatXML()
Convert JSON data to XML text
http()
Send an HTTP request
parseXML()
Convert XML text to a JSON object
Call external services
Use these functions to call any REST API, to pull data from another service or push data between Ninox databases.
Call an API with http()
http()Use http() to send a request to an external service.
Use it when you want to:
Fetch data from, or send updates to another system.
Connect Ninox to REST APIs and other Ninox databases.
Don't place http() inside do as transaction...end
Transactions use a single-threaded write queue. An HTTP call inside a transaction blocks all other writes until the request finishes. The app does not hang forever, but every pending write waits for the full duration of the call. That can make the app feel slow.
http(method, url)
http(method, url, body)
http(method, url, header, body)
http(method, url, header, body, files)
method: text value of the HTTP method , for example,"GET"or"POST"url: text value of the endpoint URLheader: optional headers as a JSON object, for example,{ Authorization: token }body: optional request body as a JSON objectfiles: optional files to upload as[file]when the current execution context supports file uploads (server context)
A body is required when accessing Ninox data
If you use http() to access data in Ninox, a body must be passed. If no information needs to be passed in the body, it simply remains empty. An example of this would be:
http("GET", "https://api.ninox.com/v1/[...]", {Authorization: "Bearer xxxx-xxxx-xxxx", "content-type": "application/json"}, {})
Let’s take a look at some examples:
Calls the external service and returns a JSON response object or an error object.
Lists tables from the current database through the Ninox API or an error object.
Sends a POST request and returns matching records or an error object.
Uploads a file to an external service when file uploads are supported in the current execution context.
Tips:
http()returns a JSON object, not plain text.If you access another Ninox database, you need an API key.
Some endpoints expect a body even for
GETrequests. Use{}when the target endpoint requires one and you do not need to send fields.File uploads depend on the execution context.
Test integration scripts against the real service response, not sample output only.
Transform XML
Use these functions when another system sends or expects XML, especially when the XML must match a defined schema.
Convert XML text to data with parseXML()
parseXML()Use parseXML() to turn XML text into a JSON object you can inspect in Ninox. This is especially useful when you connect Ninox to external services by API and need to process XML responses. XML is a common exchange format alongside JSON.
Use it when you want to:
Read values from an XML response.
Extract fields from imported XML.
Convert XML into structured data for later logic.
parseXML(string)
string: the XML text you want to convert to a JSON object
Let’s take a look at some examples:
Returns a JSON object built from the XML text, for example:
Tip:
If you have an XSD schema, validate external XML before you parse it.
Create XML text with formatXML()
formatXML()Use formatXML() to convert JSON data into XML text.
Use it when you want to:
Prepare XML for another service.
Reformat parsed data into readable XML.
formatXML(JSON)
formatXML(JSON, boolean)
JSON: the structured data you want to convert to XMLboolean: whether the output should be visually structured for reading
Let’s take a look at some examples:
Formats the parsed object back into readable XML text.
Converts the JSON object into structured XML text. Keys like @type become XML attributes. @ becomes the node text value.
Tips:
Use the pretty option when humans need to read the result.
Use compact output when the target system only needs the payload.
This function is especially useful for API integrations that expect XML instead of JSON.
Create appointments
Use these functions when you want to create a time-based item for your workflow.
Create an appointment value with appointment()
appointment()Use appointment() to convert time-related values into an appointment value.
Use it when you want to:
Set up a meeting or consultation slot from start and end values.
Create a time range from a start and a duration.
Pass a scheduled time range into later logic.
appointment(any, any)
first
any: the start timestampsecond
any: the end timestamp of the appointment or a duration
Let’s take a look at some examples:
Creates an appointment from two timestamps. Ninox automatically uses the earlier timestamp as the start.
Creates an appointment from a start datetime and a duration of 1 hour and 45 minutes.
Tips:
The argument order does not matter when you pass two timestamps. Ninox uses the earlier one as the start.
If start and end are on the same day, the display usually shows only one date. If they span multiple days, both dates are shown.
Integration behavior can depend on your environment, client, and connected services. Confirm HTTP and email workflows in the same setup your users run in production.
Last updated
Was this helpful?