Catch fraudulent Shopify signups with email risk scoring

When a new customer signs up in Shopify, score their email for fraud risk, tag the risky ones, and ping your team in Slack with the evidence.

Agentic Task
ShopifyZeroBounceSlack BotOperationsSalesNotifications & AlertsLead EnrichmentData Sync

Build an agent workflow that catches fraudulent or low-quality customer signups in my Shopify store before they pollute my customer list.

Trigger: a Shopify webhook for the customers/create event. Each time a new customer is created in my store, the agent runs on that customer's record. If Shopify webhook triggers are not available in this platform, fall back to polling Shopify for new customers on a short interval and process any I have not seen before.

Step 1. Call ZeroBounce Validate Email on the new customer's email address. Capture the status (valid, invalid, catch-all, unknown, spamtrap, abuse, do_not_mail) and the sub_status (especially disposable, toxic, role_based, mailbox_not_found, possible_typo, global_suppression).

Step 2. Call ZeroBounce AI Email Scoring on the same address to get the 0 to 10 engagement-likelihood score.

Step 3. Reason over the combined evidence and assign a risk tier. Use these rules as a starting point, and feel free to combine signals rather than treating each rule in isolation:

High risk: status is invalid, abuse, spamtrap, or do_not_mail; sub_status is disposable; or the AI score is below 3. Also treat toxic and global_suppression as high risk.

Ambiguous: catch-all status with an AI score in the medium band (roughly 3 to 6), or role_based addresses, or possible_typo with a decent score. These look uncertain rather than clearly bad.

Clean: valid status with an AI score of 6 or higher and no concerning sub_status. The workflow should exit silently for these.

Step 4. Act on the risk tier:

For high-risk signups, call Shopify Update Customer to add a risky-email tag (preserving any existing tags), then call Slack Bot Send a Message to post an alert into a fraud-watch channel I will configure. The Slack message should name the customer, list which specific signals tripped the decision (status, sub_status, AI score), explain the likely order risk in plain language (chargeback risk, throwaway address, abuse pattern, etc.), and recommend an action such as hold fulfillment, require manual review, or refund and cancel.

For ambiguous signups, do not tag the customer. Only call Slack Bot Send a Message into the same channel with a softer heads-up that explains why the signal was inconclusive and suggests watching the first order. This keeps the Shopify customer record clean while still giving the team visibility.

For clean signups, do nothing and exit. No Slack message, no tag, no log entry.

Operational notes: keep the Slack alerts concise and scannable, ideally with the customer's name and email as the headline and the signals as a short bulleted list underneath. Never block checkout or refund automatically. The workflow's job is to surface evidence, not to take destructive action. If ZeroBounce returns an error or runs out of credits, skip the customer and alert me in Slack so I can top up rather than failing silently.

Additional information

What does this prompt do?
  • Watches your Shopify store for new customer signups and checks each email the moment it lands.
  • Combines an email deliverability check with an AI engagement score to decide if the signup looks like fraud, junk, or a real shopper.
  • Tags high-risk customers in Shopify as 'risky-email' so your team and your other tools can see them at a glance.
  • Posts a clear Slack alert into your fraud-watch channel explaining which signals tripped, what it could mean for the order, and what to do next.
What do I need to use this?
  • A Shopify store with permission to read and update customer records.
  • A ZeroBounce account with credits for email validation and AI scoring.
  • A Slack workspace and a channel where the fraud-watch alerts should land.
How can I customize it?
  • Change which Slack channel gets the alerts, or split clean, ambiguous, and high-risk signups into different channels.
  • Tune the risk thresholds, like which AI score counts as 'too low' or whether catch-all addresses get tagged or only flagged.
  • Swap the 'risky-email' tag for your own naming convention so it fits the segments and flows you already use in Shopify.

Frequently asked questions

Will this block customers from checking out?
No. The workflow only adds a tag and posts a Slack alert. Nothing is blocked or refunded automatically. Your team decides what to do with the flagged customer.
What counts as a high-risk signup?
Emails that come back as invalid, abuse, spamtrap, or disposable, plus addresses with a very low AI engagement score. You can change these rules to match how strict you want to be.
What happens to clean signups?
Nothing visible. The workflow exits silently so your real customers and your Slack channel stay quiet. Only risky or ambiguous signups create activity.
How much will this cost in ZeroBounce credits?
Each new signup uses one validation credit and one AI scoring credit. If you want to limit cost, you can tell the workflow to only score signups that already look suspicious on the validation step.
Can I run this on existing customers, not just new ones?
Yes. You can adapt this prompt to run on a schedule across your customer list, or to backfill recent signups in one pass, instead of only triggering on new ones.

Stop letting fraudulent signups pollute your customer list.

Connect Shopify, ZeroBounce, and Slack once, and Geni checks every new signup the moment it happens.