These release notes summarize the new features, latest updates, and bug fixes from this month in Neostella platform.
For detailed information of product-specific changes, please visit our Help Center articles.
september 23rd to september 29th
adoption
| Migrate Deadline Chains Imports Deadline Chain data from Filevine into Neostella as Custom Objects under Projects and Leads, populated with current field values using the existing field mapping capability. Automatic recalculation between fields is out of scope. | |
| Implement Calendar Events Migration Adds Calendar Events as a new entity in the migration pipeline so firms' scheduling data, including attendees and dates, is preserved and accessible in Neostella after migration, following a documented mapping approach. | |
| Rename the step to create the migration bucket This update includes internal improvements that do not impact the user experience. | |
| Split Manifest by Maximum Document Limit This update includes internal improvements that do not impact the user experience. | |
| Mapping - Value Alignment new row on top of the list This update includes internal improvements that do not impact the user experience. | |
| Support Mapping for Global Objects Migration specialists can now map fields from Contacts and Projects directly into Global Objects, ensuring shared data lands in the correct cross-entity structure instead of being forced into an entity-specific target. This eliminates the need for workarounds when data belongs to a shared object that is referenced across multiple entities. | |
| Support Multi-Field Conditional Value Alignment for Single-Value Object Type Value Alignment now supports combining conditions across multiple source fields using AND or OR logic to determine a single target value such as Object Type, Stage, or Is Archived. | |
| Support Multiple Source Fields Within a Single Value Alignment for Object Tags Migration specialists can now register values from more than one source field within a single Value Alignment configuration for Object Tags, eliminating the need to create a separate operator per source field. | |
| Mapping List into Numbered Accordion This update includes internal improvements that do not impact the user experience. | |
| Task Type Field Options Not Displaying in Value Map on Mapping Canvas Minor bug fixes and internal improvements. |
automations
| Duplicate automation Users can duplicate an automation in the same tenant. |
communications
| Configure tenant custom domain We'll configure your firm's own domain for your account, so it's ready to use from day one. You'll be able to see which domain your emails are sending from right in Control Center — no separate setup required on your end. | |
| Improve and unify the empty message Standardized the empty-state messaging across Calls, Emails, Faxes, and SMS, so users always see a clear, consistent explanation when there's nothing to display yet instead of a blank screen. | |
| Tenant email using configured domain (In & Out) All emails sent from your firm — and everything that comes into your general firm inbox — will show your own domain, not a shared Neostella address. | |
| Embed Zoom contact center user experience improvements The panel now stays docked to the bottom-right corner as users navigate the app or open new tabs, and can be collapsed or expanded without ending the call. | |
| Provider Set-up (OAuth) Firm admins can now connect their RingCentral account via OAuth, mapping RingCentral extensions to individual users so calls attribute to the right person. | |
| Make, receive, and view Calls Allows users to make, receive and view phone call history directly from the platform using RingCentral. | |
| View call artifacts inside the Call details (Zoom or RingCentral) Users can now view and play a call's related files — transcript, recording, or voicemail — directly within the call details view. | |
| Manual call tracking ability, just to add a Call entry via UI Users can now manually log calls that happened outside the app, capturing direction, outcome, participants, and timing. |
core
| BREAKING CHANGE System object grid views ignore object builder display settings | |
| Update default wording – "Filter Sections" to "Filter Menu" The label of the sidebar filter in the contact detail view changes to "Filter Menu", which is more intuitive and consistent with the navigation. Tenants that have customized this label keep their own wording. | |
| Apply permissions on Account / Webhooks Admins now have granular control over who can manage webhook subscriptions in Control Center, with dedicated View, Create, Edit, and Delete permissions for the Webhooks section. | |
| Project creation button and permissions discrepancy The buttons for creating projects, people, organizations and leads are now only visible to users who have permission to create them, instead of showing the button and only rejecting the request afterward. | |
| Select content for a package Release Center users can select the workflows, automations, objects and forms they want to move and bundle them into a single named package that can later be moved into a sandbox. | |
| Reuse Partner Hub's package detail view for package review The package review screen reuses the package detail view that Partner Hub already has, so Release Center users can see a package's full contents and its version history in one familiar place. | |
| Independent scroll on the package configuration screen Each column on the package configuration screen now scrolls on its own, instead of the whole page scrolling, so users can review a long list of content without losing their place elsewhere on the screen. | |
| Import / Apply Package Users with access to the Publish space can review an incoming package and apply it to their sandbox (or the main tenant), so configuration built elsewhere shows up in their environment. | |
| Sandbox Management: UX/UI and BE enhancements feedback A set of small usability and clarity improvements to Sandbox Management, based on feedback after its first release — clearer labels, full user names and emails, a refresh option, a "Created by" column, easier deletion, and a subdomain preview. | |
| Default Stage value on Lead/Project creation New Leads now start with a default Stage instead of showing "N/A" until someone sets it manually, matching what already happens for Projects. | |
| Case banner titles use incorrect capitalization for acronyms Case banner titles now show field names with the correct capitalization, for example "Lead POA" and "Last 4 of SSN," using the field's configured label. |
customization
| Button Execution Log Action buttons in forms and views give users no visibility into whether an action was previously executed or who triggered it. This improvement surfaces the last execution of each action button directly below it, showing who activated it and when. | |
| Create a new way to Get objects endpoint via POST The current Get objects endpoint uses a GET method, which limits the amount of filtering criteria that can be passed due to URL length constraints. Changing to a POST method with a structured payload removes those constraints and enables more efficient, flexible querying. | |
| PROD | Objects | Modal to select field still visible after leave the Form builder Fix on lookup field panel, to avoid overwriting on the platform. |
documents
| Add Tags to Templates and Filter grid by them Document templates can be tagged and users will be able to filter by them. |
explore
| Advanced Search & Reporting – Add Option to Include Archived Records Archived records are currently excluded automatically from Advanced Search and Reporting, with no option for users to include them. This adds an option in both Advanced Search and Report creation to include them when needed, while keeping them excluded by default. | |
| Add Clickable Record Links to Report Results Relevant record fields in Reports are now clickable links instead of static values, letting users move directly from reporting and analysis into reviewing or working the record identified by the report. | |
| Support Billable Amount Reporting for Time Entries Users can now report on billed amounts from Time Entries, allowing analysis of how much has been billed over different time periods. | |
| Support Tasks Completed Reporting by User Group Enables reporting on the number of completed tasks by user group, allowing measurement of task completion across different teams or groups. | |
| Refactor Reporting into a Unified Report-Centric Experience Organizes reports, executions, and schedules around the report/template, providing clearer context, reducing navigation, and making it easier to understand a report's latest execution, execution history, and scheduling configuration. | |
| Support Query Payload for Global Table Components - Light Reporting endpoint Enables Global Views to display dynamic, report-like tables by leveraging Explore's existing query capabilities. |
finance
| Configure Billable Fields in the Billing Section Once billing is enabled on a custom object, a dedicated Billing section appears in the Display tab where Case Support Specialists can select which fields from the object will be available for invoice line items. | |
| Enable Billing on a Custom Object Users can enable billing on any custom object directly from the object settings in Control Center. Once enabled, the object becomes available to be added as a line item on invoices, allowing firms to bill clients for charge types beyond fixed charges and time entries. | |
| Payments Table (Payments Relation View) Manually registered payments appear in the same Payments table as automatic payments, giving finance users a single consolidated view of all payments received across invoices regardless of how they were recorded. | |
| Payment Status: Manual Finance users can manually record payments received outside of an integrated payment provider — such as checks, wire transfers, or cash — directly against a sent invoice, with the invoice payment status updating automatically. |
workflows
| Duplicate workflow templates from the templates list view Anyone building workflow templates will be able to copy one or several existing templates in a single action, and get editable drafts to work from instead of rebuilding a process from scratch. | |
| Execution Title Header, From Attribute and Refresh Shows the record an execution belongs to directly in the execution header, as a link back to that record, and adds a refresh control that pulls current execution data without reloading the application. |
september 16th to september 22nd
adoption
| Display Clean and User Friendly Error Messages: Users now see clear and friendly error messages when something goes wrong, without any confusing technical details or sensitive information being exposed. This makes it easier to understand what happened and what to do next, improving trust and reducing the need to contact support for clarification. | |
| TASK Name: User want the TASK be named after the body: Imported tasks will be named using the first 99 characters of their body text instead of a generic ID, falling back to the old naming only when the body is empty. | |
| Add chips to statuses in execution grid: This update includes internal improvements that do not impact the user experience. | |
| Tenant (Tejo) Migration Bucket, requires policy for Import Files Sync endpoint user to write: The tenant migration bucket now includes the necessary policy to allow the Import API Sync user to write manifest, data contract, and import files directly. This enables the sync process to operate correctly without manual credential workarounds or permission errors during import setup. | |
| Display Reconcile Progress in Execution Detail Panel (Replacing Cleaning Stage Tracking): The Execution Detail panel now shows the Reconcile step as a tracked stage after Import completes, giving users full visibility into the final phase of their migration execution. | |
| Deprecate Cleaning Process V1 and Progress tracking: The V1 cleaning process has been fully deprecated and removed from the execution pipeline, UI, and progress tracker, reducing complexity and eliminating an outdated step that is no longer needed. | |
| Add "Calculate" Operator to Support Math Operations Across Numeric Fields: Migration specialists can now perform math operations such as addition, subtraction, multiplication, and division directly within the mapping canvas using the new Calculate operator, combining source fields and static values as needed. | |
| Add a link from the Execution Details panel to its related Mapping: The mapping name in the Execution Details panel is now a clickable link that takes users directly to the mapping configuration, eliminating the need to manually copy the name and search for it in the Mapping tab. | |
| False invalid phone and email errors on Person edit: Minor bug fixes and internal improvements. | |
| Staging | Import | Unsaved Changes Prompt Displayed When Exiting a Mapping Without Making Any Changes: This update includes internal improvements that do not impact the user experience. |
communications
| Allow to create a contact or add to existing one from Unknown: Users can now create a new contact or link an existing one directly from an unknown fax, without leaving the Fax view. Once associated, the fax updates instantly and moves out of the unknown list. | |
| View only Unknown: Users can now filter faxes to show only those without a known contact associated, making it easier to spot and follow up on unidentified faxes without digging through the full list. |
core
| Date formatting: Date fields are now consistently formatted across the platform, regardless of their field name. The backend marks each date field with a type indicator, allowing the frontend to format any date value correctly — including custom or renamed fields that previously displayed as raw strings. | |
| Restrict Limited Users' project/lead visibility to Access-associated records only: Limited Users will only see the projects and leads they've explicitly been given access to; anything outside that scope stays hidden from their view, matching how Guest User access already works. | |
| Wire Recycle Bin FE actions to updated Restore, Purge, and List endpoints: Users who restore or permanently delete items from the Recycle Bin will see that action correctly reflected across all related sub-items automatically, and the Recycle Bin will load deleted records more efficiently using pagination. | |
| Revoke Guest User access: Admins can now manually revoke a Guest User's access to a project, immediately preventing them from viewing the project and its documents. | |
| Don't allow limited users to be linked to "Control Center" permission sets: Prevents Limited Users from ever being assigned Control Center or Finance permission sets — directly or through a group — so external/limited accounts can't gain administrative access. | |
| Create new user as a limited user in Control Center: Lets admins create a 'Limited User' directly in Control Center for external parties with scoped, ongoing access — without requiring a contact-based invitation first. | |
| Invite contact as a limited user from "Contacts" module: Users with the permissions to do it can invite contacts who are not users as limited users. | |
| Identify contacts who are users: Contacts who are users for the tenant have a visual indicator that tells the type of user (internal, partner, collaborator). | |
| Hide workspaces for users who do not have access to them: Users only see the workspaces they actually have permission for in their navigation; Limited Users in particular never see Control Center or Finance. |
customization
| Project Role Visibility Widget for Views: Users have no way to surface project role assignments directly within a custom view. This widget brings role visibility into the operational surface where users already work, without requiring navigation to the Access section. | |
| [TECH] GET object by selector endpoint: There is no endpoint to retrieve a single object by its selector. This improvement adds a dedicated endpoint that returns a single object given its selector. | |
| Project deletion and restoration within Project Groups: When a secondary project is deleted, its relationship to the Project Group and shared records must be handled cleanly. When restored, the project must rejoin the group with its original relationships intact. | |
| Document scope selector in relationship fields: This improvement sets the default scope of a relationship field's document search to the current project — communicating it clearly with a help message — and allows users to switch to their full document access or to the project group when applicable. | |
| Form Builder: multi-select toolbox fields with checkboxes and insert them in one action: Users can now check the fields they want in the toolbox and place them in a single action, with the selection surviving searching and filtering, instead of dragging fields out one at a time. | |
| Cascading cleanup when a field is deleted: When a field is deleted from an object, all references to it are now automatically removed across headers, display info, view components, and calculated fields, and the admin is warned before confirming the deletion that dependent elements may be affected. | |
| Delete components: Administrators can now delete a component from the Components section, automatically removing it from all views where it is currently in use, with a confirmation step that surfaces the impact before the action is committed. |
documents
| Unable to return to the All Documents grid from Selected Documents in Fact Packet creation: Fixes a bug where, on projects without folders, users building a Fact Packet could get stuck on the Selected Documents screen with no way back to the full document list to pick more files. | |
| Add AND / OR operators to Conditionals in WAI: Lets users building Word templates combine conditions with AND/OR logic, nest condition groups, and set a fallback value for when none match — enabling more complex document templates. | |
| Add TODAY to PDF Forms: The TODAY system variable, already available in the Word Add-In, is now available in PDF Form templates, resolving to the current date at document generation time. |
explore
| Allow Manually Entered Values in Defined-Value Report Filters: Report builders can now manually enter filter values that are no longer available in the current schema, so reports can include records with historical, deprecated, or removed values without modifying the underlying configuration or stored data. |
finance
| Enhancement invoices view: Two minor UI adjustments to the Non Invoice Items view and the invoice creation flow, improving clarity and removing an outdated message that is no longer relevant. |
workflows
| Choose or turn off grouping in the task view: Case workers can group their task view by Status or Priority — or turn grouping off entirely — so the list is organized around how they're actually working. | |
| Customize the columns shown in the task view: Users can choose which columns appear in their task view. A side panel lists every available column with a switch for each one, so a user can strip the grid back to what they care about or bring in extra detail without asking anyone to change the view for them. | |
| Dark mode fixes: Some components were not usable in dark mode because their design was not built for that; this development allows users to use Workflows normally in dark mode. | |
| Second Path From a Starting Rule Cannot Connect to an ANY Join: Workflow designers are blocked from building a template where two paths coming out of the same starting rule converge on a single rule. The first connection is accepted, the second one is rejected with an error, so a common convergence design cannot be built at all and designers are pushed into duplicating downstream work to get around it. |
september 9th to september 15th
adoption
| Update Auto Layout Icon to Match Design Reference Minor UX/UI enhancements. | |
| Implement Faster Container Deployment Deployments to the container are now significantly faster thanks to a new deployment strategy being validated across environments before reaching production. This reduces downtime and wait time during releases, ensuring updates reach the platform more quickly and reliably. | |
| Lead Docket: Avoid duplicated contacts from Leads that are already created by FV projects This update includes internal improvements that do not impact the user experience. | |
| Add Release Pipeline Validation for Unregistered Structure/Data Migrations in Tenant Provisioning JSON Any schema or data migration that is missing from the tenant provisioning directory is now automatically caught during the release pipeline before it reaches production, preventing new tenants from being provisioned with an outdated or incomplete schema. This eliminates a silent manual gap that could cause inconsistencies across tenant environments without any visible warning. | |
| Support Relationship Mapping with Child Objects The object map now supports linking more than one Parties instance to the Parties Information relationship field in G-PI Litigation Summary, with each source field group mapping to its own distinct Parties vertex and edge in the graph. Users viewing a migrated Litigation Summary record will see all associated parties correctly reflected through the relationship field. | |
| Make search in Maps and Executions persistent Search inputs in the Maps and Executions views now stay active when navigating away or switching tabs, so specialists never lose their filtered context and can pick up exactly where they left off without retyping their search. | |
| Bulk Delete and Duplicate Actions for Mappings Specialists can now select multiple mappings and delete or duplicate them in a single action, saving significant time when managing large mapping libraries. When duplicating, a custom name can be assigned to each copy so the new maps are organized and identifiable from the start. | |
| Optimize Mapping Load Time with Priority Content The mapping view now loads the most critical entity content first so specialists can start working immediately, while the rest of the content loads progressively in the background. This eliminates the wait time previously caused by loading everything at once and keeps the mapping interactive throughout. | |
| Improve error UI logs in executions When a migration execution fails, users can now see exactly what went wrong at each step — including the object, field, error type, and operator involved — directly in the failure modal without needing to contact engineering or read raw logs. | |
| Plaintiff Expert Items migration incomplete — only 1 of 3 imported Minor bug fixes and internal improvements. | |
| Provisioning Failures: Default Forms, Owner Lambda Timeout, and MSK Topic Provisioning Minor bug fixes and internal improvements. |
automations
| Update Automations Pipeline Node deprecation This update includes internal improvements that do not impact the user experience. | |
| First UI refinements This includes UI changes to align automation with the most recent UI/UX standards. | |
| Get object id from nested automations Automations now have visibility into the exact child object record that triggered the parent workflow, instead of only knowing the context ID where that change happened. | |
| The form should prioritize the definition over what is stored by the FE This update includes internal improvements that do not impact the user experience. | |
| Front end: Tags for executions Today, tags only exist at the automation level — individual executions can't be tagged. This feature lets a System Admin add or remove tags directly on an execution from the Execution Logs list, independent of the parent automation's tags. It reuses the existing Projects/Automations tagging UI, so users get filtering, auditing, and categorization at the execution level with no extra learning curve — with zero impact on existing untagged executions. | |
| Add tags to executions and filter by them This feature lets a user add or remove tags directly on an execution from the Execution Logs list, independent of the parent automation's tags. It reuses the existing Projects/Automations tagging UI, so users get filtering, auditing, and categorization at the execution level with no extra learning curve — with zero impact on existing untagged executions. |
communications
| Allow creating a contact or adding to an existing one from Unknown Associate SMS from unknown contacts by creating a new contact or linking to an existing one. | |
| Embed Contact Center SDK Zoom Contact Center is now integrated and always visible while users work elsewhere in the platform, so they can handle live interactions without switching tools. | |
| View Unassigned SMS In Communication > SMS, use the new Unassigned filter to quickly find messages that haven't been linked to a Case or Lead, then click into a contact to assign the right context. | |
| Unify drawer styles across comms capabilities Unified the design across Fax, SMS, Email, Notes, Calendar, and Messages — full light/dark mode support, and streamlined navigation throughout. | |
| API to create Call, Email, SMS, Fax records The app now allows syncing external communication records. It creates email, call, fax, and SMS records through API, so activity from outside systems stays reflected in the platform without manual re-entry. |
customization
| Save options for flyout forms and context creation Flyout forms for multi-record objects close on save with no option to stay open, and context creation forms offer no way to navigate directly to the new record after saving. This improvement adds explicit save action choices to both surfaces. | |
| Alphabetical sort button in the Object Builder Fields list Alphabetical sort button in the Object Builder Fields list. | |
| Form Builder: apply a single logic rule to multiple fields via multi-selection in the Logic tab Applying one condition to many fields is the most common thing implementers do in the Logic tab, and today it costs a full pass through "Add action → pick the action → find the field in a dropdown" for every single field — a condition covering a dozen fields means a dozen passes. This ticket turns the action's field selector into a checklist with search and "Select all", then fans the picks out into the same individual action rows the manual flow would have created, so the saved form is identical and nothing downstream changes. It also fixes a smaller source of confusion along the way: a field that can't be used because another rule already claims it used to just vanish from the list with no explanation, and is now shown greyed out with the reason. | |
| Form Builder: investigate drag-and-drop performance degradation on large forms Users report that dragging fields gets noticeably slower as a form grows, which affects exactly the forms that matter most — the large ones used to configure real practice areas. Today neither the cause nor the cost of fixing it is known: it may be our own handlers on the builder's events, or the SurveyJS creator itself. This ticket measures the problem, attributes the cost, and returns a proposal with options and effort, so the optimization work can be scoped and prioritized with real numbers instead of guesses. | |
| Dynamic layout endpoint accepts form selector as query param The dynamic layout endpoint currently returns only the default form for a given object. This improvement adds support for a form selector query parameter so that any form associated with the object can be requested directly, enabling more flexible form rendering without changing the underlying logic. | |
| Save all button for views with multiple forms When a view contains multiple forms, users currently have to save each form individually. If they navigate away or switch tabs before saving, unsaved data is lost. This improvement replaces individual save buttons with a single sticky Save button anchored to the bottom right of the view, triggering all forms with unsaved changes at once — reducing friction and eliminating the risk of data loss. | |
| Add an async trigger with Kafka to update registers when a computed value is created When a computed value is created, dependent records are not updated immediately because the process runs synchronously and blocks other operations. This change introduces an asynchronous trigger using Kafka so that record updates are processed in the background — improving platform performance and ensuring dependent data stays consistent without impacting the user experience. | |
| Context Type and Project Type visibility in Views Small fix to make context type and object type visible / invisible in views according to the attribute defined by the user. |
documents
| Correct emails, addresses, phones insertion in WAI Emails, Addresses, and Phones are list-type fields on Contact records, and a single record can have more than one of each. WAI currently inserts them using a single-value merge tag, which produces malformed output when a record has more than one value. Email, Address, and Phone insertion is now cardinality-safe: the same inserted field renders correctly whether the record has one value or several, using a for-loop-based merge tag. | |
| Create a Fact within a Packet Creating a Fact previously meant jumping between a separate Viewer and a separate Facts list. This consolidates that into a single view within the Packet context: the user opens a Document, the Viewer and its Facts appear side by side, and new Facts can be created inline (from a text selection or a full page) without leaving the page. | |
| Packet Detail: Documents and Facts Grid Opening a Packet now shows only the Documents that belong to it, with a way to see each Document's Facts without leaving the page — modeled after the existing Envelope UI, scoped so a Document in multiple Packets never shows another Packet's Facts here. | |
| Full Document Viewer on the Documents + Facts Grid The Document Viewer is now rendered inline on the same page as the Documents and Facts grid, so users can review document content without losing their Packet context — particularly useful in litigation workflows where documents and facts need to be cross-referenced simultaneously. | |
| Export Facts from a Packet The Export UI has been adapted to the new Packet framework, with all current export functionality preserved. | |
| Remove a Document from a Packet Users can now remove a Document from a Packet after creation (for example, if it was added by mistake). The related facts remain tied to the packet but stay hidden unless the Document is re-added. | |
| Add a Document to an already created Packet Users can add more Documents to a Packet over time rather than being limited to the initial set chosen at creation, reusing the same Document Picker from the creation flow. | |
| Address Block and Full Address in PDF Form PDF Form field mapping now offers two address format options — Address Block, which formats the address across multiple lines, and Full Address, a single inline line — with Street Line 2 included only when a value is present, resolved at document generation time. | |
| Address Block and Address Line in WAI The Word Add-in now offers two insertable field tag formats for address fields — Address Block (multi-line) and Full Address (single inline line) — replacing raw, unformatted field values and removing the need to manually compose address layouts. | |
| Packet Creation flow Facts previously lived directly under a Document/Project with no intermediate grouping. This first release renames the Facts area to "Fact Packages," adds an empty state, and lets users create a Packet by selecting or uploading Documents. | |
| Split Date Fields in WAI Users can now reliably choose what portion of a date field to print (full date, day only, time only, etc.) consistently across all date-field insertion points in both WAI and PDF Forms, with the choice saved as part of the field tag configuration. | |
| Substring insertion in WAI Users can now insert only part of a field's value — for example, splitting a Social Security Number stored as one field across three separate boxes on a document — via a new character offset option (first N characters, last N characters, or a character range) saved as part of the tag's configuration. | |
| Add conditionals for Lists in WAI Users can now define a List Filtering configuration in the Word Add-in so only list items matching defined business rules (e.g., only "Active" items, values above a threshold) are rendered, reusing the Word Add-in's existing conditional operators and semantics. |
explore
| Display "Is Empty / Is Not Empty" consistently in applied filter labels Ensure filter operators use consistent, user-friendly terminology throughout Advanced Search. When users select Is Empty or Is Not Empty, the applied filter should display the same terminology instead of the technical Is Null / Is Not Null labels. | |
| Selected columns should appear first in the + Columns selector When building a report in Explore, fields that are already selected for the report — including columns automatically selected when the user initially selects an object — are now prioritized and displayed at the top of the field list, making it easier to identify which fields are already included. | |
| [Reporting] Group By fails when using a composite sub-field Users were unable to group reports by fields contained within composite fields, such as Task Resolutions → Resolved At, preventing use cases like tracking tasks completed per user by day, week, or month. These fields are now supported in Group By, enabling analysis of task completion trends and productivity over time. | |
| Custom View - Currency values are not displaying the configured decimal places Currency values displayed in Custom Views were showing only one decimal place instead of the expected two decimal places, causing monetary values to display with incorrect formatting. | |
| Selected columns are not shown as selected when reopening + Columns Columns already added to a report were not consistently remaining visually identified as selected when reopening the + Columns selector; behavior should be reviewed further to ensure it's consistent across environments. |
finance
| Finance — Arango Migration Cleanup Add missing migrations to migrations.json: Minor bug fixes and internal improvements. | |
| List Sent Invoice Emails in Finance Communications Every invoice email sent from the Finance workspace is automatically recorded in a dedicated Communications section, giving Finance users a centralized and complete log of all invoice communications. Invoice emails are only visible within the Finance workspace and will not appear in project-level communications, keeping billing activity separate and accessible only to the right team. |
partner apps
| Description Needs to Be Required When an app is created, a description is now required so a user can know what the app is on install. | |
| External Dropdown Updates This enhancement enables a user to specify which output field is able to be utilized by customizations to populate a dropdown. |
workflows
| Remove Leaf Path Validation on Workflow Template Publish Workflow designers can now publish a template even when one of its branches ends without a completion rule. Previously this blocked publishing outright, forcing designers to wire up endings they did not intend or add completion rules that did not reflect how the process actually works. Removing the block lets a template go live in the shape its designer intended. | |
| An automation is unblocked Users can restart a blocked automation themselves from the automation sidebar, so a workflow that stalled because of a temporary problem can be recovered by the person looking at it instead of waiting for someone with system access to step in. | |
| An automation is displayed in blocked status in a workflow execution Users can now see when an automation inside a running workflow has stopped working, with the automation appearing in a blocked state on the execution view and a banner confirming the block. | |
| A task is unblocked Users can restart a stalled execution by assigning the blocked task to a user from the task panel, moving the run forward as soon as someone is named. | |
| A task is displayed in blocked status in a workflow execution The execution canvas marks a task as blocked when the assignment ran and produced no eligible candidates, so users can see straight away that the run is waiting on work nobody can pick up. | |
| Integration User Name Resolution in Task Activity History When a task is created by an integration user, the task activity timeline now shows that user's name so people reading the history can tell who or what created the task, making the creator legible in the timeline regardless of user type. | |
| Adding a tag in the task template replaces the tag already there Only one tag could be kept on a task template — adding a second tag wiped out the first, forcing anyone setting up a template to either pick one tag and lose the rest or skip tagging altogether. Since tags drive how work is found and routed, templates can now keep more than one tag. |
september 2nd to september 8th
adoption
| All tenants now run on V2 infrastructure by default Migration executions now run on V2 infrastructure by default, eliminating the need to manually register each tenant and removing V1 branching logic from the Dispatcher, Transform, and Import pipeline — simplifying the pipeline and ensuring every tenant benefits from current infrastructure without additional setup. | |
| Import sync endpoint upgraded to cross-tenant API auth The sync endpoint now authenticates using a dedicated write-only API user instead of tenant-scoped tokens, making it callable from external tools (e.g. Bruno) across any tenant without per-tenant credentials. Syncs can also be scoped to specific entities or targeted at a new or existing import. | |
| Switch the import source even with inconsistencies Specialists can now switch the import source from the mapping canvas even when inconsistencies exist, with those inconsistencies surfaced directly in the UI for review — removing the previous hard block that prevented any progress. | |
| Click a connection line to keep it highlighted Specialists can now click a connection line on the mapping canvas to keep it highlighted in blue, making it easy to trace exactly which source field maps to which target field even when many connections overlap. | |
| More reliable document binary sync Document binaries saved to tenant S3 are now named using a deterministic UUID5 generated from the Tenant ID, Legacy ID, and Document Collection, removing the dependency on a DynamoDB cache table for filename resolution and making the sync process more resilient. | |
| Global search bar on the mapping canvas Specialists can now search across the full mapping canvas at once, with matching results highlighted simultaneously in the source panel, target panel, and canvas cards, while non-matching elements are visually de-emphasized. | |
| Field search auto-expands its parent collection When searching for a field in the source or target panels, the parent collection or object now automatically expands to reveal the field in context, eliminating the need to manually navigate to it after a search. | |
| Prevent token expiration during import file sync The sync process now refreshes the authentication token automatically during import file synchronization so long-running syncs complete successfully without being interrupted. | |
| Clearer error detail in execution failures When a migration execution fails, users can now see exactly what went wrong at each step — including the object, field, error type, and operator involved — directly in the failure modal, without needing to contact engineering or read raw logs. |
automations
| Get unique values from a list Users can now search for unique values inside a list directly as an automation action. | |
| Clearer output field labels for repeated or nested field names Dynamic output fields now display improved, more distinguishable labels at the output level when field names repeat or are nested. | |
| Lookup Tables usable directly from automation actions Users can create, search, update, and delete rows in a Lookup Table directly from an automation — filtering by column conditions to find matching rows, looking up a single value to translate one field into another, adding new records, and updating or removing existing ones, all through one consistent, reusable filter builder shared across every action. |
communications
| Multiple SMS numbers per contact Contacts can now have more than one SMS number. When sending an SMS, users can choose which number to send to, ensuring messages reach the right destination. | |
Multiple fax numbers per contact Contacts can now have more than one fax number. When sending a fax, users can choose which number to send to, ensuring documents reach the right destination. | |
| Multiple email addresses per contact Contacts can now have more than one email address. When sending an email, users can choose which address to send to, ensuring communications reach the right destination. |
core
| Cleaner project header when a project has no group The project header no longer shows the "Add to a Group" label and chevron when a project isn't part of a group, keeping the header clean. The group icon remains as the entry point to the group assignment flow, and the full control still displays as before once a project is in a group. | |
| SfN integration auto-deprovisioned in sandboxes The SfN integration is now automatically deprovisioned when a sandbox is created, preventing production integrations from carrying over into sandbox environments. | |
| End-to-end sandbox provisioning with live status Sandbox creation now completes all provisioning steps end-to-end — environment setup, user activation, and integration configuration — with real-time status (In Progress, Active, or Failed) and error details surfaced on failure. The Sandboxes menu is only accessible from the main production tenant. | |
| Create a "FULL" Sandbox Administrators can now create Full Sandboxes that replicate both schema and operational data (contacts, projects, leads, documents) from production, giving teams a realistic environment to safely test configuration changes. Each sandbox gets a unique name and subdomain derived from the production tenant's subdomain, and the number of available sandboxes per type is governed by a configured limit. |
customization
| Streamlined object configuration flow Setting up a new custom object is now one continuous flow instead of a stop-and-start process — permissions default to on where they're almost always wanted, creating the form no longer greets users with a misleading "Discard Changes?" dialog, missing required fields are flagged, users are returned to where they started after saving the form, and the menu label pre-fills from the object's own name. A new PERMISSIONS tab lets an object's access levels be set across permission sets directly from the object itself, per context. | |
| Form builder can hide parent context/object type selectors Platform-added selectors now appear in the form builder from the start, with correct default visibility, so administrators see exactly what they're building before saving. | |
| Warning before making the single-record setting irreversible Turning off "Restrict to one per context" on a custom object is a permanent decision. Administrators now see a warning before the change is applied, and an explanation on objects where the toggle is already blocked. | |
| Form Builder toolbox usability improvements The field toolbox now always shows field names instead of collapsing into unlabeled icons, supports an optional alphabetical view that doesn't affect the saved field order, and its bulk-add action now skips system fields (like created at / created by) instead of adding them by default. | |
| Forms auto-save before an action button runs When a user fills out a form and clicks an action button (document generation, PDF generation, workflow trigger, or custom event), the form is now automatically saved first, instead of requiring the user to remember to save manually — preventing actions from running against outdated or unsaved data. | |
| Notes widget embedded directly in views Users can now read, filter, and create notes directly within any view configured for Projects or Leads, instead of navigating away to the Notes section — reducing context-switching. | |
| Warnings for potentially invalid relationship field configurations When configuring relationship fields in the object builder, administrators now see warnings at the moment of configuration for two common misconfiguration scenarios that previously produced silent, broken behavior at runtime — while still allowing them to proceed if they choose to. | |
| Single-grid views now fill the available screen height Views containing a single custom object grid now expand to use the full vertical space available instead of leaving unused space below the grid. Views with multiple stacked grids are unaffected. | |
| Choose whether to export inactive forms Users can now choose whether inactive forms are included when exporting. | |
| Workflow trigger payload enriched with child object data When a workflow is triggered via a button on a child object (e.g. a Settlement within a Project), the trigger payload now includes the child object's data directly, instead of only the parent context — removing the need for extra lookups. | |
| Context auto-resolves in shared object relationship fields Administrators can now configure a context source field in the schema so that shared object relationship fields resolve context automatically instead of requiring the user to manually choose it first. | |
| Drawer scroll on Projects: Fixed an issue where drawers on Projects did not allow scrolling. | |
| Custom object field not displaying in form: Fixed pagination on the field endpoint so the correct number of fields is retrieved and displayed. | |
| Extra validation removed from field syncing: Reduced unnecessary validation that ran when checking for removed fields on each form. | |
| Export form selection behavior: Fixed unexpected behavior when selecting which forms to include in an export. | |
| Inactive forms now listed when the export toggle is active: Inactive forms now correctly appear in the export list when the corresponding toggle is enabled. | |
| Unsaved form data no longer lost when switching tabs: Fixed an issue on Projects where unsaved form data was lost when navigating between tabs in a custom view. | |
| Object Type field not consistently read-only in view preview: Fixed an issue where the Object Type field on view preview was not always in read-only mode. | |
| Dropdown option edits now save correctly: Fixed an issue on Objects where editing an option in a dropdown field was not being saved. | |
| Global object records no longer editable in views preview: Removed the ability to edit global object records from within views preview. |
documents
| Documents tab enabled on Contact records Contacts (Person and Organization) now support the same document experience already available on Leads — a documents grid, folder organization, and envelope tracking — instead of exposing a non-functional Documents tab. | |
| Custom folder ordering and sorting Folders can now be manually reordered via drag-and-drop, with quick sorting (Alphabetical / Last Modified) available on top, in both the folder tree and the Folder Items grid. Folders always stay above documents in the Folder Items grid. | |
| Manual Input tags can drive conditional blocks Conditional blocks in the Word Add-in can now be tied to an already-configured Manual Input tag in addition to a system field, so the block resolves based on a value entered at generation time (Cherry Pick) rather than only stored case data. | |
| Manual Inputs displayed and captured in the Cherry Pick Panel When generating a document from a template containing Manual Input tags, users now see those tags listed by name in the Cherry Pick Panel and can enter a value for each (free text, or a dropdown if configured with options); leaving a value blank still allows generation to complete. | |
| Manual Input Tags in PDF Forms PDF Forms templates now support Manual Input tags (free text or dropdown), configured through a dedicated tab in Field settings — bringing the same capability already available in the Word Add-in to PDF Forms. | |
| Header/Footer fields shown in the Cherry Pick Panel The Cherry Pick Panel now includes a Header/Footer selection section, using the same templates available from the Document Creation button. Selecting a template displays its fields pre-populated from the document context where available; selection remains optional. | |
| Header/Footer template selectable at the button level Administrators can now configure a Header/Footer template directly on a Document Creation button, instead of requiring the end user to search through all available options every time they generate a document. | |
| Edit and delete Firm-wide Variables in the Word Add-in Because Firm-wide Variables are shared across templates, editing or deleting one now shows a clear confirmation before changes go live for everyone, with a more explicit warning for deleting a firm-wide variable versus a local one. | |
| Firm-wide Variables surfaced in the Word Add-in variable panel Firm-wide variables are now clearly separated and visually distinguished from one-off, template-specific variables in the Word Add-in variable panel, making reusable variables easier to find as templates grow. | |
| Manual Input tags in the Word Add-in Users can insert a Manual Input tag — not tied to any data field — into a Word Add-in template using the reserved keyword Input, so it can be filled in manually by whoever generates the document later. |
explore
| Grouping and aggregation supported for batched reports Large reports processed in batches can now have grouping and aggregation applied correctly across the complete result set, instead of being limited by the batched execution model — giving batched reports the same grouping and aggregation capabilities as smaller reports. | |
Identify and filter reports by creator A Creator column and filter are now available across Reports, Executions, and Scheduled Reports, making ownership immediately identifiable — particularly useful for Organization Owners/Admins who see reporting assets across their organization. | |
| Filter reports by the latest Multi Object entry Users can now report on and filter by the latest Multi Object entry associated with a parent record — for example, identifying Projects where the most recently created Client Contact is more than 30 days old. | |
| Date grouping in reporting Reports can now group date fields by meaningful time intervals (day, week, month) instead of treating them only as raw timestamps, making it easier to analyze trends and reporting periods. | |
| Persons/Organizations source no longer converts to Contacts in execution flows: Fixed a regression where reports using Persons or Organizations as their source were incorrectly changed to Contacts during Copy as New, Edit Execution, and Save Report — which had caused the original report configuration (filters, columns) to be lost or altered. | |
| Favorite filter now combines correctly with other execution filters: Fixed an issue where filtering by Favorite in combination with other criteria (e.g. Name, Object Type) could omit records that satisfied all selected filters. |
finance
| Invoice-specific email templates Administrators can create invoice-specific email templates from the Control Center, letting Finance users select and preview a template before sending each invoice for consistent, professional client communications. | |
| Send invoices via email Finance users can send finalized invoices directly via email from the Finance workspace, with the PDF generated automatically in the background. Recipients are pre-filled from the account's configured defaults, and the invoice status updates to Sent once delivered — keeping the billing process seamless and fully traceable. |
workflows
| Rule-to-rule connections Workflow designers can now connect one rule directly to another, letting a template evaluate conditions in sequence without inserting placeholder elements just to hold the flow together — keeping task lists clean and enabling multi-stage gating logic. | |
| Object label and record link on task-drawer "From" attribute Tasks created by a workflow now show both the object name and the record name that triggered them, with the value turned into a link — letting users jump straight to the source record instead of hunting for it. | |
| Field tags resolve against the triggering object When a workflow is started by an object of a different type than the one it runs over, dynamic fields in task templates and delays now resolve against the record that actually triggered the workflow, instead of coming back empty. | |
| Blocked executions highlighted in list views Executions that cannot move forward are now visually flagged wherever executions are listed, making it easy to find and unblock them without opening each one individually. | |
| "Triggered From" field on manual starting rules Starting rules on a manual trigger can now target a specific object beyond the workflow Context via a new "Triggered from" field, which feeds condition evaluation alongside the Context object, with a banner explaining what the selection is for. | |
| Disconnected-node validation moved to the Publish action Workflow templates are now checked for disconnected nodes at the moment of publishing, blocking a template from going live with steps that connect to nothing — protecting against templates that stall partway through or skip work entirely. | |
| Task Resolution stored as a single value Task resolution is now stored as a single value on the task rather than a list of events, giving reporting and task views one clear source of truth for how a task was resolved and removing the need to interpret which list entry is the real resolution. | |
| Blocked-state signal for stuck intermediate rules When a waiting point in a run finds no matching path, the run now surfaces a clear signal that it is stuck there, instead of quietly going nowhere. | |
| Blocked-state signal for unassignable tasks When an automated task cannot be assigned to anyone, the run now surfaces a clear signal that work is stuck at that task, instead of silently stalling. | |
| Execution Blocked flag Executions now carry a Blocked flag and emit a block event whenever a step (an unassignable task, an unmatched rule, or a failed nested automation) lands in a blocked state — so users can see at a glance that an execution needs attention and act before work goes stale. | |
| Outcome nodes for defining workflow endings A single, complex end-of-workflow configuration has been replaced with simple Outcome Node building blocks that drop onto the canvas like any other step, letting a workflow report distinct results (e.g. "Resolved Settled" vs. "Resolved Closed No Action") without a heavy configuration panel. | |
| Configurable closing policies for workflow executions Template editors can now define what happens to a workflow's non-closed tasks when its execution reaches a final state — closing those tasks automatically or leaving them open for users to finish — giving teams control over cleanup and preventing active work from lingering or being lost. | |
| Concurrent paths merging into an "ALL" rule no longer rejected as exclusive: Fixed an error that blocked saving a rule where several concurrent paths from the same output port converge and the workflow is meant to wait for all of them — this had forced teams into workarounds that changed the intended workflow behavior. | |
| Task no longer disappears from the URL after reassignment: Reassigning a task no longer leaves the browser address pointing at a task the user can't see in their list, so reloading or sharing the link behaves as expected. |
september 1st
adoption
| Standard Mapping date fields now use ISO format The created_at and updated_at fields on customizable objects now return dates in ISO format instead of raw timestamp, keeping date values consistent, readable, and correctly formatted across the platform after migration. | |
| Leads relationship fields and dual context on schema import The schema adapter now correctly creates relationship fields for Leads objects and assigns dual context to Intake objects during schema import. | |
| Switch import source even with inconsistencies Specialists can now switch the import source from the mapping canvas even when inconsistencies exist, with those inconsistencies surfaced directly in the UI for review — removing the previous hard block that prevented any progress. | |
| Same email allowed as owner across multiple tenants The same email address can now be used as the owner in multiple tenants, enabling shared accounts and service users to manage more than one tenant environment without conflicts. | |
| +1 country code prepended to migrated phone numbers Migrated phone numbers in the Contacts entity now include a +1 country code prefix so every number is complete and ready to use after migration. | |
| Load Date and Last Updated Date shown in Import Import and mapping lists now display creation and last-updated dates, are sorted from newest to oldest by default, and include a select-all option within an import. | |
| Inline field search when drawing connection lines Specialists can now search for the target field directly when drawing a connection line from a source field (and vice versa), instead of scrolling through long field lists manually. | |
| Share maps across imports with data contract validation Maps can now be reused and shared across different imports without rebuilding them from scratch, saving time across clients and executions. The system also validates data contract structure consistency before any execution runs, preventing structural mismatches. | |
| Clearer error detail in execution failures When a migration execution fails, users can now see exactly what went wrong at each step — including the object, field, error type, and operator involved — directly in the failure modal, without needing to contact engineering or read raw logs. |
automations
| Partner Apps connectors usable as Automation actions Users can create Connectors to external or internal endpoints through partner apps in the Control Center. These Connectors can now be converted into reusable actions for Automations, allowing users to call configured endpoints without manually entering the URL or credentials each time. |
communications
| Granular admin permissions for the Control Center Admin access can now be controlled with separate permissions for Activity Feed, Provider Set-up, and Templates, instead of a single broad admin permission. |
core
| Standard fields backfilled across all tenants Standard Person, Organization, and User fields are now consistently available across all tenants. Existing tenants missing these fields receive them via a backfill migration, and newly provisioned tenants include the full standard field set by default — no manual intervention required. | |
| "Main Office" flag at the tenant level Tenant administrators can now designate one office as the Main Office from General Settings. This gives the system a single time zone reference used by Automation for task scheduling. Only one Main Office can be active at a time — selecting a new one automatically replaces the previous designation. | |
| User GET endpoints return updated contact data structure The User GET and GET list endpoints now retrieve phone, email, and address data from the updated canonical data structure, ensuring accurate responses following the communications data migration. | |
| Rule Builder condition editor preserves display format The rule condition editor now preserves the user's chosen display format after saving, preventing unexpected syntax changes. Complex or long expressions are also better accommodated through an auto-expanding text box or modal view. | |
| Audit log and event flagging for contact merges Contact merge actions are now recorded in the audit log, showing who performed the merge and which contacts were involved. Merge-triggered events are also flagged with metadata so downstream systems and webhook consumers can identify and handle them appropriately. | |
| Field Tag Builder supports sub-contextual objects The Field Tag Builder now supports sub-objects, allowing users to create tags that reference fields on dependent objects in addition to top-level ones. |
customization
| Object aggregation across project groups ("Receive from Secondary") A new Receive from Secondary attribute lets the primary project in a project group act as an aggregator, displaying its own records alongside shared-object records (e.g. Incident Data) from all secondary projects in one consolidated view. | |
| Relationship fields auto-sync when a new context is added When a new context is added to an object, all relationship fields pointing to that object are now automatically synchronized to include the new context, instead of requiring administrators to update each one manually. | |
| Substring extraction for calculated fields Calculated fields that output text now support FIRST and LAST substring extraction functions, letting administrators pull a specific portion of a string (e.g. the last 4 digits of an SSN) without a manual workaround. | |
| Dedicated Org Name field for Organizations Organizations now have a required Org Name field as the primary identifier, with the merge field updated to use it. Legal Name remains available as an optional secondary field for formal or contractual use. | |
| Edition drawer resolves full record context before rendering The edition drawer now always resolves the full record context — object type, schema, fields, and configurations — before rendering, fixing cases where it displayed incorrectly or incompletely, and improving performance. | |
| Open full contact record from the relationship field drawer A new button at the top of the contact relationship field drawer opens the full contact record in a new browser tab, giving users access to custom objects and full contact information without losing their current project context. | |
| Confirmation before leaving a form with unsaved changes Users who try to navigate away from a form with unsaved changes are now prompted to confirm before leaving, preventing accidental data loss. | |
| Faster, non-blocking schema changes Object creation operations (collection creation, graph updates, index creation) now run asynchronously via a Kafka-based flow instead of synchronously in the request path, avoiding timeouts and slow responses as schemas grow. | |
| Import completion notifications Administrators are now notified as soon as an import completes, both via a floating panel and platform notifications, with a downloadable report detailing anything that was skipped or failed. | |
| Immediate feedback on invalid import files Uploaded import files are now validated immediately, so administrators get clear feedback on structural problems right away instead of waiting for the import to run. | |
| Partial form import when some fields are missing Importing a form into a destination tenant that's missing some referenced fields or components no longer blocks the whole import — the system brings in what it can and clearly reports what was left out. | |
| Import an object with its forms and type assignments Administrators can import an object schema — including its forms and form assignments — into a destination tenant without overwriting existing configuration, whether the object is new or already exists there. | |
| Export an object with its forms Administrators can export one or more object schemas, including all associated forms, as a single JSON file directly from the schema module, for moving validated configuration between environments. |
explore
| Chart configuration separated from the Data Table Chart configuration controls now live in the Data Visualization section, separate from the Data Table, for a clearer distinction between visualization and table functionality. | |
| Hidden fields excluded from Reporting Fields configured with the Hidden limitation are no longer available when building reports. | |
| Hidden fields excluded from Advanced Search Fields configured with the Hidden limitation are no longer available to end users when building Advanced Search queries. |
finance
| Bulk invoice generation across projects Finance users can generate invoices for all pending items across multiple projects at once instead of going project by project. Selected items are automatically grouped by project into one draft invoice per project, with the same fields, behavior, and capabilities as any manually created invoice. |
workflows
| Timers stop automatically on bulk reassignment When users reassign or unassign a group of tasks at once, any running timers on those tasks now stop automatically the moment each change succeeds, keeping recorded time accurate. | |
| Task timers synced with Finance Task timers are now synced with Finance so time tracked on a task is visible to billing and vice versa. Finance becomes the single system of record for timers — tasks remain a place to start and pause a timer, but both surfaces show the same record. | |
| Inherited assignment now traverses intermediate nodes Inherited assignment now correctly resolves an owner even when a delay or automation node sits between a task and its assignment source, instead of leaving the task unassigned and requiring manual intervention. |
bug fixes
| Favorite status no longer stuck loading (Executions) Adding or removing an Execution from Favorites now reflects the updated status immediately, instead of leaving the UI stuck in a loading state until the user navigates away and back. | |
| Favorites actions failing for Reports and Scheduled Reports/Runs Adding or removing a Report from Favorites no longer returns a 500 error, and the same action on a Scheduled Report or Run no longer leaves the page loading indefinitely. | |
| Quick Search now returns exact email matches Searching by a complete email address now correctly surfaces the record with that exact email, instead of returning unrelated partial matches. | |
| Selected columns stay marked as selected Columns already added to a report now remain visually marked as selected when reopening the "+ Columns" panel. | |
| Phones and Addresses fields available again in Explore The Phones and Addresses fields are available again in the field selector for filters and report columns when using Persons as the data source. |