Release announcements, helpful tips, and community discussion


Cerb (6.1) is a feature upgrade released on August 27, 2012. It contains over 51 new features and improvements from community feedback.

To check if you qualify for this release as a free update, view Setup » Configure » License. If your software updates expire on or after August 27, 2012 then you can upgrade without renewing your license.

Important Release Notes

  • Make a backup before upgrading.

  • The project now requires PHP 5.3 or later.



Watch a video demonstration:

Read the manual:


  • Implemented a reusable charting library that utilizes HTML5 Canvas. This allows efficient rendering of complex, ad-hoc graphics to be performed in client browsers.

  • Any worker can add widgets to their workspaces in order to visualize data. Initially, line charts, bar charts, gauges, and scatterplots are supported. New types of widgets can be added through plugins. This enables workers to build highly specific custom report elements without requiring any coding experience (everything is done through the web browser with familiar tools like worklists). Unlike competing projects that provide reporting templates, with Cerb you can chart quantitative data from any of your records (including those from plugins). You can even plot different kinds of records on the same chart.


  • Implemented gauge widgets for workspace dashboards. A gauge displays a semi-circle with proportional zones in different colors. These zones can have arbitrary labels (e.g. OK, Warning, Critical). A needle points to the current value of the gauge. The data in a gauge can come from any worklist, any sensor, or it can be manually set. Gauges have countless uses, for example: you can display the current revenue for any time period and compare it against several milestones or goals; like a speedometer, a CPU Load or Disk Space gauge gives a visual indication of the current status on a scale of continuous values (e.g. 0-100%).
  • Gauges can use a worklist datasource to display an aggregate metric (e.g. sum, avg, min, max, count). Any numeric fields are now available.
  • Gauges with a worklist datasource can now display their metric as a number, decimal, or time elapsed. For example, a gauge that displays the average response time for a series of messages can display a time elapsed like “2 hours, 14 mins”.


  • Added Counter widgets to dashboards. A counter displays a single quantitative value – similar to a gauge, but without specifying thresholds or goals. The data on a counter can come from a manual value, worklists, sensors, or external URLs. The counter text is automatically resized to efficiently use the available space. The text color, data type, prefix, and suffix may be configured. Data types include numbers, decimals, and time elapsed in seconds (formatted like “2 hours, 13 mins”). There are many uses for counters. For example, they can display the current response time average, total number of @mentions on Twitter, the overdue task count, real-time website traffic, unpaid invoice totals, etc.


  • Implemented chart widgets for workspace dashboards. Currently, this can display arbitrary data from worklists as line charts, bar charts, or scatterplots. Multiple worklists can be used to display several series on the same chart – allowing comparison. Multiple series on a bar chart will display in ‘stacked’ format, presenting a lot of visual information in a compact space. Charts can plot quantitative and date-based data from any built-in or custom fields. You can also plot different kinds of data on the same chart (e.g. tickets vs. opportunities). For example: you can display a chart of outgoing responses with a series per worker; or you can create a ‘resolution ratio’ chart by using a stacked bar chart, and plotting the number of tickets created over time as one series, and the number of resolved tickets over time as a second series. This will display a number of progress-bars to visualize the percentage of resolved tickets for whatever date grouping you selected (e.g. hourly, daily, weekly, monthly, yearly).
  • Individual records can now be plotted on the x-axis on charts. Previously charts only supported histograms where records could be grouped by date (e.g. week, year). You can now plot several metrics (e.g. spam score) on the same chart for a series of tickets. The sorted order of the datasource worklist will be used when plotting the x-axis; for example, if you sort a ticket worklist by spam score then you’ll see a sloping distribution of spam probabilities (in ascending or descending order depending on your sort).
  • Charts on dashboards will now use the available screen width.


  • Added a ‘subtotals’ widget to workspace dashboards. This displays a table of subtotal counts using an underlying workspace. For example, you can display counts for ticket statuses, sensor statuses, ticket buckets, opportunity campaigns, outgoing messages by worker, etc.


  • Implemented worklists on workspace dashboards. These operate the same as elsewhere in Cerb, except they’re optimized to display information in a more compact format (e.g. in vertical columns, rather than horizontal tables). For example, you can display a list of today’s events with a Calendar Event worklist constrained to the current day. You can also display a list of assigned tasks for each of your team members, and display them in columns on the same screen.
  • Worklists on dashboards will now always display records a multiple row format rather than columns. This allows more information to be presented without clutter. The additional fields are indented for better visual separation, and the extra whitespace makes things more readable.

Mouse interaction

  • Dashboard chart widgets now have mouse interaction for line graphs, bar graphs, and scatterplots. When moving the mouse over line graphs and scatterplots the nearest data plot will be highlighted and its value will be displayed. On bar graphs, the value of each series on the current bar will be displayed. For quick visual distinction, the colors used to display each value are the same as the series.

Drag & drop

  • Widgets can be rearranged on a workspace dashboard by dragging them into one of three vertical columns. The order of your widgets will be saved automatically. In the near future we’ll provide a way to specify how many columns you want to display on your dashboard. We’re also exploring the ability to add widgets to worklist workspaces.

Color picker

  • Implemented a color picker (jQuery MiniColors) for allowing simple user selection of new colors for charts and gauges. See:

  • Extended the color picker tool so it provides useful color presets depending on the type of widget (e.g. gauge, chart).

Data from external URLs

  • Gauge and Counter widgets on dashboards can now specify an external URL as a data source. This data can be provided in JSON, XML, or Plaintext format. A cache option is provided so external HTTP requests aren’t generated (creating latency) for every impression. This feature allows you to bring in reporting metrics from any external system, using any backend technology. By using the HTTP protocol there are several inherent benefits: HTTP authentication, caching, query parameters, etc. For example, real-time metrics like website traffic or sales stats can be shared with the helpdesk through a simple HTTP script. In the simplest implementation, the URL just needs to return a quantitative value (a number or decimal) in the response.


  • Added a delay to dragging workspace pages, tabs, and widgets to prevent the action from accidentally intercepting clicks.
  • When adding a new record from any worklist, a message is now displayed above the list with a direct link to it. This allows you to quickly locate the record even if the worklist is sorted or filtered in a way that wouldn’t easily display it.
  • Adding a new page from the Pages worklist will now show a notification above the list with a direct link. This improves usability compared to hunting for the new page in the list.

Add watchers when creating records

  • When creating records, any number of watchers may now be added. Previously, only the current worker could be added through the “Notify me about changes” checkbox; which made it tedious to do common things like adding tasks for other workers.

Current tab is remembered

  • The current tab on a workspace page will now be remembered. If a worker navigates away and comes back it will be selected again automatically.

Change page owner

  • The owner of a workspace page can now be changed when editing it.



  • Worklist data can now be exported in JSON format.


Response Times

  • The response (wait) time between an incoming customer message and outgoing worker reply is now recorded for every interaction. The response time can be displayed as a column on message worklists. This information can be used for dashboards and reports. Historical response times are automatically calculated during the upgrade.
  • The response time is now displayed next to each sent worker message in the conversation history.
  • Each ticket conversation now records the first outgoing message and its response time. Historical data will be aggregated automatically by the upgrade process. This data is can be displayed on dashboards and ticket worklists. Response time information already exists for individual messages, but pulling this data from tickets allows you to do things like isolating the initial response time over a given date range. These metrics should generally be more reliable than individual outgoing messages because the trends are less susceptible to outliers (e.g. sending a followup message to a month old sales ticket). This metric also makes it easier to track service level agreement (SLA) performance.
  • The initial resolution date (i.e. first status change to closed) and elapsed time are now saved per ticket conversation. Historical data will be aggregated automatically by the upgrade process. This information can be displayed on dashboards and ticket worklists. These metrics helps you track how long it takes your teams to resolve inquiries and support requests. The initial resolution date is used because it’s not susceptible to repeated status changes between open and closed – for example, when a contact asks a completely new question after resolution, or when they reply with “Thanks!” and you have to close the ticket again.

  • The new ‘Closed On’, ‘First Response’ and ‘First Resolution’ fields are now displayed on ticket profiles.

New Activity Notification on Reply

  • [CHD-3074] [CHD-1939] When a worker clicks the reply button on a conversation they will now be informed if any new activity has taken place on the ticket since they started looking at it. This gives workers the opportunity to abort a potentially duplicate reply. New activity includes: outgoing worker replies, ticket status changes to waiting/closed/deleted, or pending drafts. The reply confirmation is not shown when forwarding, resuming a draft, or when the pending drafts are all owned by the current worker.

Defunct Addresses

  • Added a new ‘defunct’ checkbox field to address records. A defunct email address is no longer a valid destination (e.g. it bounces, the person no longer works for the company, etc). Defunct addresses will not be recommended when composing mail or auto completing email fields. They will be tagged as ‘defunct’ on address worklists. The defunct bit can be set with peek, bulk update, or Virtual Attendant behavior. The field can also be filtered, searched, subtotaled, and added as a worklist column. If you’ve been using a custom field to track defunct addresses you should bulk update those records to the new built-in field.
  • When a recipient is banned or defunct, it will now be clearly denoted with a tag next to their address on ticket profiles. This will help identify the rare situations where a defunct contact is resurrected.


  • When the parser receives a bounced message that contains a ‘message/delivery-status’ attachment, it will add the original recipient to the bounce so you can merge it with the appropriate message in their history. The parser will also check if the bounce is permanent (e.g. user not found). If so, the recipient will automatically be marked as ‘defunct’. This saves a lot of data entry hassle.


Filter message worklists by broadcast

  • [CHD-2767] Added an ‘is broadcast’ field to message worklists. Messages can now be filtered based on whether or not they were sent in bulk as part of a broadcast. This field can be used by Virtual Attendant behavior, dashboards, and reports to ignore messages that were sent automatically. For example, when reporting on worker replies it is often desirable to not include messages that were sent in a marketing broadcast as part of a worker’s totals. It’s also possible that a dashboard may now report on only messages that were sent in a broadcast.

Assign an owner when composing mail

  • [CHD-2565] When composing mail, an owner may be added in a single step. Previously an owner could only be assigned once the ticket was created. This required hunting down the new ticket, which is a productivity killer.

Quick Search


  • When the quick search text input is focused, hints will now be displayed in a floating tooltip. These hints provide examples of all the various search options that are available for a given field. Tips are automatically generated for all the standard field types: string, multi-line, date, number, picklist, checkbox, multi-checkbox, etc. Previously, a worker not only had to read the documentation and memorize the quick search syntax, but they also had to discern the data type of each field by name (e.g. “Created” is a “date”). Hints train workers how to use the quick search feature in real-time.

  • Status is now a quick search option on ticket worklists. You only need to enter the first letter of each status – e.g. (o)pen, (w)aiting, (c)losed, (d)eleted. You can combine them (“o,w”) and negate them (“!d”).

  • When quick searching on a picklist or multi-checkbox custom field, the provided hints in the tooltip will include all of the possible options for that field. For example, an ‘Industry’ custom field may have options like ‘Software’, ‘Health’, and ‘Retail’. A worker could quick search this industry field by using the first few unique letters from each option. For example, ‘re’ would match ‘Retail’.
  • You can wrap text in quotes to perform an exact quick search. By default, text searches are partial. For example, a search for ‘ticket’ would match ‘my ticket subject’, but “ticket” will only match fields with that exact value.

  • You can quick search worker-based fields for ‘any’ or ‘none’.

  • Ticket worklists can be filtered by ‘group’ using quick search. The first few distinct letters of a group name can be used as a shortcut. Multiple groups can be specified with commas (e.g. support, sales). Negation is handled by prefixing an exclamation point (e.g. !development).

Virtual Attendants


Partial list variables

  • When setting a list variable from a Virtual Attendant action, the objects retrieved from the worklist can be further reduced to a subset from the beginning, end, or a random sample. This provides an easy way to select a few objects from a sorted worklist with many rows. For example, you may want to find a single worker when dispatching work. This also allows you to build lists like “The Top 10 Overdue Tasks” or “The Top 25 Oldest Tickets”, when the full lists are much longer.

New condition: Worker calendar

  • Added a new ‘worker calendar is…’ condition to worker behavior in Virtual Attendants. This simplifies the situation where you want to quickly check a worker’s availability over a given time period before performing actions. Previously this was only possible by using a private worker list variable with complicated filters and checking its length. For example, you may want to check if a worker is available before sending them a report about overdue tasks.

New action: Ban email address

  • Virtual Attendants can mark addresses as ‘banned’ from address actions.

Plugin Extensions

  • Virtual Attendant condition and action plugins can now specify which events they bind to using the ‘events’ param for the extension in the plugin.xml manifest. Each event entry can use ‘*’ for wildcards, and if the param doesn’t exist it will assume the extension should due added to every event.

Plugin Development


  • The Devblocks Cache service can now set an expiration on content that is cached to disk. This was always possible with the memory-based Memcached engine.

  • Added a DevblocksPlatform::strSecsToString() helper method that will display a number of seconds in human-readable format (e.g. 24 minutes, 15 seconds; 7 weeks, 2 days, 17 hours). This is also available from templates using the ‘devblocks_prettysecs’ modifier.

Maintenance Updates


Cerb6 (6.1.1) is a maintenance update released on September 4, 2012; it contains 25 minor fixes and usability enhancements from community feedback covering the recent 6.1 update. You can follow these instructions to upgrade.

  • [CHD-3087] Fixed the ‘Response Time’ filter on Message worklists.

  • [Workspaces/Dashboards] Fixed an issue where subtotal and worklist widgets on shared dashboards could be blank when viewed by a different worker than the one that created them.

  • [Workspaces/Dashboards] Added more input validation to the manual values that are given to counters and gauges.

  • [Workspaces/Dashboards/Usability] Fixed a small offset in the mouse interaction on bar chart widgets. When the mouse crossed the halfway point in a bar’s width the next bar was selected.

  • [CHD-3086] [Mail/Compose/Usability] Added ‘me’ and ‘nobody’ shortcut buttons to the owner field on the compose popup. (Thanks to Niek Beernink @ for the patch!)

  • [CHD-3092] [Mail/Compose/Parser] Fixed a PHP warning in the compose mail code when the worker is null (e.g. mail is sent from Virtual Attendants).

  • [Updater] Fixed an issue with migrating the schema of the ‘ticket’ table to ‘reopen_at’ when strict mode is enabled. This had to do with legacy NULL values being converted to NOT NULL.

  • [Virtual Attendants/Export] Fixed an error when exporting Virtual Attendant behaviors that contain invalid roles (e.g. deleted roles).

  • [CHD-3088] [Workspaces/Dashboards] FIXED: When using a scatterplot widget, the ‘each record’ field on the x-axis should count sequentially and not jump around by ID. Using IDs can create gaps in the chart.

  • [CHD-3094] [Mail/Defunct] You can now filter opportunity leads by the ‘is_defunct’ field.

  • [CHD-3089] [Broadcast/Compose] FIXED: The worker_id is inconsistent depending on if scheduler ran from a session or not.

  • [CHD-3085] [Search/Messages] FIXED: Unable to filter message worklists on “is not” worker.

  • [CHD-3083] [Messages/Quick Search] The ‘group’ filter is missing from Quick Search in message worklists.

  • [Web-API/Search] Fixed an issue when searching through the Web-API using the ‘in’ operator. The API passes all arguments as strings. A non-array value was being discarded, which resulted in that particular criteria being ignored. If it was the only criteria, the entire result set could be returned. String arguments to ‘in’ are now automatically converted to single element arrays.

  • [Web-API/Search] Multiple values can be passed to a Web-API search filter (e.g. “in”) by JSON encoding them. This returns a string that is converted back into an array by Devblocks. Even without a JSON library available to the caller, the format can be simulated – [“value1”,”value2”] – and the quoted elements should be escaped. In PHP you can simply use the json_encode() function.

  • [Mail/Filtering] Mail filtering can now perform regular expressions against headers that have multiple instances (e.g. Received). The values are concatenated into a single string with line feed (\n) delimiters. A regular expression check can use the ‘m’ flag to match against each line. Any matching line will pass the criteria.

  • [Mail/Parser/Relay] The parser will now identify a relayed worker message as a reply before any mail filtering behavior runs. This enables filtering to authorize or reject messages that are relayed from workers outside the helpdesk (e.g. from mobile devices). This is useful when disabling the built-in relay authentication – for example, when using Blackberries/Exchange or other combinations that are known to ignore the RFC-2822 standard headers.

  • [Mail/Parser/Relay] Refactored the worker relay authentication code in the mail parser to make it easier for developers to introduce alternative authentication schemes. By default Cerb will expect the ‘in-reply-to’ header to contain a special hash that was sent in the relayed ‘message-id’. In some environments this doesn’t work as expected because the RFC-2822 standard headers aren’t sent back.

  • [CHD-2897] [Mail/Relay] Workers can now send file attachments through the mail relay from their external email accounts and mobile devices. Previously these attachments were just ignored. Now they will be displayed in Cerb and sent on to the ticket’s recipients.

  • [CHD-3084] [Mail/Search/Usability] The response time and resolution time fields on message and ticket worklists can now be filtered using human readable times like “> 2 days” and “< 1 hour, 15 mins”. Previously, the filters displayed in seconds, which wasn’t very intuitive.

  • [Mail/Reply/Drafts] Fixed an issue where two workers replying to the same ticket within 30 seconds sometimes didn’t trigger the ‘recent activity’ warning. The pending draft check has been increased to 5 minutes in the past, which should be sufficient to cover the gap between a draft being saved and another worker viewing the ticket.

  • [Virtual Attendants/Unschedule] Fixed an issue where re-editing an action that unscheduled behavior apparently reset the ‘On:’ and ‘Behavior:’ options. These were right in the database but not reflected properly in the interface.

  • [Mail/Relay/Setup] Added a ‘Mail Relay’ page to the Mail menu in Setup. Here admins can enable or disable the built-in relay authentication. This is useful when an environment is unfriendly to the RFC-2822 spec (e.g. In-Reply-To; using Exchange and Blackberry devices) and the built-in authentication can be replaced with Virtual Attendant behavior in Mail Filtering.

  • [Mail/Setup/Usability] When setting up ticket masks, the number of possible combinations is now displayed with commas as thousands separators. For example, 123456789 is displayed as “123,456,789”. This improves readability.

  • [Code Cleanup/Dashboards] Fixed an issue where configuring worklist widgets on dashboards could lead to conflicts between the view_id of the widget and the worklist chooser in the popup.


Cerb6 (6.1.2) is a maintenance update released on September 14, 2012; it contains 15 minor fixes and usability enhancements from community feedback covering the recent 6.1 update. You can follow these instructions to upgrade.

  • [Code Cleanup/Mail/Setup] The cardinality tester on ticket masks will now work with numbers of any length (including those bigger than PHP_MAX_INT).

  • [Social] Updated Cerb’s Facebook URL.

  • [CHD-3103] [Mail/Filtering] Added a ‘Sender is worker’ condition to Virtual Attendant behavior on the Mail Filtering event.

  • [CHD-3106] [Setup/Groups] FIXED: Admins can’t see the ‘groups’ menu in the global navigation bar unless they’re the manager of at least one group.

  • [CHD-3105] [Mail] Fixed an issue where the personalized ‘From:’ name sometimes wasn’t populated on outgoing messages when using snippet placeholders.

  • [Setup/CSS] Fixed a minor CSS issue in recent Chrome versions where the ‘disabled’ overlay banner on plugin icons wasn’t properly aligned.

  • [CHD-3124] [Mail/Message/Worklists] Message worklists may now be filtered by ticket status. The status field can also be used in quick search and subtotals.

  • [CHD-3126] [Worklists/Ticket/Subtotals] FIXED: When subtotaling a ticket worklist by Owner, clicking on ‘(none)’ returns an error instead of filtering the list to unassigned items.

  • [CHD-3129] [Knowledgebase] Fixed an issue when saving knowledgebase articles where minor latency could cause the save to be aborted and the page to reload with the previous content. This happened most often when using Chrome.

  • [CHD-3131] [Opportunities] FIXED: Deleting an opportunity from peek doesn’t reload the underlying worklist.

  • [CHD-3133] [Subtotals/Custom Fields] Subtotals can now be used on all ‘url’ and ‘number’ based custom fields.

  • [CHD-3111] [Context Links] Added some extra error checking to make sure context links are only being created for valid, non-zero IDs.

  • [CHD-3125] [Support Center] FIXED: The Support Center doesn’t wrap long lines in Ticket History messages.

  • [CHD-3130] [Snippets/Virtual Attendants] Added an MD5 modifier to snippet placeholders. It can be used like {{token md5}} to create a hash based on the placeholder value. This is especially useful in Virtual Attendant behavior.
  • [CHD-3128] [Virtual Attendants] FIXED: Workers will no longer receive two copies of a relayed message when they are an owner and a watcher on the same conversation.


Cerb6 (6.1.3) is a maintenance update released on October 9, 2012; it contains 24 minor fixes and usability enhancements from community feedback covering the recent 6.1 update. You can follow these instructions to upgrade.

  • [CHD-3140] [Mail/Quick Search] FIXED: Quick search on a custom ‘owner’ (worker) field for ‘nobody’ breaks on ticket worklists.

  • [CHD-3139] [Mail/Worklists/Orgs] FIXED: Clicking on ‘(none)’ when subtotaling a ticket worklist by organization doesn’t filter to only rows without an organization.

  • [Virtual Attendants/Notifications/Usability] In the ‘New notification for me’ event, the ‘Send email to me’ action now allows placeholders in the subject field.

  • [CHD-3138] [Virtual Attendants/Usability] FIXED: Disabled workers are shown in the ‘Add:’ fields for watchers and notifications in several Virtual Attendant actions.

  • [Code Cleanup/Performance/Parser] Removed an extraneous INNER JOIN between the message database table and ticket when looking up mail message-id headers in the parser. This should yield a minor performance improvement. (Thanks to Robert Middleswarth for pointing this out)

  • [CHD-3135] [Virtual Attendants/Simulator] The Virtual Attendant simulator will now include closed tickets in the random sample as well.

  • [Web-API/Usability] REST API requests can search for multiple values when using OPER_IN/OPER_NIN by encoding the value as a JSON array. For example: [‘option1’,’option2’]

  • [Web-API/Usability] Fixed an issue in JSON search results from the Web API. The results were in an object with the ID as a property key, when they should be returned as an array to preserve the ORDER BY preference. The properties of objects are not guaranteed to be in any particular order in Javascript, and numeric properties are often sorted in ascending order for performance reasons (especially in Chrome). This meant that in some contexts, the results of a search through the API would provide the proper first page of results, but the order of those items would always be sorted by ID. This behavior depends on the JSON consumer (e.g. Chrome, NodeJS) and did not affect XML results.

  • [Web-API/Usability] Fulltext searching from the Web API will now always be performed in expert mode by default. A JSON array can be provided to change this behavior, with the first element being a search term, and the second element being one of: any, all, phrase, expert

  • [Search/Fulltext] Punctuation will no longer be stripped from the query when performing fulltext searches in expert mode. This was removing double quotes from phrases and +/- from boolean operators. This affected the REST-API and the worker GUI.

  • [Web-API/Performance] The Web-API will now lazy-load linked records on GET requests and search results when the ‘expand’ parameter is provided. This is a comma-delimited list of extra fields to include. If a field loads another object, all of those fields will be returned as well. For example, if you want all the associated organization fields to be returned when retrieving a ticket, include ‘ticket_org_’ in the ‘expand’ parameter. The reason this information is not returned by default is because there can be a dozen linked records per result. It’s inefficient to load all this information when it isn’t needed, so the ‘expand’ parameter allows you to specify when you need more info, like custom fields, watchers, etc.

  • [Web-API/Workers] The REST API now provides a /workers/me URI (.json or .xml) for retrieving information about the current worker. This is useful when authenticating with API credentials so the client can be associated with a particular worker record.

  • [Code Cleanup/PHP] Fixed some PHP strict mode warnings.

  • [CHD-3171] [Mail/Parser/Defunct] The parser will now mark addresses defunct based on an ‘Original-Recipient’ or ‘Final-Recipient’ in the message/delivery-status. Previously it only used the original recipient, which Exchange seems to rarely provide.

  • [CHD-3166] [Mail/Search] FIXED: When a new group is added and tickets are moved into it, searches in existing sessions don’t show those tickets until logging out and logging back in.

  • [CHD-3169] [Tickets/Profiles/Aesthetics] FIXED: The “no recipients” warning wraps to two lines.

  • [CHD-3174] [Virtual Attendants] FIXED: Prepend/append/replace content actions will now work for the “Before sending worker message” event.

  • [CHD-3146] [Virtual Attendants] Tokens will now be substituted properly on the ‘Set Subject’ action of a ‘New message on a group conversation’ event.

  • [CHD-3163] [Virtual Attendants] Added a placeholder for group watchers to ‘Message’ events.

  • [Aesthetics] Updated the favicon.ico icon to the Cerby mascot.

  • [Web-API/Authentication] Web-API HTTP requests can now be authenticated against a custom ‘X-Date:’ header instead of ‘Date:’. This is useful in environments where the Date header cannot be set – such as XMLHttpRequests originating from jQuery, browser extensions, etc.

  • [Web-API/Notifications] Web-API requests for /notifications/list can now provide the ‘sortAsc’ and ‘sortBy’ parameters to sort the results.

  • [Gravatar] The default Gravatar is now served from rather than each individual helpdesk. This helps when firewalls, intranets, or local development machines are involved. It was necessary due to changes with the way Gravatar serves images now (they use a cache at instead of relaying the URL back to the requesting browser).

  • [Performance/POP3] The POP3 ‘num_fails’ counter will now only be reset after a successful connection if the current count is higher than zero. This eliminates an UPDATE query for each mailbox on every run of the POP3 checker scheduled job (nearly 288 per day per mailbox if checked every 5 minutes). WGM has On-Demand machines running this query needlessly more than 60,000 times per day.


Cerb6 (6.1.4) is a maintenance update released on November 26, 2012; it contains 11 minor fixes and usability enhancements from community feedback covering the recent 6.1 update. You can follow these instructions to upgrade.

  • [Platform/Proxy] Devblocks will now check the ‘X-Forwarded-Proto’ HTTP header when determining if generated URLs should use SSL. This header is written by proxies that intermediate in HTTPS with clients while communicating with the backend app over HTTP.

  • [CHD-3178] [Platform] Auto-hyperlinking doesn’t properly handle trailing parentheses in URLs.

  • [CHD-3162] [Virtual Attendants/Mail Filtering] Custom field placeholders are now properly replaced in Mail Filtering behavior.

  • [CHD-3147] [Virtual Attendants] Added simulator output for some of the most popular VA actions

  • [CHD-3101] [Mail/Filters] Added a “Send email” action to the “Before new mail is accepted” event

  • [CHD-3180] [Virtual Attendants] Group custom field tokens now work properly

  • [CHD-3177] [Mail/Reply] A worker’s own actions will no longer affect the recent activity warning that shows up prior to replying to a message. This only happened in a few situations, but it was especially prominent with multiple browser tabs.

  • [CHD-3047] [Mail/Compose] The compose popup now requires at least one valid ‘To:’ email address before saving.

  • [CHD-3185] [Search/Custom Fields] Fixed an issue when searching custom fields using the “blank or in list” operator. Previously, some searches were only returning results where the custom field was blank, and disregarding the given values.

  • [CHD-3127] [Community Portals] FIXED: Blank dialog when adding multiple custom templates in a row.

  • [CHD-3191] [Localization] Fixed an issue where the jquery.combined.min.js script file may be truncated during download in some environments due to a malformed character encoding. (Thanks to Oleg Petrachev for reporting the issue!)