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.
- Connect your store. Install the Eulada app from the BigCommerce App Marketplace, or follow the manual setup if you are on another platform.
- Add the widget. Paste the
<div class="eulada-reviews">snippet into your product page template. Eulada picks it up automatically. - Configure your brand. Upload your logo, pick your primary and star colors, and set your sender name and email.
- Verify your sending domain. Add the SPF, DKIM, and DMARC records we provide so emails land in the inbox, not spam.
- Review your email copy. Tune the request, reminder, and coupon templates. Use the live preview on the right.
- 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.
- Import historical reviews (optional). If you are migrating from Yotpo or another platform, use the CSV importer.
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.
| File | Purpose | Where 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.
Data attributes reference #
| Attribute | Where | What it does |
|---|---|---|
data-product-id | container div | Required. The unique product ID from your store. |
data-product-name | container div | Optional. Shown in the JSON-LD schema and the Write Review form. |
data-store-id | script tag | Required. 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.
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.
Statuses & workflow #
| Status | Public? | Counts toward rating? | Notes |
|---|---|---|---|
pending | No | No | Default on submit. Waiting on your moderation. |
approved | Yes | Yes | Live on your widget. Included in aggregate rating and schema. |
rejected | No | No | Hidden from public. Kept for audit. |
spam | No | No | Hidden. 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.
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.
Delivery timing #
| Setting | Default | What 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.
Template variables #
Curly-brace tokens that Eulada substitutes at send time.
| Variable | Available in | Example value |
|---|---|---|
{customer_name} | All emails | Jane Cooper |
{product_name} | Request, reminder | Cast Iron Stove Gasket |
{store_name} | All emails | Acme Store |
{site_url} | All emails | https://mountainviewhearth.com |
{code} | Coupon email | THANKS-8F3K2P |
{discount_display} | Coupon email | 10% |
{expires_display} | Coupon email | 06/18/2026 |
{expiry_note} | Coupon email | This 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.
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.
| Record | Name | What 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. |
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:
- Dynamic minting — Eulada calls your ecommerce platform's API and creates a fresh, single-use code for each reviewer. Supported on BigCommerce today.
- 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.
Discount types #
| Type | Example | Notes |
|---|---|---|
percent | 10% | Applied to the cart subtotal. Simple; customers understand it instantly. |
fixed | $10 off | Good for higher-AOV stores. Watch that the minimum purchase is set high enough. |
free_shipping | Free shipping | Converts 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
| Role | Can 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.
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.
| Event | What 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
| Key | Default | Purpose |
|---|---|---|
review_emails_enabled | false | Master kill switch. false = audit-only mode. |
review_request_delay_days | 14 | Delay before sending the first request. |
review_reminder_delay_days | 5 | Delay between request and reminder. |
review_request_max_age_days | 90 | Max order age for review requests. |
email_review_request_subject | — | Subject line for the request email. |
email_review_request_heading | — | Heading in the body. |
email_review_request_body_html | — | Main body content. |
email_review_request_cta_label | Write a Review | CTA button text. |
email_review_reminder_* | — | Same four fields, for the reminder email. |
email_coupon_* | — | Same four fields, for the coupon email. |
reply_to_email | sender email | Where customer replies land. |
notification_emails | — | Comma-separated list for moderation alerts. |
Coupons
| Key | Default | Purpose |
|---|---|---|
coupon_enabled | false | Enable the coupon engine. |
coupon_issue_on | approve | Issue on approve or submit. |
coupon_triggers | — | Which events mint a code (review_written, photo_added, etc.). |
coupon_source | bigcommerce | bigcommerce (dynamic) or pool. |
coupon_code_prefix | — | Prefix for dynamically-minted codes (e.g. REVIEW-). |
coupon_discount_type | percent | percent, fixed, or free_shipping. |
coupon_discount_value | 10 | The discount amount (as a number). |
coupon_min_purchase | 0 | Minimum cart subtotal for redemption. |
coupon_applies_to | cart | Scope: cart, categories, or products. |
coupon_applies_to_ids | — | IDs (category or product) when scope is not cart. |
coupon_expiry_mode | days | days (relative) or date (absolute cutoff). |
coupon_expiry_days | 90 | Days until the code expires when mode is days. 0 = never. |
coupon_expiry_date | — | Absolute expiry date when mode is date. |
coupon_from_email | sender email | Override sender for coupon emails. |
coupon_from_name | sender name | Override sender name for coupon emails. |
Thank-you page (coupon reveal)
| Key | Purpose |
|---|---|
coupon_thankyou_heading | Copy above the code reveal. |
coupon_thankyou_discount_fmt | How the discount is displayed. Uses {discount_display}. |
coupon_thankyou_expires_fmt | Expiry line format. Uses {expires_display}. |
coupon_thankyou_min_fmt | Min purchase line. |
coupon_thankyou_shop_cta | Label on the "Shop now" button. |
coupon_thankyou_copy_cta | Label on the "Copy code" button. |
coupon_thankyou_copied_cta | Label after a successful copy. |
Moderation & auto-publish
| Key | Default | Purpose |
|---|---|---|
auto_publish | false | Auto-publish reviews at or above the star threshold. Reviews below the threshold still require manual approval. |
auto_publish_min_stars | 4 | Minimum 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.
| Field | Purpose |
|---|---|
name | Store name (used in the {store_name} template variable). |
logo_url | URL of the brand logo shown in every email header. |
primary_color | CTA button background for emails and the widget. |
star_color | Fill color for star ratings. |
from_email | The reply-able From address on every email. |
from_name | The Name part of the From header. |
Site + misc
| Key | Default | Purpose |
|---|---|---|
site_name | store name | Display name used in widget headings. |
site_url | — | Canonical URL of your storefront (used in {site_url}). |
physical_address | — | Required in every email footer (CAN-SPAM compliance). |
invite_expiry_days | 7 | How 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
- Open the browser console and look for errors from
reviews.js(orstars.jsif the star badge is missing). - Confirm the
<script>tag has the rightdata-store-id. Typos here produce a silent fail. - 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. - Check that
data-product-idmatches a product that exists in the Eulada admin.
Emails are not sending
- Confirm the kill switch is ON.
- Check the worker log in the admin. Audit-only entries mean the kill switch is still off.
- Look for bounced addresses in the log. A high bounce rate suggests a DNS problem; re-verify SPF and DKIM.
- 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:
- Running the Rich Results Test on a product page. It should show "Product snippets" with an aggregate rating.
- Requesting indexing in Search Console for a few high-traffic products.
- 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
- Check the coupon status in Eulada: Reviews → [their review] → Coupon tab. Statuses:
active,redeemed,expired,pool_exhausted. - If
active, check in BigCommerce: Marketing → Coupon Codes. It should be enabled and within its date range. - If the customer pasted the code with surrounding whitespace, some checkouts choke on that. Ask them to retype it.
- If the minimum purchase is not met, the code silently does nothing. Double-check the cart subtotal vs the
coupon_min_purchasesetting.
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.