This week's highlights: a ChatGPT advertising feed and conversion pipeline for a luxury fragrance house

Woman in an elegant black dress seated in an ornate chair surrounded by red roses

TLDR: This fortnight we built a ChatGPT advertising feed and conversion pipeline for a luxury fragrance house, a new site search and universal size guide for a premium basics fashion label, and a free gift chooser for a beauty-tech skincare device brand. We also gave our own client portal a live dashboard, moved a farm-to-door meat delivery brand's season tickets onto Shopify's new customer accounts, and automated reward codes for a specialty coffee roaster.

Every so often a new advertising channel turns up and everyone rushes to say something clever about it. Ads inside ChatGPT are this year's version. We've spent the last two weeks on the less glamorous part, which is plumbing a luxury fragrance house into it properly, from product feed to conversion tracking.

That sat alongside some very different work. A fashion label had its site search rebuilt from the ground up. A beauty brand got a gift chooser that knows when to get out of the way at checkout. And we finally gave ourselves a way to see exactly what our clients see when they log in. Here is the rundown.

This week's highlights: a ChatGPT advertising feed and conversion pipeline for a luxury fragrance house

OpenAI now lets brands advertise inside ChatGPT, and like Google Shopping it runs on a product feed. Our fragrance client wanted its signature 88ml perfumes in front of people asking ChatGPT what to wear this autumn. The catch is that fragrance sells on notes, perfumer and story, not on a title and a price. A bare feed would waste the placement, so we built one that carries the whole brand.

The feed generator lives inside the brand's admin tooling. On its first run it reviewed 87 active perfumes, found 38 with an exact 88ml size, and wrote the 34 published ones into the feed. For each product it reads 25 custom data fields: head, heart and soul notes, the perfumer's own tasting notes, the mission statement, occasion and season tags, star ratings and review counts. Those become the description and the extra metadata the ad system uses to match a perfume to a question. It validated with zero errors, and it produces an audit report listing every field used and every field deliberately left out.

Nothing about this depends on a person remembering to export a spreadsheet. A nightly job regenerates the feed from the live catalogue and uploads it to OpenAI's secure file connection. A new launch, a price change or a product going out of stock reaches the channel the next morning.

The other half is measurement, because a channel you cannot measure is a channel you cannot scale. We built a conversion pipeline that reports add to cart, checkout started and paid orders back to the ad platform from our server rather than the browser. It also fires a custom event whenever someone completes the brand's perfume finder quiz, so the ad platform learns which questions lead to a considered buyer. Customer identifiers are normalised and hashed before they leave the server. Checkout and order events are held for a short while so later data can fill in email, phone and address coverage. The whole pipeline ran in validate-only mode against OpenAI's checks before recording a single conversion, and an admin dashboard shows every event and its delivery status.

The result is a brand that is early to a new channel and measured properly from day one. That combination is rarer than it should be. Most first movers end up with a feed nobody maintains and a pixel nobody trusts.

Under the hood: rebuilding site search and A/B testing navigation for a premium basics fashion label

The label's new search opens as a full overlay rather than a dropdown. Before you type anything it shows browse states: trending searches, categories, fabrics and colours, laid out as one-line rows that scroll sideways on mobile. As you type, predictive results group by product family so twelve colours of one tee do not crowd out everything else. A colour synonym map means "navy" finds "midnight". Typing "returns" or "delivery" surfaces the help answer instead of a product grid. When nothing matches, the dead-end recovery offers the nearest categories, and a coming-soon capture takes an email address for products not yet released.

Rather than switch everyone over at once, the new search sits behind our own A/B testing tool, split 50/50 across the whole site. The control arm is byte-identical to the live header. The treatment is activated by a single class added to the page before first paint, read from the visitor's persisted bucket, so nobody sees a flash of the old design. The mega menu got the same treatment. Each menu block now carries both layouts, the classic panel and the redesigned lookbook, ranked and product-card panels, and renders whichever one the visitor's arm calls for. The merchandising team still edits one menu.

The size guide moved out of testing and onto every product page with garment data. It opens as a drawer with measurements, a live highlight of the selected size, a specs and fit accordion, a how-it-fits scale and a compare sizes view. We then added a universal conversion table covering US, EU, UK, AU and denim sizes. It appears on any letter-sized product, even one with no size chart of its own, and a product's own data always wins over the fallback.

Worth noting: when you test something as central as navigation, keep the control untouched and derive the treatment from the same data. Two separate menus drift apart within a week of merchandising edits. One menu with two renderings cannot.

Other work this fortnight

Our client portal gained a proper dashboard. Each brand now shows daily ad spend alongside nightly store revenue and order snapshots. The revenue job re-sends a rolling 30 day window every night, so a late refund corrects the day it belongs to rather than vanishing. Underneath that sits a new brand intelligence record of what each client actually sells, harvested nightly from their catalogue. Everything the harvest finds lands in an approval queue, so a noisy import can never silently change what our paid search tooling is allowed to touch. One catalogue of 126 products produced 111 candidate terms on the first pass. We also added a "view as client" preview, so our team sees precisely what a client sees on login. It runs the real portal code rather than a copy, using a signed token that is bound to one client, one page and five minutes.

A beauty-tech skincare device brand now has a free gift chooser that respects the customer's time. When an offer unlocks a choice of gifts, a single modal shared by the cart drawer and the cart page lets them pick. A nudge sits above the checkout button, and heading to checkout without choosing brings up one prompt. Picking a gift continues straight to checkout the moment it lands in the basket for free. Skipping is never remembered against the customer, and if every gift option is sold out the prompt never blocks checkout. The button labels and prompt copy are editable from the brand's admin, so the marketing team can change the wording for each campaign without a developer.

A farm-to-door meat delivery brand's season ticket programme now works with Shopify customer accounts, the new passwordless login. The storefront sends the customer's signed-in session token to the season ticket service, which verifies it before revealing their status and benefits. We released it in shadow mode first. The verification runs in the background and logs its results without changing anything the customer sees, so we can switch it on with evidence rather than hope.

The quick wins

A shorter list than usual this week, but a good one. A specialty coffee roaster's taster box now earns its keep. Any paid order containing the box raises a unique single-use code worth £8.95 off a 1kg bag, locked to that buyer and valid for 90 days. The code is recorded against the order and delivered through a dedicated Klaviyo flow, so the follow-up email arrives with the code already inside it and no one has to generate anything by hand.

Next up: the fragrance house's first ChatGPT campaign goes live, and we'll be watching the search test results as they come in. More next Tuesday.

Photo by mokhalad musavi on Unsplash

More from the blog

Stylish woman at a Parisian cafe table with a glass of rose and her phone beside her

Apple's iPhone Duo: what a folding phone means for your website

Read →
A woman in a wide-brimmed hat gathering white hydrangeas in a summer garden

This week's highlights: a discovery set quiz with credit-back rewards for a luxury fragrance house

Read →
Woman in a white tank top standing in front of a bathroom mirror

This week's highlights: an owner upgrade programme for a premium LED skincare device brand

Read →

Like what you've read?

Tell us about your project. A team member will reply within one business day.