> For the complete documentation index, see [llms.txt](https://docs.taskade.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.taskade.com/changelog/changelog-2026/june-2026/june-19-2026.md).

# June 19, 2026

{% hint style="info" %}
**Developer highlights.** This section tracks API, MCP, SDK, automation, and Taskade Genesis platform changes for developers. For the full product changelog see [taskade.com/changelog](https://www.taskade.com/changelog); for release newsletters see [taskade.com/blog/updates](https://www.taskade.com/blog/updates).
{% endhint %}

## What's New:

### Utilities Piece: Data Transform Actions

The **Utilities** piece gains a set of no-credit, pure-transform actions for reshaping data inline in a flow — no AI call required. Use them between a trigger and a downstream connector to clean, convert, and summarize values.

* **Generate QR Code** (`utils.generateQrCode`) — render any text or URL into a QR image. Choose a size (150 / 300 / 600 px) and error-correction level (L / M / Q / H). The image is uploaded to your workspace Media library and the action returns `mediaId`, `mediaUrl`, `mediaKind`, and `mediaMimeType`.
* **Convert CSV to JSON** (`utils.convertCsvToJson`) — parse a CSV string into structured rows. Set whether the input has a header row, optionally supply a delimiter (auto-detected otherwise). Returns `rows` (array) and `count`.
* **Convert JSON to CSV** (`utils.convertJsonToCsv`) — serialize a JSON array into CSV. Toggle the header row and optionally set a delimiter (defaults to comma). Returns `csv` (string) and `count`.

***

### Utilities Piece: Number Summaries

Four discrete actions for summarizing a list of numbers:

* **Average** (`utils.calculateAverage`) — mean of the supplied numbers. Returns `average`.
* **Sum** (`utils.calculateSum`) — total of the supplied numbers. Returns `sum`.
* **Count Unique Values** (`utils.countUniques`) — number of distinct values in the list.
* **Min / Max** (`utils.getMinMax`) — highest or lowest value, selectable via a `max` / `min` mode.

***

### Utilities Piece: Text Helpers

Six string-manipulation actions for cleaning and converting text in a flow:

* **Concatenate Text** (`utils.concat`) — join multiple parts with an optional separator.
* **Find Text** (`utils.find`) — locate a search value in a string (first match or all), with optional case sensitivity. Returns `found`, `index`, indices, and `count`.
* **Slugify Text** (`utils.slugify`) — turn text into a URL-safe slug, with optional casing and separator.
* **Strip HTML** (`utils.stripHtml`) — remove markup and return plain text.
* **HTML to Markdown** (`utils.htmlToMarkdown`) — convert an HTML fragment to Markdown.
* **Markdown to HTML** (`utils.markdownToHtml`) — render Markdown to sanitized HTML.

See the [Action & Trigger Reference](/automations/automation/actions.md).

***

## Improvements & Fixes:

* General stability, performance, and connector reliability improvements.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.taskade.com/changelog/changelog-2026/june-2026/june-19-2026.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
