# Data processing (Function/Formats)

Incoming data must be mapped before BuildingPro Suites can store it on the correct asset and attribute. This is done with **formats** and, if needed, **functions**.

## What formats are for

A **format** defines how incoming payload data is assigned to asset data in BuildingPro Suites.

Use a format to:

* map payload values to specific asset attributes
* identify which asset should receive the data
* define whether the identifier comes from the payload or the topic
* define how the timestamp is detected
* use paths such as **JSONPath** to select values from structured payloads
* use **MQTT wildcards** when the asset identifier is part of the topic

In simple terms, a format answers this question:

> **Which incoming value belongs to which asset attribute?**

{% hint style="success" %}
Create new formats while configuring a connection whenever possible. This is the recommended workflow.
{% endhint %}

{% hint style="warning" %}
Use the **Formats** menu mainly to review and edit existing formats.
{% endhint %}

## What functions are for

A **function** is used when a format alone is not enough.

Use a function to:

* calculate new values from incoming data
* convert or normalize values before they are stored
* combine multiple payload fields into one identifier
* restructure incoming data for mapping
* apply custom logic that cannot be expressed with the format configuration alone

In simple terms, a function answers this question:

> **How should the incoming data be transformed before it is assigned?**

## How formats and functions work together

Formats and functions are often used together:

1. A connection receives data.
2. The format identifies the target asset and maps payload fields to attributes.
3. An attached function can transform or enrich the data when needed.

This is especially useful when:

* the payload does not contain a ready-to-use identifier
* values must be combined, cleaned, or converted
* the relevant asset must be derived from topic parts or nested JSON fields

## Related pages

* [Configure a Encoder/Decoder Format](https://docs.buildings.ability.abb/collection/mandatory-base/platform-core/connect-hub/data-processing-function-formats/configure-a-format)
* [Functions](https://docs.buildings.ability.abb/collection/mandatory-base/platform-core/connect-hub/data-processing-function-formats/functions)
