We support publishing data feeds to an Amazon S3 bucket or SFTP endpoint. This allows you to export contacts as they enter (or exit) a flow, and record the occurrence of other events. The file path, type, naming, schema, control protocol, and optional conditions for Simon data feeds are broken out below.
# Usage
When setting up a new flow, scroll to the bottom of the page to section titled "Configure Data Feed (Optional).
Select "Yes".
Fill in the setup fields and save or launch the flow.

# Feed configuration
## Data format
Select the format of the data export from the following options:
CSV
TSV
JSONL
## (Optional) Hash identity
Optionally, select the checkbox if you want a contact's identity information to be hashed using a SHA-256.
## Data target
Select S3 or FTP.
## Host/bucket
Enter the name of the S3 bucket or SFTP endpoint you wish to write to. Do not include the scheme (e.g. S3://) or a trailing slash (/) in the name.
## Path
Enter the file path you wish to write to. Do not include a beginning or trailing slash (/) in the name. Files are uploaded to the following path: `/path/year/month/day.
`
## Personalized content
Add fields to the data feed in addition to the default values in the schema. Add a name and value using the same steps to setup Custom Contexts.
# Feed format
## File types
Two types of files are produced: data files and control files.
## File name
Data files are named by the `client_flow_operation_random_YmdHMS
` with an extension that indicates the file type (either ".csv" or ".jsonl").
## Data file schema
The file will include, for each contact, one entry for the data feed and one for each applicable flow action.
Parameter | Description |
identifier | Email Address |
timestamp | Time of export, with format: Y-M-D HH:MM:SS (e.g. "2017-03-14 17:54:13") |
segment_name | Name of the segment |
flow_name | Name of the flow |
action | Flow action associated with the entry |
variant | Experiment variant (null if there is not one) |
operation | Type of operation performed (either 'add' or 'remove') |
Custom Contexts (optional) | |
## Control files
Control files are named identically to their corresponding data file with the prefix `control_
` and are always JSON files. They contain a single JSON object with the following structure:
Parameter | Description |
delta | Reserved for future use; always true |
file_count | Reserved for future use; always 1 |
files | A single-element array of metadata; see below |
The files array will contain a single JSON object that provides information about the corresponding data file. It contains:
Column Title | Column Title |
bucket | The specified bucket |
path | The specified path |
file_type | Either "csv" or "jsonl" |
file | Full URL of data file |
rows | The number of rows in the data file |
flow_ID | The ID of the flow |
flow_name | The name of the flow |
Currently this produces one control file for every data file, but in the future it may produce a single control file for many data files.