Ninox Major Release 2.4 ready: Let's INTEGRATE!
Ninox 2.4 is all about integration. Share table views, connect Ninox with hundreds of services using Zapier and use the new REST API to push and pull content from other apps.
REST API**: Read and update data with HTTP REST requests.
- Push and Pull information from 3rd party applications via HTTP call.
- Read and write content stored in Ninox from 3rd party applications via the Ninox API.
- Learn more in the API documentation.

Zapier Integration**: Integrate Ninox with other Internet services using Zapier. Learn more in the API documentation.
Sharing Table views**: can now be shared as public links. Choose from HTML, PDF, Excel, CSV and JSON rendering.
Once shared, all changes in the view done in the database will be updated in the public link.

Table Views in forms: Use the new layout element "View" to embed a table view querying data from other tables.

Charts in forms: Use the new layout element "Chart" to embed a chart in a form.

NX Scripting
Send emails**
Use this function to automate the sending of your e-mails. Just one click on a button and you can send content of your data base to defined e-mail recipients.
sendEmail({from: "recipient@domain.com",to: "recipient@domain.com",subject: "Hello World!",text: "Some text",html: "<h1>Some Text</h1><i>With Markup</i>"})
Import a file from a URL as an attachment
You can now import automatically and/or conditionally a file from an URL and save it as an attachment of a data record.
importFile(this, "https://static.ninoxdb.de/images/logo-ninox-new-2@2x.png")
Print a record to an attachment
This function gives you the opportunity to export one of your print layouts as PDF and save it as an attachment of the data record.
importFile(this, printAndSaveRecord(this, "My Print Layout"), "mypdf.pdf")

Get data from other services**
With the API integration in Ninox you will be able get information from other services. Detailed information about the API integration you will find in our User Manual here: [link=5b57195eb23d4c7ca268b5c8].
let response := http("GET", "https://someservice.com/api", {Authorization: "API-Key"}, null);if response.error then alert(response.error)else alert(response.result)end
List all files of a record
files(this)
In order to show it in a field please be aware that the function gives an array. Please use an additional function like concat(), first(), last() etc.
Get a specific file
file(this, "mypdf.pdf")

Activate the bar code scanner
let code := barcodeScan();alert(code)
Ask the user
let result := dialog("Title", "Message", ["Option A", "Option B"]);if result = "Option A"alert("Good choice")elsealert("Great")end

Write protection for individual fields
The "Writable if" option is now also available for each data field.
Multiple user roles for one user**
Now it is possible to assign multiple roles to a user. The administrator can create additional user roles.
Custom Views**
Views can be made visible or invisible for different user roles. In order to do this, choose in the "Edit columns ..." dialogue (small funnel icon above the table view) in the field "Allowed to read" the role for which the view should be visible
Import data from a URL*
The import options now also allow importing from a URL source, e.g. from a shared table view of a Ninox database.
* only available in the Ninox Apps
** only available in Ninox Cloud/Ninox Server teams