www.happen.software · sales@happen.softwareCase study · Retail & eCommerce · Platforms & portals
Product data from brands, checked before it's published
A retail data company prepares product content for e-commerce on behalf of its customers, using data that comes in from brands. We've built its platform since 2021, and it now manages more than 152,000 products. Products move through jobs, capture, and two QA stages, fields are configurable, and each customer receives its data through an API in the shape it asked for.
- Since 2021 · 5 years
152,000+
Products managed on the platform for the client's customers
No code
Needed to add a new kind of product data: fields are set up in the portal, not built by developers
2 QA stages
On every batch, after capture and after creative, before it goes to review
At a glance
- Client
- Retail data and insights company
- Scale
- 152,000+ products managed on the platform
- Engagement
- Build and evolve, since 2021
- Users
- The client's capture, creative, QA, and admin teams
- Data in
- Product loadsheets, brand owner imports over an API, and product images by barcode
- Data out
- A client API shaped per customer by export templates, plus queued exports
- Data model
- 19 field types, plus aggregate, inherited, and transform fields
01The situation
Our client prepares product data for e-commerce: names, descriptions, classifications, pack sizes, nutritional details, images, and whatever else each of its customers needs. Much of it starts with the brands that make the products, and it has to be right before it reaches a customer.
We built the platform its teams use to do that work. A customer's products arrive as a job, are checked against what's already known, captured, enriched, and passed through QA, then published through an API that returns each customer's own fields in its own shape. It is a large system, with most of its data model configurable rather than fixed in code.
- 01
Each customer's data is different
Each customer wants its own fields, classifications, and formats, so the data model can't be fixed in code.
- 02
Brands' data has to be right
Product data arrives from brands and customers, and mismatched codes, duplicates, or inconsistent names must be caught before the data is used.
- 03
Many products, many hands
Products pass through capture, creative, and checking teams, and bulk changes touch many products at once, so the work needs structure.
02What changes
- New fieldsWithout it: A new field for a customer means a code change.With the platform: Fields set up in the portal from 19 types, with dictionaries, units of measure, and classifications.
- Incoming dataWithout it: Problems in a loadsheet found partway through the work.With the platform: Duplicate GTINs and missing required cells caught when the loadsheet is loaded.
- MatchingWithout it: Products checked against existing records by eye.With the platform: Each product matched to its baseline, with code mismatches and duplicates flagged as errors.
- Work in progressWithout it: Progress tracked outside the system.With the platform: Batches move through capture, capture QA, creative, creative QA, and review.
- Bulk changesWithout it: Large updates applied by hand.With the platform: Six kinds of bulk import queued, processed in the background, and recorded.
- DeliveryWithout it: One data shape for every customer.With the platform: Each customer's systems read their products through an API shaped by their own export template.
03How it works
A product, from loadsheet to API
- 1
Load
A customer's products arrive on a loadsheet and become a job. Duplicate GTINs and missing required cells are flagged as it's loaded.
- 2
Match
Each product is matched to its baseline record. SKU mismatches and duplicates are errors to resolve, and brand or sub-brand names that differ from the standard are warnings.
- 3
Capture
Products are split into batches for capture. AI suggests descriptions, categories, features and benefits, and keywords, and reads text and nutritional tables from product images.
- 4
Check
Each batch passes capture QA, then creative and creative QA, before it goes to review.
- 5
Create
Reviewed batches wait for their products to be created, then the batch is completed and the job's progress moves on.
- 6
Publish
The customer's systems read the products through the client API, with each API key returning the fields and layout of that customer's export template.
04What we built
Jobs, batches & QA
Loadsheets become jobs, jobs are split into batches, and batches move through capture, capture QA, creative, creative QA, and review, so everyone can see where each product stands.
Custom-field data model
Fields are configured, not coded: 19 types from text, numbers, and dates to GTINs, SKUs, and taxonomy levels, owned by the customer, the brand owner, or the client.
Derived fields
Aggregate fields combine several fields into one. Transform fields change case, trim or replace with patterns, or apply standard brand names. Inherited fields take their value from an ordered list of sources, chosen by filter rules.
Accuracy checks
Loadsheet checks, baseline matching, code mismatch and duplicate errors, brand name warnings, and a daily check for possible duplicate products.
Template-driven client API
Export templates define the fields and layout each customer receives. API keys can be tied to a template, and each key sees only the values it's allowed to.
Brand owner imports
Brand owners send product data over their own API. It's validated, then queued for import against their products.
AI-assisted content
AI drafts descriptions, categories, features and benefits, and keywords during capture, and reads text and nutritional tables from product images.
Queued bulk work
Imports, exports, product updates, and image fetches run in background queues. Six import types, from linking GTINs to pack configuration set-up, are processed and recorded.
05What each team gets
Capture & creative teams
- Batches of products ready to work on
- AI-drafted descriptions and keywords to review
- Text and nutritional tables read from images
QA & review
- A QA stage after capture and after creative
- Errors and warnings listed against each product
- Value history and audits on product changes
Admin team
- Fields, dictionaries, and templates set up in the portal
- Bulk imports queued instead of done by hand
- Sign-in with their company accounts
Customers & brand owners
- Product data through an API in their own shape
- API keys limited to their own data
- An API for brand owners to send product data in
06How we delivered
- 2021
Foundation
Jobs, loadsheets, capture and QA stages from the first months, and the client API by July.
- 2022–2023
Templates & brands
Export templates to shape each customer's data, an API for brand owners, and AI-assisted content from 2023.
- 2024–2025
Completeness
Completion metrics per customer and an internal API that publishes the import schema brand owners build against.
- 2026
Modernised
An AI data assistant added for the client's teams.
07Built to last
- Business rules written as plain functions over loaded data, so the API's rules on who sees what are tested without a database.
- The client API returns a value only when the rules say a caller may see it, so anything unexpected stays hidden rather than shown.
- Pattern-based transforms are guarded against invalid patterns and time limits, so one bad rule can't hold up the rest.
- One definition of required fields drives both the import checks and the schema brand owners build against, so the two can't drift apart.
- Bulk work runs in queues with a status per item and a recorded snapshot of what changed, and image fetches retry before giving up.
- About 430 automated tests, and the roughly 300 that need no database run before every deployment to the development environment, stopping it if any fail.
- Kept current with regular technology, library, and framework updates, along with ongoing performance and security improvements.
- .NET
- ASP.NET Core
- SQL Server
- Angular
- Active Directory
- GitHub Actions
Managing product data from many brands for many customers?
We'll talk through how configurable fields, checks, and QA stages could keep your data accurate, and how each customer could get it in the shape they need. Book a free 30-minute call with one of our engineers.
sales@happen.software · www.happen.software/contact
Keep reading
Related case studies
Retail & eCommerce · AI & automation
Productify.ai Product Data Platform
Happen Software (our own product)
- Since 2023 · 3 years
Productify.ai is our own AI product data platform. Teams send it product names, spreadsheets, or photos of packaging, and it returns e-commerce copy, taxonomy categories, translations, and structured pack data through a web portal, an API, or Zapier and Make. Clients in Europe, Singapore, and South Africa each run more than 8,000 operations a month.
8,000+AI operations a month for each client, with larger batches before peaks such as Easter and Christmas
Read the Productify.ai Product Data Platform case studyRetail & eCommerce · Rescue & rebuild
Broadsheet Deal Capture
Retail data and insights company
- Since 2020 · 6 years
A rewrite of an old Windows capture tool into a system that has captured 40,500+ retailers' broadsheet adverts and more than 3.8 million standardised, checked deals, with AI to find and read each deal and a capturer reviewing every result before it reaches the client-facing reports.
3.8 million+Deals captured, each in the same standard shape whatever the retailer or region
Read the Broadsheet Deal Capture case studyTelecoms · Platforms & portals
Fibre Compare: Internet Comparison & Lead Platform
Telcotech
- Since 2019 · 7 years
Fibre Compare lets homes and businesses in South Africa enter their address, see the fibre and internet packages ISPs offer there side by side, and order in a few steps. It brings in more than 1,500 leads a month across 18+ ISPs. We've built and run it for Telcotech since 2019, with the portals, partner sites, and lead routing behind it.
1,500+Leads a month from homes and businesses, each routed to the right ISP and network operator
Read the Fibre Compare: Internet Comparison & Lead Platform case study
