> For the complete documentation index, see [llms.txt](https://motivlabs.gitbook.io/impulse-user-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://motivlabs.gitbook.io/impulse-user-manual/content-manipulators-motators/csv-store-manipulator.md).

# CSV Store Manipulator

The CSV Store manipulator is used to store CSV records into ImpulseSync storage. This is useful for using a CSV to store data for jobs to retrieve and use.&#x20;

## File Support

This only supports CSV files.&#x20;

### Demonstration Video

{% embed url="<https://youtu.be/9SbCMquVnkY>" %}

## Properties

| Property      | Purpose                                                                                                                | Required                |
| ------------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| columnIndex   | A comma separated list of column indexes (0 based) to use as the store key for storing the row.                        | True                    |
| binaryFieldId | Id of the field to get the binary from. If not provided, the binary will be taken from the first field of type binary. | False                   |
| deliminator   | The deliminator value to use when combining colums for each row into a string value.                                   | False (defaults to `,`) |
| skipFirstRow  | Determines if the first row of the CSV should be skipped, i.e., if the CSV has a header                                | False                   |
| storeKey      | A liquid template value to prepended to the selected column index value for the store key.                             | False                   |
| storeAsArray  | Determines if the record should be stored as an array of field values. Rather than a deliminated string.               | False                   |

## Specifics

Each row/record of the CSV will be stored into ImpulseSync storage. The store key is based on the `columnIndex` values chosen and the `storeKey`.&#x20;

If more than one column index is provided, each value will be appended to the key. Allowing for multiple column values to be concatenated.&#x20;
