Skip to content

Contacts identification

Identified a third more of a shop's traffic, the metric behind half its revenue.

Context

edrone is marketing automation for ecommerce. Automations fire off what a shopper does on the site; newsletters go out by hand to subscribers. Each brings half the revenue edrone can earn a shop, and a store pays by the size of the contact base it keeps there.

Contribution

Sr Product Designer. I owned the concept, the sequence and every screen. A backend developer built the sending.

edrone.me
Goal

An automation can only fire at a contact edrone has identified by a cookie.

edrone

Sends an emailContact opens itCookie set

Unidentified

no cookie yet

Sarah Miller

miller@email.com

Opening an email loads a tracking pixel, which sets the cookie connecting a contact's browsing to their profile.

For the median store that was 3.1%. The other 97% of the traffic got no automations at all, which makes identification the biggest lever in the product.

The ceiling is higher than it looks: an automation needs no marketing consent, so it reaches contacts a newsletter never will. Every point is leverage on a base the store already pays for.

Approach

My product analyst checked the data first, in case 3.1% was a reporting artefact. It was real.

Then Klaviyo, HubSpot, Omnisend, Brevo and a few others. None of them do anything to raise it. Identification happens where a contact engages on their own, and nowhere else.

Support was already solving it by hand: a short series of emails to a store's whole base, purely to get contacts identified. For a handful of stores, one at a time, once.

PROBLEM 1

Nothing identifies a contact unless the contact acts first

It takes an open, a click, a signup or an order. Only the first can be repeated, and only if the store mails its whole base.

PROBLEM 2

Identification decays on its own

Cookies clear on their own within about 30 days, so anything sent once stops working.

PROBLEM 3

Almost nobody knows identification exists

Three quarters of users did not know a contact has to be identified at all. The feature had to explain its own value fast, or nobody would use it.

Solution

What to send. Marketing cannot go to contacts without consent, and those are exactly the ones worth reaching, so nothing in the sequence is marketing.

How often. One send lifts identification and loses it again as the cookies clear, so the sequence repeats every 30 days.

The sequence as the user sees it: each send 30 days after the one before, and a repeat at the end rather than a stop.

Variety. Seven different emails, not one resent: a base that gets the same message monthly stops opening it, and an unopened email identifies nobody.

The content. Each message had to look like the store rather than like edrone, so AI writes it from the store's own branding.

One send opened in the preview drawer, carrying the store's own branding rather than edrone's.

Who turns it on. Left off until someone found the setting, nobody would have, so the feature starts on, shown in onboarding as something already running. It comes off in one click.

The identification screen in the walkthrough. I designed the template structure; AI writes the content.

I validated it first with the eight people in Support who had been sending those emails by hand.

Existing customers did not get it switched on automatically. For them it became one click for Support, instead of the campaign they used to send themselves.

I designed the screen and the templates in Figma and built the frontend in Codex; a backend developer handled the sending. Six days to production.

Impact
IDENTIFICATION RATE
+32%

Share of contacts an automation could reach, from 3.1% to 4.1% a month after rollout.

KEPT IT ON
95%

The sequence starts on, and 860 stores left it that way against 42 who switched it off.

Reflections

The first version sent to the whole base every cycle, including contacts it had already identified that month. That is volume spent on nothing and a tax on deliverability. Skipping anyone who opened an email in the last 30 days would have fixed it, and there was no room for that before launch.