> For the complete documentation index, see [llms.txt](https://docs.frends.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.frends.com/release-notes/frends-6.4/new-features.md).

# New Features

New features introduced in Frends 6.4

In addition to the following completely new features in Frends 6.4, you can also [check out the release notes for version 6.4.0 here](/release-notes/frends-6.4/version-6.4.0.md) and [the breaking changes here](/release-notes/frends-6.4/breaking-changes.md).

## Visual Data Mapper <a href="#visual-data-mapper" id="visual-data-mapper"></a>

The new Visual Data Mapper shape lets you build data transformations in a Process by drawing connections between a source and a target schema, instead of writing the mapping as code.

A schema can be generated from a sample JSON document or uploaded directly. A Task's result schema can also be generated from a test run of the Task. In the mapping editor you connect source fields to target fields and can edit any mapping as an expression. The source of a mapping can be the result of an earlier Task, Call Subprocess, DMN task, Code shape or a previous Visual Data Mapper shape, a Process Variable, a variable assigned in a Code shape or, inside a Foreach loop, the current item.

The editor shows problems while you work: invalid mappings are drawn in red, and you are warned about broken mappings, data type mismatches and several sources mapped to the same target. If a later schema change breaks a mapping, the Process editor warns about it and lists what broke. Strict schema validation can be turned on to require the mapped data to match the target schema exactly. The Frends assistant can generate the mappings for you, and Frends MCP can build Visual Data Mapper shapes too.

The work on the mapper also brings low-code improvements to every shape; see below.

## Low-Code Improvements <a href="#low-code-improvements" id="low-code-improvements"></a>

Text-mode parameters can now contain conditionals and loops, so text such as a message body, a file or an SQL statement can be built without switching to C# expression mode:

* `{{#if <condition>}} ... {{else if <condition>}} ... {{else}} ... {{/if}}` includes a part of the text only when a condition is true.
* `{{#each <collection>}} ... {{/each}}` repeats a part of the text for each item, where `{{this}}` is the current item and `{{@index}}` its position.

Conditionals and loops can be nested, and their conditions and collections are ordinary C# expressions that can use `#var`, `#result`, `#env` and the other references.

The expression editor checks the syntax of text, expression and code parameters as you type and points to the exact place of an error, instead of reporting it only when the Process is saved. Shapes and Process Variables with a schema give IntelliSense suggestions for their properties, including the .NET members of their values, and syntax highlighting covers more of the low-code syntax. The Frends assistant can also complete simple Expression and Statement shapes written in text mode.

## Certificate Management <a href="#certificate-management" id="certificate-management"></a>

Certificates used by Agents can now be managed centrally in Frends and delivered to the Agents automatically, without logging in to the Agent servers.

Certificates are uploaded for an Agent Group through the [Frends Platform API](/reference/frends-platform-api/introduction.md), and Frends installs them on every Agent of the group, including Agents that join it later. Three kinds of certificates are supported:

* **HTTPS server certificates** for the Agent's HTTPS endpoint. An Agent Group can have several active at once, and the Agent picks the matching one for each connection by host name (SNI). A new certificate takes effect without restarting the Agent.
* **Client certificates** that Processes use to authenticate to other systems. A Process or Trigger refers to one by name with `#cert.<name>.<property>`, for example `#cert.partnerapi.thumbprint`, so a renewed certificate is picked up without editing the Process. References are validated in the Process editor and at deployment, and a certificate cannot be deleted while a deployed Process still uses it.
* **Issuer certificates** that HTTP Triggers trust when they authenticate callers with client certificates, so a private certificate authority no longer needs to be installed on the Agent servers.

Certificates can also be ordered from an ACME certificate authority, such as Let's Encrypt or ZeroSSL, or any other ACME directory. Orders can use the `http-01`, `dns-01` or `dns-persist-01` challenge, and wildcard domains are supported with `dns-01` and `dns-persist-01`. Certificates ordered with `http-01` or `dns-persist-01` are renewed automatically when two thirds of their validity has passed. For `dns-01`, Frends creates the renewal order and waits for the new DNS record to be published. ACME-issued certificates can be revoked at the certificate authority. The status of each certificate on each Agent is reported back to the Web Portal.

Certificate private keys and ACME account keys can be encrypted at rest in the Frends database with a key-encryption certificate that you provide. See the [breaking changes](/release-notes/frends-6.4/breaking-changes.md#breaking-changes-in-version-640) for the settings.

Certificates are delivered only to Agents running Frends 6.4 or newer.

### Legacy Agent Removed <a href="#legacy-agent-removed" id="legacy-agent-removed"></a>

As announced with Frends 6.3, the Legacy Agent is no longer supported. Frends 6.4 no longer includes the Legacy Agent or its installer, and Processes can no longer be compiled for the .NET Framework 4.7.1 target. Agent Groups that still run the Legacy Agent must be moved to the Cross-platform Agent before updating; see [Updating from Legacy Frends](/guides/setup-and-installation/updating-from-legacy-frends.md).

{% hint style="warning" %}
Tenants that still have Legacy Agents in use will not be updated to Frends 6.4. Move all Agent Groups to the Cross-platform Agent to receive the update.&#x20;
{% endhint %}


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.frends.com/release-notes/frends-6.4/new-features.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
