Main site Open admin

Eulada Help Center

Everything you need to run your review program. Widgets, emails, coupons, moderation, and more.

Welcome to Eulada #

Eulada is a self-hosted reviews platform built for independent ecommerce brands. This guide walks you through everything from first install to advanced settings.

Eulada collects, moderates, and displays customer reviews and Q&A on your product pages. It ships with three core pieces:

Widgets

A review widget for product pages, a compact star badge for listings, and a site-wide reviews feed.

Email engine

Post-purchase review requests, reminders, and coupon rewards, all fully editable with live preview.

Admin dashboard

Moderate reviews, reply publicly, manage your team, and track performance.

Quick start checklist #

The fastest path to live reviews on your store.

  1. Connect your store. Install the Eulada app from the BigCommerce App Marketplace, or follow the manual setup if you are on another platform.
  2. Add the widget. Paste the <div class="eulada-reviews"> snippet into your product page template. Eulada picks it up automatically.
  3. Configure your brand. Upload your logo, pick your primary and star colors, and set your sender name and email.
  4. Verify your sending domain. Add the SPF, DKIM, and DMARC records we provide so emails land in the inbox, not spam.
  5. Review your email copy. Tune the request, reminder, and coupon templates. Use the live preview on the right.
  6. Flip the kill switch on. While the switch is off, Eulada tracks eligible orders but does not send. Flip it on when you are ready.
  7. Import historical reviews (optional). If you are migrating from Yotpo or another platform, use the CSV importer.
Tip You do not have to do all of this at once. Most stores run in audit-only mode (kill switch off) for a few days to watch the worker process orders before sending a single email.

Core concepts #

A quick vocabulary lesson before you dive in.

Store

A store is a single brand or storefront. Most customers run one store; agencies and multi-brand operators can add additional stores from the admin. Every setting, review, and email template is scoped to a store.

Review request cycle

When an order fulfills, Eulada waits review_request_delay_days (default: 14), then emails the customer a review request. If they do not leave a review, a single reminder goes out review_reminder_delay_days (default: 5) later. That is the entire lifecycle. No third email, no nagging.

Moderation

New reviews land in a moderation queue. You (or someone on your team) approve, reject, or mark them as spam. Approved reviews are visible on your site; rejected and spam reviews are hidden but kept for audit.

Coupon engine

Optionally, approved reviews can trigger a discount coupon sent by email. Codes can be minted dynamically in BigCommerce or pulled from a pre-uploaded pool.

Widgets overview #

Eulada ships three display surfaces, each as a single JavaScript file.

FilePurposeWhere it goes
/reviews.js Full review widget: summary panel, "Customers say" AI topics, filters, photos, admin replies, write-review modal. Product detail pages.
/stars.js Compact star badge with rating average and review count. Clicks jump to the full widget. Product listings, search results, above the fold on product pages.

Installing on your store #

One script tag plus one placeholder div. That is it.

BigCommerce (Stencil)

Edit your product page template (typically templates/pages/product.html) and add the snippet where you want the widget to appear.

<!-- Eulada review widget -->
<div class="eulada-reviews"
     data-product-id="{{product.id}}"></div>
<script src="https://eulada.com/reviews.js"
        data-store-id="YOUR_STORE_ID"
        defer></script>

Star badge (for listings)

<div class="eulada-stars"
     data-product-id="{{product.id}}"></div>
<script src="https://eulada.com/stars.js"
        data-store-id="YOUR_STORE_ID"
        defer></script>

You only need the <script> tag once per page. Multiple .eulada-stars elements on the same page all pick it up.

Shopify, Wix, custom HTML

The snippet is identical. Use your platform's variable for product ID wherever you see data-product-id. If you can render a product's unique ID into the page, Eulada can find reviews for it.

Your store ID Your store ID is a small integer (1, 2, 3...) assigned when your store is created. Find it in the Eulada admin under Settings → Store Information. The ID scopes the widget to the right tenant; it is not a secret, but sharing the wrong one will pull reviews from the wrong store.

Data attributes reference #

AttributeWhereWhat it does
data-product-idcontainer divRequired. The unique product ID from your store.
data-product-namecontainer divOptional. Shown in the JSON-LD schema and the Write Review form.
data-store-idscript tagRequired. The integer store ID that scopes the widget to your tenant.

Missing a data-product-name? Eulada falls back to the page's <title> or h1. Always prefer passing it explicitly.

Caching behavior #

Eulada sets tight cache headers so your deploys propagate fast.

  • Widget JS files (reviews.js, stars.js): Cache-Control: public, max-age=300 (5 minutes). When we ship a bug fix, you do not wait hours for browsers and CDNs to pick it up.
  • Review data: fetched live on every widget load, with server-side caching (typically 60 seconds) to absorb traffic spikes.
  • AI summaries (the "Customers say" panel): regenerated only when the review base shifts meaningfully (new reviews, deletions), typically every few weeks for stable products.
CDN note If your storefront sits behind Cloudflare or another CDN, set the cache rule for Eulada assets to Respect Existing Headers. Cloudflare's default browser cache TTL can override our five-minute setting and leave you stuck on a stale widget for hours.

Review moderation #

Every review passes through a human (or a rule) before it goes live.

The Reviews tab in the admin is your inbox. New reviews default to pending and are invisible to the public until approved. You can also auto-publish reviews at or above a star threshold: turn on auto_publish and set auto_publish_min_stars to 4 or 5 to skip the queue for positive reviews while keeping lower ratings gated.

Filters

The inbox supports filters by status, star rating, verified buyer flag, date range, and product. Use the search box for full-text search across review bodies and reviewer names.

Actions

  • Approve — publish to the widget.
  • Reject — hide but retain for audit. A rejected review is never visible to the public and does not affect the star average.
  • Spam — same effect as reject, but flags the reviewer's email so future submissions from that email auto-rejetc.
  • Reply — post a public store response threaded below the review.
  • Edit — for typo fixes only. Always preserve the customer's meaning.
Good practice Respond publicly to every negative review within 48 hours. A well-handled one-star review builds more trust than ten untouched five-stars.

Statuses & workflow #

StatusPublic?Counts toward rating?Notes
pendingNoNoDefault on submit. Waiting on your moderation.
approvedYesYesLive on your widget. Included in aggregate rating and schema.
rejectedNoNoHidden from public. Kept for audit.
spamNoNoHidden. The submitting email address is blocklisted.

Status transitions are logged in the audit trail (who changed what, when) behind the scenes, so accidental approvals can be investigated after the fact.

Photos & replies #

Customer photos

Customers can attach up to 5 photos per review, 10MB each. Eulada auto-resizes to a max of 1600px and strips EXIF metadata (including GPS). Photos appear in the widget as a horizontal gallery with lightbox.

Store replies

When you post a reply to a review, it appears threaded directly below the original review with a "Response from [Store Name]" badge. Replies are written in plain text (no HTML). You can edit or delete your reply at any time.

Photo storage Photos are stored on Eulada's servers, not piped through your CDN. Data export is available on request if you ever migrate away; contact support.

Q&A (product questions) #

Shoppers ask, you (or another customer) answer, everyone benefits.

The Q&A module lives in the same widget as reviews, on a separate tab. Shoppers can post a question about a product, and you receive an email notification. You can respond as the store, or approve answers from other customers.

Notifications

Recipients of Q&A and moderation notifications are set via the notification_emails setting (comma-separated list). A common setup: customer service handles Q&A, a product manager handles review moderation, and both are in the list.

Voting

Questions and answers support upvoting. The top-voted answer shows by default; others are collapsed behind a "Show more answers" link.

Emails overview #

Three templates, one worker, full live preview.

Eulada's email engine sends three kinds of email:

Review request

Sent N days after an order fulfills. Primary driver of new reviews.

Review reminder

One follow-up, sent only if the customer has not reviewed yet.

Coupon reward

Sent when an approved review triggers a discount code.

All three share the same header (logo + brand colors), footer (unsubscribe + physical address), and rich-text body editor. Edits to brand settings (logo, primary color, star color) cascade to every email.

Email kill switch #

One toggle that controls whether customers receive email.

At the top of the Email Settings page sits a master kill switch. When OFF (the default for new stores):

  • The worker still runs and tracks eligible orders.
  • It logs exactly what it would send ("audit-only mode").
  • No email is actually delivered.
  • Orders are not marked as "sent," so when you flip the switch on, new orders from that point forward start receiving email without flooding customers with a historical backlog.
Why this exists Most stores migrate to Eulada from another platform. Sending a review request for an order that already received one from Yotpo three weeks ago is a bad day. The kill switch lets you run Eulada in parallel with your old tool for a few days, watch the audit log, and flip the switch when you are confident.

Delivery timing #

SettingDefaultWhat it controls
review_request_delay_days 14 Days to wait after order fulfillment before sending the first request.
review_reminder_delay_days 5 Days to wait after the request before sending a reminder. Reminder skips if the customer already reviewed.
review_request_max_age_days 90 Skip requests for orders older than this. Protects against backfilling old orders after a migration.

All timing values are in days. Decimals (e.g. 1.5) are supported but rarely useful. The worker checks every 60 minutes, so expect up to an hour of drift between the scheduled time and the actual send.

Brand & sender identity #

These apply to every email and the on-site widget. One source of truth.

Logo

Upload via Email Settings → Brand & sender identity. Recommended size: 300×80 px transparent PNG (or 2x for retina: 600×160 px). Formats accepted: PNG, JPG, GIF, WebP, SVG. Max size: 2 MB.

The logo appears at the top of every email with a cream background. A transparent PNG gives you the cleanest look. A full-bleed photo works but is usually overkill.

Primary color

Used for the CTA button background in every email (Write a Review, Shop Now). Pick something with strong contrast against white text. The default is a conservative green; most stores override this to match their brand.

Star color

Fills the 1-to-5 star rating links in the request email. Gold is the conventional choice; change only if it clashes with your primary color.

Sender name & email

The From header customers see. Example: "Acme Store" <[email protected]>.

  • Keep the name short and human. "Jane at Acme" converts better than "Acme Support Team."
  • The email must be on a domain where you can add DNS records, so deliverability works. See Deliverability.

Email templates #

Edit any template with the rich-text editor. Preview updates live.

Every template exposes four fields:

  • Subject line — plain text. Shorter is better; aim for 30 to 50 characters.
  • Heading — the big title at the top of the email body, below the logo.
  • Body — the main content, edited in a rich-text editor (bold, italic, links, bullet lists).
  • CTA button label — the text on the primary action button. Short; 1 to 4 words.

Review request email

The workhorse. Sent once per order, review_request_delay_days after fulfillment.

A good review request email is short: a sentence of context, a sentence asking for the review, the CTA. Resist the urge to explain your entire company. Customers skim on mobile.

Review reminder email

Sent once, review_reminder_delay_days after the request, only if the customer has not reviewed. No second reminder ever.

Reuse most of the request copy, but acknowledge that this is a gentle follow-up ("We hope you are enjoying your..."). Reminders that pretend to be the first email feel tone-deaf.

Coupon email

Sent when an approved review triggers a coupon. See the coupon engine section for how codes are minted.

Key variables: {code}, {discount_display}, {expires_display}, {expiry_note}. The expiry note is a formatted block you control; use it to render something like "This code expires on {expires_display}" or leave blank for codes that never expire.

Rich text and spacing Pressing Enter twice in the body editor produces a blank paragraph. Eulada auto-strips those on render, so whether you type one or two Enters, the email looks identical (normal paragraph spacing). The live preview reflects the rendered output, not the raw editor state.

Template variables #

Curly-brace tokens that Eulada substitutes at send time.

VariableAvailable inExample value
{customer_name}All emailsJane Cooper
{product_name}Request, reminderCast Iron Stove Gasket
{store_name}All emailsAcme Store
{site_url}All emailshttps://mountainviewhearth.com
{code}Coupon emailTHANKS-8F3K2P
{discount_display}Coupon email10%
{expires_display}Coupon email06/18/2026
{expiry_note}Coupon emailThis code expires on 06/18/2026.

Variables that do not resolve are left intact, so a typo like {costumer_name} ships as literal text in the email. Use the live preview to catch these before you save.

Preview & test sends #

See exactly what customers see, before they see it.

Live preview

The right side of the Email Settings page is a live preview pane. As you type, the preview updates within a second. Use the Desktop / Mobile / Full screen toggle at the top to test responsive layouts.

The preview uses the exact same renderer that Mailgun uses in production. If it looks right in preview, it looks right in the customer's inbox.

Test sends

Enter any email address in the Send test email box and hit send. Two important behaviors:

  • Test sends use your current draft (unsaved edits included). You do not have to save before testing.
  • Test sends ignore the kill switch. They go through whether or not emails are live for customers.
Test in Gmail and Outlook Email rendering diverges between clients. A preview that looks perfect in Gmail can drop padding in Outlook. Keep one account on each of the two major clients for sanity checks before every major copy change.

Deliverability (DNS setup) #

The difference between "lands in inbox" and "lost in spam."

To send from your own domain, add these DNS records. Exact values are provided during sending-domain setup; contact support if you do not see them in the admin.

RecordNameWhat it does
TXT (SPF) mg.yourdomain.com Authorizes Mailgun to send on your behalf. Without this, major inbox providers mark as spam.
TXT (DKIM) k1._domainkey.mg.yourdomain.com Cryptographically signs outbound mail so receivers can verify it came from you.
CNAME email.mg.yourdomain.com Enables open and click tracking.
MX mg.yourdomain.com Receives bounces and feedback loops, so your reputation updates correctly.
TXT (DMARC) _dmarc.yourdomain.com Tells receivers how to handle unauthenticated mail. Start with p=none, escalate to quarantine.
DMARC warning If your apex domain already has a DMARC record with p=reject, do not send from a subdomain that is not explicitly aligned. Test with p=none first for at least two weeks before tightening.

How coupons work #

Reward customers for leaving reviews, automatically.

When a review is approved (and the coupon engine is enabled), Eulada mints a discount code and emails it to the reviewer. Two sources for codes:

  1. Dynamic minting — Eulada calls your ecommerce platform's API and creates a fresh, single-use code for each reviewer. Supported on BigCommerce today.
  2. Pool mode — you pre-upload a CSV of codes generated elsewhere. Eulada draws one per reviewer and never issues the same code twice.

Enable the engine from Settings → Coupons. Configure the discount (percent or fixed amount), optional minimum purchase, expiry window, and which product scopes are eligible.

Issue modes #

When, exactly, does the code get minted?

Set by coupon_issue_on. Two modes:

Approve mode (default)

The code is minted when an admin approves the review. The customer has already left the submit page; they receive only the coupon email.

Why this is default: it prevents auto-approved spam from burning through codes, and rewards only reviewers whose content passes moderation.

Submit mode

The code is minted the moment the customer hits Submit. They see it immediately on the thank-you page, and receive an email copy.

Use when: you auto-approve most reviews, you want maximum conversion on the thank-you page, and you trust your moderation rules.

Common question "Does Eulada do both the thank-you page and the email?" Yes, in submit mode. The page is instant gratification; the email is the durable record customers dig up weeks later when they are ready to shop. In approve mode, only the email fires (by design).

Discount types #

TypeExampleNotes
percent10%Applied to the cart subtotal. Simple; customers understand it instantly.
fixed$10 offGood for higher-AOV stores. Watch that the minimum purchase is set high enough.
free_shippingFree shippingConverts well. Only available if your platform supports it as a discount type.

Single-use and non-stackable

Eulada-minted codes are always single-use and non-stackable. A customer can redeem the code once, and it cannot combine with other site-wide promos. This is a safety default; it is not configurable.

Expiry

Configure coupon_expiry_days to auto-set an expiry date (e.g. 90 days from issuance). Set to 0 for codes that never expire. Customers with expired codes see a clear error at checkout, not a silent failure.

Code pools #

For stores that generate codes in bulk outside Eulada.

Pool mode is useful when:

  • Your ecommerce platform does not have a good dynamic-coupon API.
  • You want codes that follow a specific format (e.g. prefixed with your brand).
  • You want exact control over total discount liability.

Uploading a pool

From the coupon settings, switch coupon_source to pool and upload a CSV with one column named code. Eulada adds them to the pool and tracks each code's status (available, issued, redeemed).

Pool exhaustion

When the pool runs out, Eulada stops issuing new codes and sends you an email alert. Review-approval actions still succeed; they just do not trigger a coupon email until you top up the pool.

BigCommerce coupon sync #

When you run in dynamic-minting mode on BigCommerce, Eulada calls the BC Promotions API to create each coupon. The coupon appears in your BC admin at Marketing → Coupon Codes with a rule name like Eulada review reward - r1234.

This means:

  • You can audit every Eulada-issued coupon in BC.
  • Redemption is tracked natively by BC; Eulada reads the redemption status back.
  • If you deactivate a coupon in BC, Eulada respects that (the code stops working, and Eulada updates its local status).

Brand identity #

One place, every surface.

Brand settings live on a single page in the admin. They apply everywhere your customers encounter Eulada:

  • Every email (header logo, CTA button color, star rating color).
  • The on-site review widget (primary color on buttons, star fills).
  • The standalone review landing page (used in "Write a review" email links).
  • The unsubscribe confirmation page.

Change once, propagate everywhere. No per-template overrides.

Team & invites #

Add teammates without sharing passwords.

Roles

RoleCan do
admin Everything: settings, team, billing, data export, destructive actions.
moderator Review moderation, Q&A responses, replies. Cannot change settings or invite teammates.

Inviting a teammate

From Team, enter an email address and pick a role. Eulada sends a signed invite link that expires in 7 days. The invitee clicks the link, sets a password, and is in. No shared credentials, no password reset dance.

Multi-store access

A single user can have different roles across different stores. The store switcher at the top-left of the admin controls which store they are currently managing. Permissions are checked per store, per action.

Imports (Yotpo, CSV) #

Bring your review history along.

Yotpo export

In Yotpo, export your reviews as CSV. The export includes reviewer name, email, rating, title, content, verified flag, and (sometimes) photos.

Upload to Eulada

From Settings → Import, choose the Yotpo preset, upload your CSV, and hit Preview. Eulada shows the first 5 rows and column mapping so you can spot issues before committing.

When you are happy, click Import. Reviews land as approved (we assume you already moderated them) and appear in your widget immediately.

Photos

Yotpo exports include photo URLs, not the photos themselves. Eulada fetches each photo, resizes, and stores it on our side. Large imports (10,000+ reviews with photos) can take several hours; you will get an email when the photo backfill completes.

Product metadata gap Yotpo exports reviews, not products. If your import shows reviews but no product names or SKUs, you need to also sync your product catalog from your ecommerce platform. On BigCommerce, that happens automatically via the app install; on other platforms, contact support to set up a product sync.

Google Product Ratings feed #

Get review stars to show on your Google Shopping listings.

Eulada publishes a Google Merchant Center compatible product_ratings XML feed at a stable URL per store:

https://your-tenant.eulada.com/feed/product-ratings/STORE_KEY.xml

Submit this URL in Google Merchant Center under Marketing → Product ratings → Add feed. Google crawls it once per day.

The feed includes every product with at least three approved reviews, its aggregate rating, and the top review content. Products below the three-review threshold are omitted (a Google requirement).

SEO & schema #

Why your stars show up in Google, and theirs do not.

When the Eulada widget loads on a product page, it injects a <script type="application/ld+json"> block with rich Product + AggregateRating + Review schema. This is exactly what Google's Rich Results test looks for.

What gets included

  • Product identifier, name, SKU, URL, image.
  • Aggregate rating: ratingValue, reviewCount, bestRating, worstRating.
  • Up to 5 individual reviews: author, rating, review body, ISO-formatted date.

How it differs from Yotpo

Yotpo renders review content inside their widget iframe, which Google cannot crawl. Aggregate rating is available via schema, but individual review snippets are not. Eulada injects both the aggregate and individual reviews into server-side-accessible JSON-LD. This means your product pages can earn review snippets in Google results (up to 5 stars on your title, review snippets in the description), not just the overall star rating.

Verifying

Paste any product page URL into Google's Rich Results Test. You should see "Product snippets" detected, with the aggregate rating and individual reviews parsed correctly.

BigCommerce integration #

Install the app, run a quick check, you are done.

Install

Install the Eulada app from the BigCommerce App Marketplace. The OAuth flow asks for three scopes: read products, read orders, and manage marketing (for coupon creation). Approve, and you are redirected back to Eulada.

What the install does

  • Imports your product catalog (name, SKU, URL, image) into Eulada.
  • Registers webhooks so Eulada hears about new orders, customer updates, and order fulfillments in real time.
  • Creates API credentials for the coupon engine.

Uninstall

Uninstall from the BigCommerce admin. Eulada marks the store as inactive and pauses all email sends. Your data is retained for 90 days; after that, it is purged. Reinstalling within the retention window restores everything.

Webhooks #

How Eulada stays in sync with your store, without polling.

EventWhat Eulada does
store/order/created Records the order; queues it for the review request scheduler.
store/order/statusUpdated When status reaches Shipped or Completed, starts the review_request_delay_days timer.
store/customer/updated Syncs email and name changes so review requests go to the current address.
store/product/updated Updates the product catalog (price, image, URL) so the widget stays accurate.
store/product/deleted Archives the product. Reviews are retained but hidden from the widget until the product is restored.

Security

Each webhook is verified against your store's secret (issued during OAuth install). Webhooks with invalid signatures are rejected with a 401, logged, and ignored.

Settings reference #

Every knob in the admin, with defaults and effects.

Emails

KeyDefaultPurpose
review_emails_enabledfalseMaster kill switch. false = audit-only mode.
review_request_delay_days14Delay before sending the first request.
review_reminder_delay_days5Delay between request and reminder.
review_request_max_age_days90Max order age for review requests.
email_review_request_subjectSubject line for the request email.
email_review_request_headingHeading in the body.
email_review_request_body_htmlMain body content.
email_review_request_cta_labelWrite a ReviewCTA button text.
email_review_reminder_*Same four fields, for the reminder email.
email_coupon_*Same four fields, for the coupon email.
reply_to_emailsender emailWhere customer replies land.
notification_emailsComma-separated list for moderation alerts.

Coupons

KeyDefaultPurpose
coupon_enabledfalseEnable the coupon engine.
coupon_issue_onapproveIssue on approve or submit.
coupon_triggersWhich events mint a code (review_written, photo_added, etc.).
coupon_sourcebigcommercebigcommerce (dynamic) or pool.
coupon_code_prefixPrefix for dynamically-minted codes (e.g. REVIEW-).
coupon_discount_typepercentpercent, fixed, or free_shipping.
coupon_discount_value10The discount amount (as a number).
coupon_min_purchase0Minimum cart subtotal for redemption.
coupon_applies_tocartScope: cart, categories, or products.
coupon_applies_to_idsIDs (category or product) when scope is not cart.
coupon_expiry_modedaysdays (relative) or date (absolute cutoff).
coupon_expiry_days90Days until the code expires when mode is days. 0 = never.
coupon_expiry_dateAbsolute expiry date when mode is date.
coupon_from_emailsender emailOverride sender for coupon emails.
coupon_from_namesender nameOverride sender name for coupon emails.

Thank-you page (coupon reveal)

KeyPurpose
coupon_thankyou_headingCopy above the code reveal.
coupon_thankyou_discount_fmtHow the discount is displayed. Uses {discount_display}.
coupon_thankyou_expires_fmtExpiry line format. Uses {expires_display}.
coupon_thankyou_min_fmtMin purchase line.
coupon_thankyou_shop_ctaLabel on the "Shop now" button.
coupon_thankyou_copy_ctaLabel on the "Copy code" button.
coupon_thankyou_copied_ctaLabel after a successful copy.

Moderation & auto-publish

KeyDefaultPurpose
auto_publishfalseAuto-publish reviews at or above the star threshold. Reviews below the threshold still require manual approval.
auto_publish_min_stars4Minimum stars for auto-publish. Ignored when auto_publish is off.

Store-level (brand & sender)

These live on the store record, not the settings table. Edit from Email Settings → Brand & sender identity.

FieldPurpose
nameStore name (used in the {store_name} template variable).
logo_urlURL of the brand logo shown in every email header.
primary_colorCTA button background for emails and the widget.
star_colorFill color for star ratings.
from_emailThe reply-able From address on every email.
from_nameThe Name part of the From header.

Site + misc

KeyDefaultPurpose
site_namestore nameDisplay name used in widget headings.
site_urlCanonical URL of your storefront (used in {site_url}).
physical_addressRequired in every email footer (CAN-SPAM compliance).
invite_expiry_days7How long a team invite link stays valid.

FAQ #

Do customers see the coupon on the thank-you page and in email?

Depends on coupon_issue_on. In submit mode: yes, both. In approve mode (the default): only the email (the customer has left the page by the time an admin approves the review).

Can I run Eulada in parallel with my old review platform?

Yes, that is what the email kill switch is for. Leave it off, watch the audit log, confirm the worker is behaving, then flip it on when you are ready to cut over.

What happens to reviews when a product is deleted?

Reviews are retained but hidden from the widget. If you restore the product (same ID), the reviews re-appear automatically.

Can I edit a customer's review?

You can, but only for typo fixes. Never rewrite the sentiment or substance of a review. Most platforms treat review edits as a trust violation; we let you edit with that caveat in mind.

How do I export my data?

Contact support. Exports are produced on request (reviews CSV/JSON, photos, audit log, settings snapshot).

How does billing work?

Flat monthly subscription, no per-review fees. Current plans and limits are at eulada.com/pricing.

Do you support multiple languages?

The admin is English-only today. The widget and emails support whatever language you type into them; UTF-8 throughout. A translated admin is on the roadmap.

How is Eulada different from Yotpo, Stamped, or Okendo?

We are self-hostable (you can run it on your own infrastructure), we inject full review schema into the page source (so individual reviews, not just aggregate rating, are indexable by Google), and we have a simpler price. That is the 30-second pitch.

Troubleshooting #

The widget is not appearing on my product page

  1. Open the browser console and look for errors from reviews.js (or stars.js if the star badge is missing).
  2. Confirm the <script> tag has the right data-store-id. Typos here produce a silent fail.
  3. Confirm the placeholder <div class="eulada-reviews"> is actually in the rendered HTML (check View Source, not just DevTools). Some templating engines conditionally omit blocks.
  4. Check that data-product-id matches a product that exists in the Eulada admin.

Emails are not sending

  1. Confirm the kill switch is ON.
  2. Check the worker log in the admin. Audit-only entries mean the kill switch is still off.
  3. Look for bounced addresses in the log. A high bounce rate suggests a DNS problem; re-verify SPF and DKIM.
  4. Send a test email to a known-good address. If that fails too, open support.

Stars are not showing in Google search results

This takes time. Google needs to recrawl your product pages and decide the schema is trustworthy. Expect 2 to 6 weeks. Speed it up by:

  1. Running the Rich Results Test on a product page. It should show "Product snippets" with an aggregate rating.
  2. Requesting indexing in Search Console for a few high-traffic products.
  3. Making sure you have at least 3 approved reviews per product (Google's minimum threshold for showing rating snippets).

A customer says their coupon code does not work

  1. Check the coupon status in Eulada: Reviews → [their review] → Coupon tab. Statuses: active, redeemed, expired, pool_exhausted.
  2. If active, check in BigCommerce: Marketing → Coupon Codes. It should be enabled and within its date range.
  3. If the customer pasted the code with surrounding whitespace, some checkouts choke on that. Ask them to retype it.
  4. If the minimum purchase is not met, the code silently does nothing. Double-check the cart subtotal vs the coupon_min_purchase setting.

Still stuck?

Email [email protected] with your store key, the review or order ID if relevant, and a screenshot. We usually respond within one business day.