e-satisfaction

E-commerce & checkout

An online store is one continuous journey, and the best feedback comes from listening at each stage of it. Someone browsing your catalogue can tell you whether they're finding what they want; someone who just placed an order can tell you how checkout felt; and someone who received their delivery can tell you whether the whole experience held up. e-satisfaction lets you collect at all three moments with the same installation — the only thing that changes is which survey you show, where, and what context you attach.

This page shows how to wire collection into a store and push order details so every response arrives tagged with the transaction it belongs to. It builds on the standard website install, so make sure the head snippet is in place first.

The idea: one install, three moments

Once the install snippet loads collection on your storefront, you decide where surveys appear from the dashboard and what context they carry from your store's code. There's nothing store-specific in the snippet itself — your workspace ID is enough. What makes it an "e-commerce" setup is the combination of display types you choose and the order metadata you push.

Placement is configured in Web integration, not in code

The survey's display type — a floating box, a classic box, or an embed rendered into a CSS selector you choose — along with its position, mobile behavior, frequency caps, and allowed domains all live on the Web integration page. Your store code only loads collection and pushes metadata; it never decides how the survey looks or where it sits.

While customers browse

On product and category pages you want feedback that doesn't get in the way. A floating box survey is ideal here — it sits in a corner, invites a quick rating, and never blocks the page. Set the display type to box on the Web integration page and choose its position there.

While browsing, you usually don't have a transaction yet, so keep the metadata light — push what you know about the person rather than an order. A region, a logged-in customer ID, or a loyalty tier is plenty:

Esat.updateMetadata('YOUR-QUESTIONNAIRE-ID', {
  responder: {
    customer_id: '12345',
    region: 'Athens'
  }
});

At checkout and order confirmation

The order confirmation page is the highest-signal moment in the journey — the customer has just finished, the experience is fresh, and you have every order detail on hand. An embed survey works beautifully here: it renders inline into a CSS selector you pick on the Web integration page, so it reads as part of the confirmation rather than an overlay.

This is also where you push the richest questionnaire metadata — the order itself. Because the confirmation page already has these values server-side, push them as the page loads:

Esat.updateMetadata('YOUR-QUESTIONNAIRE-ID', {
  questionnaire: {
    order_id: '1234567890',
    order_date: '2026-06-16 15:20:32',
    order_value: '218.40',
    store: 'Athens'
  }
});

Push order details as the page loads

On a confirmation page you have the order in hand immediately, so call updateMetadata early — before the survey opens. The sooner the metadata is set, the more reliably it's attached to the response. See Pushing metadata for timing and case-sensitivity details.

After the sale

Not every question belongs on the confirmation page. Delivery, returns, and "would you recommend us" land better a few days later, by message. For that, follow up off-site using messaging pipelines and follow-up sequences over email, SMS, or Viber. You can load the recipient list automatically with a data bridge from your order system, or import it.

This keeps the on-site experience clean while still capturing the post-purchase view — and because it's driven from the dashboard, you can adjust the timing and channel without changing your store.

Use consistent metadata names

The single most important habit in an e-commerce setup is naming your metadata fields the same way everywhere — on browse pages, on the confirmation page, and in your follow-up lists. When store, order_value, and customer_id mean the same thing across the whole journey, your segments and routing rules work no matter where the response came from. Define the fields once in the dashboard (Admin → Data & AI) and reuse those exact names everywhere.

A typical store setup

Install the snippet

Add the website install snippet to your storefront's shared layout so it loads on every page. On Magento, use the RequireJS script variant described on that page.

Define your order fields

In the dashboard under Admin → Data & AI, create the metadata fields you'll attach — for example order_id, order_date, order_value, store, and customer_id.

Set placement in Web integration

On the Web integration page, choose a box survey for browse pages and an embed survey (with its CSS selector) for the confirmation page.

Push metadata at each stage

Call updateMetadata with light responder context on browse pages and full order context on the confirmation page, using your defined field names.

Add a post-purchase follow-up

Set up a pipeline or sequence to reach customers after delivery, sourcing recipients from a data bridge.