Release announcements, helpful tips, and community discussion



Cerb (10.1.1) is a maintenance update released on September 20, 2021. It includes 14 minor features and fixes from community feedback covering the 10.1 update. You can follow these instructions to upgrade.

  • [Automations/Scripting] In automation scripting, added a |column(key) filter for extracting a key from each item in an array.

  • [Automations/Scripting] In automation scripting, added a |filter(func) filter for filtering an array of sequences or objects. The func argument is an arrow function like (v,k) => v > 5 that returns true (include) or false (exclude) for each item.

  • [Automations/Scripting] In automation scripting, added a |map(func) filter for applying a function to each item in an array to create a new array. The func argument is an arrow function like (v,k) => output that returns the new value for each item.

  • [Automations/Scripting] In automation scripting, added a |reduce(func,initial) filter for reducing an array of items to a single value. The func argument is an arrow function like (carry,v) => carry + v that receives value of the current item and the output value of all past calculations (carry).

  • [Automations/Scripting] In automation scripting, added a |values filter for returning the values of an array with sequential keys. This is the filter equivalent of the array_values() function.

  • [Automations/Scripting] In automation scripting, added a cerb_calendar_time_elapsed(calendar,date_from,date_to) function for calculating the time elapsed between two dates using calendar availability. The calendar argument is an ID (and will eventually be a URI once those are supported by calendars). Thanks to @beatbesmer for the feature request!

  • [Platform/Templates] In the template builder service, we now catch argument count errors in scripting with custom functions. Previously these triggered a FATAL in PHP.

  • [Custom Fields/Search] On worker-based custom fields, we now generate search filters for fieldName: and In data queries, this makes it possible to request the worker ID or label.

  • [Data Queries/Subtotals] On worklist.subtotals data queries, when using a worker custom field in the by:, the full worker name is used as the label rather than the ID. This is what would normally be expected on something like a pie chart. If desired, the ID can be used with by:[] instead.

  • [Interactions/Sheets] Fixed an issue in interaction sheet elements when filtering by a data set with keys and no values. Thanks to 1Password for the report!

  • [Tickets/Reports] On ticket records, the ‘First Response’ field is now computed as the time elapsed from ticket creation until the first outgoing message. Previously, the field had the same value as the first outgoing message’s response time. This could be misleading if a new ticket had several inbound messages and the most recent was replied to first. [#1524] Thanks to @keith-chargeover for the report!

  • [KATA/Automations] Added more error checking when parsing Events KATA before passing it to the event handler. With invalid KATA, false was returned, which caused a PHP FATAL for any method expecting an array of handlers. In the worst case, invalid mail.route KATA could prevent the parser from processing new mail (though these messages were in the fail queue for retry).

  • [Interactions] Fixed an issue in worker interactions, in await:form: continuations, with text: elements. This was attempting to truncate very long non-string values.

  • [Worklists/Validation] Added a warning on worklists with invalid search filters in their required query. Previously these were silently ignored.