Latch AI Ops

Latch AI Ops installs AI ops on live Shopify stores in 72 hours: lead capture, ops alerts, and a checkout-ready workflow. One-time $997.
San Jose, US
Created byProfile pictureJosue
1 joined
Profile picture
JosueProfile picture@easybuff20·24m

Shopify order confirmation email not sending — native notifications

Written for a Shopify DTC owner who already uses native Shopify notifications, took a paid order (or thought they did), waited, and the buyer still has no “thanks for your order” email. Native Order confirmation. Not shipping confirmation. Not a Klaviyo copy rewrite. No recovered-revenue number.


This is not shipping confirmation. That template fires when a fulfillment exists, not when checkout completes. A buyer who never got “your order is confirmed” right after pay is missing this template, even if a shipping email arrives later.


This is not a Klaviyo Placed Order flow. Those live in Klaviyo’s send log. If the missing mail is a Klaviyo flow that looks Live, leave this post and walk Klaviyo flow not sending.


This is not abandoned checkout. Abandoned checkout is earlier: the customer left before pay. Do not debug order confirmation on a checkout that never became an order.


This is not refund / order cancelled mail. Those fire on a later event after the buyer already paid. If the first “we got your order” never landed, you are still here.


Six ordinary reasons that native Order confirmation never lands:


  • The template is still off in Settings → Notifications → Customer notifications → Order confirmation. Read the on/off state, not the subject line, not a preview, not Shipping confirmation next to it. A staffer who turned native mail off “so Klaviyo can own it” and then never published the Klaviyo flow leaves a hole that looks like Shopify is broken. Do not leave both off. Do not leave both on unless you want two emails for one checkout.

  • The order is unpaid, pending, authorized, or a draft. Native order confirmation is a paid-order email. Cash on delivery, manual payments, bank deposits, and some 3DS holds sit here until payment actually captures. Draft orders, admin-created orders, and mark-as-paid from the order screen often skip the same path a real checkout uses. POS and in-store use a different receipt path — that is not this template.

  • Contact information has no customer email. Phone-only checkout, Shop Pay with a missing email, a staffer who typed the store’s own address, or a placeholder test all look like “Shopify is not sending.” A staff email on the order is not the customer. BCC to the owner is not proof the customer got it.

  • You tested Send test email, Preview, or an admin order — not a paid checkout from a phone that is not logged into admin. Preview proves the template renders. It does not prove checkout fires it. Fulfilling a test order proves shipping confirmation, not this template.

  • Custom / third-party checkout skipped the native path. A headless Hydrogen store, a custom Storefront API checkout, or a third-party checkout app can leave you with an order in admin and no native notification. Wholesale, B2B, draft-invoice, and some marketplace channels (Amazon, Facebook Shop) also write orders that never took a storefront checkout.

  • Sender / spam hid a send that did fire. Custom from-address without authenticated DNS (SPF / DKIM) lands in spam or is dropped. A shared @shopifyemail.com from-address also gets filtered. If Timeline 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 / payment status / customer email / checkout path — do not buy a deliverability app for mail that never left.


Same afternoon, DIY:


  • Open Settings → Notifications → Customer notifications. Find Order confirmation. Read on/off. Turn it on only if native Shopify is supposed to send it. If Klaviyo is supposed to send it instead, leave this template off on purpose and go fix the Klaviyo flow.

  • Open a real paid order. Payment status Paid. Contact information has a customer email you control that is not the store’s staff address. Timeline: look for “Order confirmation email sent to…”, not just order created.

  • Honest test: checkout from a phone that is not logged into admin, pay, to an inbox you own. Wait a minute. Search that inbox and spam for the store name. Then read the order timeline.

  • If Shopify did send and the address is wrong, correct the email, then More actions → Resend confirmation email. Resend does not fix a template that is off, and it does not convert an unpaid draft into a paid checkout.

  • Name the checkout that created the silent order before you install a second confirmation app. Native Shopify checkout (including Shop Pay) vs headless vs marketplace vs draft. Do not install a second order-email app to “make sure it fires.” You will double-email the next customer who was never the bug.


Stay DIY if that afternoon turns Order confirmation on, proves one live paid checkout to an inbox you own, and the inbox is the proof. Shopify Email marketing campaigns are not this template. Mixing them is how you pay for two products and still send none.


If after you flip the template on the customer still gets nothing and Timeline never says the notification sent, you are still on this page — not Klaviyo, not shipping confirmation, not refund mail.


Longer playbooks, same voice:


Nico at Latch AI Ops. United States. No owner passwords. Clock starts when collaborator access is in.

Profile picture
JosueProfile picture@easybuff20·58m

Shopify refund / order cancelled email not sending — native notifications

Written for a Shopify DTC owner who already uses native Shopify notifications, refunded or cancelled an order (or thought they did), waited, and the buyer still has no refund or cancellation email. Native Order refund and Order cancelled templates. No recovered-revenue number.


This is not order confirmation. That playbook is the checkout template: a paid order exists and the buyer never got “your order is confirmed.” This page is the later event. The buyer already paid. Then you refunded, cancelled, or both, and native “your order was cancelled / refunded” mail never landed.


This is not shipping confirmation. Shipping mail fires when a fulfillment exists. A refund on an unfulfilled order has nothing to do with that template. A cancel after the box already shipped is still this page, not WISMO.


This is not a Klaviyo Refunded Order (or Cancelled Order) flow. Those live in Klaviyo’s send log. If the missing mail is a Klaviyo flow that looks Live, leave this post and walk Klaviyo flow not sending.


Six ordinary reasons that native template never lands:


  • Order cancelled or Order refund is still off in Settings → Notifications → Customer notifications. A staffer who turned native mail off “so Klaviyo can own it” and then never published the Klaviyo refund flow leaves a hole that looks like Shopify is broken. They are two templates. Cancel without a refund can fire Order cancelled and never Order refund. A refund that leaves the order open can fire Order refund and never Order cancelled.

  • Notify customer was unchecked on the refund or cancel dialog. The template can be on and still not send. Restock is inventory. Refund is money. Notify is mail. Checking restock does not send the refund email. A saved browser that remembers the last refund state will keep the box off.

  • The money moved outside Shopify. A Stripe / PayPal / Shop Pay dashboard refund that never wrote a Refunded event on the Shopify order leaves the order Paid. Paid does not send Order refund. Returns apps, POS, and marketplace tools can restock without creating the native notification event. If Timeline has no Refunded and no Cancelled, native mail has nothing to send.

  • You tested order confirmation, not a refund. Placing a test order proves Order confirmation. Preview and Send test email prove the template renders. They do not prove a live refund fires it. An unpaid draft cannot refund.

  • You picked the wrong event. A partial refund on a still-open order is Order refund, not Order cancelled. A full cancel without refunding payment is Order cancelled, not Order refund. A return is not a refund. Do not debug refund mail on a return that is still pending.

  • Sender / spam hid a send that did fire. Timeline says the notification went out; the inbox hid it. If Shopify does not say it sent, go back to template / notify box / refund path — do not buy a deliverability app for mail that never left.


Same afternoon, DIY:


  • Open Settings → Notifications → Customer notifications. Read on/off for Order cancelled and Order refund. Not the subject line. Not Order confirmation or Shipping confirmation next to them. Turn them on only if native Shopify is supposed to send. If Klaviyo or a returns app is supposed to send instead, leave these off on purpose and go fix that product. Do not leave both off. Do not leave both on unless you want two emails for one refund.

  • Pick one paid live order (not a draft). Issue a small partial refund or a cancel-and-refund with Notify customer on, to an inbox you control that is not the store’s staff address. Wait a minute. Read that inbox and spam — not the order timeline alone. Timeline can show Refunded without “Order refund email sent to…”.

  • Confirm the refund or cancel exists on the Shopify order. If it only exists at the gateway or in a returns app, issue it on the order (or fix the app’s “create Shopify refund” setting), then re-check the notify box on that new refund.

  • Name the event before you buy a second returns-email app. Partial refund vs cancel vs return vs chargeback vs store credit each write a different timeline line.


Stay DIY if that afternoon turns the right templates on, refunds one live order with Notify customer checked, and the inbox is the proof. Do not install a second refund-email app to “make sure it fires.” You will double-email the next customer who was never the bug.


If after you flip the templates on the customer still gets nothing and Timeline never says the notification sent, you are still on this page — not Klaviyo, not order confirmation.


Longer playbooks, same voice:


Nico at Latch AI Ops. United States. No owner passwords. Clock starts when collaborator access is in.

Profile picture
JosueProfile picture@easybuff20·1h

Paid Shopify orders sitting Unfulfilled — and nobody got pinged

Written for a Shopify DTC owner who can open Orders, filter Unfulfilled, and see paid work sitting since yesterday — while Slack stayed quiet, staff mail stayed empty, and the warehouse found out from a customer. Native Shopify Flow plus native notifications. No recovered-revenue number.


This is not Shopify Flow not running. That playbook is for a workflow you already built that still does nothing: inactive toggle, trigger miss, conditions too strict, wait not elapsed, failed action. If you never built an aging-unfulfilled workflow, Flow can be healthy and you still get silence. That silence is this post.


This is not a WISMO inbox loop. WISMO is the customer asking where the order is. This page is internal. The packing slip never moved, and ops was not told. A customer ticket is a late, expensive substitute for a Slack ping you could have had at hour four.


This is not 3PL writeback. On that playbook the warehouse already packed and Shopify never heard. Here nobody packed. The order is still sitting.


The gap:


  • Shopify admin → Orders. Financial status: Paid. Fulfillment status: Unfulfilled. Yesterday’s paid work is still in that list.

  • No Slack. No staff email. The owner finding it at 10pm is not an alert. The customer asking where the order is, is not an alert.

  • Native order confirmation goes to the buyer at checkout. It is a new-order ping, not “this order is still unfulfilled after six hours.” Klaviyo Placed Order is also not this job.


Same afternoon, DIY:


  • Write the SLA on paper first. Four hours for same day, next morning for evening orders, 24 hours if you batch. Silence after that number is a process hole, not a mysterious Shopify bug.

  • Shopify admin → Flow → Create workflow. Trigger: Order paid. Not Order created. Not Fulfillment created.

  • Then Wait. Match the SLA. For the first proof, temporarily set the wait to five minutes. Put the production delay back after one real run. A wait is not Flow-not-running.

  • Then Check if: Order fulfillment status is Unfulfilled. Optionally AND financial status is Paid, AND cancelled is false. If the warehouse already fulfilled during the wait, the check fails closed.

  • Then one action: Send internal email to a staff address you actually read, or Send Slack message to a channel you already check. Order name, created-at, customer name, admin link. Do not send the customer anything from this workflow.

  • Skip holds, preorder / backorder tags, and digital auto-fulfill so the ping does not get muted by lunch. Optional unique tag such as aging-unfulfilled. Do not add a second workflow “to be sure.”

  • Turn it Active. Place one real paid order from a phone that is not logged into admin. Wait the test delay. Open run history. Proof is the Slack message or staff email with the order name in it — not the canvas.


If after you flip it on the workflow still never appears in run history, leave this post and walk Shopify Flow not running. That is a different bug.


If the 3PL already has tracking and Shopify is still Unfulfilled, you are not on this page — that is writeback, not an aging-unfulfilled alert.


Stay DIY if that afternoon names the SLA, builds one Order-paid Flow with a wait and an unfulfilled check, proves one run, and leaves it active. Do not buy a monthly unfulfilled-order app to send the same Slack message Shopify Flow already sends.


Longer playbooks, same voice:


Nico at Latch AI Ops. United States. No owner passwords. Clock starts when collaborator access is in.

Profile picture
JosueProfile picture@easybuff20·2h

3PL shipped but Shopify still Unfulfilled — tracking never wrote back

Written for a Shopify DTC owner who can open the 3PL portal — ShipBob, ShipMonk, ShipHero, or another warehouse — see a tracking number, then open the same order in Shopify and still see Unfulfilled. Empty Timeline. No carrier. No shipping confirmation. The box left. Shopify never heard. Native fulfill first. No recovered-revenue number.


This is not an aging-unfulfilled Slack ping. On that playbook nobody packed. Here the warehouse already packed. This is not a WISMO inbox loop. Answer WISMO by pasting a 3PL tracking URL while the order stays Unfulfilled and you taught the customer to email you every time. This is not a tracking widget. A storefront bubble still shows nothing if Shopify has no fulfillment to look up.


The split is the whole job:


  • 3PL: Shipped / Packed / In transit, with a carrier and a tracking number.

  • Shopify: still Unfulfilled. Timeline has no “Fulfillment created.” Native shipping confirmation never fired, because Shopify never saw a fulfill.

  • Klaviyo Fulfilled Order did not miss a metric. There was no Shopify fulfillment for the metric to ride.


Why writeback dies:


  • Label bought on the 3PL carrier account. The app never called Shopify’s Fulfillment API.

  • 3PL app token died, pending, or needs reauthorization. Do not install a second connector “to be sure.”

  • Location mismatch. Order assigned to Shop location or a POS location the 3PL cannot fulfill.

  • SKU / barcode mismatch. 3PL shipped a renamed SKU. Shopify still waits on the original line.


Same afternoon, DIY:


  • Prove it with two screens. Copy tracking, carrier, ship date from the 3PL. Scroll Shopify Timeline. If Fulfillment created is missing, writeback never happened.

  • Land today’s orders natively: Shopify admin → the order → Fulfill item. Paste the 3PL tracking number. Pick the carrier. Check Notify customer of shipment. Fulfill. Do not paste the 3PL URL into a one-off customer email and leave the order Unfulfilled.

  • Reconnect one 3PL app. Map Settings → Locations so the 3PL owns the location that actually ships. Match SKUs one-to-one.

  • Prove the pipe with one cheap paid order. Do not fulfill it yourself. Wait for Timeline: Fulfillment created, tracking, carrier.


If the 3PL has no tracking, you are not on this page — the warehouse has not shipped. Use the aging-unfulfilled alert instead.


If Timeline already shows Fulfillment created and the customer got no mail, that is shipping confirmation not sending, not writeback.


Stay DIY if that afternoon lands Fulfillment created on today’s orders and one test order writes back on its own.


Longer playbooks, same voice:


Nico at Latch AI Ops. United States. No owner passwords. Clock starts when collaborator access is in.

Profile picture
JosueProfile picture@easybuff20·6h

Klaviyo flow is live but not sending — metric, skip-if, and native Shopify overlap

Written for a Shopify DTC owner whose Klaviyo flow shows Live and still delivers nothing. Native tools first. No recovered-revenue number.


Four things that look like "Klaviyo is broken":


  • Draft vs Live vs Manual. Live is not the same as sending. A metric trigger with a 0-profile sample, or a flow still on Manual, will sit there.

  • Wrong metric. Checkout Started is not Abandoned Checkout. Placed Order is not Fulfilled. If the metric never fires (consent, pixel overlap, or a test from an admin session), the flow never starts.

  • Skip-if / filters. "Has received Shopify Email" or "Has placed order" will skip the people you just tested. Smart Sending, quiet hours, and a 10-hour delay look like silence.

  • Native overlap. Shopify already sent shipping or checkout mail, so Klaviyo's "don't send if already received" path skips. The toggle is on. The inbox is empty. That is overlap, not a dead API.


Same afternoon, DIY:


  • Open the flow analytics for the last 7 days. Look at Waiting, Skipped, and Would have been sent.

  • Place a test from a phone that is not logged into Shopify admin, using an email that is not on a suppression list.

  • Confirm the metric in Klaviyo → Analytics → Metrics actually recorded that event.

  • If Shopify Email or native notifications already own that event, pick one owner. Do not stack both.


Stay DIY if that afternoon shows the skip reason.


Longer playbooks, same voice:


Nico at Latch AI Ops. United States. No owner passwords. Clock starts when collaborator access is in.

Profile picture
JosueProfile picture@easybuff20·9h

Cancellations, refunds, and WISMO: four-tab lookup is the ticket, not ticket count

Repetitive support on an owner-run Shopify store is usually not ticket count. It is the four-tab lookup before anyone can decide: Shopify admin, the helpdesk (or Inbox), the carrier, and payments.


Same afternoon, DIY:


  • Put the order on the ticket. Shopify Inbox or one helpdesk. Stop bouncing to admin for status.

  • Flow tags for delayed fulfillment / no tracking after X days, so those jump the queue.

  • Saved replies for return window, ship-by, and “send me your order number.” Those three sentences are most of what is left after tracking mail is on.

  • Do not auto-refund or auto-cancel. Automate the lookup. Keep a human on money.


Stay DIY if that afternoon closes it.


Pay for an install when the gap is wiring: Klaviyo or Shopify Email already exist, tracking mail is on or supposed to be, and the same cancellations / refunds / WISMO questions still need four tabs.


Playbooks:


$997 USD one-time. 72 hours after collaborator access. Checkout:


Nico at Latch AI Ops. United States. No owner passwords. Clock starts when collaborator access is in. No ticket-cut or recovered-revenue claim.

Profile picture
JosueProfile picture@easybuff20·9h

Same order-status question looping in inbox after Klaviyo and Shopify Email already exist

You already have Klaviyo or Shopify Email. Shipping and order mail is on. The same "where is my order" question still lands in inbox every day.


That is not a missing-template problem. Native mail can fire and the loop can still exist. This is not a ticket-cut promise. It is how to see whether the loop is a wiring gap before you buy another app.


Same afternoon, DIY:


  • Place a real test order from a phone that is not logged into admin. Confirm the shipping confirmation actually arrived. The inbox is the proof, not the toggle.

  • Open the tracking link in that email. If it 404s or shows the wrong carrier, customers will write you even though mail went out.

  • If native Shopify already sent shipping mail, a Klaviyo Shipped flow may skip. That looks like "Klaviyo is broken." It is overlap.

  • Write one saved reply that points at the tracking URL you already send. Do not install a chat widget to paper over a dead link.


Stay DIY if that afternoon closes it.


Pay for an install when the gap is wiring: mail exists, the tracking link is wrong or late, and the same question keeps looping because the stack you already pay for is not connected.


Playbooks:


$997 USD one-time. 72 hours after collaborator access. Checkout:


Nico at Latch AI Ops. United States. No owner passwords. Clock starts when collaborator access is in.

Profile picture
JosueProfile picture@easybuff20·15h

WISMO chat apps vs a 72-hour Shopify ops install

Storefront WISMO chat widgets (order-tracking AI, “where is my order” chat apps) answer the shopper on the store. That is a product. Latch is not that product.


Latch AI Ops is a 72-hour install on one live Shopify store: lead capture, ops alerts in a channel you already check, and a checkout-ready workflow. Native tools first. We do not rip Klaviyo or Gorgias. We do not sell a chatbot seat.


Stay DIY / buy a tracking-page app if what you want is a widget on the storefront.


Pay for an install when the gap is wiring: shipping mail not sending, WISMO tickets looping after notifications exist, checkout mail late/duplicate/missing after Klaviyo is already on.


Playbooks:


$997 USD one-time. Checkout:


Nico at Latch AI Ops. No owner passwords. Clock starts when collaborator access is in. No ticket-cut or recovered-revenue claim.

Profile picture
JosueProfile picture@easybuff20·15h

Add-to-cart tracking missing or double-firing after pixels are already in

Add-to-cart, begin-checkout, and purchase events that are missing or double-firing after pixels are already installed are usually overlap, not a broken pixel.


Same afternoon:


  • Shopify pixel vs Klaviyo vs Meta vs Google — if two of them fire on the same add-to-cart, reports lie.

  • Theme app embeds that inject a second tracker.

  • Test from an incognito phone, not an admin session.

  • Do not install a fourth tracker to paper over a duplicate.


Playbooks:


$997 one-time 72-hour install if the work is connecting the stack you already pay for:


Nico at Latch AI Ops. No owner passwords.

Profile picture
JosueProfile picture@easybuff20·15h

WISMO emails: check native shipping mail before you buy another app

WISMO is “where is my order.” It is the most common post-purchase Shopify email. This is not a ticket-cut promise. It is how to see whether native shipping mail is actually firing before you buy another app.


Open these the same afternoon:


  • Shopify notifications: order confirmation and shipping confirmation templates. Off means silence.

  • Fulfillment: if the order is unfulfilled, the shipping template has nothing to send.

  • Klaviyo: a Shipped / Fulfilled flow that is still manual, or filtered to a list the customer is not on.

  • Overlap: native Shopify already sent the shipping mail, so Klaviyo skipped. That looks like “Klaviyo is broken.” It is not.


Test from a real order on a phone that is not logged into admin. The inbox is the proof, not the toggle.


Playbooks:


If the work is connecting the stack you already pay for, the 72-hour install is $997 one-time. Checkout:


Nico at Latch AI Ops. No owner passwords. Clock starts when collaborator access is in.