The Feedance AI features is rolling out.
Check it out!

What is Emarsys?

Emarsys, now marketed as SAP Emarsys Customer Engagement within SAP Engagement Cloud, is an omnichannel marketing automation platform used to run personalized email, SMS, mobile push, and web campaigns. Unlike a pure advertising channel, Emarsys ingests a product catalog to power two internal mechanisms in particular: Web Extend, which tracks on-site browsing and purchase behavior, and Predict, its machine-learning recommendation engine. Both rely on a synchronized, up-to-date copy of your product data rather than a single ad-listing feed.

Because Emarsys sits inside the retention and lifecycle-marketing stack rather than the acquisition/ads stack, its feed requirements are closer to a CRM data source than a shopping ad feed: it needs stable product identifiers, category structure, pricing, and availability so it can trigger things like back-in-stock alerts, price-drop emails, and cross-channel product recommendations.

Why connect your product feed to Emarsys?

Emarsys uses your catalog data to power several documented, product-data-driven triggers and modules, including:

  1. Personalized recommendations across email, web, and mobile, generated by the Predict engine from browsing and purchase behavior matched against your catalog.
  2. Back-in-stock alerts, triggered when a previously unavailable item's available field flips back to true.
  3. Low-in-stock notices and price-drop campaigns, both driven by comparing new catalog values (price, msrp, availability) against previously stored values.
  4. Cross-channel consistency, since the same catalog feeds email product blocks, on-site web recommendations, and mobile push/in-app product cards from one source.

A feed that is incomplete, stale, or inconsistently formatted breaks these triggers silently — recommendations degrade, stock alerts stop firing, and price-drop emails go out with wrong figures.

How Emarsys Predict and Web Extend use your catalog data

Predict is described by Emarsys as a self-learning recommendation engine that combines two data sources: behavioral tracking collected via the Web Extend JavaScript API (web) and the Emarsys SDK (mobile), and the structured product catalog you upload. Anonymous browsing builds general affinity models across your whole catalog; behavior tied to an identified contact (someone who has logged in or clicked through from an Emarsys campaign) builds a personal profile for that shopper.

This matters for feed quality because Predict can only recommend what is correctly represented in the catalog: products need a stable, unique item identifier that behavioral events can be matched against, accurate category paths so affinity models are built canonically, and a live available flag so out-of-stock items stop being recommended.

What feed format does Emarsys require?

Emarsys accepts product catalog data in one of two documented formats, selected in the product data settings screen:

  1. Emarsys CSV format — a proprietary UTF-8 encoded .csv file using Emarsys's own field names.
  2. Google Product Feed (GPF) format — if you already generate a Google Shopping-style feed, Emarsys can often reuse it as-is, provided it contains every field Emarsys itself requires. GPF support has to be switched on for your account by Emarsys Support before you can select it.

For the CSV format specifically, Emarsys documents strict syntax rules: fields are comma-delimited, multi-value fields (such as category or brand) use a pipe | separator, category paths use a > hierarchy separator (for example Men > Shoes > Running), decimal numbers must always use a period as the separator regardless of your locale, dates must be YYYY-MM-DD, and timestamps must be YYYY-MM-DD T HH:MM:SS Z in UTC. The file's first line must be the header row, and Emarsys requires a newline character within the first 265 KB of the file specifically to detect and reject accidental binary file uploads. Files can optionally be delivered .gz-compressed to save bandwidth on large catalogs. Upload is documented over FTP or FTPS; SFTP support is inconsistently documented across Emarsys's own help pages — one page lists it as supported for product catalog uploads, another states explicitly that SFTP is not supported for feed/data collection delivery, so confirm directly with Emarsys support before relying on it.

Which product attributes does Emarsys require?

Emarsys documents a set of standard product catalog fields. item is the one field explicitly called out as required and non-localizable, since it's the identifier matched against behavioral and sales data; the remaining fields below are the standard fields Emarsys's own documentation and product-catalog-update features (back-in-stock, low-stock, price-drop) rely on. Most of these fields can be localized using an [field]_[language] suffix (for example title_it for an Italian title); item cannot be localized. Any custom attribute you add must be prefixed with c_ (for example c_color or c_size).

FieldRequiredFormatExampleNotes
itemYesUnique stringSKU-12345Product identifier; matched against Web Extend and sales data; cannot be localized.
titleStandard fieldTextMen's Running ShoesLocalizable via title_[lang].
linkStandard fieldAbsolute URLhttps://shop.example.com/p/12345Product detail page URL.
imageStandard fieldAbsolute URLhttps://cdn.example.com/img/12345.jpgWebP links are supported generally, but the Predict email widget does not support the WebP format.
zoom_imageStandard fieldAbsolute URLhttps://cdn.example.com/img/12345_zoom.jpgSecondary, higher-resolution image asset.
categoryStandard fieldHierarchical path, > separatedMen > Shoes > RunningMultiple category paths are pipe-separated; used to build affinity/statistical models, so keep it canonical.
priceStandard fieldDecimal, period separator89.99Decimal separator must be a period regardless of locale.
msrpStandard fieldDecimal, period separator109.99Used as the comparison price for price-drop campaigns.
availableStandard fieldBoolean-style valuetrueItems marked unavailable are excluded from recommendations and search, and drive back-in-stock alerts when flipped to true.
brandStandard fieldText (multi-value supported)NikeMultiple brand values are pipe-separated.
descriptionStandard fieldTextLightweight running shoe with breathable mesh upper.Localizable via description_[lang].
item_group_idRequired for Parent/Child on GPFShared string across variantsSHOE-STYLE-100Groups size/color variants under one parent for the Parent/Child catalog feature; must not collide with any item value or Emarsys raises a namespace clash error.

Emarsys's own docs do not publish hard character-limit caps for fields like title or description the way some ad platforms do, so no specific limit is stated here.

How to connect Emarsys with Feedance

  1. In Feedance, create or select the product feed you want to send to Emarsys, and choose Emarsys as the destination. Pick whether to output Emarsys's proprietary CSV format or a Google Product Feed-style format — remember GPF has to be enabled on your Emarsys account by Emarsys Support first.
  2. Map your source product data to Emarsys's standard fields (item, title, link, image, category, price, msrp, available, brand, description), and prefix any extra attributes you want carried across with c_ so Emarsys accepts them as custom fields.
  3. If you sell products in variants (size, color, etc.), map a shared item_group_id value across those variant rows so Emarsys's Parent/Child catalog feature can group them — keep item and item_group_id values out of each other's pool, since a duplicate between the two triggers a namespace clash parse error.
  4. Set delivery to FTP or FTPS (the protocol Emarsys documents most consistently for catalog delivery) and optionally enable .gz compression if your catalog is large.
  5. Confirm the feed's field delimiter, decimal separator, and date/timestamp formatting match Emarsys's CSV rules (comma-delimited, period-decimal, YYYY-MM-DD dates) before the first sync, since Emarsys expects the agreed format to stay consistent on every subsequent upload.

How often should your Emarsys feed update?

Emarsys documents that catalog uploads delivered by file (FTP/FTPS) are batch-processed — read on an hourly cadence, or less often if that's how the account is configured — while data pushed through the Emarsys API can be written in near real time, typically within seconds. Every upload must contain the full, current state of each item; Emarsys does not support partial/delta updates, so unchanged fields still need to be resent every cycle.

Emarsys's own guidance is to upload product data at least once a day, and more frequently than that if fields likely to change intraday — price or availability in particular — are important to your campaigns, since stale price or stock data directly breaks price-drop and back-in-stock triggers.

Common Emarsys feed errors and how to fix them

Error / symptomLikely causeFix
Parse error: Namespace clash, same id is used for both variants and groups.An item value and an item_group_id value are identical — Emarsys treats item IDs and group IDs as one shared pool.Ensure every item and item_group_id value is unique across both fields, not just unique within its own column.
"More than 1,000 errors were found" / checking terminatedThe CSV file is heavily malformed — for example broken quoting, inconsistent columns, or an encoding issue across many rows.Fix structural issues at the source (encoding, delimiter, header/column count) rather than row-by-row; Emarsys stops validating after 1,000 errors because the file is considered too corrupted to check further.
Encoding errors while parsing rowsThe file contains characters that aren't valid UTF-8.Re-export the file as UTF-8 and confirm no legacy encoding (e.g. Latin-1/Windows-1252) slipped through from the source system.
Upload marked "missing" in Update HistoryA scheduled upload didn't arrive — Emarsys notes this is usually caused by a temporary network issue on the sending side.Confirm the scheduled job actually ran and completed on the delivery side (FTP/FTPS/API), then re-trigger the sync.
Recommendations/search missing a productavailable is set to false (or missing/unparsable) for that item.Verify the available value is present and correctly formatted for every in-stock item.

Emarsys feed optimization tips

  1. Keep category values canonical and consistent across your catalog — Emarsys explicitly notes that fields like category, brand, and author are used to build statistical/affinity models, so inconsistent labeling (e.g. mixing "Running Shoes" and "running-shoes") weakens recommendation quality.
  2. Never send delta/partial updates — always resend the full current state of every item, since Emarsys does not support partial catalog updates.
  3. Keep item and item_group_id values in strictly separate ID spaces to avoid namespace clash errors when using the Parent/Child variant feature.
  4. Push price and availability changes on a tighter cadence (hourly, or via the API for near real-time) than the rest of the catalog, since these two fields directly drive price-drop and back-in-stock triggers.
  5. Avoid the WebP image format specifically for products that appear in Predict's email recommendation widget, since that widget doesn't render WebP — use JPEG/PNG links for those images even if WebP is used elsewhere on the storefront.

Frequently asked questions

Is the Emarsys feed the same as my Google Merchant Center or Meta catalog feed?
Not exactly — Emarsys ingests its own product catalog to power Predict recommendations and Web Extend behavioral tracking rather than paid ad listings. That said, Emarsys can often reuse an existing Google Product Feed-format file directly, as long as it contains every field Emarsys requires.

Does Emarsys require CSV or can I send GPF?
Both are supported. CSV is Emarsys's native format; GPF has to be explicitly enabled for your account by Emarsys Support before you can select it.

What's the one truly required field?
item — the unique, non-localizable product identifier that behavioral and sales data get matched against. The other standard fields (title, link, image, category, price, msrp, available, brand, description) aren't documented with an explicit "required" flag, but recommendations and catalog-update triggers depend on them being present and accurate.

How do I represent product variants like size or color?
Use Emarsys's Parent/Child catalog feature by populating a shared item_group_id across variant rows. Keep that value's namespace separate from your item values to avoid a namespace clash parse error.

How often does Emarsys expect the feed to update?
At least once a day per Emarsys's own guidance, and more frequently — ideally hourly or via the near-real-time API — if price or stock levels change during the day.

Does Emarsys support SFTP delivery?
This is inconsistently documented on Emarsys's own help pages: one page lists SFTP as supported for product catalog uploads, while another states SFTP is not supported for feed/data-collection delivery and that FTP/FTPS should be used instead. Confirm directly with Emarsys support for your account before depending on SFTP.

Can I add my own custom attributes to the feed?
Yes — any custom field name must be prefixed with c_ (for example c_color or c_size) for Emarsys to accept it alongside the standard fields.

Schedule your 15-minute demo now

Schedule my demo

We’ll tailor your demo to your immediate needs and answer all your questions. Get ready to see how it works!