Skip to content

Workflow playbook · Ecommerce

Automate postcards from Shopify, Klaviyo, or Mailchimp

Cart, win-back, thank-you.

Start from a store or lifecycle event, then recheck eligibility right before the card mails. Keep the order ID, offer, and duplicate key together.

  • Reviewed against primary sources
  • Last updated: October 11, 2026
  • No setup fees

Stop rule

If they buy first, the card never mails.

Delay the postcard, then recheck orders, suppression, and offer dates right before release.

Ecommerce direct mail

The playbook

How do you send an abandoned-cart postcard from Shopify?

Trigger from cart or checkout abandonment, then stop the send if the order completes before release.

  1. Choose abandonmentDefine the event and inactivity window.
  2. Check addressUse only a complete postal address collected for a valid business purpose.
  3. Delay and recheckStop when the customer buys, unsubscribes, or becomes ineligible.
  4. MeasureUse an offer code or declared response source without treating tracking as purchase proof.
Read the full answer

Use the customer or checkout ID, cart time, postal address, cart value band, and offer version. Add a delay that fits production time. Immediately before release, check for a completed order, duplicate send, suppression, or expired offer.

Shopify Flow HTTP request retries make idempotency necessary. A retry must not create another postcard.

Field map

Every start event needs a stop rule.

Each campaign needs a start event, a stop rule, and a source ID.

Ecommerce event and stop-rule matrix
WorkflowStart eventStop before release
Abandoned cartCheckout inactive for the chosen windowCompleted order, missing address, suppression, duplicate, or expired offer.
Win-backCustomer crosses the inactivity thresholdNew purchase, suppression, missing address, or duplicate mail candidate.
Post-purchase thank-youPaid or fulfilled orderRefund, cancellation, test order, or duplicate order event.
Mailchimp statusMail status or declared response eventNever mix operational status with response evidence.

Ecommerce FAQ

Settle these before the first cart.

Pricing it out? See plans and per-piece rates.

Primary sources

  1. Shopify Flow: Send HTTP request
  2. Shopify Flow: Triggers
  3. Klaviyo: Webhooks in flows
  4. Mailchimp Marketing API

No native Shopify, Klaviyo, or Mailchimp connector claimed. Plans: list upload, dedupe, and automated mail need Operator or Growth. Integrations and API access need Growth and connect through a no-code tool or our API. Product plans, trigger names, and connector access can change. Confirm yours before production use.

How do you add postcards to a Klaviyo win-back flow?

Use the win-back segment as an audience decision and send the eligible record through a confirmed connection. Define inactivity from the business's own purchase data. Exclude recent purchasers, suppressed profiles, incomplete addresses, and duplicate mail candidates. Save the Klaviyo profile ID and the flow or segment version with the mail record.

A Klaviyo profile entering a flow does not prove that a public Sendvo action exists. Confirm the connection method first.

How do you send a post-purchase thank-you postcard from Shopify?

Trigger on a paid or fulfilled order event that matches the message. Use the order ID as the source key. Choose the recipient and address snapshot. Exclude refunds, test orders, canceled orders, and duplicate order events. Do not use customer creation as proof of payment.

The message should not promise delivery timing that the mail workflow cannot guarantee.

How do you update Mailchimp after direct-mail delivery or response activity?

Write operational mail status and actual response activity as different events. Use the Mailchimp Marketing API or an approved connector to update a tag, merge field, or event. Save the mailpiece ID and event time. Label mailstream signals as operational. Only record a response when a declared response source, such as a code, call, form, or order, supplies that evidence.

Do not use a mailstream event as proof that a recipient saw the piece or bought something.

Does Shopify Flow retry failed HTTP requests?

Shopify documents retry behavior for the Send HTTP request action. Use a stable event key and idempotency to prevent duplicates.

Does customer creation prove payment?

No. Use a paid, successful, or fulfilled event that matches the message and verify the current event semantics.

Does mail tracking prove an ecommerce conversion?

No. Keep mailstream status separate from purchase or response evidence.

Before launch

Preflight checklist before the first live send
  • Use one stable source-event ID and save it with the mail record.
  • Require recipient name, address line 1, city, state, and ZIP Code before release.
  • Set a duplicate rule for the person, household, property, order, or job.
  • Render a proof with a test record before any funded send.
  • Define who can pause the workflow and who can approve release.
  • Store the source record ID, campaign ID, and returned mailpiece ID together.
  • Treat mailstream events as operational signals, not proof of attention or revenue.

Make the start event and stop rule equally clear.

Start with one test order.

Recheck purchase state, address, suppression, duplicates, and offer dates before each ecommerce postcard releases.

Thanks for believing in the power of real connection.