Introduction to Scripting

While Tabidoo is a low-code/no-code platform at heart, it offers powerful scripting capabilities for users who need advanced logic, dynamic interactions, or external system integrations.

Tabidoo uses JavaScript/Typescript as its scripting language, enabling customization of forms, automation of workflows, and data operations that go beyond built-in features.

Why Use Scripting?

Use scripting when:

  • You need to pre-fill or compute values dynamically.
  • Fields must be shown or hidden based on user inputs.
  • Advanced validations are required.
  • Data must be synchronized across related tables.
  • Records need to be created or updated programmatically.
  • You want to send data to external APIs.

Where You Can Use Scripts in Tabidoo

Tabidoo supports scripting in various contexts:

  • Form/Record Events: Attach scripts to the lifecycle of a form/record:
    • On Model Load – Triggered when the form is opened.
    • On Model Change – Runs when a field's value changes.
    • Before Model Save – Executes before saving the form.
  • Form Button: Add buttons to form that execute custom logic.
  • Table Button: Add buttons above the table that execute custom logic (part of Workflow Automation triggers).
  • Workflow Automation: Use scripting in automation actions.
  • Scripting Extensions (Shared Scripts): Define reusable functions and logic shared across scripts.

Key Features

  • JavaScript-based: Familiar to web developers, powerful for dynamic behavior.
  • IntelliSense support: Code suggestions via Ctrl + Space.
  • Browser-compatible: Runs in the user’s browser (or on the server for encrypted scripts).
  • Flexible integration: Access other tables, call APIs, or use shared functions.

Getting Started

To begin using scripting (Form/Record Events) in Tabidoo:

  • Open the table context menu where you want to add custom behavior.
  • Select Scripting.
  • Choose the appropriate event (e.g., On Model Load).
  • Start writing your JavaScript/Typescript code:

 

if (doo.model.status.value === 'Closed') {
  doo.model.yourFieldName.isVisible = false;
}

Example: Hide a field "yourFieldName" based on another field's value (status)

To begin using scripting

Next Steps

Explore related articles for deeper knowledge:

Scripting unlocks the full potential of Tabidoo. Whether you're customizing forms or integrating with third-party systems, it offers the flexibility needed to meet complex requirements.