Back to Projects

Shelf Beauty

Internal Platform WhatsApp CRM APIs & Integrations Applied AI

Project Details

Type: Two internal products a beauty-tools brand for hair runs on, under one login: a workspace with a WhatsApp CRM, and a sales system for partner studios

Timeline: November 2025 to now, recurring client

Role: Product, design, build and integrations; I also helped set up the Shopify store

Stack: PHP and MySQL, written with help from Claude Code; Shopify; Twilio and the WhatsApp Business API; OpenAI API

Status: In daily use by the team; internal, so there is no public link

One small team, three kinds of work

Shelf Beauty makes what its founder calls beauty tools: a hair-finishing stick, a brush and a few accessories, designed to make a daily routine simpler. It sells online and through partner studios, like Mata Lab in São Paulo and Ellora Pilates Boutique, that stock the products on consignment. That means three jobs running at the same time: marketing a growing e-commerce brand, talking to customers on WhatsApp, and keeping count of stock that sits in someone else's shop, with money moving in both directions. I started by helping set up their Shopify store, on a standard theme. Since November 2025 my work with them has been the tech and integration side: two internal products the team runs on, under one login: a workspace and a sales system for the studios, connected to Shopify, WhatsApp and AI. I know PHP and MySQL from years of WordPress work and wrote both with help from Claude Code; what they do, and where automation stops, are my decisions.

What had to be true

  • ✓ The team plans, publishes and reports in one place, by department.
  • ✓ Every WhatsApp conversation lives in one shared inbox, and every automatic message is measured honestly.
  • ✓ Each studio's stock and monthly balance are known without anyone retyping a report.

The calls I made

Most of this work is plumbing. The decisions that mattered were about where automation stops and a person takes over.

AI drafts, a person approves

Studios send their sales however they have them: a PDF, an invoice, a photo, a WhatsApp message. AI reads the document and drafts the entry, and nothing goes into stock until someone checks it. When there is an invoice XML, it is read without AI at all, because a structured file is more exact than any model.

Instead of: letting the model write straight into stock, where one misread number becomes a wrong balance with a partner.

Measure the messages honestly

Each purchase is credited to the last message the person received before buying, so the three abandoned-cart messages are never counted twice. The repurchase report says on screen that it does not prove the reminder caused the sale, because people who would have bought anyway are in it too.

Instead of: counting every sale after any message as a win, which makes a dashboard look good and makes decisions worse.

The assistant steps back for people

Live since 30 September 2026, the virtual assistant answers WhatsApp by itself, 1 to 3 minutes after the customer's last message, so a person can step in first, and it stops the moment someone from the team replies. It looks up orders live in Shopify, turns voice messages into text, sends creator and partnership requests to the right email, and tags people who want to be affiliates for the waitlist. It ran on a test list of numbers before it answered everyone.

Instead of: switching a bot on for every customer at once and having it talk over the team.

Segments that fit the business today

The RFM matrix is recalculated every night, but its cut-offs are set for where Shelf is now: a growing store where most customers have bought once. The screen explains the scores in plain language and notes that the top tiers will fill in, and the cuts get finer, as repeat buyers grow.

Instead of: textbook segments that would put almost everyone in the same box and tell the team nothing.

Rules live in code, not in the prompt

Some things cannot depend on a model following instructions. The assistant hands the chat to a person for complaints, photos and attachments, health questions, or anyone who asks for a human, and that rule is enforced in code. Order details only go out once the order number and the customer's name match. Every content idea passes a code filter too: banned words, em dashes, typical AI phrasing like "it's not X, it's Y", and topics on pause.

Instead of: writing the rules into the prompt and hoping the model keeps to them every time.

Ideas grounded in something real

Each morning idea is built on one real reference, and code checks that the reference exists. The ideas follow the brand manual and the live Shopify product list, and they learn from the team: the last 25 reasons for discarding an idea, the ideas recently approved, and three weeks of history so nothing repeats.

Instead of: a generic idea generator that suggests the same trend every brand is already posting.

What I built

Two products, one login. The workspace is where the team works and talks to customers; Vendas is where the stock and money at partner studios are kept.

Workspace

The workspace

Where the team plans its work and talks to customers.

Team and content

  • A task board by department: paid traffic, social media, influence, e-commerce and marketplaces.
  • Monthly results reports for each area, with a presentation mode.
  • Events, brainstorming, campaigns, contracts with their status and value, and the creators the brand sends products to.
  • Six post ideas a day: a job starts at 4 a.m. Brasília time, gathers references (Instagram and TikTok profiles, Google searches, links the team saved, current news) and AI turns them into ideas, about half video, 40% carousel and 10% single image, sent to an approval calendar.
  • A feed of what ten reference brands are advertising, each ad with a note on what makes it work.

WhatsApp CRM, on Twilio and the WhatsApp Business API

  • A shared inbox and 1,940 contacts so far.
  • An RFM matrix, repeat-purchase cohorts and one-off campaigns.
  • Automatic messages from sign-up to birthday (below), and a virtual assistant that answers inside WhatsApp's 24-hour window.
  • Wired into Shopify: orders, checkouts and customers come from the store. A shipped order triggers its message, abandoned checkouts start the cart sequence, and birthdays are read from the store's customer fields, synced every night.
Vendas

Vendas

The sales system for partner studios: stock that sits in someone else's shop, and the money that moves with it.

Stock

  • Stock and sales at each point of sale.
  • A projection for the year per product, with a restock flag when there are less than two months left.

Sales and the monthly closing

  • Send to AI: a studio's sales arrive as a PDF, an invoice, a photo or a WhatsApp message, AI drafts the entry, and a person checks it before it enters stock.
  • A monthly closing that works out who owes whom, sale by sale, depending on whose card machine took the payment. It goes to the studio to approve.

Workspace The automatic WhatsApp messages, in the order a customer meets them.

On sign-upWelcomeWithin 15 minutes, once per person
Cart left behindThree reminders10 minutes, 1 day and 3 days later
Order shippedCashbackHeld during quiet hours
60 days laterTime to restockA reminder to buy again
BirthdayA personal couponCreated on the spot, single use

What shipped

Real screens from both products, two from each. Customer names, partner names and revenue are blurred.

The WhatsApp CRM dashboard: abandoned-cart conversion of 14.4%, 54 of 375 people, with the rate for each of the three messages
Workspace The CRM dashboard: abandoned-cart results by message, with the rule for how each purchase is counted written under the numbers.
The content area of the workspace: six post ideas generated that morning, each with a format, a length and a goal
Workspace Six post ideas every morning, each with a format, a length, an angle and a goal. Reference images from other brands are blurred.
The Send to AI screen of the sales system: drop a PDF, invoice XML, screenshot or photo, or paste a message, and the AI drafts the entry
Vendas Send to AI: drop a PDF, an invoice, a screenshot or a photo, or paste the WhatsApp message. Nothing enters stock before someone checks it.
The sales system dashboard: each product with how long its stock will last and a restock flag when it is under two months
Vendas Stock across the warehouse and the studios, how long it will last at the current pace, and a restock flag under two months.

What happened

14.4%

Of people who got the cart messages went on to buy

54 of 375 since March 2026, when the three-message sequence started, each purchase counted once: about R$ 8,000 in sales that had been left in a cart.

25 of 54

Recovered carts came from the first message

Almost half the sales came from the message sent 10 minutes after the cart was left. The one three days later came next with 21, and the next-day message brought 8.

What I took from it

The most useful AI here is the kind that drafts and then waits for a person. The job was less about adding AI than deciding exactly where it stops.

Next project Swiftic