Page tree
Skip to end of metadata
Go to start of metadata

New Name: Marketing Cloud Personalization

Interaction Studio (formerly Evergage) is now known as Marketing Cloud Personalization. The new name reflects our mission and vision for innovation in Salesforce Marketing Cloud. We wish we could snap our fingers to update the name everywhere, but you can expect to see the previous name in various places until we replace it.

Interaction Studio's ETL system supports the ingestion of feed files that are either delivered to the Interaction Studio SFTP site or loaded manually via the feeds dashboard page. Users, transactions, products, categories and custom catalog object feeds are supported out of the box in the formats outlined in the articles in this section. 


File Naming and Extensions

  • All files are expected to be ingested in the RFC-4180 CSV format. Character encoding must be UTF-8. All max lengths are in UTF-8 encoded bytes.
  • File naming is done consistently across every feed type. The structure is always file naming convention followed by a date. The date is used to load files in order if multiple files are loaded at the same time, the automatic listener will process files in the order they are provided. An example of a valid file name is user-2020-07-20_06-00-05.csv
  • Additional files can be compressed and/or encrypted. Valid compressed file extensions are .zip and .gz. The valid encryption extensions is .pgp. Details on leveraging PGP encryption are available at the bottom of this article


File Header Structure

Files processed by built-in ETL components are handled consistently regardless of the ETL type. Some feed types have access to additional header definitions because of the target data type but fields generally fall into a few different categories.

  • id- The id of the object being loaded. There may be instances where this header is named slightly different for example in the user feed.

    • id values are case sensitive so Shirt and shirt represent two distinct items in the catalog.
    • id values must not have any whitespace.
  • attribute:- The structure for handling of any system and custom attribute definitions. All fields starting with attribute:will be processed as the attribute type defined in the schema or set when creating the custom attribute. When using a custom attribute, the value must be the statically defined name of the attribute not the label used to display the attribute in Interaction Studio. Custom date attributes are formatted as Unix epoch timestamps.
  • relatedCatalogObject:- The structure for handling related catalog objects in various ETLs. 
  • categories- only applicable to a select set of built-in catalog objects (Product, Article, & Blog)


Frequency and Cadence

The Interaction Studio Gears system has a built-in listener for files in the FTP. Every 15 minutes, each enabled ETL component checks all files in the /dataset/inbound directory for any files that match the expecting filename structure for that individual ETL. The general recommendation for file processing frequency is daily, but if you need files to be processed more frequently or you need to make updates to stale data, consider loading files at an hourly cadence. This ensures the system has time to process files completely and that a pending file processing queue does not start to build up.


System Fields

Interaction Studio has several built-in system fields to support attributes. The system fields available for each type of ETL are different, but have explicit handling when being processed. Creating attributes with the same name as any system attribute will result in negative consequences for the corresponding object type. Examples of this include an item's name attribute in a Product ETL file - name is a system field but will be read from a column headed by attribute:name. Creating a custom attribute on the Product catalog object in the Catalog and Profile Objects Setup with the name set as name may have negative consequences during ETL processing.


Unsetting Values/Default Values

All ETL types except for the UserETL are able to unset values of fields (except where the field is required like an id) to their defaults. This is triggered by a record having an empty value for a given column when being parsed. This lack of value is treated explicitly as null and removes any existing values for that key on the record in Interaction Studio. This can be used to remove an old description from an item, remove a custom attribute from a transaction, or remove categories from a product.

It is expected that for every column in a file, every record has its corresponding value even in a delta file.

There are certain system fields whose unset values are slightly different than a lack of value and are listed in the table below. Some of these keys only apply to a subset of ETL types but are all listed here.

System FieldDefault Unset Value
price

0

listPrice0
rating0
numRatings0
inventoryCount1 (the item is considered in stock)
published1/1/1970
expirationDate of processing + 100 years (if it ran on 7/4/2020, expiration date is 7/4/2120)
promotableTrue (the item is promotable) 


Errors and Logging

  • When errors are recorded in an ETL they are logged in the logs modal of the Review Execution screen. Each error type will be recorded in the logs.
  • If a column header does not reflect an existing system field, custom attribute, or another valid column header as defined in the specification of the ETL type, then no records will be loaded. All column values must reflect valid data.
  • If any individual field in a record does not map correctly to the data type inferred by its header (such as an invalid date or a boolean attribute whose received value is 100), then the record will be skipped entirely and not loaded into the system. If there are enough instances of this then the entire job will fail with no data being committed to the system.


Feed Limits

There are limits to some attributes and connections per item that are allowed to be made. These limits will cause a record to fail if the record contains more than the maximum allowed.

  • Maximum number of Category values per Item: 15
  • Maximum number of Related Catalog Objects per Catalog Object Type: 20
  • Maximum Number of Values Associated to a Related Catalog Object on a Single Item: 50
  • Maximum Number of Attributes per Catalog Object Type: 30
  • Maximum Number of User Attributes per User Feed: 50
  • Maximum Number of User Attributes per Dataset: 100
  • Maximum Number of Line Items per order: 1000


File Size Limits

  • There is no explicit file size limit, but we recommend limiting file size to no more than 5 GB