Weekly Shopify to TikTok audience refresh

Every Monday morning, rebuild your TikTok retargeting, winback, and lookalike audiences from fresh Shopify customer data, then post a summary in Slack.

Agentic Task
ShopifyTikTok AdsSlack BotMarketingOperationsData SyncNotifications & Alerts
PromptCreate

Every Monday at 6am (advertiser timezone), refresh my TikTok custom audiences from Shopify customer data so retargeting, exclusion, and lookalike campaigns stay current.

Build the segments from Shopify. Use shopify List Customers and shopify List Orders (orders from the last 90 days) to compute three segments per customer:

1) High-value buyers — customers with 2 or more orders in the last 90 days OR lifetime spend above a configurable threshold (default $250). Use these as the seed for a lookalike.

2) Recent purchasers — customers who ordered in the last 30 days. Use these as an exclusion audience so prospecting doesn't waste spend on people who just bought.

3) Lapsed one-time buyers — customers with exactly one order whose last order was 60+ days ago. Use these as a winback audience.

For each segment, collect email addresses and phone numbers, normalize them (lowercase emails, E.164 phones), and SHA-256 hash each value before sending to TikTok.

Push to TikTok. For each of the three segments, look for an existing custom audience named after the segment (e.g. "Shopify: High-Value Buyers"). If it exists, call tiktok-ads Update Custom Audience in replace mode so the audience reflects the current segment. If it does not exist yet, call tiktok-ads Create Custom Audience from File to create it from the hashed identifiers. Save the audience IDs for reuse.

After the high-value audience is refreshed, use tiktok-ads Create Lookalike Audience with the high-value audience as the seed (default expansion size: 1% same country as the advertiser). If a lookalike from this seed already exists, skip creation.

Attach the audiences to ad groups with tiktok-ads Apply Custom Audience to Ad Groups: include the lapsed one-time buyer audience on the designated winback ad group, and exclude the recent purchaser audience from the designated prospecting ad groups. Ask the user for the winback ad group ID and the list of prospecting ad group IDs during setup.

Finally, post a summary to a Slack channel using slackbot Send a Message. Include: each segment's size, the delta versus last week (added / removed), whether each audience was created or updated, the lookalike audience ID (or "skipped"), and the list of ad groups updated. Keep it under 15 lines and use Slack mrkdwn bullets.

Configuration to prompt the user for: Shopify shop, TikTok advertiser ID, high-value spend threshold, recent purchaser window (days), lapsed window (days), winback ad group ID, prospecting ad group IDs, and the Slack channel for the summary. Store last run's segment sizes so the next run can compute deltas.

Additional information

What does this prompt do?
  • Rebuilds three customer segments from your Shopify store every Monday: high-value buyers, recent purchasers, and lapsed one-time buyers.
  • Pushes each segment into a matching TikTok custom audience so retargeting, exclusion, and winback lists stay fresh instead of going stale within a week.
  • Spins a lookalike audience off your high-value seed and updates ad groups so prospecting excludes recent buyers and winback targets lapsed customers.
  • Posts a Monday morning summary to a Slack channel with segment sizes, week over week changes, and which ad groups were updated.
What do I need to use this?
  • A Shopify store with access to customers and orders
  • A TikTok Ads Manager account with an advertiser you want managed and, optionally, the ad groups to attach audiences to
  • A Slack workspace and channel for the weekly summary
How can I customize it?
  • Change the schedule from Monday 6am to any day or time, and pick your timezone.
  • Adjust the segment rules: the high-value spend threshold, the recent purchaser window, and how long counts as lapsed for winback.
  • Point the workflow at the specific TikTok winback and prospecting ad groups you want managed, or send the summary to a different Slack channel.

Frequently asked questions

Do my customers' emails and phone numbers get exposed on TikTok?
No. Emails and phone numbers are hashed before they leave your workflow. TikTok only receives the hashed values, which is the standard privacy-safe way to build a match audience.
What happens on the very first run?
If a matching TikTok audience does not exist yet, the workflow creates it from a fresh file. On every run after that, it updates the existing audience in place so your ad groups stay attached.
Can I run this more often than weekly?
Yes. Monday at 6am is just the default. You can bump it to daily if your store moves fast, though weekly is usually enough because TikTok's matching and delivery take time to warm up.
Will this work if my store has tens of thousands of customers?
Yes. The workflow pulls customers and orders in pages and only sends the identifiers that belong in each segment, so it scales to large stores without timing out.
What if I don't want a lookalike or don't have a winback campaign yet?
The lookalike step and the ad group updates are optional. You can turn them off and still get the three refreshed custom audiences plus the Slack summary.

Stop letting your TikTok retargeting go stale.

Connect Shopify, TikTok Ads, and Slack once, and Geni refreshes your audiences every Monday morning.