Playbook · Native customer password reset

Shopify customer password reset not sending — the recovery link never reached the customer.

Written for a Shopify DTC owner who already uses native Shopify notifications, a customer (or staff) used Forgot password / Reset password on the storefront login, expected the account recovery / set-new-password email, and they still have nothing. This is a native-notifications playbook for Customer account password reset — not Customer account invite / activate account, not Gift card created, not loyalty / birthday / VIP reward mail, and not abandoned checkout recovery. Not staff or collaborator access either. Native tools first. Honest limits. No ticket-cut number, no recovered-revenue claim, no invented case studies.

Nico at Latch AI Ops · Sep 7, 2026 · ~9 minute read

Buy the 72-hour install — $997Account invite not sendingGift card email not sendingMerchant FAQ

01

Password reset / recovery mail, not invite, not gift card, not loyalty, not abandoned checkout.

Several products can look like “Shopify emailed the customer about their account.” They do not share a toggle or a send log. Native customer password reset / account recovery mail lives in Shopify admin: Settings → Notifications → Customer notifications → Customer account password reset (Shopify’s label for the forgot-password / recovery link). It fires when someone requests a password reset for a customer account that already exists with an email — not when staff sends an account invite, not when a gift card is issued, not when a loyalty / birthday / VIP reward fires, and not when a checkout is abandoned.

Native customer account invite / activate is customer account invite not sending. Gift card created is gift card email not sending. Birthday reward silence is birthday reward email not sending. VIP tier silence is VIP tier email not sending. Loyalty points expiring silence is loyalty points expiring email not sending. Abandoned checkout silence is abandoned checkout email not sending. Order confirmation after paid checkout is order confirmation email not sending. Staff seats vs collaborator access is staff account vs collaborator— that is admin access, not a storefront recovery link. Klaviyo “password” or “account” flows live in a Klaviyo send log — if that is what is missing, that is Klaviyo flow not sending, not this page. This page is only native Shopify Customer account password reset: the email with the link to set a new storefront password.

Seven ordinary reasons that template never lands: it is still off, Reset password / Forgot password was never requested, the customer has no email, classic vs new customer accounts changed the path, the customer is still invite/activate pending (not a reset), you tested invite or order confirmation instead, or sender / spam hid a send that did fire. Walk them in that order. You already pay for Shopify. You do not need an accounts-app rebuild to read the notification list.

02

Customer account password reset template is off.

Open Settings → Notifications → Customer notifications. Find Customer account password reset (Shopify’s native forgot-password / account recovery mail). On some stores the label is close to “Customer account password reset” or the password-reset notification Shopify shows for classic accounts. Read the on/off state, not the subject line, not a preview, not Customer account invite next to it. Disabled does not send. A staffer who turned native mail off “so Klaviyo can own account” and then never published the Klaviyo flow leaves a hole that looks like Shopify is broken.

Customer account invite, Gift card created, Order confirmation, and abandoned-checkout recovery are different templates. A shopper who requested a reset may get nothing while invite mail still works for other customers — those are two emails for two events.

Turn Customer account password reset on only if native Shopify is supposed to send the recovery link. If a third-party membership or accounts app is supposed to send it instead, leave this template off on purpose and go fix that app. Do not leave both off. Do not leave both on unless you want two emails for one reset.

03

Reset password was never requested.

Opening Customers and staring at the record does not email a reset. Staff who paste a temporary password into Slack, tell the customer to “just create a new account,” or send a storefront login URL without using Forgot password leave the reset template unused — Shopify did exactly what it was told.

Open the customer timeline / activity. Look for a password reset / recovery email sent event, not just customer created or account invite sent. If support never clicked Reset password (or the customer never submitted Forgot password on the login page), there is nothing to deliverability-debug.

Theme login forms that skip Shopify’s native forgot-password endpoint also never fire this template. If the customer is clicking a custom “reset” button that posts to a page that only shows a success message, that is a theme / app path — see theme agency vs ops install for when a theme rebuild is the wrong buy — not a missing gift card or abandoned-checkout template.

04

No customer email on the record.

Native Customer account password reset sends to the email on the customer record (or the address typed into Forgot password that matches a customer). Open Customers → the customer. If there is no email, Shopify has nowhere to send. Phone-only POS customers, a staffer who typed the store’s own address, or a typo the customer no longer owns will all look like “Shopify is not sending.”

A staff email on the customer is not the shopper. BCC to the owner is not proof the customer got it. Shopify often shows a generic success on Forgot password even when no account matches — that is intentional anti-enumeration, not proof a reset left. Read the customer activity for a reset-sent event, not the storefront flash message alone.

If Shopify did send and the address is wrong, correct the customer email and have them request Forgot password again (or use Shopify’s reset control from the customer page if your admin exposes it). Resend does not fix a template that is off, and it does not invent a send that was never requested.

05

Classic vs new customer accounts.

Shopify’s customer accounts setting matters. Classic customer accounts use the familiar Customer account password reset notification path in Settings → Notifications. New customer accounts (Shopify’s newer accounts experience) can change how login, one-time codes, and recovery-style mail look — including which notification you are actually debugging.

Open Settings → Customer accounts (or the equivalent accounts setting Shopify shows on your plan). Name which mode the store is on before you rewrite Liquid on Customer account password reset. A store on new customer accounts that staff still treat like classic email-reset links will “never get the recovery email” because the login path may be a one-time code or a different recovery surface. Fix the mode and the control you are using — not Gift card created or abandoned checkout.

Theme “account” links that point at a custom login page or an app can also skip native reset mail. If the customer never hits Shopify’s Forgot password / recovery flow, that is a theme or app path — not a missing loyalty or birthday email.

06

Still on invite / activate, not reset.

Password reset is for a customer who already has an activated account and forgot the password. Customer account invite / activate is for a customer who never finished creating the account. Mixing those two is how teams rebuild the wrong email for a week. If the customer still shows invited / pending / never activated, debug /customer-account-invite-not-sending— not password reset.

An expired reset link is not a notification-toggle bug — request a fresh Forgot password from the login page (or Shopify’s reset control). Do not install a second accounts app to “make sure it fires.”

Gift card created is a code email for a gift card — different product: /gift-card-email-not-sending. Loyalty / birthday / VIP reward silence is not recovery mail either. Abandoned checkout recovery is cart recovery, not password recovery: /abandoned-checkout-email-not-sending.

07

You tested invite or order confirmation, not a reset.

Preview in the notification editor and Send test email prove the template renders. They do not prove a live password reset fires it. Send account invite proves invite mail — see /customer-account-invite-not-sending— not Customer account password reset. A paid storefront checkout proves order confirmation — see /order-confirmation-email-not-sending— not recovery mail. Buying once or sending an invite and only reading that inbox is how teams declare “account mail works” while Forgot password still delivers nothing.

Honest test: use a customer account you own with a real inbox that is not the store’s staff address. On the storefront login, click Forgot password / Reset password and submit that email. Wait a minute. Then search that inbox and spam for the store name and words like password, reset, or recover. Open the customer activity and look for the reset-sent event. If the activity is silent, the bug is template / never requested / missing email / accounts mode / still on invite — not “Shopify email is down.”

Shopify Flow “send internal email” is staff mail. It is not this template. If what you built is a Flow workflow that never runs, that is Shopify Flow not running, not a password-reset bug.

08

Sender, BCC, and spam hid the send.

Shopify can send and the customer still reports nothing. Open Settings → Notifications and read the sender email. A custom from-address without authenticated DNS (SPF / DKIM for the domain Shopify tells you to add) lands in spam, or is dropped. A shared @shopifyemail.com from-address also gets filtered on some inboxes. BCC to the owner is not proof the customer got it — BCC can arrive while the To: line bounced.

On the customer activity, look for a password-reset / recovery sent event, not just customer created. If Shopify says it sent, have the customer search spam, promotions, and the exact from-address. If Shopify does not say it sent, go back to template / Forgot password request / customer email / accounts mode / invite-vs-reset — do not buy a deliverability app for a mail that never left.

Do not install a second accounts or “welcome email” app to “make sure it fires.” You will double-email the next customer who was never the bug. Shopify Email (marketing campaigns) is also not this template — mixing them is how you pay for two products and still send none.

09

When to stay DIY vs pay $997.

Stay DIY if you can spend one afternoon on the list above: template on, Forgot password requested, customer email on the record, classic vs new accounts named, real reset (not an invite or checkout test), sender/spam. Send one live reset to an inbox you own. Read the inbox. That is the whole playbook. No agency required. Short answers also live on the merchant FAQ. Related troubleshooting: customer account invite not sending (activate / invite), gift card email not sending, abandoned checkout email not sending, birthday reward email not sending, VIP tier email not sending, loyalty points expiring email not sending, order confirmation not sending, Klaviyo flow not sending.

Pay for help when the work is not the notification toggle — it is connecting the stack you already have so password-reset mail, invite mail, order mail, and exceptions are one live path instead of a native template plus a Klaviyo draft plus an accounts app you forgot, lead capture is not dying in DMs, and exceptions show up in a channel you already check. That is the Latch AI Ops install.

What $997 USD one-time buys: lead capture on the live store, ops alerts in a channel you already check, and a checkout-ready workflow. 72 hours after collaborator access, not after payment. One live Shopify store. Access plus a delivery thread. Store URL collected at checkout. Not a SaaS seat, not a notification rebuild, not a Klaviyo rebuild, not a Gorgias implementation, not a support VA, not a brand or theme job.

Other shops’ public ranges, not testimonials: a Shopify Flow or recovery-app install typically runs $500–$2,500. A Klaviyo-only flow rebuild typically runs $2,000–$5,000. $997 is the cheap end of that work, sold as a 72-hour install of three systems — not as a ticket-cut number or recovered checkout revenue.

What it does not buy: fewer WISMO tickets, recovered checkout revenue, a lift in conversion, or a case study. Latch AI Ops has not published customer proof because there are no customers yet. You are buying the install.

Checkout is on Whop. Operator is Nico. United States offer. You can revoke collaborator access after handoff. We do not take owner passwords.