New Version: Ninox 3.4.0 is now available


We are excited to announce the new Ninox 3.4.0, which offers enhanced API capabilities, new NX scripting functions, and a lot more…

Check out what we have been busy with:
• API Advancements
• NX Scripting advancements
• New Self-Service options for Private Clouds
• Minor Improvements and Bug Fixes  

API Advancements

API is one of the most important components of Ninox as it allows you to integrate and easily share information with the outside world.
Therefore, the type of information you are allowed to share over API can sometimes cause hindrance, if it doesn’t fit your use case. With that in mind, we have now streamlined the API structure between Public and Private cloud space, and empowered Ninox API to handle additional parameters and provide more endpoints.

• You can now easily assign a Multi Choice field to a list of choice IDs and choice values or a mix of both at the time of creating or updating.
• If you would like to get formatted output for choice fields and date styles, you can now use the ‘choicestyles’ and ‘datestyles’ query parameters in API calls.
Expected Values:
choicestyles – Ids, Names
datestyles  – ISO, UTC, and Timestamp
• Going forward, both public and private cloud APIs will follow the same structure to facilitate ease of access and avoid ambiguity around API. The changes to the Private Cloud API are depicted below.
- The Public cloud API remains the same
- Existing Private Cloud keys will not be impacted, old API endpoints will be maintained to ensure the backwards compatibility

Private Cloud
Earlier: GET
Now: GET
Public Cloud

• You can now get the thumbnails of a file by using the new endpoint below:


• You can also easily get file information (metadata) like file name, size, modified date, and modifying user by using the new endpoint below:

NX Scripting advancements


You can now direct your scripts to wait for synchronization to complete before executing server-based triggers or commands, thus ensuring data availability at the server before the trigger.
The new waitForSync() function will ensure that the next synchronization cycle is finished before execution of the rest of the code.
Syntax: waitForSync()

You can use the fileMetadata() function to get metadata of a specific file. The function allows you to extract information like name, size, and modified date.
Syntax: fileMetadata (this, "<File Name>")

You can use the following functions to get shareable URLs so you can share files and different views, respectively.
• shareFile() - to get URL of a specific file (image, or signature field)
• shareView() - to get URL of a specific view in a table
How it works:
• shareFile('myFile') - to return a URL of the specified file
• shareView(“myTable”) - to return URL of the default view of a given table
• shareView(“myTable”, “myView”) - to return URL of a given view of a given table
• shareView(“myTable”, option) - to return URL of the default view of a given table in a given format (PDF, HTML, CSV, or JSON)
Eg: shareView(“myTable”, { contentType : ”pdf” })
• shareView(“myTable”, “myView”, options) - returns URL of the specified view in a given format
Eg: shareView(“myTable”, “myView”, { contentType :  “json“ })

Use these functions to retrieve your sharings.
• unshareFile() - to unshare a file unshareView() to unshare a view, returns void
• unshareAllViews() to unshare all the views
How it works
• unshareFile(‘myFile’) - to unshare the file
• unshareView(“myTable”, “myView”) - unshares specified view
• unshareAllViews(“myTable”) - unshares all the views of a given table

Lists of ids can now be assigned to dynamic multi choice fields. And an Id or a record can be assigned to dynamic choice fields.
How it works?
• 'Multiple choice (dynamic)' := [1, 2, 3, 4, 5] - to assign the given an array of record Ids to a dynamic multi choice field
• 'Multiple choice (dynamic)' := select myTable - to assign all the records of  a given table to a dynamic multi choice field
• 'Choice (dynamic)' := 3 - to assign a record with given ID to a dynamic choice field
• 'Choice (dynamic)' := first(select myTable) - to assign first record of a given table to a dynamic choice field

New Self-Service options for Private Clouds

When using a private cloud, managing teams, user accounts, and general configuration setup is essential for smooth and uninterrupted functioning of the private cloud environment.
While some setups are complicated and should be meticulously implemented, some are self-intuitive and do not require additional help.
With the new version, Ninox Private Cloud has been equipped with several self-service options so that you don’t have to reach out to our Customer-Success team for every menial task, saving some time for all of us.   Note: The features below are only applicable to Private Clouds

Changing Team Owner

You can now independently change team owners in your Private Clouds.
How it works
To explore the option, simply navigate to the respective team in Server Administration Tool, select the new team owner from drop-down and hit save.


Email SMTP Configuration
You can now easily setup your SMTP credentials by utilizing the ‘Server Configuration’ option.
‘Host’ and ‘Port’ address are must, need for ‘User” and ‘Password’ depends on your SMTP server.


Auto-generate API keys
Private Cloud admins can now create role-based API keys i.e., you can now not only self-create API keys but can also assign roles to the keys based on the user roles (admin, editor etc.), including custom roles.
How it works:
Use the small settings icon on the top right in your Ninox application, click Zapier integrations, and you are good to go - generate the API key and select the desired role. 


Minor Improvements and Bug Fixes

• You now get results in your selected language instead of default English when wrapping weekday and format functions with 'do as server'
• You can now choose an invitation language before sending an invite. For now, only English and German are available for selection, other languages will be added incrementally
• While deleting a linked record from sub table by right click, you will now get a call to action for confirmation before deleting the record
• You will now be able to edit Multiple Choice field in table mode
• Dynamic choice field will show numbers with correct pre-selected format
• Dynamic choice fields will now display field value/s instead of Ids in Print Layout
• You can now explicitly assign values to a Multiple choice (dynamic) via list and arrays
• Combo box search will not randomly filter out search results anymore. Results will be based on a wildcard search for the letters you type 

If you would like to learn more about this update, we’d like to welcome you to our release webinar on 8th July at 3pm (CET) about it:

Sign up for free

Whether you are new to Ninox or we already know each other: We are here for you. So, we hope you enjoy this update as much as we do.
If you have any questions or feedback about this update, please email our product team