> For the complete documentation index, see [llms.txt](https://docs.ninox.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ninox.com/release-notes/readme.md).

# Ninox 4 release notes

Updates and improvements

{% updates format="full" %}
{% update date="2026-10-21" %}

## Connect your external systems with Ninox

**Ninox 4**\
\[Platform: Cloud]

**Connectors** help you bring your external systems and Ninox data together.\
You can keep data aligned across tools, set up connections for one workspace, or share them across several workspaces in your organization. Supported and custom connectors give you flexible options for the systems your team relies on.

<figure><img src="https://3056839278-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPLCVz4AIlE2pZqve9hTg%2Fuploads%2FsxUkBLJEZJ8JOoDUSqys%2FOrg%20Connections%20EN.png?alt=media&amp;token=1b0a0657-7cc7-4ad9-a2c1-b9e3bd0b234d" alt=""><figcaption></figcaption></figure>

External data can become part of your Ninox app through synced tables. Connect a new or existing table, then control when data syncs and in which direction.

For advanced workflows, connector capabilities are available in Ninox Script through `connectionInvoke()`. This gives your app logic direct access to external-system data.

#### What's new?

* Connect supported external systems at the [workspace](/builder-hub/manage-your-organization-and-workspace/organize-your-workspace/api-and-connections/manage-workspace-level-connections.md) or [organization](/builder-hub/manage-your-organization-and-workspace/manage-your-organization/manage-organization-wide-connections.md) level.
* [Synchronize external data](/builder-hub/design-your-app/create-and-manage-tables/sync-external-data.md) with new or existing Ninox tables.
* Use [connector capabilities in Ninox Script](/builder-hub/manage-your-organization-and-workspace/organize-your-workspace/api-and-connections/manage-workspace-level-connections.md#use-a-connector-in-ninox-script) with `connectionInvoke()`.
  {% endupdate %}

{% update date="2026-10-12" %}

## Share table views with Ninox scripts

**Ninox 4**\
\[Platform: Cloud]

You can now share saved table views directly in Ninox scripts. Use `shareView()` to create a share link for a table or a specific view. Optional settings let you control which content the link shows.

Use `unshareView()` to revoke a single view share. Use `unshareAllViews()` to revoke all shares for a table.

For details, see [Publish views with `shareView()`, `unshareView()`, and `unshareAllViews()`](/ninox-scripting/automate-your-workflows/work-with-functions/files-and-export.md#publish-views-with-shareview-unshareview-and-unshareallviews).

#### What's new?

* Create share links for table views with `shareView()`.
* Revoke individual view shares with `unshareView()`.
* Revoke all table shares with `unshareAllViews()`.
  {% endupdate %}

{% update date="2026-10-12" %}

## Redesigned field settings panel and form editing

**Ninox 4**\
\[Platform: Cloud]

We improved the **Settings** panel for fields so you can find settings faster and understand their impact before changing them.

<figure><img src="https://3056839278-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPLCVz4AIlE2pZqve9hTg%2Fuploads%2Fo5ttJcyodE5rB4cPZfSx%2FSettings%20panel%20Everywhere.png?alt=media&amp;token=5134a530-60e6-4fd1-b070-27d6d8e3a609" alt=""><figcaption></figcaption></figure>

You can now see more clearly whether a setting applies to the field everywhere or only in the current form.\
Field settings are grouped by scope. **Everywhere** settings apply across tables, views, and forms. **On the form** settings affect only the field's current form view. This helps you choose the right setting without changing the field's behavior elsewhere.

All settings are now expanded by default. You can see the options under sections such as **Display** right away.

The new **Used on pages** section shows every page or form that displays the field. It also shows the field's label on each page and form. This makes it easier to find and review where a field is used.

In the **Structure** tab, you can now select multiple elements and drag them together to reorder the form. The change is reflected on the form immediately.

Navigation is also improved. Breadcrumbs at the top show your current location, and the back arrow returns you to the list of all fields.

See [Add and edit data fields in your tables](/builder-hub/design-your-app/add-and-edit-data-fields-in-your-tables.md) and [Shared field settings](/builder-hub/design-your-app/add-and-edit-data-fields-in-your-tables/all-data-fields/shared-field-settings.md) for details.

#### What's new?

* Grouped field settings by whether they apply everywhere or only in a form.
* Expanded settings sections by default.
* Added **Used on pages** to show where a field appears.
* Reorder multiple form elements together in the **Structure** tab.
* Added breadcrumbs and a back arrow for clearer navigation.
  {% endupdate %}

{% update date="2026-10-07" %}

## Enter values directly on pages with the Input component

**Ninox 4**\
\[Platform: Cloud]

You can now add an **Input** **component** to a page. Use it to display a field and let users enter or update its value without opening the record form.

Add inputs to dashboards, custom pages, and guided workflows. Bind each component to the relevant field, then place it alongside supporting text, views, or actions. Users can work with values directly where they need them.

See [Input component](/builder-hub/visualize-and-organize-your-data/create-and-customize-pages/input-component.md) for configuration details. Learn how to structure pages in [Create and customize pages](/builder-hub/visualize-and-organize-your-data/create-and-customize-pages.md).

#### What's new?

* Added the **Input** **component** for entering and editing field values on pages.
  {% endupdate %}

{% update date="2026-10-05" %}

## Custom branding for your organization

**Ninox 4**\
\[Platform: Cloud]

You can now give every workspace a look that reflects your organization. Set your logo, navigation color, and Workspaces screen background from one place.

<figure><img src="https://3056839278-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPLCVz4AIlE2pZqve9hTg%2Fuploads%2FaMKCwD7pdG5eL4lTlnRJ%2FOrg%20settings_Custom%20Branding%20EN.png?alt=media&amp;token=fa5a7999-672d-4c0e-8ba8-515f35a30049" alt=""><figcaption></figcaption></figure>

Give your organization a unique identity with [Custom branding](/builder-hub/manage-your-organization-and-workspace/manage-your-organization/manage-organization-settings.md#customize-organization-branding).

#### What's new

* Upload an organization logo for a recognizable identity in the main navigation.
* Set a navigation color that matches your organization.
* Choose a solid color or gradient for the **Workspaces** screen background. You can also use an image and adjust its size and position to fit your design.
  {% endupdate %}

{% update date="2026-10-01" %}

## New and improved functions for file sharing and navigation

**Ninox 4**\
\[Platform: Cloud]

You can now create and revoke public file links in Ninox scripts. Use `shareFile()` to create a share link for an attachment or export. Use `unshareFile()` to revoke that link when you no longer want to share the file.

`urlOf()` now creates URLs for table views and records. Use it to link directly to a view or open a specific record in a selected view.\
`openTable()` now opens a table by its label or internal name. You can also specify the view that should open.

See [Share and unshare files](/ninox-scripting/automate-your-workflows/work-with-functions/files-and-export.md#share-and-unshare-files), [return URLs for data views and records](/ninox-scripting/automate-your-workflows/work-with-functions/files-and-export.md#return-a-url-of-data-views-and-records-with-urlof), and [open a table](/ninox-scripting/automate-your-workflows/work-with-functions/user-interface.md#open-a-table-with-opentable) for details.

#### What's new?

* Create and revoke file share links with `shareFile()` and `unshareFile()`.
* Create direct URLs for table views and records with `urlOf()`.
* Open tables and selected views by label or internal name with `openTable()`.
  {% endupdate %}

{% update date="2026-09-28" %}

## Edit linked records directly with Embedded form

**Ninox 4**\
\[Platform: Cloud]

You can now use **Embedded form** in a **Link one record** field. It displays the linked record's form directly in the current form.

Edit the linked record's fields, access <i class="fa-paperclip-vertical">:paperclip-vertical:</i> **Files**, and view its <i class="fa-clock-rotate-left">:clock-rotate-left:</i> **History** without leaving the current record. Choose **Embedded form** in the field settings under **Display**.

See [Link one record (Reference)](/builder-hub/design-your-app/add-and-edit-data-fields-in-your-tables/all-data-fields/link-one-record-reference.md) for details.

#### What's new?

* Added **Embedded form** for **Link one record** fields.
  {% endupdate %}

{% update date="2026-09-28" %}

## Improve data quality and performance with Unique and Indexed fields

**Ninox 4**\
\[Platform: Cloud]

You can now enforce unique values and index fields in your tables. In the field settings, enable **Unique** to prevent duplicate values in a field. Enable **Indexed** to speed up frequent filters and searches in large tables.

Use **Indexed** only for fields used often in `where` conditions or searches and filters. Indexes use additional storage and memory. They can reduce performance when used unnecessarily.

See [Shared field settings](/builder-hub/design-your-app/add-and-edit-data-fields-in-your-tables/all-data-fields/shared-field-settings.md) and [Index fields to speed up filters and searches](/ninox-scripting/automate-your-workflows/automations/index-fields-to-speed-up-filters-and-searches.md) for details.

#### What's new?

* Prevent duplicate field values with **Unique**.
* Improve frequent filters and searches with **Indexed** fields.
  {% endupdate %}

{% update date="2026-09-25" %}

## Plan and track projects on one timeline with Gantt view

**Ninox 4**\
\[Platform: Cloud]

You can now plan work and track progress on a Gantt timeline. Add a Gantt view to a table or place a Gantt component on a page or form view. Use it for projects, tasks, production plans, and other date-based work.

Map start and end dates, then choose a bar label. Add colors, progress, milestones, dependencies, and baseline dates when needed. You can also group and filter records in a Gantt.\
Select a bar or milestone to open its record in form view.

Learn how to [configure a Gantt view](/builder-hub/visualize-and-organize-your-data/work-with-views/gantt-view.md) or [add a Gantt component](/builder-hub/visualize-and-organize-your-data/create-and-customize-pages/gantt-component.md) to a page or form view.

#### What's new?

* Added Gantt view to show records on a timeline.
* Added Gantt component to show scheduled work on a page or form view.
  {% endupdate %}

{% update date="2026-09-23" %}

## Use and publish app templates

**Ninox 4**\
\[Platform: Cloud]

You can now create an app from a ready-made template or publish your own app as a template. This gives teams a faster starting point and helps your organization reuse apps.

<figure><img src="https://3056839278-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPLCVz4AIlE2pZqve9hTg%2Fuploads%2FyxQuknRxRtVSRHqrrTAT%2FTemplate%20Gallery.png?alt=media&amp;token=a07ad03b-66fa-477c-a393-92f9da298494" alt=""><figcaption></figcaption></figure>

Open workspace **Home** and select **Use a template** to access the **Template gallery**.\
Preview a template before installing it. You can also add AI-generated sample data, then adapt the new app for your workflow.\
[Use app templates](/builder-hub/design-your-app/create-and-manage-apps/use-app-templates.md) explains the available templates and installation.

Turn your app into a reusable template. Share it across workspaces to save time and standardize processes. Admins can make templates available across their organization. Find them under **My organization** in the **Template gallery**.\
Learn how to [publish app templates](/builder-hub/design-your-app/create-and-manage-apps/publish-app-templates.md).

**What's new:**

* Added ready-made app templates for common business processes.
* Added organization-wide app template publishing for admins.
  {% endupdate %}

{% update date="2026-09-22" %}

## Guide users when they enter your app and control table permissions

**Ninox 4**\
\[Platform: Cloud]

You can now run Ninox scripts whenever an app opens. Use the **On open** automation in app settings to guide users to relevant data or an entry point for their daily work when they open the app.

Control table permissions with logic. In table settings, use **Can read if**, **Can edit if**, **Can create if**, and **Can delete if** to allow each action only when its condition is met.

See [Automations](/builder-hub/design-your-app/create-and-manage-apps.md#automations) and [Adjust table settings](/builder-hub/design-your-app/create-and-manage-tables.md#adjust-table-settings) for details.

#### What's new?

* Run logic when an app opens with **On open**.
* Set logic-based conditions for reading, editing, creating, and deleting table records.
  {% endupdate %}

{% update date="2026-09-21" %}

## New functions for printing records and tables, and validating XML

**Ninox 4**\
\[Platform: Cloud]

You can now generate printed output and validate XML directly in Ninox scripts. Use `printRecord()` to download a PDF for one record with a selected print layout. Use `printTable()` to print a table view with its visible columns.

Use `validateXML()` to check XML text against an XSD schema attached to a record. The function returns the validation result and any errors. This helps you detect invalid external data before processing it.

See [Print records and tables](/ninox-scripting/automate-your-workflows/work-with-functions/files-and-export.md#print-records-and-tables) and [Validate and transform XML](/ninox-scripting/automate-your-workflows/work-with-functions/integration-and-http.md#validate-and-transform-xml) for details.

#### What's new?

* Create and download a PDF for one record with `printRecord()`.
* Print a table view with its visible columns using `printTable()`.
* Validate XML against an attached XSD schema with `validateXML()`.
  {% endupdate %}

{% update date="2026-09-21" %}

## Reuse logic with Global functions

**Ninox 4**\
\[Platform: Cloud]

You can now write shared Ninox script once and reuse it wherever your app needs it. Instead of copying the same logic into fields, buttons, and automations, define a **Global function** and call it where needed. Updating the function applies the change everywhere you use it. This keeps your app logic consistent and easier to maintain.

Create and manage **Global functions** from **Scripting** in the app navigation. See [Global functions](/ninox-scripting/automate-your-workflows/global-functions.md) for details.
{% endupdate %}

{% update date="2026-04-22" %}

## Introducing Ninox 4

**Ninox 4**\
\[Platform: Cloud]

We are introducing Ninox 4, the next generation of Ninox with AI-assisted, low-code tools to help you create and evolve business solutions faster.

For more information, visit Ninox Docs for [Users](/user-hub/user-hub.md) and [Builders](/builder-hub/readme.md), as well as the [Scripting](/ninox-scripting/ninox-scripting.md) and [API](/ninox-api/readme.md) documentation.

If you’re new to Ninox 4, begin with our [Getting started](/getting-started/getting-started.md) documentation for step‑by‑step guidance on your first setup.
{% endupdate %}
{% endupdates %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ninox.com/release-notes/readme.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
