# AutoClean

## Contents

1. What is Auto Clean?&#x20;
2. Getting Started
3. AI Value Mapping (Enums)
4. Clean up operations

## What is AutoClean?

AutoClean is a capability that allows end users to clean data with one click. Your Osmos Uploader comes with prebuilt AutoClean capability for certain scenarios detailed below but also empowers developers with the ability to transform data on the fly by creating their AutoClean functions.  AutoClean also allows end users to quickly map a dropdown list for enums.

{% hint style="info" %}
AutoClean is a feature for the Standard Mode Uploader.
{% endhint %}

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

## Getting Started

**Step 1**: Once you have mapped the input (source) column(s) to the output (destination) column, you can activate the AutoClean toggle to on. &#x20;

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

**Step 2**: If there is data that can be cleaned, it will display a sample of the data to be cleaned.  Review the sample of the new values and hit Accept.

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

If there is no data to clean, you will receive a message that no data can be AutoCleaned.

**Step 3:**  The AutoCleaned data will maintain a purple visual to let you know it has been cleaned through the AutoClean process.  Any field can still be edited directly in the field itself.

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

Step 4:  To Review all of your AutoCleaned Records, you can select the Filter at the top.

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

### AI Value Mapping through AutoClean

{% hint style="info" %}
Note: For[ Uploader embedded deployments,](/developer-docs/configuring-autoclean-for-your-uploader.md) you can update the configuration schema to always have AutoClean on for a specific field(s). &#x20;
{% endhint %}

### AI Value Mapping AutoClean

Value Mapping is a capability that allows end users to map enumerations ("enums").  Enums are integrated as part of the Uploader Validation.  Users can now map a group of constants to a specific valid option.  For the Standard Mode, the list of valid options is configured in your validation and the mapping occurs in AutoClean.&#x20;

#### AI Value Mapping in Action

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

### Osmos AutoClean Operations

The table below describes what cleanup operations will be performed by AutoClean, depending on the data type of the destination field, and whether or not the field is required.

| Destination Field Type | Nullable                                                                                                                                                                                                                   | Required                                                                                                                                                                                                                                                                                                                                                         |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Integer                | <ol><li><p>Strip non-numeric symbols</p><ul><li>Example: $8 -> 8</li></ul></li><li><p>Round to the nearest whole number</p><ul><li>Example: 8.34 -> 8</li><li>Example: $8.79 -> 9</li></ul></li></ol>                      | <p></p><ol><li><p>Strip non-numeric symbols</p><ul><li>Example: $8 -> 8</li></ul></li><li><p>Round to the nearest whole number</p><ul><li>Example: 8.34 -> 8</li><li>Example: $8.79 -> 9</li></ul></li><li>If no value is in the source data, enter 0</li><li>If source data is not parse-able as a number, it will remain unaltered and show an error</li></ol> |
| Float                  | <p></p><ol><li><p>Strip non-numeric symbols</p><ul><li>Example: $8.79 -> 8.79</li></ul></li></ol>                                                                                                                          | <ol><li><p>Strip non-numeric symbols</p><ul><li>Example: $8.79 -> 8.79</li></ul></li><li>If no value is in the source data, set to 0.0</li><li>If source data is not parse-able as a float, it will remain unaltered and show an error</li></ol>                                                                                                                 |
| Date                   | If data is not parse-able as a date, it will be set to null                                                                                                                                                                | If data is not parse-able as a date, it will remain unaltered and show an error                                                                                                                                                                                                                                                                                  |
| Datetime               | If data is not parse-able as a date and time, it will be set to null                                                                                                                                                       | If data is not parse-able, it will remain unaltered and show an error                                                                                                                                                                                                                                                                                            |
| Boolean                | <p></p><ul><li>0, F, False, N, No (case insensitive) will map to false</li><li>1, T, True, Y, Yes (case insensitive) will map to true<br><br></li></ul><p>If data is none of the above, the output will be set to null</p> | <p></p><ul><li>0, F, False, N, No (case insensitive) will map to false</li><li>1, T, True, Y, Yes (case insensitive) will map to true</li></ul><p><br></p><p>If data is none of the above, it will remain unaltered and show an error </p>                                                                                                                       |
| Text                   | Text will remain unaltered by Osmos AutoClean                                                                                                                                                                              | Text will remain unaltered by Osmos AutoClean                                                                                                                                                                                                                                                                                                                    |

{% hint style="info" %}
Note: You can also set up your own instances of AutoClean to perform custom cleanup operations on input data by setting up [Server Side Validation Webhooks](/developer-docs/validation-and-transformation-webhooks.md) for the destination connector of your uploader.  Please review the [AutoClean Developer Docs](/developer-docs/configuring-autoclean-for-your-uploader.md) for more info. &#x20;
{% endhint %}


---

# Agent Instructions: 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:

```
GET https://docs.osmos.io/uploader/standard-mode/autoclean.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
