> For the complete documentation index, see [llms.txt](https://flowmate.gitbook.io/flowmate-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flowmate.gitbook.io/flowmate-documentation/id-linking.md).

# ID Linking

ID Linking is a feature that ensures FlowMate can recognize the same object across different systems. It prevents duplicates, supports updates on existing records, and makes flows more reliable.

### What ID Linking Does

When ID Linking is enabled in a step, FlowMate will:

* **Save the ID** of an object the first time it passes through the flow.
* **Reuse the same ID** in later steps of the flow to update the existing record instead of creating a new one.
* **Link multiple IDs** if the object is created in more than one connected system.

This way, FlowMate always knows whether it is dealing with a new object or an existing one.

{% hint style="info" %}
**Important:** ID Linking is saved per connector/system.\
This means:

* If you want to track an object across multiple systems, you must enable ID Linking in **each step** that connects to those systems.
* For example: enabling it in your CRM action will store the CRM ID, but to also store the HR system ID, you must enable it in the HR action as well.
  {% endhint %}

### Typical Use Cases

**Sync flows (trigger → update or create)**\
Check if an object already exists in the target system and either update it or insert it.

**Avoid duplicates across systems**\
Ensure that records created in one system can be updated consistently in another.

### Enabling ID Linking in a Flow

Every step in FlowMate has an **ID Linking option**.

1. Open the step settings.
2. Enable the checkbox **“Save Id”**.
3. Select the appropriate field from the dropdown.

<figure><img src="/files/RRLSbFFyKohPf56eio55" alt=""><figcaption></figcaption></figure>

Once enabled:

* The first time an object runs through the flow, FlowMate saves the ID from the system.
* The ID is stored in the step metadata as `recordUid`.

```json
"metadata": {
  "recordUid": "00vFg000007EpI0IAK"
}
```

You can reference this value in mappings using JSONata:

```jsonata
metadata.recordUid
```

This makes it easy to pass existing IDs to later steps, for example to update a record instead of creating a new one.
