Time Warp Roadmap — June 2022

Goodbye Luyten. Hello Epsilon.

Dave Norris
7 min readMay 30, 2022

Time Warp is an open source interactive timeline for the Salesforce platform available on the Salesforce AppExchange here.

The next release of Time Warp is planned for July 2022. We’re calling it Epsilon — a release naming system based on stars. We pick a new star every release based on their ever increasing distances from Earth.

Here are the planned features and bug fixes getting included.

Time Warp

New Features

API Versions

API numbers will be incremented on all metadata. The API version moves from 53.0 to 54.0.

Language Support

It’s always been a goal of the Time Warp component to be fully globalised. We already have default translations for French, Spanish, Portuguese, Chinese (Simplified), Chinese (Traditional), Thai, German, Hebrew, Arabic and Hindi. In the Epsilon release we will be adding default translations for Korean and Italian.

Incidents, Change Requests and Problems

In Winter ’22 Salesforce rolled out Incident Management capabilities. This came with a data model that people in the community said might be a good fit for Time Warp. See the linked GitHub issue.

To expedite the process of setting up the associated metadata types in Time Warp the Epsilon release will include default records for the standard relationships for Incident, Problem and Change Request.

This means you’ll be able to drag Time Warp onto any of these standard objects and immediately view the standard related records.

Time Warp on the Incident object.

Improved flexibility in date ranges

Time Warp includes a minimap. This map appears at the bottom of the timeline that shows clusters of records and provides the date range to use to plot records to show in the main canvas.

The default number of days to show for this zoom thumbnail can be modified in the App Builder properties for the component.

The default is 60 days but in previous releases you could extend this up to a maximum of 120 days. Originally we designed it this way to make sure that Administrators were not tempted to plot too many records by default. More records plotted would impact performance.

This restriction limits some use cases. This issue raised by the community asked for more flexibility to cater for their use cases.

So we’ll extend the maximum value allowed from 120 days to 365 days.

The recommendation to limit impacts to performance is to select the minimum value that meets your use case.

Improved Metadata usage consumption

Subscriber editable metadata has limits. Time Warp has been designed to minimise impact to these limits.

Each Org can have up to 200 custom metadata types and 10,000,000 characters (approximately 10Mb) of data.

Time Warp uses 1 custom metadata type and as of the last release about 250,000 characters of records.

This is pretty lean.

Someone in the community raised the issue they had in installing Time Warp. Turns out that some customers have already used a lot of metadata storage.

This customer was already using 98% of their metadata usage which prevented them from installing Time Warp.

Whilst not a high priority defect it did get us thinking about how we can further reduce our metadata usage. This started with us getting a better understanding of how metadata usage is calculated — How does Salesforce calculate the fact that there are 250,866 characters?

Well it turns out that record size is based on the maximum field size of each field type defined for the custom metadata type. So for Time Warp we mapped out our custom metadata type.

Current Time Warp Metadata type usage — characters per record

System Fields like CreatedDate, Name, MasterLabel etc are also included in the calculation and we have summarised their total as 275 characters.

So each record we add to the Timeline_Configuration__mdt contributes 2,675 characters to the metadata type usage.

So to reduce the impact to a subscriber’s Org it’s important to think hard about the number of characters you allocate to each field and pick the minimum number possible.

In the Epsilon release we’ll be changing the length of the fields highlighted in yellow.

Ultimately that leads to a 35% decrease in the metadata type usage for the Time Warp component.

When adding fields to a custom metadata record, use the appropriate type and specify a length that doesn’t exceed what’s needed for your data.

D3.js version updated

D3 (or D3.js) is a JavaScript library for visualising data using web standards. Time Warp uses D3 for the canvas and minimap features. In the Epsilon release we’ll be updating the version we use to v7.4.4 from v7.0.0. This includes and new capabilities and bug fixes.

Bug Fixes

OpenActivities and ActivityHistory null dates

Processing OpenActivities and ActivityHistory relationships has some differences to other types of Objects. One of those differences is that using these relationships in a SOQL sub query means you can’t use WHERE.

This has meant that Time Warp cannot constrain based on date ranges for these Objects. As a consequence null dates are now returned from the query. This had the unexpected consequence that it causes a runtime error.

Error caused by null dates when plotting OpenActivities or ActivityHistory

To combat this we now check that all date values returned are not null.

if (values.get(‘value’) != null && values.get(‘value’) != ‘’) {   listOfTimelineData.add(mapData);}

Thanks to the community for taking the time to document the issue:

Parent picklist design time attribute error

One customer has reported an issue adding Time Warp to the Opportunity Object. When they did this they saw an error in App Builder when they went to edit the lightning page layout.

The values in this field are read dynamically based on the fields on the Object. It looks like this Apex method is producing an unhandled exception.

To combat this we’ve added some additional error handling.

Upgrading from a Previous Version

Epsilon will be a minor release. We plan for the upgrade path to be seamless. Time Warp upgrades are pull not push. You decide when, and if, to upgrade. When a new version is available you install the upgrade in the same way you would install any other package from the AppExchange. Just come back to the package listing in AppExchange and click ‘Get it Now’. The first page of the install wizard lists the current version you have installed, the version you’re about to install, and a list of additional components included in the new version.

We will be recommending that all users of Time Warp upgrade to the latest version in July ‘22.

Contributing

The best thing about the trailblazer community is contributions. Timeline needs lots of help and will need people to contribute who have a diversity of skills. Here’s a link to the open source repo. All contributions welcome.

--

--

Dave Norris

Developer Advocate @ Salesforce || Interested in solving unique challenges using different cloud service providers || All opinions are mine.