Skip to main content

Changelog

Updates, changes, and improvements at Retool.

When publishing your workflows, you can now choose to publish any changes to child workflows. This update streamlines workflow publishing by eliminating the need to manage releases separately. If you make a change to a referenced workflow, these changes are automatically detected when publishing the parent.

Retool recently made a series of improvements to the Run panel and other mechanisms that are commonly used to debug workflows. These changes include:

  • Added filtering historical runs based on timestamp and workflow run ID in the Run panel.
  • Added searching logs by block name in the Run panel.
  • Added filtering blocks by type in the Run panel.
  • Moved the Use as Example JSON button to the top of the Data tab.
  • Added the ability to download JSON data from the JSON tab of block outpus or from the JSON tab of the Run panel.
  • Added workflowRunContext to the Input tab of block outputs.
  • Added endedAtEpochMs to workflowRunContext in the Input tab of block outputs.

To take advantage of these improvements, use the following best practices:

  • Be sure to reference the workflow Run ID and the time that the workflow concluded in the body of your global error handler with workflowContext.currentRun.workflowRunId and workflowContext.lastRun.endedAtEpochMs. You can also emit both properties by default by connecting your Retool organization to Datadoog or Sentry. Having the workflowRunId and timestamp handy at debug time will allow you to quickly filter workflow runs to the errored workflow run.
  • Name all of your blocks descriptively to make them easy to search for in the run panel.
  • Reproduce workflow errors manually by using copied block JSON from the run panel as an input to downstream blocks.

Retool no longer requires NsJail to use custom JavaScript libraries and custom Python libraries in workflows on Self-hosted Retool. If your team is unable to grant privileged container access, this change enables you to still use custom libraries.

While no longer required, Retool still strongly recommends using NsJail with privileged container access, as it provides sandboxing and remains the most secure option.

You can now set Test Headers and Test Path Parameters in the Trigger block of your workflow. This enables you to test your webhook trigger without needing to manually call the endpoint.

You can reference the startTrigger.headers and startTrigger.pathParams properties in the rest of your workflow.

Test headers and path parameters are used only for manual runs. For actual runs triggered via webhook, real headers and parameters are used instead.

This change is live on Retool Cloud and it will be included in upcoming edge and stable releases of Self-hosted Retool.

Searching is now supported in the Console and State tabs of the Debug Tools.

Users can search logs and states using any free text, negation, regex, or exact phrases:

  • Free text: Matches any string.
  • Negation: Prefix with - to exclude a match. For example: -error
  • Regex: Use slashes for regex. For example: /^foo/
  • Exact phrases: Wrap multi-word strings in quotes. For example: "query failed"

You can combine search terms using spaces (e.g. "query failed" -/error/ success).

The Offline Assets app setting and PDF Viewer component are now generally available on Retool Mobile. You can use the PDF Viewer to upload and view files from URL, Retool Storage, Offline Asset, or JavaScript.

Using the Offline Asset PDF source allows you to store PDF files that can be retrieved and viewed offline, or in situations where internet connectivity is limited.

You can now set an Alias to create a custom URL path for your webhook trigger. The resulting webhook URL is formatted as https://{domain}/url/{alias}. For example: https://example.retool.com/url/test-webhook.

You can also configure your custom URL path to include dynamic path parameters. This allows you to capture variable data directly from the request path and pass it to the workflow as input.

For example, you could set Alias to /orders/:id/status. A user would send a request to https://example.retool.com/url/my-custom-alias/orders/12345/status. The path parameter :id is dynamically resolved to 12345, and this value is then passed to the workflow as part of the execution input.

Retool made internal improvements that streamline the way we save and store your app saves, resulting in quicker app load times for users.

These improvements are automatically applied to customers on Retool Cloud. If your organization is self-hosted, run the following shell command in your backend container to remove old entries for apps that have been deleted and compact data from app edits older than a month:

./retool_backend --run-pagesave-compaction

Run this command as often as necssary to clean up your database.

You can also pass in an optional --concurrency parameter to specify the number of concurrent connections to the database in order to speed up the process. For example, --concurrency 4 opens 4 connections. The default value is 1.

You can now select multiple components and edit them at the same time using the Inspector. Select multiple components by clicking and dragging a selection box around them, or by using / + click.

When bulk editing components of the same type, such as two Buttons, you can edit all properties of the component. When bulk editing different types of components, such as a Button and a Text Input, you can edit the properties shared by the two components.

Properties that differ between components are identified as Mixed in the Inspector.

An improved version of the Scanner component for Retool Mobile is currently in private beta on Retool Cloud and on Self-hosted Retool 3.173.0 or later.

This includes:

  • The ability to restrict or select from multiple barcode symbologies to scan.
  • The ability to select between Manual or Automatic scan modes.
  • While scanning from the native app, there is a visual indication of what is being scanned (a bounding box) when hovering over a barcode, as well as a checkmark when a scan is successful.
  • Scanner V2 does not have the autoClose property.