Skip to content

Verify your Shopify customer emails before you send

Integration E-commerce and payments

Shopify email verification in three steps: export your customers, verify the file in PricklyMails, then unsubscribe the addresses to remove.

There is no native Shopify connector: you export the list, PricklyMails verifies it, and you bring the result back into Shopify. New addresses can go through the API before they ever reach Shopify.

Verify for free

Step by step

Clean your list in three steps

  1. In Shopify

    Export your customers from Shopify

    1. From your Shopify admin, go to Customers.
    2. To verify only the customers who agreed to receive your marketing emails, click the Email subscribers segment.
    3. Click Export.
    4. Select All customers, or # customers matching your filters to export the open segment alone.
    5. Under Fields included, check Customer tags and Customer metafields.
    6. Select CSV for Excel, Numbers, and other spreadsheet programs, then click Export customers.
    7. Up to 50 customers, your browser downloads the file. Beyond that, Shopify emails it to you, and to the store owner if that is not you.

    Warning

    Keep this export as it is: you bring the result back by re-importing some of its rows, and an import that overwrites a customer replaces its data with the file, tags included.

    Tip

    PricklyMails only needs the addresses: copy the Email column into a new file for the batch.

  2. In PricklyMails

    Verify the file in PricklyMails

    1. In the dashboard, open Batches and click New batch.
    2. Drop the file you exported from Shopify: a .csv or .txt with one address per line, no header row and no quotes. A header row would count as an address in the estimate, though it is never billed, and a quoted address would not be verified: the report lists both as malformed. You can also paste the list.
    3. The dashboard counts the addresses and shows the estimated cost in tokens before anything is sent, then you click Submit batch. A batch holds at least 20 addresses, and your plan sets the largest list it can hold.
    4. The list is verified in the background. Once the batch is done, open it and click Download report: you get a CSV with a row for each address of your file, giving its verdict, its reason, its score and its recommendation, with the dashboard's labels.

    Note

    Download the report from the browser that sent the list: that browser is what keeps the addresses, for the 16 most recent batches at most. Our servers, in Germany, only keep a one-way fingerprint of each one.
    What the report says

    Every address gets a recommendation: the action to take. The report writes it with the dashboard's label; the API returns a short form of it.

    Send
    The address is valid, or hosted by a large provider that accepts every address without confirming any. Send as usual.
    Review
    A domain that accepts any address (catch-all), a generic address such as contact@, a full mailbox, or a server that never answered, or refused to. Take a look before you send.
    Remove
    The address does not exist, its domain cannot receive mail, or it is disposable, mistyped or malformed. Take it out.

    Note

    A malformed address is never verified: the batch counts it under "Malformed addresses", and the report still lists it, with the verdict "Invalid", the reason "Malformed address" and the recommendation "Remove", so you take it out of Shopify with the others. A duplicate, counted under "Duplicates removed", appears only once.

    Behind each recommendation sit a verdict (Valid, Risky, Invalid or Not verifiable), a reason and a score from 0 to 100, each in its own column of the report. When a server never answers, the address comes back "Not verifiable" and the checks that got no answer are refunded.

  3. In Shopify

    Bring the result back into Shopify

    Open the report in a spreadsheet and filter the Recommendation column.

    Remove

    They get unsubscribed from email marketing: Shopify Messaging stops emailing them, and each customer keeps its profile and orders.

    Shopify updates existing customers from a CSV file when you overwrite them: re-import their rows from your export, with marketing consent turned off.

    1. In a copy of your Shopify export, keep only the rows of the addresses to remove.
    2. In the Accepts Email Marketing column of those rows, enter no.
    3. Save the file as a CSV in UTF-8.
    4. In Shopify, go to Customers and click Import.
    5. Click Add file, then select your file.
    6. Check Overwrite existing customers that have the same email or phone number.
    7. Click Import customers.
    Review

    They deserve a look before your next campaign. To find them in Shopify, re-import their rows the same way without touching Accepts Email Marketing, and check Add tags to customers in this csv and use these tags to create a segment.

    Send

    They stay subscribed: nothing to do.

    Warning

    With the overwrite option checked, Shopify replaces each customer in the file with the data of its row. Import rows taken from your own export, never a file that holds the email column alone.

    Tip

    A handful of addresses? Unsubscribe them one by one: open the customer, click Edit marketing settings, clear Customer agreed to receive marketing emails, then click Save.

Verify each address before it reaches Shopify

Does your app or sync script create customers through Shopify's Admin API, with the customerCreate (opens in a new tab) mutation? Ask PricklyMails first. If the recommendation is remove, don't create the customer with email marketing consent.

One call starts the verification and already flags a likely typo, a second one reads the verdict. Depending on your plan, a signed webhook can also send it to you as soon as it's ready.

Request
curl -s https://api.pricklymails.com/api/verify \
  -H "Authorization: Bearer pm_live_9f3a..." \
  -H "Content-Type: application/json" \
  -d '{ "email": "ana.silva@gmail.con" }' \
  | jq '{job_uuid, suggestion}'
Response
{
  "job_uuid": "8f1c2a9e-4b7d-4e2a-9c61-3d5f0b7a2e18",
  "suggestion": "ana.silva@gmail.com"
}
Request
curl -s https://api.pricklymails.com/api/verify/$JOB_UUID \
  -H "Authorization: Bearer pm_live_9f3a..." \
  | jq '.verifications[0] | {status, reason, score, recommendation}'
Response
{
  "status": "invalid",
  "reason": "no_mx_records",
  "score": 0,
  "recommendation": "remove"
}
Read the API docs

Frequently asked questions

Shopify already suppresses bounced addresses, so why verify first?

Shopify's help center says an address is suppressed from future sends once an email to it bounces: by then the email has gone out and the bounce has counted. It also warns that if your sending generates sustained spam complaints or high bounce rates, Shopify might temporarily limit or pause your access to the Shopify Messaging app, scheduled campaigns included. Verifying first takes those addresses out before they bounce.

Should I delete the customers to remove?

No, unsubscribe them. According to Shopify's help center, deleting a customer profile can't be undone and redacts its personal data, and a profile associated with one or more orders can't be deleted at all. An unsubscribed customer keeps its profile and order history, and Shopify Messaging filters out any customer who doesn't accept email marketing.

SourceShopify's official help center

What should I do with info@ or support@ addresses?

Shopify's help center recommends removing role-based addresses by hand: they usually reach a team rather than one person, are probably not monitored, and can hurt your open rate over time. The report flags these generic addresses for review, so you decide on each one; unsubscribe those you drop the same way as the addresses to remove.

SourceShopify's official help center

Does PricklyMails connect to Shopify directly?

No, there is no native connector: you go through a file export, as above. You can also call the PricklyMails API from your own code before an address reaches Shopify.

These trademarks belong to their respective owners. Naming them implies no partnership.

Check your list before your next send.

1,000 tokens free when you sign up, no credit card. After that, you only pay for answers.