# Email alerts

Wishlist can email shoppers when something changes on a product they saved. Set it up under **Notifications** in the app. All alerts are off when you install the app.

## Alerts

Each alert has its own card under **Notifications → Alerts**. Click **Turn on**, then save.

| Alert | Sent when | Setting |
|---|---|---|
| Back in stock | A saved product or variant that was sold out is available again. | — |
| Price drop | The price falls below the price at the time the product was saved. | **Minimum price drop**: 1–90%, 10% by default |
| Low stock | A saved product's inventory falls to the threshold or lower, but not to 0. | **Send when inventory falls to**: 1–1000 units, 5 by default |
| Wishlist reminder | A list with at least one item hasn't changed for a number of days. | **Send after the wishlist is unchanged for**: 1–90 days, 7 by default |
| Share confirmation | A shopper shares a list. They get a copy of the link. | — |

A few details:

- **Back in stock** and **Low stock** use the available quantity at locations that fulfill online orders. They only work for variants that track inventory and don't continue selling when out of stock.
- **Back in stock** goes to shoppers who saved that variant. Shoppers who saved the product without picking a variant are told when any variant comes back.
- **Price drop** compares the new price with the price when the product was saved. A 10% minimum means a $100 product must drop to $90 or less. The compare-at price is not used.
- **Wishlist reminder** is checked once a day, around 15:00 UTC. Each list gets one reminder each time it goes idle; changing the list starts the count again.
- **Share confirmation** is sent the first time a list is shared, and only when sharing is on.

## Who gets emails

- **Signed-in customers only.** Guests have no email address on file.
- **Price drop, low stock and reminders** are marketing emails. They only go to customers whose email marketing status in Shopify is subscribed. The status is checked right before each email.
- **Back in stock and share confirmation** are sent on request, so they don't need marketing consent.
- A customer who clicked the unsubscribe link gets no wishlist emails at all.

You can see a customer's status under **Customers → [customer] → Email marketing**.

## Sending

Under **Notifications → Email**:

- **Send emails** turns the email channel on or off. It is on by default; each alert still has to be turned on.
- **Provider:** **Themivo mail service** works with no setup. Choose **My SMTP server** to send from your own mail server.
- **Sender name** defaults to your store name. **Reply-to email** is optional.

For your own server, fill in **SMTP host**, **Port** (587 by default), **Username**, **Password** and **Sender email**, and turn on **Use TLS** if your server needs it. If the sender email is blank, the username is used when it is an email address. The password is never shown again after saving; leave it blank to keep it.

There is no connection check when you save. Send a test email to make sure the server works.

## Email templates

Click **Edit email template** on an alert to change its **Subject** and **Body (HTML)**. The preview updates as you type, with sample data. Click **Done**, then save the page.

Use placeholders to add details:

| Placeholder | Value |
|---|---|
| `{{ shop_name }}` | Your store name. |
| `{{ first_name }}` | The customer's first name, or "there". |
| `{{ product_title }}` | Product title. |
| `{{ variant_title }}` | Variant title, empty for products without variants. |
| `{{ product_url }}` | Product page on your primary domain, with the variant selected. |
| `{{ product_image }}` | Image URL of the variant or product. |
| `{{ old_price }}` | Price when the product was saved. Price drop only. |
| `{{ new_price }}` | Current price. |
| `{{ quantity }}` | Units left. Low stock only. |
| `{{ item_count }}` | Number of items in the list. Reminder only. |
| `{{ wishlist_url }}` | Your wishlist page. |
| `{{ share_url }}` | The shared list link. Share confirmation only. |
| `{{ unsubscribe_url }}` | Link to stop wishlist emails. |

Placeholders are plain text replacements; there are no conditions or loops. Unknown names come out empty. Prices are formatted for the customer's language and currency. Reminders aren't about one product, so the product placeholders are empty.

Back in stock, price drop, low stock and reminder templates must include `{{ unsubscribe_url }}`. If a template is missing it when it's sent, a footer with the link is added.

There is one template per alert, not one per language. Write it in the language most of your customers use.

### Test emails

At the bottom of the template editor, enter an address under **Send a test to** and click **Send test**. The test uses the **saved** template, so save your changes first. The subject starts with `[Test]` and the email is filled with sample data. Tests don't count toward the daily limit, and the alert doesn't need to be on.

## Limits

Under **Notifications → Limits**:

- **Daily email limit** caps the emails sent each day, 1000 by default. It resets at midnight UTC. **Emails sent today** shows how many have gone out. Klaviyo and Omnisend events count toward the same limit.
- **Don't repeat an alert within** stops the same customer from getting the same alert for the same product more than once in that many days, 7 by default. For reminders, it applies per list.

When the limit is reached, the remaining alerts for that day are dropped, not delayed.

## Log

The **Log** at the bottom of the page lists alerts from the last 90 days with their date, type, channel and status. Filter by **Type** to see one alert. A failed email is not retried; open the row to see the error.

## Unsubscribing

The unsubscribe link opens a page on your store asking the customer to confirm. Opening the link alone does nothing, so email security scanners can't unsubscribe customers by accident.

Unsubscribing stops every wishlist email and Flow alert for that customer. It does not change their email marketing status in Shopify, and it can't be undone from the app.

## Other channels

- [Klaviyo](https://wishlist.themivo.com/docs/klaviyo): send the same alerts to Klaviyo as events and design the emails there.
- [Omnisend](https://wishlist.themivo.com/docs/omnisend): send the same alerts to Omnisend as custom events and design the emails there.
- [Shopify Flow](https://wishlist.themivo.com/docs/flow): trigger your own workflows.
