# 2024 03 21 release notes (core)

## Release summary

The information detailed on this page refers to updates included in the following releases to the Patchworks Production environment:

**Patchworks core (backend)**

| Release version | Release date    |
| --------------- | --------------- |
| 1.13.7          | 21st March 2024 |

**Patchworks dashboard (frontend)**

| Release version | Release date    |
| --------------- | --------------- |
| 1.10.3          | 21st March 2024 |

New features, updates, and enhancements of note are summarised by product area, below:

* [Marketplace](#marketplace)
* [Process flows](#process-flows)
* [Custom scripts](#custom-scripts)
* [General UI](#general-ui)
* [Breaking changes](#breaking-changes)
* [Prebuilt connectors](#prebuilt-connectors)

{% hint style="danger" %}
This release includes preparation for an upcoming breaking change related to the validation of field mapping transform functions. Please ensure that you check the [Breaking changes](#breaking-changes) section.
{% endhint %}

## Marketplace

<table><thead><tr><th width="180">Type<select><option value="edbc33cea7f34e16b3a205c7a65c3172" label="New" color="blue"></option><option value="d8457d8925c74fab90fa132d141b764b" label="Change" color="blue"></option><option value="030babd6286a4fe19214da74af9afb98" label="Enhancement" color="blue"></option><option value="9a29ee576f43448f9b1623baca59c3db" label="Bug" color="blue"></option><option value="L09Gy6z2y7VD" label="Breaking change" color="blue"></option></select></th><th width="388">Summary</th><th>Ref #</th></tr></thead><tbody><tr><td><span data-option="9a29ee576f43448f9b1623baca59c3db">Bug</span></td><td><strong>Timeout error on connector installation</strong><br>Fixed issue where installing a particularly large connector would occasionally stall and eventually time out.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""> <a href="../../connectors-and-instances/working-with-connectors/installing-a-connector">Installing a connector</a></td><td>CPT-1857</td></tr><tr><td><span data-option="9a29ee576f43448f9b1623baca59c3db">Bug</span></td><td><strong>Connector info for private apps</strong><br>Fixed issue where information for private app connectors was not displayed as expected.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""> <a href="../../marketplace/private-marketplaces/uploading-private-marketplace-resources/uploading-scripts-to-your-private-marketplace">Uploading private apps</a></td><td>CPT-2569</td></tr></tbody></table>

## Process flows

<table><thead><tr><th width="180">Type<select><option value="edbc33cea7f34e16b3a205c7a65c3172" label="New" color="blue"></option><option value="d8457d8925c74fab90fa132d141b764b" label="Change" color="blue"></option><option value="030babd6286a4fe19214da74af9afb98" label="Enhancement" color="blue"></option><option value="9a29ee576f43448f9b1623baca59c3db" label="Bug" color="blue"></option><option value="L09Gy6z2y7VD" label="Breaking change" color="blue"></option></select></th><th width="388">Summary</th><th>Ref #</th></tr></thead><tbody><tr><td><span data-option="edbc33cea7f34e16b3a205c7a65c3172">New</span></td><td><strong>Download all logs for a process flow run</strong><br>It's now possible to download all logs for a given process flow run - access the run logs page, then click the hamburger icon for the required run and choose the <em>download logs</em> option. Logs are downloaded (in CSV format) and a download link is emailed to the email address associated with your Patchworks account.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""><a href="../../process-flows/error-reporting-and-exception-handling/run-logs-and-queue/working-with-run-logs/downloading-run-logs">Downloading run logs</a></td><td>CPT-2199</td></tr><tr><td><span data-option="edbc33cea7f34e16b3a205c7a65c3172">New</span></td><td><strong>Import/export cross-reference lookup values</strong><br>It's now possible to export and download a cross-reference lookup table in CSV format, and to import cross-reference lookup values from a CSV file. Exported files are automatically downloaded to your computer, but can also be retrieved (temporarily) from a new <em>General settings</em> > <em>File downloads</em> page.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""><a href="../../process-flows/cross-reference-lookups/importing-and-exporting-cross-reference-lookups">Importing &#x26; exporting cross-reference lookups</a></td><td>CPT-2119</td></tr><tr><td><span data-option="edbc33cea7f34e16b3a205c7a65c3172">New</span></td><td><strong>Import/export de-dupe data</strong><br>It's now possible to export and download a de-dupe data pool in CSV format, and to import de-dupe data from a CSV file. Exported files are automatically downloaded to your computer, but can also be retrieved (temporarily) from a new <em>General settings</em> > <em>File downloads</em> page.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""><a href="../../process-flows/building-process-flows/process-flow-shapes/advanced-shapes/de-dupe-shape/importing-and-exporting-de-dupe-data">Importing &#x26; exporting de-dupe data</a></td><td>CPT-2119</td></tr><tr><td><span data-option="030babd6286a4fe19214da74af9afb98">Enhancement</span></td><td><strong>Notification links</strong><br>Where applicable, entries in the notification centre now link to relevant area of the dashboard (for example, an installed process flow notification links to that process flow).<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""><a href="../../marketplace/the-notification-centre">Notifications</a></td><td>CPT-2104</td></tr><tr><td><span data-option="030babd6286a4fe19214da74af9afb98">Enhancement</span></td><td><strong>De-dupe shape</strong><br>The de-dupe shape now supports XML payloads, as well as JSON.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""><a href="../../process-flows/building-process-flows/process-flow-shapes/advanced-shapes/de-dupe-shape">De-dupe shape</a></td><td>CPT-1507</td></tr><tr><td><span data-option="L09Gy6z2y7VD">Breaking change</span></td><td><strong>Input validation for all transform functions</strong><br>Additional validation has been added to all transform functions, which means that input values must be of the expected type. For example, if a transform function is expecting a number value for its input and a string is provided, validation will fail. <br><br>This is a phased change - in THIS release, any validation issues will be reported in run logs but this will not cause process flows to fail. In the subsequent phase, validation will be enforced, causing process flows to fail if errors are found. <br>For more information please see the <a href="#breaking-changes">Breaking changes</a> section.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""><a href="../../process-flows/building-process-flows/process-flow-shapes/standard-shapes/map-shape/working-with-field-transformations/available-transform-functions">Transform functions</a></td><td>CPT-1901</td></tr><tr><td><span data-option="9a29ee576f43448f9b1623baca59c3db">Bug</span></td><td><strong>Route shape filter causing route to fail</strong><br>Fixed issue where the next step in a route would fail if a route filter returned a null value. <br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""> <a href="../../process-flows/building-process-flows/process-flow-shapes/standard-shapes/route-shape">Route shape</a></td><td>CPT-2582</td></tr><tr><td><span data-option="9a29ee576f43448f9b1623baca59c3db">Bug</span></td><td><strong>Empty field mapping names in transforms</strong><br>Fixed issue where it wasn't possible to identify mapping fields when configuring transformations if the user has not entered a display name for the mapped field. Now, if no display name is added, the schema name is displayed when configuring a transform function.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""> <a href="../../process-flows/building-process-flows/process-flow-shapes/standard-shapes/map-shape">Map shape</a></td><td>CPT-2567</td></tr><tr><td><span data-option="9a29ee576f43448f9b1623baca59c3db">Bug</span></td><td><strong>Filter shape settings not displayed</strong><br>Fixed issue where filter settings were not displayed if the the associated schema is changed and becomes invalid.  <br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""> <a href="../../process-flows/building-process-flows/process-flow-shapes/standard-shapes/filter-shape">Filter shape</a></td><td>CPT-2463</td></tr></tbody></table>

## Custom scripts

<table><thead><tr><th width="180">Type<select><option value="edbc33cea7f34e16b3a205c7a65c3172" label="New" color="blue"></option><option value="d8457d8925c74fab90fa132d141b764b" label="Change" color="blue"></option><option value="030babd6286a4fe19214da74af9afb98" label="Enhancement" color="blue"></option><option value="9a29ee576f43448f9b1623baca59c3db" label="Bug" color="blue"></option><option value="L09Gy6z2y7VD" label="Breaking change" color="blue"></option></select></th><th width="388">Summary</th><th>Ref #</th></tr></thead><tbody><tr><td><span data-option="030babd6286a4fe19214da74af9afb98">Enhancement</span></td><td><strong>Custom scripts</strong><br>The <strong>bcmath</strong> extension is now installed for PHP scripts.<br><img src="https://2440044887-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLYNcUBVQwSkOMG6KjZfz%2Fuploads%2F7ebRB4tRIozWxpBMCAoN%2Ficons8-google-docs-20.svg?alt=media&#x26;token=ac61da4e-764c-452c-b9b5-d65f188769c9" alt=""><a href="../../developer-hub/custom-scripting">Custom scripts</a></td><td>CPT-2439</td></tr></tbody></table>

## General UI

<table><thead><tr><th width="180">Type<select><option value="edbc33cea7f34e16b3a205c7a65c3172" label="New" color="blue"></option><option value="d8457d8925c74fab90fa132d141b764b" label="Change" color="blue"></option><option value="030babd6286a4fe19214da74af9afb98" label="Enhancement" color="blue"></option><option value="9a29ee576f43448f9b1623baca59c3db" label="Bug" color="blue"></option><option value="L09Gy6z2y7VD" label="Breaking change" color="blue"></option></select></th><th width="388">Summary</th><th>Ref #</th></tr></thead><tbody><tr><td><span data-option="9a29ee576f43448f9b1623baca59c3db">Bug</span></td><td><strong>Long company names</strong> <br>Fixed issue where a very long company name caused UI anomalies. </td><td>CPT-2435</td></tr></tbody></table>

## Breaking changes

### **Input validation for all transform functions**

Extra validation has been added to all [field mapping transform functions](https://doc.wearepatchworks.com/product-documentation/process-flows/building-process-flows/process-flow-shapes/standard-shapes/map-shape/working-with-field-transformations/available-transform-functions), which means that input values must be of the expected type. For example, if a transform function is expecting a `number` value for its input and a `string` is provided, validation will now fail. Previously, validation was not enforced for all transform functions.&#x20;

To ensure that customers have time to address any issues with existing process flows, this change will be implemented in two phases, as below:

<table><thead><tr><th width="228">Phase</th><th>Change</th><th>Release date</th></tr></thead><tbody><tr><td>1</td><td><strong>Warning phase</strong><br>If a process flow runs and an invalid input type is passed into a transform function, a warning message will be displayed in the <a href="../../process-flows/error-reporting-and-exception-handling/run-logs-and-queue">run logs</a>. This message includes the name of the transform function that needs to be checked/updated. <br><br>Any issues identified in this way will not cause the process flow to fail at this time. However, if identified issues are not resolved, the process flow will fail when Phase 2 of this change is released.</td><td>This release</td></tr><tr><td>2</td><td><strong>Enforcement phase</strong><br>If a process flow runs and an invalid input type is passed into a transform function, the process flow will fail. </td><td>Future release (not less than two weeks later)</td></tr></tbody></table>

### Resolving transform input issues

If you see a transform function warning message in your logs, you should access settings for the map shape and review the relevant transform function - what type of data are we expecting to be passed in?

Next, check the incoming payload for data values associated with this transform - it's likely that they are not being provided in the expected format. The resolution may involve any of the following:

* Change the data type associated with this value at source (if you have the option to do so).
* Add a transform function immediately before, which changes to the data to the required type. For example, cast a string to a number or a number to a string.
* Use a different transform function (if applicable).

{% hint style="info" %}
Please [contact support](https://doc.wearepatchworks.com/product-documentation/raising-a-support-ticket) for assistance, if needed.
{% endhint %}
