learn-ship-ecommerce-enabler-with-phoebe / Leader session 4 of 6
Ship It: Social Commerce Enablers · Leader session 4 of 6

What the platforms let you bank

Every enabler strategy deck has a slide with one customer in the middle and three marketplaces around it. Tonight you find out why that slide cannot be built, and what can. The marketplaces hand an enabler the order but not the person: names and phones arrive masked, and each platform keeps a different amount of the address. So the customer grain is closed, while the store and SKU grain, which run on Serai's own keys, hold almost perfectly. None of this is a legal question. It is three feasibility questions asked of every row of data: can we get it, at what grain, and what would asking for permission cost?

🟠 Advanced Enabler, agency and marketplace leaders Anyone asked for a single customer view 45 min
0-3 · Welcome 3-19 · Masked buyers, grains, permission 19-39 · Build-along: your feasibility list 39-45 · Q&A
Part 0

Where this sits in the leader track

Session 1 said an enabler owns neither the goods nor the buyer. Session 2 said its margin is the hours it removes, and session 3 showed one table turning a new channel into something eight teams could coach. Tonight takes the second half of session 1's sentence literally: how completely does the enabler not own the buyer, and what does it own instead? The answer decides which of session 5's three products you can build. Serai Commerce is fictional, and so is every figure about it. The masking facts about Shopee, Lazada and TikTok Shop are reported, from integrators' public notes, because the seller centres themselves sit behind a login. The match rates are measured, on real Olist orders, on the enabler bench.

🎫 Clear all three quiz questions to stamp your passport Live = presented in the 45 minutes Self-study = the full depth, after class 🔍 Every diagram zooms

★ What you walk out with tonight. A feasibility list for your estate, one line per data domain: the obtainability word, the key and its owner where you own it, the person to ask and the week you will ask them where it is gated, and, where it is closed, the use case somebody already proposed on top of it, crossed out. Plus one sentence for the next strategy offsite: "the cross-platform view is real at store and SKU grain, and a guess at customer grain."

Part 1 · covers what each marketplace reportedly hands over about the buyer

The buyer is masked on every marketplace

6 min live

Follow one buyer who shops on all three marketplaces, and look at what reaches the seller from each. The order arrives, complete: the SKU, the price, the store, the time. The person behind it does not. What follows is the reported record, dated where the source dates it, and it changes often enough that you should re-read it before any plan is signed.

ONE BUYER, THREE MARKETPLACES reported fields that reach the seller · the order itself always arrives ONE BUYER (CONSTRUCTED) Farah Ismail · phone ends 47 · street, zip, city on the bench (constructed): F***l and the last two digits SHOPEE removed from orders, all sellers reported, help article, 2022 name removed phone removed address kept, for matching applies to all sellers, any tool reason given: data security LAZADA exports masked from 12 Jan 2026 Open Platform API from 1 Jul 2026 name masked phone masked address masked seller-delivered orders excepted exemption can be applied for TIKTOK SHOP desensitised if platform ships reported, integration note name desensitised phone desensitised address not in the report desensitised, not encrypted no decrypt call exists All reported, from integrators' public notes. Dates change often; the seller centres sit behind a login.
🔍 Click to zoom - the order reaches the seller on all three; the person reaches it on none
LiveWhat masked means in practice3 min▶

Here is the reported record, platform by platform, in the words the sources use.

  • Shopee removes buyer names and phone numbers from orders, and keeps the address so that the seller can still match the order for fulfilment. It applies to all sellers, whether they use Seller Centre, the app or a third-party vendor's software (reported).
  • Lazada masks buyer name, address and phone in Seller Center order details, CSV and Excel exports and printed receipts from 12 January 2026, and in its Open Platform API order data from 1 July 2026. Seller-delivered orders keep full details, and seller-delivered merchants can apply for an unmasking exemption (reported).
  • TikTok Shop desensitises the recipient's name and phone when platform logistics ship the order. It is desensitisation, not encryption: there is no decrypt call (reported).

In an enabler's warehouse that means an order row with a store, a SKU, a price, a time, and a buyer field that says something like F***l with a phone reduced to its last two digits (that is how the bench renders it, constructed; each platform's own format sits behind the login). You can count orders, sum GMV, rank SKUs and compare stores. You cannot tell whether the F***l who bought on one marketplace on Monday is the F***l who bought on another on Thursday. Sixty-three distinct masked names cover all 8,333 people in the bench's sample.

LiveWhy the hashed phone is not a workaround2 min▶

Somebody in the room will suggest it: "we do not need the phone, just a hash of it; hash it on every platform and join on the hash." A hash is a fingerprint of a value. It lets two systems agree that they hold the same phone number without either showing it. What it cannot do is fingerprint a value that never arrived. Hash "..47" on three platforms and you get the same hash for every buyer whose phone ends in 47.

The bench tests exactly this. In its sample, 265 orders were shipped by the seller and so carried the raw phone and address (constructed, modelled on the seller-delivered exception). Hashing those phones and joining on the hash linked zero pairs: no two of the 265 were the same person, and every other order had no raw value to hash. You can say it in one line: "hashing is not a workaround for masking; it needs the value that was masked."

Self-studyAll three moved the same way, and that is all the record says2 min▶

Read the three rows together and one pattern is plain: in the reported record, every change runs towards less buyer data reaching the seller, never more. Lazada alone moved twice in 2026, first for its seller centre and exports, then for its API. Each platform keeps a different amount, and each has a narrow exception tied to who delivers the parcel.

That is as far as the evidence goes. Nothing read for this page says what any platform will do next, and a roadmap should not pretend to know. The honest planning stance is to build nothing that needs the buyer's identity, treat the seller-delivered exceptions as a narrow slice rather than a door, and put a dated re-check of the masking rules on the feasibility list with an owner's name next to it.

Real world

The address is kept for a reason, and the reason is the parcel. The integrator help article that reports Shopee's masking says the address stays visible "so that the seller can still use it for order matching" (reported, Easy Shopee & Lazada help centre, 2022). What survives masking is what fulfilment needs, and nothing more. That is a useful rule of thumb for reading any platform's data: whatever the seller needs to ship the parcel tends to arrive, and whatever would let it know the person tends not to.

Part 2 · covers which grains an enabler can join across platforms, measured

Customer grain is closed; store and SKU grain are yours

6 min live

The bench splits 8,614 real Olist orders into three masked marketplace exports, then asks every combination of the keys the exports leave whether it can put the pieces back together. It scores each attempt with a true match rate: the correct links as a share of every link that is either real or claimed. A key only scores well if it finds the real links and invents almost none. Serai's gate for building on a join is 90 percent.

TRUE MATCH RATE, BY GRAIN measured on the bench · 8,614 real Olist orders, masking constructed 90% gate CUSTOMER GRAIN · 339 real pairs masked phone alone name + phone + city + zip best: name + phone + store id 0.1% finds every real link, and 370,684 false ones 19.2% never wrong; only where the zip survived 23.3% 29.2% of real links, 86 false gate shut at every combination tried STORE GRAIN · Serai's store id store id 100.0% SKU GRAIN · Serai's master SKU SKU 97.5% · 17,033 of 17,474 real pairs the gap: 219 unmapped lines Impossible, not hard: no shared identifier and no raw value to hash. Store and SKU keys are Serai's own.
🔍 Click to zoom - the same estate is a guess at one grain and near certain at the other two
LiveReading the three numbers in a meeting3 min▶

Three numbers carry the whole argument, and each has a sentence you can say out loud.

  • 23.3 percent is the best any combination of the keys reaches at customer grain: masked name plus masked phone plus store id, finding 29.2 percent of the real links with 86 false ones. "Our best customer join is wrong more often than it is complete."
  • Masked phone alone finds 100 percent of real links, and 370,684 false ones. This is the number that fools people, because "it finds every match" is true. "A key that finds everyone finds everyone else too."
  • 100.0 and 97.5 percent: store id at store grain, SKU at SKU grain. "Across platforms, our stores and our products join; our buyers do not."

The phrase to hold on to is impossible, not hard. Hard problems get better with more engineering: better matching, more features, a smarter model. This one has no shared identifier and no raw value to hash, so there is nothing for the engineering to work on. The methods that do link records without a shared key belong to the entity resolution course; the bench shows why they have almost nothing to hold here. And note the honest limit the bench prints: with 8,614 orders the fragments look better than they would at Serai's scale, because false pairs grow with the square of the row count and true pairs only with the count.

LiveWhat the store and SKU view actually is2 min▶

Drop the customer and look at what is left, because it is a lot. Serai runs 48 brand stores on three marketplaces in four markets (constructed). Every store has a Serai store id and every listing maps to a Serai master SKU. That means one screen can show the same SKU, on three platforms, in four markets: its price, its sell-through, its return rate, its content, its ad spend, week by week, for Serai's own portfolio.

No single marketplace can show a brand that picture, because each sees only itself. No brand can build it easily, because it would need the same mapping work across every store. It is the real cross-platform moat, and it sits exactly where the bench says the joins hold. Session 5 builds its first product on it.

Self-studyAn owned key obliges an owner and a weekly check2 min▶

Look again at the 2.5 percent. SKU grain does not score 100 because 219 lines in the sample sit on listings missing from Serai's mapping table (the missing listings are constructed; the orders are real). Nobody broke anything. A brand launched a variant, a store manager listed it, and nobody added it to the table.

That is what owning a key means. The platforms will never maintain Serai's master SKU; Serai has to. So the feasibility list does not stop at "owned": it names who owns the mapping table and when it is checked. A weekly count of unmapped lines, with a name next to it, is the whole control. Without it, the 97.5 drifts down one launch at a time and the cross-platform view quietly starts under-reporting the newest products, which are the ones brands ask about.

Real world

Why a public dataset can grade this. Olist describes its public dataset as "real commercial data" that "has been anonymised", and it still carries a stable anonymous customer id on every order. That id is what lets the bench keep the truth hidden and score every join against it: the orders and who placed them are real, while the three-way split, the synthetic names and phones, and each export's masking are constructed and labelled on the bench. Run the ladder yourself there; analyst session 3 builds the same gate by hand.

Part 3 · covers obtainability words and the next step each one buys

Permission is a conversation, not a chapter

4 min live

Most of an enabler's data sits in other companies' systems, so "do we have it?" is the wrong question. The useful one is "which of five words describes it?", because each word comes with its own next step, and two of them are cheap if you say them early and ruinous if you say them late.

OBTAINABILITY WORD TO NEXT STEP the five words from analyst session 1 · one row of data at a time What word is on the row? owned full via API partial gated closed build build, then test test what arrives ask, in week one stop, write it down name the key and its owner date the completeness check measure the share that returns one email, a named owner no build; saves two years Gated is the only word whose next step is an email. Closed is the only one whose next step is a sentence.
🔍 Click to zoom - two of the five words are cheap if said in week one and expensive if found in year two
LiveFive words, five next steps2 min▶

The scale comes from analyst session 1, and it is a finer cut of the three states in the playbook's data gate session, which is where the gate itself is taught.

WordMeansNext step
OwnedYours outright: the master SKU, the store list, the content archiveBuild; name the key and its owner
Full via APIComplete for your own stores: orders, fees, settlementBuild, with a dated test that it really is complete
PartialSome of it returns, the rest stays inside the platform: creator attribution, trafficTest what share arrives before promising anything on it
GatedExists behind a permission you can ask forAn email in week one, to a named person
ClosedNot available, and no workaround: the buyer across platformsWrite it down so nobody spends two years on it

Gated and closed are both "we do not have it today", and they call for opposite moves. Mixing them up is the most expensive mistake on the list: treat a gated row as closed and you give up a product for want of an email; treat a closed row as gated and you fund a two-year project waiting for a yes that cannot come.

LiveA benchmark product needs a conversation, opened early1 min▶

Session 5's most valuable idea is a cross-platform benchmark: how a category performs across three marketplaces and four markets, drawn from what Serai sees running 48 stores. Every number in it comes from data that one platform or one brand handed Serai to do a job. Whether it can be reused to sell something else is not a question the data team answers, and it is not one to answer at launch.

So the feasibility list gives that line a commercial owner (constructed: Serai's head of partnerships) and a date in the first month, for the conversation with the marketplaces' partner teams and the brands. It might end in a yes, a yes with conditions, or a no. All three are cheaper in month one than in month nine.

Self-studyTerms as a feasibility list, with an owner per line1 min▶

A leader does not need to read platform terms like a lawyer. They need a list: each thing the roadmap depends on, the obtainability word, who owns finding out, and the date it was last checked. When a line carries a product the business is betting real money on, the owner takes it to counsel to confirm, and the list records that it was confirmed and when.

That is the whole method. It keeps the question where a leader can act on it, in feasibility: can we get it, at what grain, and what would asking cost. It keeps interpretation where it belongs, with the people qualified to give it.

Real world

A gated row, in the reported record. Lazada's reported 2026 change masks buyer details in its Open Platform API, yet merchants who deliver their own orders can apply for an unmasking exemption (reported, Zetpy, June 2026; BigSeller, "Lazada privacy update 2026"). That is exactly what "gated" means: the data exists, a permission route exists, and the next step is an application with a named owner, not a build. Note how narrow the gate is, too: it covers seller-delivered orders, not the buyer across platforms, so it opens one small slice of one domain and leaves the customer grain closed.

Build-along

Your feasibility list, one line per domain

★ 20 min · everyone builds

No code and no data. The seven domains come from analyst session 1. If you do not run an enabler, build Serai's list alongside the prompt-boxes below, which hold a constructed version: the domains and words follow analyst session 1, the owners and dates are invented, and yours will differ.

SERAI'S FEASIBILITY LIST, ONE LINE PER DOMAIN constructed · words from analyst session 1, owners invented DOMAIN WORD NEXT STEP, KEY OR OWNER 1 · Buyers and service partial chat gated, ask in week 1 · identity closed: one customer view 2 · Brands and stores owned key: store id · owner: store ops lead, weekly 3 · Catalogue and listings owned key: master SKU · owner: SKU analysts, weekly unmapped count 4 · Orders, fees, settlement full via API build · completeness test dated monthly, data engineering 5 · Ads and traffic full / partial spend full · discovery closed: category search forecast 6 · Content and live streams owned / partial key: asset id · owner: content studio lead 7 · Creators and affiliates partial test the share of attributed GMV that settles Every line ends in a name or a strike-through. A line that ends in neither is a decision nobody has made yet.
🔍 Click to zoom - the word column decides the next step; the last column says who takes it

List the seven domains. One line each, in the order data reaches you. If your business has a domain Serai does not (a warehouse, a payments arm), add it as an eighth line rather than folding it into another.

★ Step 1 · the seven lines1 Buyers and service masked buyer, chat threads, reviews 2 Brands and stores contracts, fee terms, store health 3 Catalogue and listings master SKU, platform listing ids, content per listing 4 Orders, fees, settlement orders, returns, platform fees, payouts 5 Ads and traffic spend, creatives, rejections, platform discovery 6 Content and live streams asset archive, recordings, per-minute events 7 Creators and affiliates creator ids, attributed and settled GMV, commissions

Write the obtainability word on every line. Owned, full via API, partial, gated or closed. Where a domain splits, write both and say which part is which, the way Serai's ads line does. If you are not sure, write the less generous word; a dated test will correct it upwards more happily than downwards.

★ Step 2 · Serai's words (constructed)1 Buyers and service partial (chat gated, identity closed) 2 Brands and stores owned 3 Catalogue and listings owned 4 Orders, fees, settlement full via API 5 Ads and traffic full / partial (spend full, discovery closed) 6 Content and live streams owned / partial (archive owned, performance partial) 7 Creators and affiliates partial

For every gated part, write who you will ask and when. A name, not a team. A week, not a quarter. The request is usually one email; the list exists so that the email is sent in week one instead of discovered in month nine.

★ Step 3 · gated parts (constructed)Buyer chat threads ask: marketplace partner manager for Serai's account owner: head of customer service send by: week 1 Cross-platform benchmark ask: marketplace partner teams, then the brands (session 5 product) owner: head of partnerships open by: month 1 counsel confirms before launch

For every closed part, write the use case already proposed on top of it, and cross it out. This is the step people resist, because the proposal usually came from someone senior. Write when it was proposed and the one-line reason it stops. The strike-through is the most valuable ink on the page: it is the project that does not start.

★ Step 4 · closed parts (constructed)Buyer identity across platforms proposed: single customer view, cross-platform retargeting (last year's offsite) status: STRUCK reason: no shared identifier, no raw value to hash; best join 23.3% on the bench Platform discovery funnel proposed: category search demand forecast status: STRUCK reason: the platform keeps it; only our own traffic returns

For every owned part, write the key and its owner. The key is the column the cross-platform view joins on. The owner is the person who notices when it drifts, and the check is how they notice. Read the list aloud to the owners named on it; any owner who did not know they were one is a finding.

★ Step 5 · owned parts (constructed)Brands and stores key: store id owner: store ops lead check: every store live on a platform has an id, weekly Catalogue and listings key: master SKU owner: commercial and SKU analysts check: count of lines on unmapped listings, weekly Content archive key: asset id owner: content studio lead check: every published asset carries its id, weekly
✗ The version that sounds like a data strategy and decides nothing We will unify customer data across all three marketplaces into a single customer view, enabling personalised cross-platform journeys at scale.
Homework

Before session 5

25 min
  1. Finish your feasibility list and put a date next to every word. Masking rules move often enough that an undated "partial" is a guess about last year.
  2. Send the first gated email on your list. Bring the reply, or the silence, to session 5; both are data.
  3. Find the last strategy document that promised a single customer view or cross-platform retargeting. Write the one sentence you would add to it now, using the bench's 23.3 percent.
  4. Ask the owner of your product mapping table how many live listings are missing from it today. If nobody can answer in a day, the owned row has no owner yet.
Check yourself

Three questions

Clear all three and Leader session 4 gets stamped in your passport.

1 · An engineer proposes hashing buyer phones on all three marketplaces and joining on the hash. Why does that not rescue the customer join?

A hash fingerprints a value that is already there. Masked phones arrive as fragments, and a hash of a fragment collides for everyone who shares it. The only raw phones in the bench's sample were 265 seller-shipped orders, and no two of them belonged to the same person, so the hashed phone scored 0.0 percent.

2 · On the bench, which grains clear Serai's 90 percent gate across platforms, and why?

Masking removes the person, not the store or the product. Serai's store id and master SKU are keys it assigned and maintains, so they join across all three exports. The best customer-grain combination reaches 23.3 percent. The SKU gap of 2.5 percent is 219 lines on listings missing from the mapping table: the cost of owning a key.

3 · A row on your feasibility list is marked "gated". What is the next step?

Gated means the data exists behind a permission you can ask for, so the next step is a request, not a build and not a strike-through. Closed is the word that gets struck. Confusing the two either gives up a product for want of an email or funds years of work waiting for a yes that cannot come.

Sources covered

What this session teaches, and where it came from

✓Buyer masking on Shopee, Lazada and TikTok ShopReported, worded as the sources word it: Easy Shopee & Lazada help centre, "Why are details from Shopee orders masked", 2022; BigSeller, "Lazada privacy update 2026"; Zetpy, "Lazada Open Platform to mask buyer data starting July 1, 2026", June 2026; openlinker-project, "Integration research - TikTok Shop Open API", GitHub issue 2882. No contract terms stated; re-check before any plan is signed
✓The identity ladder: customer grain 23.3 percent at best, store 100.0, SKU 97.5Measured on the enabler bench (analyst session 8) and quoted from it; Olist, "Brazilian E-Commerce Public Dataset by Olist", Kaggle, CC BY-NC-SA 4.0; split, names, phones and masking constructed
◐Obtainability as five words and the next step each one buysTaught in analyst session 1 and applied here as a feasibility list; the data gate itself belongs to the ship playbook, linked
◐Record linkage without a shared keyNot taught here; the methods belong to the entity resolution course, linked. This session only asks whether a key exists

Every fact on this page, and its verification tier, is recorded in the course's source map.

Leader session 4 cheat sheet · pin this

The order arrives, the person does notAll three marketplaces reportedly mask the buyer on orders they fulfil. Re-check the dates; they move.
Hashing is not a workaroundA hash needs the raw value. The bench's 265 raw phones linked zero pairs.
Impossible, not hardBest customer join 23.3 percent. No shared id, no raw value: nothing for engineering to improve.
Your keys holdStore id 100.0, SKU 97.5 percent. Same SKU, three platforms, four markets, one screen.
Owned means maintainedThe 2.5 percent gap is 219 unmapped lines. Every owned key needs an owner and a weekly check.
Gated asks, closed stopsGated is an email in week one. Closed is a strike-through that saves two years.