# Changelog

> Part of the NocoDB documentation (Workflows > Scripts). Index of all pages: https://nocodb.com/llms.txt. Any docs page is available as Markdown by adding `.md` to its URL.

URL: https://nocodb.com/docs/workflows/scripts/changelog
Last updated: 2026-09-25

NocoDB Scripts API changelog and version history

This page documents all changes to the NocoDB Scripts API, including new features, improvements, bug fixes, and breaking changes.

## February 17, 2026

#### Links Field Enhancement

* **Links as LinkToAnotherRecord (LTAR) Support** - Links fields now return full linked record data instead of just counts
  * All record query methods automatically include complete linked record information (id and display value)
  * Applies to `table.selectRecordsAsync()`, `view.selectRecordsAsync()`, `table.selectRecordAsync()`, and `view.selectRecordAsync()`
  * For Has-Many (HM) and Many-to-Many (MM) relationships, linked records are now returned as `LazyRecordQueryResult` objects earlier used to return only counts.
  * For Belongs-To (BT) and One-to-One (OO) relationships, linked records are returned as complete record objects as before.
  * **Note:** This is automatically enabled for all scripts - no code changes required

## January 29, 2026

#### Script Settings Enhancement

* **Default Values for Configuration Items** - All `input.config` methods now support an optional `default` parameter
  * `input.config.table()` - Pre-select a table by ID: `default: 'tbl_abc123'`
  * `input.config.view()` - Pre-select a view by ID: `default: 'vw_xyz789'`
  * `input.config.field()` - Pre-select a field by ID: `default: 'fld_email456'`
  * `input.config.text()` - Pre-fill text input: `default: 'Weekly Report'`
  * `input.config.number()` - Pre-fill number input: `default: 7`
  * `input.config.select()` - Pre-select dropdown option: `default: 'medium'`
  * Default values are applied when users haven't provided a value, making scripts easier to use with sensible defaults

## October 03, 2025

#### Input Methods Enhancement

* **Default Values for `input.textAsync()`** - Added optional `defaultValue` parameter in options object
  * Example: `await input.textAsync('Enter name:', {defaultValue: 'Anonymous'})`
  * Pre-fills the input field with a default value that users can accept or modify
* **Default Values for `input.selectAsync()`** - Added optional `defaultValue` parameter
  * Example: `await input.selectAsync('Select option:', options, defaultValue)`
  * Pre-selects an option in the dropdown menu

#### External Package Imports

* **Dynamic Import Support** - Scripts can now import external JavaScript packages from CDN using dynamic imports
  * Use `await import('package-name')` syntax to load external libraries
  * Example: `const _ = await import('lodash')` or `const dayjs = await import('dayjs')`
  * Supports popular CDNs: esm.sh (default), unpkg, skypack, jsdelivr
  * Enables use of libraries like lodash, dayjs, axios, etc.
  * **Note:** Only dynamic imports are supported; static imports are not available

## July 28, 2025

#### Script Steps API

* **Added `script` object** - New global object for creating visual steps
* **`script.step(config)`** - Create and start steps with rich customization options
  * Support for titles, descriptions, icons, and colors
  * Automatic step management (previous step ends when new step starts)
  * String shorthand: `script.step('Step Title')` or full config object
* **`script.clear()`** - Manually end the current step
* **`script.colors`** - Predefined color constants (red, blue, green, yellow, purple, orange, gray)
* **`script.icons`** - Comprehensive icon library with 100+ icons across different categories.

#### Improvements

* Increased script timeout to 30 Minutes

## June 30, 2025

#### Initial Scripts Release

* **`base` object** - Access to base metadata and configuration
* **`table` object** - Create, Read operations on tables
* **`record` object** - Rich record manipulation capabilities
* **`field` object** - Field metadata and validation
* **`input` object** - User input collection methods
* **`output` object** - Rich output formatting options
* **`fetch` function** - HTTP requests to external APIs
* **`session` object** - Script execution context and state

#### Core Functionality

* **JavaScript runtime** - Full ES6+ support
* **Async/await support** - Modern asynchronous programming
* **Error handling** - Comprehensive error reporting
* **Type safety** - TypeScript definitions for all APIs

## Support and Resources

* **Documentation**: [Scripts API Reference](/docs/workflows/scripts/api-reference)
* **Examples**: [Script Examples](/docs/workflows/scripts/examples)
* **Community**: [NocoDB Forums](https://community.nocodb.com/)
* **Issues**: [GitHub Issues](https://github.com/nocodb/nocodb/issues)

For questions about specific API changes or migration help, please reach out to our community or support team.
