Skip to main content

Changelog

New features and additions to the CXTMS development platform.


2026-10-03​

AI Agents: Agent-Produced Files (CXTMS-328)​

Agents can now hand back a file instead of, or alongside, their text answer: PDF, Word (.docx), Excel (.xlsx) or CSV. The new file.create built-in tool writes one from Markdown, or from rows or a GraphQL query run under the same read-only, organization-scoped guards as the data.query built-in. A workflow tool the agent calls — a Document workflow's rendered PDF, a Utilities/Export file — has its file captured as a produced file automatically, with no YAML change needed either way.

A produced file becomes a session Attachment with origin Produced: it shows as a card on the agent's reply as soon as the internal Responses stream reports the new response.tms.file_produced event, carries "origin": "produced" on its transcript attachment block, and lists in the AI Assistant's Library as "Produced in …" alongside uploaded files. An Agent workflow run as a task gets its files back directly too, as a new fourth output, files: { attachmentId, fileName, contentType, size, url } each, with url presigned for 24 hours.

Downloads also changed for every attachment, not just produced files: getPresignedUri takes a new download argument, and download: true on a "file" URI serves Content-Disposition: attachment with the attachment's real file name, so a saved download is no longer named after its GUID-based storage key.

→ Workflow: Agent Type | Workflow: Agent Responses API | GraphQL: Agent Sessions | GraphQL: Attachments | AI Assistant

2026-09-27​

AI Assistant: Files in Chat and the Library (CXTMS-362)​

People can now attach files in the AI Assistant and ask the agent about them — a bill of lading, a rate sheet, a damage photo. The composer takes up to 5 files per message (25 MB each: PDF, PNG, JPG, TXT, CSV, JSON, MD) with the paperclip or by drag-and-drop, uploads each one immediately and explains on its chip when a file can't be sent. The agent reads PDFs and images directly and text files as text, on that turn and on later ones.

Every chat upload becomes an Attachment linked to the conversation's session, stored in a dated folder, and is as private as the chat itself. A new Library in the chat header lists the files of the current conversation or of every conversation the user may see, with image and document filters, previews and a link back to each conversation.

For developers: the Agent Responses API accepts input_file / input_image parts; GET .../ai/models reports supports_files per agent; the AI model config gains an optional supportsFiles flag; the transcript gains an attachment block; and the new agentSessionAttachments GraphQL query backs the Library. Agents don't opt in — no YAML change is needed.

→ Workflow: Agent Type | Workflow: Agent Responses API | GraphQL: Agent Sessions | AI Assistant

2026-09-24​

AI Agents: Agent Workflows, Sessions, Tool Approval, and Live Events (CXTMS-328)​

CXTMS now runs LLM agents as a workflow type. A new workflowType: Agent wraps a model with a system prompt, a set of other workflows exposed as tools, and a goal — the model decides what to call, then finishes by calling the built-in set_result tool. An Agent workflow runs as a task session when started from a trigger, a schedule, or another workflow's tools[]/agents[], and as an open-ended chat session when talked to over the new, OpenAI Responses-compatible Agent Responses API (POST /api/organizations/{organizationId}/ai/responses, and /public-api/v1/{orgSlug}/ai/responses for third-party clients) — the same conversation an OpenAI SDK or the AI SDK can point at directly, with streaming, resumable turns, and automatic history compression as a conversation grows.

A tools[] entry can be marked mode: approval to pause a side-effecting call for a person to approve or decline before it runs, instead of auto, which runs it immediately. A chat session pauses at AwaitingApproval with an mcp_approval_request item and notifies the person who started it; a task session has nobody to ask, so the call is refused and the agent carries on. New GraphQL surfaces cover session administration and live monitoring: agentSession / agentSessions queries (including lastResponseId and the session's ownerScope/ownerDivisionId), the setAgentSessionOwner mutation for sharing a session with a division or the whole organization, and an onAgentSessionEvent subscription that streams status changes, approval requests, completed tool calls, history compressions, and ownership changes live, without polling.

Breaking change: Notification.entityId changed from Int to String, so a notification (such as the new tool-approval notification, which carries entityType: "AgentSession" and a GUID entityId) can link to any entity, not just one with an integer id. A client that parses entityId as a number needs to switch to string handling.

→ Workflow: Agent Type | Workflow: Agent Responses API | GraphQL: Agent Sessions | Workflow Validation Errors

2026-09-16​

Organization Connections and Cross-Organization Transmissions (CXTMS-305, CXTMS-313)​

Two organizations on the same platform can now be linked with an organization connection (linkOrganizations / unlinkOrganizations, system administrators only) and exchange messages over it as transmissions. A Transmission/Create@1 (or createTransmission) addressed to a partner contact whose custom values carry transmission: { type: "connection", organizationConnectionId } is delivered through the transactional outbox: the platform validates the connection and writes a mirrored Inbound / Received row in the partner organization, where a workflow with an entity trigger on Transmission ([entity.direction] = 'Inbound' && [entity.messageType] = '...') processes it with entity.payload preloaded and entity.attachments presigned.

New on transmissions: contactId, optional channel / direction / orderIds, payload (JSON, text, bytes or stream, stored as payloadRef), attachments manifest, status tracking (Pending, Sent, RetryScheduled, Error with error codes), redeliverTransmission. Transmission and OrganizationConnection now fire entity workflow triggers.

→ Organization Connections and Transmissions | OrganizationConnection | Transmission Tasks

2026-09-08​

Browser/Run Workflow Task (CXTMS-299)​

New Browser/Run@1 task drives a real Chromium browser from a workflow, for carrier, customs and customer portals that have no API. An ordered actions list covers navigation (goto, waitForNavigation), interaction (click, fill, press, selectOption, check, uncheck, hover, waitFor), extraction (extractText, extractAttribute, extractTable, extractUrl, screenshot), files (uploadFile, download), and llm/act, which lets a model work the page toward an instruction through a closed tool set.

Locators use explicit prefixes (css=, xpath=, text=, label=, placeholder=, role=). Every navigation is checked against the step's allowedDomains. The browser session is shared by all Browser/Run steps of one execution, so a login step followed by a foreach signs in once. Ten new validation codes (BROWSER_001 to BROWSER_010) report malformed actions when the workflow is saved.

The browser runs on a server-configured provider: the self-hosted browser host image shipped with the backend, or any Chrome DevTools Protocol endpoint. llm/act needs an AI backend (AI:Provider) on the server.

→ Browser Tasks | Validation Errors


2026-04-29​

Equipment Entities​

New Equipment and EquipmentStatus domain entities with full change methods, navigation properties, and database indexing.

Equipment — tracks physical units (trailers, containers, chassis) per organization. Supports CustomValues JSONB for extensible attributes, unique OrganizationId + UnitNumber constraint, and GIN index for efficient custom-value filtering.

EquipmentStatus — named status labels (e.g., "Available", "In Use") with a StatusStage classification (Available, InUse, Maintenance, OutOfService) and a Priority integer for sort order.

→ Equipment | EquipmentStatus

The workflowExecutions GraphQL query no longer accepts workflowId as a dedicated argument. Workflow scoping now uses the standard Lucene filter parameter, consistent with all other list queries in the API.

Migration: replace workflowId: "guid" with filter: "workflowId:guid". Existing filter clauses can be combined: filter: "workflowId:guid AND executionStatus:Failed".

A new search parameter performs free-text matching across userId, executionId, and workflowId fields — useful for quick lookups with partial values.

→ Workflow Audit — Accessing Execution History

YAML Line Ending Normalization​

Workflow, app module, and app manifest YAML is now transparently normalized to Unix (LF) line endings on read and write. YAML authored on Windows (CRLF) no longer causes spurious "unpublished changes" markers or modified events when content is logically identical.

→ Workflows Overview


2026-03-25​

DataGrid: Per-Row TTL Highlight Accumulation​

Change tracking highlights now accumulate across refreshes instead of being replaced. Each highlighted row gets its own per-row TTL (Time-To-Live) measured in refresh cycles. New DataGrid options: highlightNew, highlightUpdated, highlightForRefreshes. The refresh action now accepts an options object to override grid-level highlight defaults per-call.

→ DataGrid — Change Tracking & Row Highlights

Refresh Action: Highlight Options​

The refresh action now supports an optional options parameter with highlightNew, highlightUpdated, and highlightForRefreshes to control per-call highlight behavior on target DataGrids.

→ Actions — refresh


2026-03-23​

Order Time Buckets GraphQL Query​

New orderTimeBuckets query for time-series aggregation of orders. Group orders into configurable intervals (5 min to 1 month), with optional financial summaries and drill-down into individual orders per bucket. Supports native fields (created, lastModified) and JSONB custom value dates.

→ Order Time Buckets API

DataGrid Inline Cell Editing​

Enable inline editing of individual cells directly in the DataGrid. Editable columns render their editor component in the cell with onEdit action pipelines for mutations and notifications. Works with entity field definitions and saved views.

→ DataGrid — Inline Cell Editing

Timeline Grid: Summary Component & All-Day Events​

  • summaryComponent — Custom component for the summary row, replacing the default total display
  • All-day events — Events without specific times render in a dedicated all-day row
  • startDateLocal variable available in event templates

→ Timeline Grid Component

Workflow dateDiff Function​

New dateDiff(start, end, unit) NCalc function calculates date differences in configurable units: years, months, days, hours, minutes, seconds.

→ Workflow Expressions — dateDiff

Template formatDate Function​

New formatDate template function for formatting dates inside {{ }} expressions: {{ formatDate order.created 'yyyy-MM-dd' }}.

→ Workflow Variables — Template Functions

HTTP Request Circuit Breaker​

Per-host circuit breaker for workflow HTTP requests. Automatically opens after 5 consecutive failures, honors 429 Retry-After headers, and protects against cascading failures.

→ Utilities Tasks — Circuit Breaker

JSONB Range Filters & Filter Syntax Errors​

  • JSONB customValues fields now support type-safe numeric and date range filtering
  • Invalid Lucene filter syntax returns FILTER_SYNTAX_ERROR instead of a generic 500

→ Filter Syntax — JSONB Range Filters


2026-03-18​

Business Date Math in Filters​

Filter expressions now support business-aware date math with two new time units:

  • BHOUR / BHOURS — Business hours that skip non-working hours and holidays
  • BDAY / BDAYS — Business days that skip weekends and holidays

These units use the organization's configured business calendar (weekly schedule + holiday blocks) to calculate dates. Examples: NOW+4BHOURS, NOW+2BDAYS, dueDate: [NOW TO NOW+3BDAYS].

Requires a business calendar (type business) to be configured for the organization.

→ Filter Syntax — Business Date Math


2025-02-18​

New NCalc Functions​

Added 7 new expression functions for use in workflow conditions and mappings:

  • parseDate(string) - Parse date strings to DateTime
  • substring(string, start, length) - Extract substring
  • fromJson(string) - Parse JSON string to object
  • elementAt(list, index) - Get element from list by index
  • addHours(datetime, hours) - Add/subtract hours from datetime
  • addDays(datetime, days) - Add/subtract days from datetime
  • concat(...) - Concatenate strings or collections

→ Workflow Expressions

New Workflow Task Handlers​

  • Order/Copy@1 - Duplicate orders with entities, charges, commodities, and custom values
  • Order/Split@1 - Split orders by quantity or weight ratio
  • Flow/Transition@1 - Programmatically trigger flow state transitions
  • Entity/Change@1 - Modify entity custom values in Before triggers
  • Commodity/Unpack@1 - Unpack container commodities
  • AccountingTransaction/ApplyCredit@1 - Apply credit memos to invoices
  • TrackingEvent/Import@1 - Bulk import tracking events
  • Utilities/MoveFile@1 - Move/rename files in storage
  • Note tasks - Create, Update, Delete, Import, Export, RenameThread
  • FileTransfer tasks - Connect, Disconnect, Download, Upload, ListFiles, DeleteFile, MoveFile
  • StructuredFile/Parse@1, EDI/Parse@1 - Parse structured files and EDI documents

Flow Workflow Enhancements​

  • Workflow Configuration Profiles - Profile support for workflow execution
  • Circular Workflow Call Detection - Prevents infinite loops in workflow-to-workflow calls
  • Workflow Execution Logs - Gzip-compressed logs stored in S3 for debugging
  • Before Trigger Entity Changes Tracking - Track entity modifications in Before triggers
  • Async Before triggers forbidden - Before triggers must use Sync execution mode

New Entities​

  • CommodityEvent - Bridge table linking tracking events to individual commodities
  • Note / NoteThread - Threaded note system for any entity
  • LinkedOrder - Order-to-order relationships
  • PersonalAccessToken - PAT-based authentication
  • ApiCredential - API credential management
  • WorkflowExecutionLog - Workflow execution history
  • Calendar entities - CalendarEntity, CalendarEvent, CalendarBusinessHour
  • Tag system - Tag, CommodityTag, OrderTag, InventoryItemTag

ObjectPath Parser Enhancements​

  • Recursive flatten [**] - Flatten nested collections at all depths
  • Depth-index [-N] - Filter by nesting depth (e.g., leaf nodes only)

Frontend: DataGrid Enhancements​

  • Collection view type with dedicated renderer
  • List view renderer with context menu
  • Right-click context menu support (dotsMenu)
  • Page size persistence in saved views
  • Permission-based column filtering
  • Entry name for pagination display
  • Multi-value text filter component

Frontend: New Components​

  • viewer-component - PDF and image viewer with download
  • listitem-component - ListItem with menu support
  • select-async - Async pagination on scroll
  • multi-value-text-filter - Multi-value filtering input

Frontend: New Actions​

  • downloadFiles - Download files from the server
  • clipboard - Copy text to clipboard
  • submitFormToExternalUrl - Submit form data to external URLs

Frontend: Architecture Changes​

  • Migrated GraphQL from RTK Query to TanStack Query
  • Sentry integration with white-label configuration
  • OAuth2 authorize page for third-party integrations
  • Unsaved changes guard (useDirtyGuard hook)

2025-12-12​

Markup Component​

Added new component for rendering formatted text using Markdown syntax across web and mobile platforms.

What was added:

  • markup component for rendering large blocks of formatted text
  • Markdown syntax support: bold, italic, lists, links, headings, code, blockquotes
  • Cross-platform compatibility (React and React Native)
  • Localized markup content support
  • Dynamic content with variable interpolation
  • content prop for markup text input
  • wrapper option to customize container element (default: "View")
  • Platform-specific rendering: HTML for web, native components for React Native

Files: markup-component.md (new)

→ Markup Component


2025-12-05​

DataGrid Filter Props​

Added filtering configuration options for DataGrid columns and entity fields.

What was added:

  • filter prop to enable per-column filtering
  • filterProperty to use alternate property names for filtering
  • fieldName precedence rules for filter component configuration
  • Aliasing behavior documentation for consistent filtering across UI

Files: datagrid-component.md, entities.md, workflow-variables.md

→ DataGrid Component


2025-12-03​

Workflow Recursive Flattening​

Added recursive flattening selectors for workflow variables to handle nested data structures.

What was added:

  • [**] selector - Collect all items from self-referencing/nested structures recursively
  • [-N] selector - Pick items by depth (leaf nodes, parents, grandparents)
  • Variable-depth branch examples for nested commodity extraction

Files: workflow-variables.md

→ Workflow Variables


2025-12-02​

Form State Management​

Added form dirty state management capabilities.

What was added:

  • resetDirtyState action - Programmatically clear form's dirty flag after custom save operations
  • dirtyGuard prop on Form component - Prevent navigation with unsaved changes
  • Localized dialog fields (title, message, confirmText, cancelText)
  • Confirm/cancel action handlers for discard-changes flows

Files: actions.md, form-component.md

→ Actions Reference | Form Component

API Credentials (OAuth2)​

Added complete OAuth2 client credentials API for programmatic access.

What was added:

  • apiCredential and apiCredentialWithSecret GraphQL types
  • Queries: apiCredential, apiCredentials (with pagination)
  • Mutations: createApiCredential, updateApiCredential, regenerateApiCredentialSecret, deleteApiCredential
  • IP restriction formats: IPv4, IPv6, CIDR notation
  • OAuth2 token endpoint usage (/connect/token)
  • JavaScript and Python code examples
  • Security best practices and error response documentation

Files: api-credentials.md (new), _category_.json

→ API Credentials Documentation


2025-11-30​

Attachments GraphQL API​

Added comprehensive file attachment management API.

What was added:

  • attachment GraphQL type with metadata fields
  • Queries: attachment, attachments (paginated)
  • Mutations: uploadAttachment, deleteAttachment
  • Field component options:
    • multiple - Allow multiple file uploads
    • capture - Enable camera capture on mobile
    • accept - File type restrictions
    • autoClearDropZone - Clear drop zone after upload
  • allowOrderBy and orderByProperty for DataGrid/entity sorting

Files: attachments.md (new), overview.md, field-component.md, datagrid-component.md, viewer-component.md, entities.md

→ Attachments API | Field Component


2025-11-27​

List & ListItem Components​

Rewrote list component documentation with comprehensive coverage.

What was added:

  • list component with props: data, itemTemplate, emptyTemplate, selectionMode
  • listItem child component with click handlers
  • Selection modes: none, single, multiple
  • Built-in menu support via menu prop
  • Query support for dynamic data loading
  • Comparison guide: List vs Collection components
  • Styling options and CSS class customization

Files: list-component.md, collection-component.md, overview.md

→ List Component

DataGrid Component Revamp​

Major documentation overhaul for DataGrid.

What was added:

  • View types documentation: table, card, list
  • Column configuration: width, minWidth, alignment, sortable, visible
  • Editing modes: inline, dialog, row-level
  • Selection: single, multiple, checkbox column
  • Row styling with conditions
  • Context menu and row actions
  • Export functionality

Files: datagrid-component.md

→ DataGrid Component


2025-11-19​

EmailTemplate Workflow Type​

Added new workflow type for email content generation.

What was added:

  • workflowType: "EmailTemplate" configuration
  • Output fields: subject, body, htmlBody, attachments
  • Handlebars template engine integration
  • Variable substitution from workflow context
  • Best practices for reusable email templates

Files: workflow-email-template-type.md (new)

→ EmailTemplate Workflow


2025-10-31​

Viewer Component​

Added dedicated component for inline document display.

What was added:

  • viewer component replacing deprecated openDocumentPreview
  • Props: src, type, downloadable, permissions, height, width
  • PDF rendering with zoom and navigation
  • Image preview with pan/zoom
  • Permission-based access control
  • Responsive sizing options

Files: viewer-component.md (new), overview.md, actions.md

→ Viewer Component

openDocumentPreview Action​

Added action for modal document preview.

What was added:

  • openDocumentPreview action
  • Attributes: url, fileName, fileExtension
  • onClose callback handler
  • Auto-detection of file type from extension
  • Conditional logic examples for document types

Files: actions.md

→ Actions Reference

submitFormToExternalUrl Action​

Added action for external HTTP form submission.

What was added:

  • submitFormToExternalUrl action
  • Attributes: url, method, headers, formData
  • excludeFields - Omit specific fields from submission
  • explicitFields - Include only specified fields
  • Lifecycle hooks: onSuccess, onError, onComplete
  • Dynamic URL support with template expressions

Files: actions.md

→ Actions Reference

formData Pattern​

Updated form submission to use new formData pattern.

What was changed:

  • Replaced legacy fieldMapping with formData
  • Template expression support: {{ formData.fieldName }}
  • Override and augment form values in submission
  • Consistent pattern across all form actions

Files: actions.md

→ Actions Reference


2025-09-22​

Dashboard & Widget Components​

Added dashboard system for data visualization.

What was added:

  • dashboard component with props: widgets, columns, editMode, onLayoutChange
  • dashboardWidget component with props: title, type, data, config
  • Widget types: chart, metric, table, custom
  • Chart subtypes: bar, line, pie, area, donut
  • Metric cards with value, label, trend, trendDirection
  • Responsive breakpoints configuration
  • Edit mode for drag-and-drop repositioning
  • layout component for widget containers

Files: dashboard-component.md (new), dashboard-widget-component.md (new), layout-component.md (new), overview.md

→ Dashboard Component | Dashboard Widget

Timeline Components​

Added timeline system for chronological display.

What was added:

  • timeline component with props: data, itemTemplate, dateField, groupBy
  • timelineGrid component for tabular scheduling
  • Props: resources, events, startDate, endDate, viewType
  • View types: day, week, month
  • Event handlers: onEventClick, onEventDrop, onEventResize
  • Resource grouping and filtering

Files: timeline-component.md (new), timeline-grid-component.md (new)

→ Timeline Component | Timeline Grid


2025-09-04​

Barcode Scanner​

Added barcode scanning capabilities for mobile devices.

What was added:

  • openBarcodeScanner action with attributes:
    • mode: single or multi scan
    • onScan - Handler for each scan result
    • onComplete - Handler when scanning finishes
    • onClose - Handler when scanner closes
  • barcodeScanner component (standalone)
  • Supported formats: Code128, Code39, EAN-13, EAN-8, UPC-A, UPC-E, QR Code, DataMatrix
  • Camera selection: front, back, auto
  • Continuous scanning with batch results

Files: barcode-scanner-component.md (new), actions.md, field-component.md, notes-component.md

→ Barcode Scanner Component | Actions Reference


2025-08-06​

Calendar Component​

Added full-featured calendar for scheduling.

What was added:

  • calendar component with props:
    • events - Array of event objects
    • view - day, week, month, agenda
    • selectable - Enable date/time selection
    • editable - Enable drag-and-drop editing
  • Event object fields: id, title, start, end, allDay, color, resourceId
  • Event handlers: onEventClick, onEventDrop, onDateSelect, onViewChange
  • Recurring events with rrule support
  • Resource scheduling with resources prop
  • Localization and timezone configuration
  • Mobile responsiveness best practices

Files: calendar-component.md (new)

→ Calendar Component


2025-07-30​

FTP/SFTP/FTPS Tasks​

Unified file transfer task documentation.

What was added:

  • Consolidated FileTransfer/* task namespace
  • Protocol support: FTP, FTPS (FTP over TLS), SFTP (SSH)
  • Tasks: Connect, Upload, Download, List, Delete, Rename, CreateDirectory
  • Connection options: host, port, username, password, privateKey
  • SFTP-specific: Host key verification, key-based authentication
  • FTPS-specific: Implicit/explicit TLS, certificate validation
  • Transfer modes: binary, ascii, auto
  • Passive/active mode configuration
  • Error handling and retry patterns

Files: ftp-tasks.md

→ FTP Tasks Documentation


2025-07-29​

StructuredFile/Parse Task​

Added fixed-width flat file parsing for legacy formats.

What was added:

  • StructuredFile/Parse task for fixed-width files
  • Record definitions with position-based field extraction
  • Field types: string, number, date, boolean
  • Computed fields with expressions
  • Conditional fields based on record type
  • Hierarchical output structure for parent/child records
  • Error handling: strict, lenient, skip
  • Support for warehouse and EDI file formats

Files: structuredFile-tasks.md (new), edi-tasks.md

→ StructuredFile Tasks

Relative Date Filtering​

Added dynamic date filtering with Lucene/Solr syntax.

What was added:

  • NOW keyword for current timestamp
  • Time units: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
  • Operations: + (add), - (subtract), / (round)
  • Examples: NOW-7DAY, NOW/MONTH, NOW-1YEAR/YEAR
  • Range filters: [NOW-7DAY TO NOW], [* TO NOW-1MONTH]
  • Timezone considerations
  • Case sensitivity rules

Files: filter.md (new)

→ Filter Documentation


2025-07-28​

guid() Function​

Added unique identifier generation in App Modules.

What was added:

  • guid() function in variable expressions
  • Returns UUID v4 format string

Usage:

variables:
- name: newId
value: "{{ guid() }}"

Files: variables.md

→ Variables Reference


2025-07-21​

Datetime Timezone Options​

Enhanced datetime field configuration.

What was added:

  • options.timezone - Display in specific timezone
  • options.storeAsUtc - Store as UTC, display locally
  • options.convertToTimezone - Convert on display
  • Non-timezone datetime for location-independent times
  • Fixed timezone display for departure/arrival times
  • Quick reference table for timezone configurations
  • Use cases: logistics schedules, deadlines, operating hours

What was changed:

  • Default: No timezone conversion, no UTC storage
  • Migrated direct props to unified options object
  • Removed deprecated datetime-local type

Files: field-component.md

→ Field Component


2025-07-17​

Redirect Component​

Added automatic navigation component.

What was added:

  • redirect component with props:
    • path - Target URL path
    • params - Query parameters object
    • delay - Milliseconds before redirect
    • condition - Conditional redirect expression
  • Organization path syntax: /org/path
  • System path syntax: /system/path
  • Query parameter preservation

Files: redirect-component.md (new)

→ Redirect Component

DataGrid Styling & Variable Functions​

Enhanced DataGrid styling and added comparison functions.

What was added to DataGrid:

  • Row styling: rowStyle, rowClass with conditions
  • Column styling: cellStyle, cellClass
  • Style options: backgroundColor, color, fontWeight, border
  • Predefined classes: success, warning, danger, info
  • Replaced eval with moreThan for performance

What was added to Variables:

  • lessThan(a, b) - Numeric comparison
  • isEquals(a, b) - Equality check
  • dateDiff(date1, date2, unit) - Date difference
  • daysBetween(date1, date2) - Days between dates
  • daysUntil(date) - Days until future date
  • daysAgo(date) - Days since past date
  • isDateBefore(date1, date2) - Date comparison
  • isDateAfter(date1, date2) - Date comparison

Files: datagrid-component.md, variables.md

→ DataGrid Component | Variables


2025-06-30​

Slot Component​

Added dynamic content injection component.

What was added:

  • slot component with props:
    • name - Named slot identifier
    • default - Default content if slot empty
  • Usage for component extensions in dropdowns
  • Priority-based slot ordering
  • Parent/child slot communication

Files: slot-component.md (new), components.md

→ Slot Component


2025-04-24​

EDI Tasks​

Added Electronic Data Interchange workflow tasks.

What was added:

  • EDI/Parse - Parse EDI documents to JSON
  • EDI/Generate - Generate EDI from data
  • EDI/Validate - Validate EDI syntax and semantics
  • EDI/Transform - Convert between EDI versions
  • EDI/ExtractData - Extract specific segments/elements
  • EDI/Acknowledge - Generate 997/999 acknowledgments
  • EDI/BatchProcess - Process multiple EDI files
  • Transaction set support: 850, 855, 856, 810, 214, 990
  • Trading partner configuration
  • Delimiter configuration (segment, element, sub-element)

Files: edi-tasks.md (new)

→ EDI Tasks

FTP/SFTP Tasks (Initial)​

Added initial file transfer task documentation.

What was added:

  • FTP/Connect, FTP/Upload, FTP/Download
  • SFTP/Connect, SFTP/Upload, SFTP/Download
  • Basic connection and transfer examples

Files: ftp-tasks.md (new)

→ FTP Tasks


Quick Reference​

DateFeatureWhat Was AddedLink
2026-04-29Workflow Executions queryFilter-based workflowId scoping, search param→
2026-04-29YAML line endingsTransparent CRLF→LF normalization→
2025-12-12Markup componentMarkdown rendering for web & mobile→
2025-12-05DataGrid filterfilter, filterProperty props→
2025-12-03Recursive flattening[**], [-N] selectors→
2025-12-02API CredentialsOAuth2 client credentials API→
2025-12-02Form stateresetDirtyState, dirtyGuard→
2025-11-30Attachments APIGraphQL attachment CRUD→
2025-11-27List componentlist, listItem, selection modes→
2025-11-27DataGrid revampViews, editing, styling→
2025-11-19EmailTemplateEmail content workflow type→
2025-10-31ViewerInline PDF/image display→
2025-10-31Document previewopenDocumentPreview action→
2025-10-31External submitsubmitFormToExternalUrl action→
2025-09-22DashboardWidgets, charts, metrics→
2025-09-22TimelineEvents, scheduling grid→
2025-09-04Barcode ScanneropenBarcodeScanner, multi-scan→
2025-08-06CalendarViews, events, drag-drop→
2025-07-30File TransferFTP/FTPS/SFTP unified tasks→
2025-07-29StructuredFileFixed-width file parsing→
2025-07-29Date filteringNOW, date math, ranges→
2025-07-28guid()UUID generation function→
2025-07-21Datetime timezonestoreAsUtc, convertToTimezone→
2025-07-17RedirectNavigation component→
2025-07-17Variable functionsdateDiff, daysBetween, etc.→
2025-06-30SlotDynamic content injection→
2025-04-24EDI TasksParse, generate, validate EDI→