Managing lists

Build, upload, enrich, share and target saved creator lists — how matching works, how to read the upload summary, and why some handles don't match.

Loading video…

A list is a saved set of creators you can point outreach at. Use lists to gather creators from AI Search, Social Intelligence, or a spreadsheet, then act on the whole set at once.

Creating a list

Outreach → Lists → Create List

  1. Give it a title (letters, numbers, spaces, . - _, up to 50 characters).
  2. Choose Upload CSV or Paste handles.
  3. Optionally tick shops under Also share with… to make the new list available in your other shops (see Sharing a list across your organization below).

Upload CSV

There's no list type to pick. Drop the file in and Cruva reads it for handles and emails together.

  • Plain text only — .csv, .tsv or .txt. Excel and Numbers files are rejected (even if renamed); open the file and use File → Save As → CSV.
  • Columns are detected automatically. Naming them handles and emails is the surest route, but handle, username, tiktok handle, email address, contact email and similar all match.
  • The @ is optional on handles.
  • A cell is read for what it actually is. An address sitting in the handle column is still treated as an email, and vice versa — a mislabelled export still imports correctly.
  • No header row is fine. Cruva samples the first rows to work out which column is which, and falls back to reading the first column as handles.
  • Both columns at once is the best case — a file with handles and emails keeps both on the same member.
  • Up to 50,000 rows per upload. Split anything larger.

A one-column file of bare handles still works exactly as it always did:

kylejones
beautybyanna
fitwithsam

Paste handles

For a short list that isn't in a file yet. One entry per line — commas, semicolons and spaces work too, the @ is optional, and email addresses are accepted in the same box.

How Cruva matches your file

Every row is read, cleaned up and matched against the creator database for your shop's region — the same database behind AI Search and the CRM. Cruva stores every usable row, then attaches as much creator data as it can find.

Cleaning up a row. Handles are lower-cased and a leading @ is dropped, so @KyleJones, kylejones and KYLEJONES are the same creator. Email addresses are lower-cased and trimmed. Blank rows are ignored.

Folding duplicates. Two rows with the same handle, or the same email, collapse into one member. A row that only repeats something already seen is counted as a duplicate; a row that adds a missing half (the handle seen once bare and once beside an email) is merged into the existing member instead.

Enriching. Each member is then looked up:

  • Upload a handle → Cruva pins it to that creator and attaches their email, if one is on file.
  • Upload an email → Cruva resolves it back to a handle where it can.
  • Upload both → both are kept exactly as you sent them, pinned to the exact creator.

A handle that matches a creator picks up their profile: followers, GMV, engagement, categories and demographics, which is what the filters inside a list run on. A handle that doesn't match is still added as a member, just without profile data. Nothing in your file is thrown away for failing to match.

This is also why the email count is often higher than the number of addresses in your file, and why a list built from bare handles can still send email.

Reading the upload summary

When the upload finishes, the success message accounts for every row in the file:

Added 8,145 creators · 8,145 handles, 5,228 emails. 11,684 rows read · 3,539 duplicates skipped · 311 not matched to a creator

The numbers always add up: rows read = creators added + duplicates skipped + invalid rows skipped. The two remaining lines are subsets of what was added, not extra rows:

  • duplicates skipped — rows repeating a handle or address already in the file.
  • invalid rows skipped — rows holding neither a handle nor a valid email address (a URL, a display name with spaces, a stray note).
  • already in this list — on Upload more, members the list already had. They're counted as added but nothing changed.
  • not matched to a creator — handles that were added but didn't resolve to a creator in the database. See Why a handle doesn't match below.

When any of these are non-zero, a Download not matched button appears on the message. It saves a two-column CSV, Value and Reason, listing every unmatched handle, every duplicated value and every invalid row, so you can check them against the file you sent. The message stays up for about 20 seconds; if you miss it, re-uploading the same file is harmless (everything will come back as already in this list) and shows it again.

If nothing usable was found you'll get a "Nothing to upload" error instead, telling you whether the rows were invalid or the file was empty.

Why a handle doesn't match

Some not matched is normal on any real-world file. The common reasons, roughly in order of how often we see them:

  1. Typos and pasted text. A trailing space, a missing letter, a handle copied with its display name. Cruva tolerates the @ and capitalisation, but not a different spelling.
  2. The creator has changed their handle. TikTok lets creators rename at any time. Your spreadsheet has the old name; the database has the new one.
  3. A TikTok creator who isn't a TikTok Shop affiliate. The database holds creators who are enrolled in TikTok Shop's affiliate program. A popular TikTok account that has never joined the affiliate program, or has no shop activity yet, won't be in it. These are the most common "real" misses in lists built from general TikTok research.
  4. An affiliate in another region. Creator data is region-gated. A UK creator uploaded to a US shop won't match, and vice versa. If a whole list came back unmatched, check which shop you're in.
  5. Very new or inactive affiliates. Creators who just joined the program, or who have had no activity for a long time, may not have been picked up yet. They often match on a later re-upload.
  6. Deleted or banned accounts.

Unmatched members still count toward the list, still appear on the list page, and can still be included in a DM automation (sending to a handle doesn't require profile data). What they can't do is be filtered by followers, GMV or demographics, and they won't be emailed unless you supplied the address yourself.

Working inside a list

Click a list to open it. Every member is shown with their handle, email, categories, followers, 30d GMV and engagement.

  • Search — by name, handle or email.
  • Filter — narrow the list by creator attributes: categories, GMV, units sold, live GMV, followers, min views, engagement, promotion performance, content quality, plus demographics (gender, age, language, follower ages and so on). The filtered set is what Download exports, so this is how you carve a targeted CSV out of a big list.
  • Add creator or email — type a single handle or address; Cruva works out which it is and fills in the other side.
  • Upload more — append another CSV to the same list.
  • Add to another list — per row, or on a multi-row selection.
  • Remove — per row, or in bulk from the selection bar.
  • Rename — the pencil next to the title. Titles are display text only; nothing that points at the list breaks when you rename it.
  • Download — a CSV with handle, nickname, profile URL, email, categories, followers, GMV, engagement, post rate and demographics.

Handles and emails live on the same list

There is only one kind of list. Each member row can carry a TikTok handle and an email address, so the same list can drive a DM automation and an email campaign.

You'll see two counts on every list:

  • Affiliates — members with a TikTok handle. This is who a DM automation can message.
  • Emails — members with an email address. This is who an email campaign can reach.

The two overlap. A list of 5,000 creators where 1,200 have an email on file shows 5,000 affiliates · 1,200 emails — it's one list, sized differently depending on which channel you send through.

Sending to a list

From the list page (Create Campaign) or the ⋮ menu on the Lists table, pick:

  • DM automation — messages the members that have a handle.
  • Email campaign — emails the members that have an address.

The menu shows the count each channel can reach and disables the option when that count is zero ("No email addresses in this list"). Inside campaign setup, choose Saved Lists as the audience and pick up to 10 lists per campaign; the picker shows the count that matters for that channel — affiliates for a DM automation, emails for an email campaign.

Want a list where everyone is emailable? In AI Search, tick Only show creators with emails before you search, then Add All to List. Results are restricted to creators with a published address, so every member of the resulting list can be emailed.

Sharing a list across your organization

A list is owned by the shop it was created in, but it doesn't have to stay there. Sharing makes it usable in your other shops without re-uploading anything.

How to share: ⋮ → Share… on the Lists table, or tick shops under Also share with… while creating the list. Check the shops, save, done.

It stays one list — not a copy. Members, uploads, renames and removals apply everywhere it's shared, immediately. Add 500 creators in one shop and the other shops see them too.

Who you can share with. Your other shops that are:

  • under the same Cruva account,
  • in the same region — creator data is region-gated, so a list built in the US can't be used by a UK shop, and
  • active (paid).

Anything outside that isn't offered. Managing a list's shares needs edit rights on the list, which follow the owning shop.

What it looks like. A list shared into the shop you're viewing carries a Shared badge; hover it to see which shop owns it. A list you own that's shared elsewhere shows Shared with 2 shops. Shared lists can be viewed, downloaded and targeted by campaigns like any other; editing them requires access to the owning shop.

Unsharing. The owner unticks the shop in the Share dialog. Someone in a shop that received the list can use ⋮ → Remove from this shop to drop it on their side. Either way, if a campaign or automation in that shop is still pointing at the list, the removal is refused with Still in use and the blocking campaigns are named — repoint or delete those first. Deleting a list outright is blocked the same way, including by campaigns in other shops it's shared with.

Merging lists

Outreach → Lists → Merge Lists. Pick two or more lists and name the result. Merging creates a new list and keeps the originals, de-duplicating overlapping members. Lists shared into your shop can be used as sources; the merged result is owned by the shop you merge in.

Lists vs Groups

Lists are manual. If you want a set that maintains itself — everyone who was shipped a sample but hasn't posted, everyone over $10k GMV — that's a Group. A list-driven automation works through its members and stops; a group-driven automation keeps running and messages creators as soon as they match.

Common problems

"My file had 11,684 rows but the list shows 8,145." Almost always duplicates. Exports stitched together from several searches repeat creators, and each repeat is folded into one member. Check the upload message: rows read minus duplicates skipped minus invalid rows is exactly your list size. Download not matched gives you the duplicated values so you can verify against the file. Unmatched handles are not the cause of a smaller list; they're added anyway.

"Hundreds of handles weren't matched to a creator." See Why a handle doesn't match above. Download the not-matched file, spot-check a few on TikTok: a renamed handle or a creator with no Shop affiliate badge explains most of them. If nearly everything is unmatched, you're probably in a shop for the wrong region.

"Nothing was imported." Confirm it's a real plain-text CSV (not a renamed .xlsx) and that the file actually contains handles or email addresses. Handles that don't resolve to a creator are still added — they're not the cause.

"The email count is lower than my row count." Expected. Only members with a known address can be emailed; Cruva fills in the ones it has on file. To send email to more of the list, upload addresses alongside the handles, or build the list from an AI Search with Only show creators with emails enabled.

"My header row showed up as a creator." Cruva recognises headers like handle, username, creator, creator_name, tiktok handle, email and their variants. An unrecognised header in a one-column file is read as data. Rename the column to handles (or emails) and re-upload; the stray member can be removed from the list page.

"I keep creating new lists instead of adding to one." Open the list and use Upload more or Add creator or email, use Add to another list from a selection, or Merge Lists to combine.

"I can't delete or unshare a list." Something is still using it — the error names the campaigns or rules, in whichever shop they live.

Was this article helpful?

Related articles