> For the complete documentation index, see [llms.txt](https://docs.onum.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.onum.com/pipelines/actions/utils/unique.md).

# Unique

{% hint style="info" %}
See the changelog of this Action type [here](/actions-changelog/unique.md).
{% endhint %}

## Overview

The **Unique** Action stores a list of unique values received from a given event field. An event will be sent out via an output port each time a new value is identified. Furthermore, you can configure a list of all the events stored in its memory to be sent periodically via a different port.

{% hint style="warning" %}
In order to configure this action, you must first link it to a Listener. Go to [Building a Pipeline ](/pipelines/building-a-pipeline.md)to learn how to link.
{% endhint %}

## Ports

These are the input and output ports of this Action:

<details>

<summary>Input ports</summary>

* **Default port** - All the events to be processed by this Action enter through this port.

</details>

<details>

<summary>Output ports</summary>

* **Default port** - Events are sent through this port if no error occurs while processing them.
* **Error port** - Events are sent through this port if an error occurs while processing them.
* **New port** - Emits any event that is not already on the list as soon as it is detected.

</details>

## Configuration

{% stepper %}
{% step %}
Find **Unique** in the **Actions** tab (under the **Utils** group) and drag it onto the canvas.
{% endstep %}

{% step %}
To open the configuration, click the Action in the canvas and select **Configuration**.
{% endstep %}

{% step %}
Enter the required parameters:

<table><thead><tr><th width="178">Parameter</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td><strong>Field in the event to be hashed</strong></td><td>The field providing the events to the Action.</td><td></td></tr><tr><td><strong>Hashed output field</strong></td><td>Give the output field a name.</td><td></td></tr><tr><td><strong>Hash function</strong></td><td>Select the hash operation to apply to the input values (<a href="/pages/JsTIZSMkK6tVNVmmd5Zg">CRC-8</a>, <a href="/pages/j4MDKgFjb0rwdqkyTwmB">CRC-16</a>, <a href="/pages/xouEET433qnTnxwCAUuo">CRC-24</a>, <a href="/pages/DiqUtEjGakHuxOPTyWCK">CRC-32</a>, or <a href="/pages/aLIDE1doARTgp01q5fhn">Hash 64</a>).</td><td></td></tr><tr><td><strong>Seconds of warm up</strong></td><td>You can optionally add a warm-up period. This will be the number of seconds to wait until the first version of the list of stored events is marked as complete and ready to be sent. </td><td></td></tr><tr><td><strong>Bypass hash calculation</strong><mark style="color:red;"><strong>*</strong></mark></td><td>Select <em>true</em> to bypass the hash calculation if the value is null, or <em>false</em> to ignore it.</td><td></td></tr></tbody></table>
{% endstep %}

{% step %}
Click **Save** to complete the process.
{% endstep %}
{% endstepper %}
