A diamond trading platform for a Surat export house, built on its real stock list
How Yukti AI built diamond trading software for a Surat diamond export house in about 7 days. The daily Excel stock list that went to every buyer on WhatsApp became one live stock book of IGI-certified polished diamonds, with a private portal and a separate price for each buyer, holds that lock the price and expire on their own, and AI search that reads the trade's shorthand, Gujlish included.
The client is a Surat diamond export house that sells loose, IGI-certified polished diamonds to jewellers, retail chains and overseas trade desks. Its book of about 408 stones went out once a day as one Excel file on WhatsApp, with holds agreed by phone and each buyer's price kept in someone's head. Yukti AI turned that list into a private diamond trading platform: a desk for the owner, operations and sales, and a B2B portal for every client showing only the stones they may see, at their own price. It is deployed and going live with the firm's desk on its real stock list.
Quick facts
| Client | A Surat diamond export house (not named on this site) |
|---|---|
| Industry | Diamond trading and export: loose, certified polished diamonds sold to jewellers, retail chains and overseas trade desks |
| The book | About 408 IGI-certified polished diamonds in 13 shapes, 0.50 ct to 20.25 ct; white D–H plus Fancy Vivid Pink, Fancy Intense Pink, Fancy Vivid Blue and Fancy Intense Yellow |
| Core challenge | One Excel stock list to every buyer on WhatsApp each day; holds agreed by phone; a different price per buyer, kept in memory |
| Solution | A custom diamond trading platform: one live stock book, an internal desk and a private B2B portal per client |
| Roles | Owner, Admin / Operations, Sales desk, Client |
| Stack | Next.js 15.5, React 19, TypeScript, Tailwind CSS v4, Recharts, SheetJS, Vercel |
| Connection points | Supabase, OpenAI, WhatsApp Cloud API and n8n: built into the code and wired to connect |
| Build time | About 7 days, from brief to a deployed platform |
| Status | Deployed, and going live with the firm's desk on its real stock list |
| Out of scope by design | Accounting, invoicing, payroll, manufacturing and ERP |
What is diamond trading software? Software that holds a dealer's stock stone by stone and runs the trading rules around it: which buyer sees which stones, at what price, and on hold for how long.
Is it live? It is deployed and going live with the export house's desk on its real stock list. No outcome figures are claimed on this page; it describes what was built and how the desk's way of working changes.
Why did the export house need a diamond trading platform?
Because its entire book travelled as one Excel file on WhatsApp. Every client got the same sheet whatever their terms, holds were agreed on the phone with no record or expiry, and each buyer's price lived in someone's memory. That is exactly where a desk's risk sits: a stone promised twice, a price quoted from memory, a hold nobody releases.
Jewellers, retailers and overseas trade desks all received the same daily file, whatever their price terms or buying profile.
No system record, no expiry time and nothing to stop two buyers being promised the same stone.
Each client paid a different price, but those prices were not stored anywhere a colleague could check.
X, V, G and ID grades, NON and STG fluorescence, a misspelt FLOURENCE header and irregular measurements, all read raw by buyers.
Nobody checked for duplicate certificate numbers, missing images or cut grades, or odd depth and table figures.
A buyer's need mentioned on a call or in chat stayed in someone's memory until it was acted on, with no record to match against new stock.
Which diamond trade terms does the platform work with?
Diamond trading software, like any diamond stock software, is only useful if it speaks the desk's language. This platform was modelled on the export house's own stock list, so its screens and search use the terms the desk and its buyers already use. Here is how each applies in this build, including those only partly covered.
- Loose, certified polished diamond
- A cut and polished stone sold unset, with a lab grading report. Every stone here carries an IGI report number.
- Grades and fluorescence codes
- The sheet's X, V, G, ID and F become Excellent, Very Good, Good, Ideal and Fair; NON, FNT, SLT, VSL, MED and STG become None through Strong.
- Per-carat rate ($/ct), tier and markup
- Price per carat in US dollars, with the total as rate × carat. Each client has a tier (Preferred, Standard or Partner) and a markup over the base rate. There is no Rapaport or rap-discount pricing in this build.
- Hold
- A stone reserved for one buyer for 2, 4, 12 or 24 hours, at a price locked when the hold is requested.
- Memo
- Goods given out on approval. Here Memo is a stone status; a memo-out and memo-in workflow with jangad slips is not included and can be added.
- B2B diamond portal
- A private login where a trade buyer sees live stock at their own price, requests holds and raises enquiries.
How the desk's way of working changes
Each change follows directly from what was built. None of it is a measured result: the platform is going live with the desk now, and Yukti AI does not publish figures that have not been measured.
Before
- One Excel stock list sent to every buyer on WhatsApp each day
- Holds agreed by phone, with no record and no expiry
- Buyer prices kept in someone's memory
- Raw grade codes and messy measurement columns
- No check for duplicate certificates or outliers before sending
- Buyer requirements from calls held in someone's head
After
- One live stock book, and a private portal for each client showing only the stones their rules allow
- Timed holds: price locked, desk approval, countdown, automatic expiry, audit trail
- Tier and markup stored per client and applied every time
- Clean, typed fields and a full grading report per stone
- An import check flags duplicates, gaps and outliers before publishing
- Requirements typed in the team chat are detected and matched to stock
Why custom diamond trading software instead of a better spreadsheet?
Because one file cannot hold different rules for different buyers. A price per client, stones hidden from some clients, a hold that expires at a set hour and a record of who changed what all need logins, rules and a clock. A custom build let those rules follow the export house's own trade relationships. It is the same move Yukti AI makes whenever a business outgrows its sheets: replacing Excel and Tally workarounds with one system built around how the team already works.
How is the diamond trading platform put together?
One stock book sits at the centre. A pricing and visibility layer decides what each person sees, the desk and the client portals work on top of it, and events such as an applied import or an approved hold feed notifications and WhatsApp messages. Backend services plug in through connection points already built into the code.
The workflow: from a buyer's search to a confirmed sale
Diamond inventory management software: a live stock book from the real Excel
The heart of the platform is a live stock book of the firm's loose diamond inventory, built from the export house's own daily Excel, not from dummy data. A build script reads the real stock list, one sheet with 16 columns, and turns each row into a typed diamond record with grading, measurements, certificate, rate and status. No Excel column name appears in the interface, and re-running the script on the same file gives an identical book.
From 16 raw columns to a clean diamond stock record
| Column in the stock list | Becomes in the stock book |
|---|---|
| REFNO., SHAPE(FULL), CTS | Stock reference, shape (one of 13), carat weight |
| COLOR, CLARITY | Colour (D–H or a fancy colour) and clarity (IF to SI1) |
| CUT, POLISH, SYM | Cut, polish and symmetry, with grade codes mapped to words |
| FLOURENCE (sic) | Fluorescence, None through Strong |
| MEASURE, RATIO, T.DEPTH, TABLE(%) | L × W × D in mm with spacing cleaned, length-to-width ratio, depth % and table % |
| REPORTNO, IMAGE/VIDEO | Certificate number with the lab recorded as IGI; media flag |
| RATE($) | Base per-carat rate: desk only, never sent to a client |
IGI certified diamond stock in 13 shapes
The stock list the platform was built on held 408 loose polished diamonds, every one with an IGI report number: Round, Princess, Heart, Radiant, Cushion Brilliant, Emerald, Oval, Pear, Marquise, Portuguese and three modified cuts. Weights run from 0.50 ct to 20.25 ct; whites run D to H, alongside Fancy Vivid Pink, Fancy Intense Pink, Fancy Vivid Blue and Fancy Intense Yellow. Cut grades appear only on the Rounds; fancy shapes normally carry none, and the import check treats that as normal rather than as an error.
Every stone carries one of five statuses: Available, Hold Requested, On Hold, Sold or Memo, and has its own page with the full grading report. The list has media flags but no image files, so each of the 13 cuts is drawn as a custom line glyph rather than a blank grey box.
Same stone, different price: how does per-client pricing work?
Every client has a pricing tier and a percentage markup on the base per-carat rate, and their total for a stone is their own rate times its carat weight. The base rate is deleted from the data sent to a client, not just hidden on screen, so it cannot be found by inspecting the page. Price filters use the client's own price, and no client sees another client's price.
On the desk, the Client pricing table on each diamond shows what every client pays for it, their markup, and whether the stone is visible to them at all. The desk sets tier, markup and access mode on the client's profile with a live preview. The pricing logic also supports a fixed price on one stone for one client, overriding the markup; a screen for setting those is not yet part of the desk.
Visibility rules for real trade relationships
Not every buyer should see the whole book, so every client has one of three access modes:
ALL
The whole available book, at the client's own price.
SELECTED
Everything except chosen shapes — for example, a retail chain set up without Portuguese, Marquise and modified cuts.
RESTRICTED
Excluded shapes plus a carat cap — for example, an overseas partner desk that sees nothing above 5 ct.
A restricted stone is left out of that client's search, recommendations, AI answers and even direct links; the client sees only "not available on your portal", which does not reveal that the stone exists. Clients never see each other's prices, holds, enquiries or notes, and internal notes never reach any portal.
Diamond hold management: how does a hold run itself?
A client requests a hold of 2, 4, 12 or 24 hours with a short note, such as "Customer viewing tomorrow morning", and the price is locked at that moment. The desk approves or declines. An approved hold runs on a live countdown and, if nobody converts or releases it, expires by itself, returning the stone to the book and notifying both sides. Only one live hold is allowed per stone.
| Desk action | What happens to the stone | Who is told |
|---|---|---|
| Approve | On Hold; the countdown starts | Client notified; a WhatsApp confirmation with the expiry time is composed |
| Decline, with a reason | Back to Available | A WhatsApp message to the client is composed |
| Release | Back on the book | Client gets a "released" notice |
| Convert to sale | Marked Sold | Recorded in the hold audit trail |
| Nobody acts in time | Expired automatically; back to Available | Client and desk notified; a "hold expired" WhatsApp message is composed |
A timer checks every 15 seconds for lapsed holds, so a forgotten hold never blocks a stone for days. A second request on a held stone is refused: the second client sees "on hold", is never told who holds it, and can tap "Notify me when available", which creates an enquiry. Every state change goes into an audit trail that records who made it. Clients see the locked price and a live countdown under "My holds"; the desk gets pending, live and closed tabs and a hold funnel.
AI diamond search: can buyers type the way they talk?
Yes. Surat buyers type the way they speak on the phone, often in Gujarati-English. One parser reads every free-text search on the platform — the client's portal search, the owner's copilot, the WhatsApp assistant and requirement detection in the team feed — so the same words give the same answer on every screen. Take a message a buyer might send: "Bhai 1.5 thi 2 carat cushion D to F VS hoy?"
| Words typed | How the platform reads them |
|---|---|
| Bhai … hoy? | Conversational Gujarati ("brother … is there?"); does not change the search |
| 1.5 thi 2 carat | Carat range 1.50–2.00 ct ("thi" works as "to" in a Gujarati range) |
| cushion | Cushion Brilliant |
| D to F / VS | Colour D, E or F / clarity VS1 or VS2 |
| "under" + a per-carat figure | A per-carat price cap, applied to that client's own rate, never the base rate |
It also reads shape short forms (cush, rbc, marq, em cut, and the common "portugese" spelling), "2ct+" and "between 1 and 2", a bare "2ct" as a band around 2 carats, "vivid pink" as Fancy Vivid Pink, "VS or better", "with video", "new today", and a pasted certificate number as a direct lookup.
Ranking, and what happens when nothing matches
Results are ranked the way a dealer sorts: closeness to the middle of the carat range, then clarity, D/E/F colour, media, availability and newness. If nothing matches, the search loosens one criterion at a time — price by 15%, then clarity, colour and carat — and says which one it changed. It never claims a stone that is not in the book.
What does the AI copilot do for the owner and sales desk?
It answers the desk's everyday questions in plain English from the live book: which clients have active holds, which holds expire in the next four hours, which stones draw the most interest and which stock changed price. Anything else falls through to stock search, so "D colour VS diamonds above 2 carats" simply works.
AI Daily Brief
New diamonds by shape, price changes, pending holds, open enquiries, the carat band where client interest is concentrating, and next actions.
Most-demanded stones
Interest scored from enquiries (×3), holds (×2) and watchlist saves (×1), so the desk sees which stones are pulling buyers.
AI Insight per stone
A plain-language read for the viewing client, a price comparison labelled "not a market valuation", and similar stones matched shape first, then size, colour and clarity.
Enquiries and the AI sales copilot
Clients send enquiries with a quantity, a priority and free text, about one stone or as an open requirement. The desk sees an AI Enquiry Summary (what is wanted, quantity, budget per carat, priority), the matching stock and a suggested reply that cites only stones that really exist, at that client's own price. If nothing matches, the draft says so and commits to sourcing within 24 hours. Enquiries move from New to In Progress, Quoted, Converted and Closed. A desk that also wants a full buyer pipeline can add one alongside; see AI CRM.
Requirement detected in the team chat
A salesperson can post a buyer's need in plain words — say, 1.5 to 2ct Cushion D to F VS, two stones, before Friday — and the AI shows "Requirement detected" with the structured criteria and a live preview of matching stock.
Diamond stock list import: how is the daily Excel checked before buyers see it?
The admin drags the day's stock list (.xlsx, .xls or .csv) into Stock Import, and nothing reaches a client portal until it has been checked and reviewed. The import runs in four stages — parse, AI data-quality check, compare with the previous book, ready to apply — so duplicates and bad rows are caught at the desk, not by a buyer.
| What the check looks for | How it is treated |
|---|---|
| Duplicate certificate numbers | Error |
| Depth outside 50–80%, or table outside 45–90% | Warning |
| Missing cut grade | Flagged, and treated as normal for fancy shapes |
| No image or video; odd measurement formatting | Flagged |
The quality score is weighted so real errors count far more than cosmetic issues. Applying the import composes the WhatsApp "New Stock Alert" and tells each client only about new stones their rules let them see, so a retail chain is never told about a stone it cannot view.
Which WhatsApp automations does the diamond trading platform have?
Seven WhatsApp automations are defined, each triggered by an event in the stock book rather than a daily broadcast, plus an assistant that answers each client only from their own visible stock at their own price. Messages are composed inside the platform from real events. Sending them from the firm's own business number is the last step: the platform is wired to connect to the WhatsApp Cloud API for that.
| Automation | Triggered by | In the platform today |
|---|---|---|
| New Stock Alert | An import is applied | Composed from the in-app event |
| Hold Approved / Hold Expired | The desk approves a hold / a hold lapses | Composed from the in-app event |
| Hold Expiring | 60 minutes before a hold lapses | Template defined |
| Price Changed / Saved Search Match | A watchlisted stone is repriced / new stock matches a saved search | Template defined |
| Enquiry Follow-up | An enquiry has been quiet for 24 hours | Template defined |
There is one thread per client. The assistant understands nine commands, among them "Show 2ct cushion", a hold request by stock reference, an availability check, "Show my active holds", and cheaper, larger or similar, and it accepts Gujlish exactly as the portal search does. For more on event-driven messaging, see WhatsApp automation; for a customer-facing assistant that answers on WhatsApp, see WhatsApp AI chatbots.
Who sees what on the diamond desk?
The platform has four roles, and access is enforced in the data layer, not only in the menus. Every record carries an organisation ID so the same rules map onto row-level security in the database once Supabase is connected.
Owner
Full access: stock, clients, pricing, analytics, AI copilot, stock import, WhatsApp and settings.
Admin / Operations
Holds, enquiries, stock imports, clients, WhatsApp, analytics and settings.
Sales desk
Dashboard, stock, AI copilot, holds, enquiries, clients and the internal workspace; no import, WhatsApp, analytics or settings.
Client
Only their private portal: own prices and visible stock, AI search, holds, watchlist, saved searches, enquiries and profile.
What does each buyer see in their private B2B diamond portal?
Each client signs in to a private portal onto the same live book, filtered by their visibility rules and priced at their own rate. It has Home, Stock, Watchlist, Holds, Saved searches, Enquiries and Profile, with a bottom bar on mobile showing a live count of active holds, so a buyer can check stock from a phone without calling the desk.
- Your AI Brief: new stones matching saved preferences, watchlist price changes, the next hold expiry and pending requests.
- Recommendations scored on declared preferences (shapes, carat range, colours, clarities, maximum rate) and behaviour (watchlist, searches, holds).
- Watchlist that records the price when a stone was saved and flags any move since.
- A chat on each stone for "is this good for my requirement", cheaper, larger, similar or the price; a buying signal such as "my customer tomorrow" brings up a 24-hour hold offer.
What the desk sees
The dashboard opens on stock, hold, price-change and enquiry counts with a 14-day inventory chart and a live-hold countdown; analytics break the book down by shape, carat band, colour, clarity and price band, with engagement per client. The desk has 13 screens and the client portal 8. Nothing is installed: everyone opens it in a browser.
How was the platform built in about 7 days?
By starting from the firm's real stock list instead of a blank database. The Excel's columns and codes defined the data model, the trading rules were built around that book, and every backend service sits behind a connection point, so going live does not mean rebuilding.
Read the real stock list
16 columns, grade and fluorescence codes, the misspelt header and irregular measurements mapped to typed fields.
Model the trading rules
Tiers and markups, three visibility modes, five stone statuses and the full hold lifecycle.
Build desk and portals
13 desk screens and 8 client screens on one book, filtered by role and client rules.
Add the AI layer
One parser and one AI module behind search, copilot, insights, enquiry drafts and the import check.
Deploy and wire up
Deployed on Vercel, with Supabase, OpenAI, WhatsApp Cloud API and n8n connection points wired to connect.
What technology runs the diamond trading platform?
The platform is a custom web application built with Next.js 15.5 (App Router), React 19 and TypeScript, styled with Tailwind CSS v4, with Recharts for analytics and SheetJS for reading Excel files, deployed on Vercel. Four backend services plug in through connection points already in the code, so connecting them changes only what sits behind each point.
- Supabase (auth, Postgres, storage, row-level security): a data-provider interface and a 20-table design. Wired to connect.
- OpenAI: a language-model slot behind every method of the AI module. Wired to connect; today each AI answer is computed from the live book by the platform's own logic.
- WhatsApp Cloud API: a provider interface for the seven automations and the assistant. Wired to connect; messages are composed in the app.
- n8n: a nine-step daily stock pipeline, from Excel upload to matching client preferences and sending on WhatsApp, and a six-step hold approval pipeline, specified. Wired to connect; see n8n automation.
Why the AI cannot make up a diamond
Every AI surface — search, copilot, stone insights, enquiry drafts, the import check — goes through one module that computes its answer from the real stock book. It can only cite stones that exist, at prices the viewer is allowed to see, and when nothing matches it relaxes one criterion and says which.
Built and deployed
Stock book, per-client pricing and visibility, self-expiring holds, AI search and copilot, enquiries, the import check, analytics and four roles.
Wired to connect
Supabase for the database and row-level security, OpenAI behind the AI module, the WhatsApp Cloud API for sending, and n8n for the stock and hold pipelines.
Not in this build
Out of scope by design: accounting, invoicing, payroll, manufacturing and ERP. Possible on the same book: memo with jangad, parcel and lot inventory, Rapaport pricing, RapNet or IDEX feeds.
A diamond software company in Surat: can Yukti AI build this for your desk?
Yes. Yukti AI is a software company in Surat, working from 220, Leonard Square, Yogichowk, Varachha, and this platform was built for a Surat export house on its own stock list, in the trade's own language. The same approach fits loose-diamond traders and exporters who send a daily list to many buyers, desks where each buyer gets a different price or only part of the book, and jewellery businesses that also sell certified stones to the trade. We can sit with your desk for the workflow audit.
For the other diamond modules Yukti AI can build on request, such as memo and jangad, parcel inventory and manufacturing stages, start with diamond software in Surat. In Surat, Yukti AI has also built Lumera Fine Jewellery's jewellery ERP and CRM, Shinelabb's live-priced catalogue system and a jewellery-factory CRM with a WhatsApp inbox. See also jewellery software, diamond and jewellery automation in Surat, and custom web app development.
How much does diamond trading software cost, and how long does it take?
Yukti AI does not publish a price list for diamond trading software, because two desks rarely need the same thing. You get a fixed quote after a free workflow audit, for a one-time build, with the delivery time agreed in that quote. For scale, this platform — stock book, portals, pricing, holds, AI search, enquiries, import check, roles and WhatsApp messages — took about 7 days.
| What moves the quote | Examples |
|---|---|
| Modules | Trading book and portals only, or also memo and jangad, parcels, invoicing or a buyer CRM |
| Integrations | WhatsApp Cloud API, n8n, Rapaport pricing, RapNet or IDEX feeds, Tally |
| Your stock list | How many columns and codes to map, how clean the file is, how much history to import |
| Your rules | The number of roles, pricing tiers, visibility rules and offices to model |
| Book size | A much larger book is a database-sizing job (server-side search, indexes, paging), tested with your real file |
Questions diamond desks ask about a trading platform
Explore more
Diamond Software in Surat
Trading, inventory and memo software for Surat's diamond desks: what is built and what we can build for you.
Jewellery Software
Custom diamond and gold inventory, metal ledger, WhatsApp catalogue, GST billing and CRM.
Case study: Lumera Fine Jewellery
One jewellery ERP and CRM in place of six-plus Excel files, producing the brand's real GST invoices.
Case study: Shinelabb catalogue
A product master and live-priced client-catalogue system for a Surat diamond wholesaler.
Diamond & Jewellery Automation
How Surat's diamond and jewellery businesses automate enquiries, catalogues and follow-ups.
WhatsApp Automation
WhatsApp chatbots, lead capture, follow-ups and order updates on the official WhatsApp Business API.
AI CRM
A CRM that replies to leads, qualifies them, drafts follow-ups and flags deals going cold.
App & Web App Development
Dashboards, ordering systems, CRMs, inventory and internal tools built in Surat around your workflow.
All case studies
Every Yukti AI build: diamonds, jewellery, manufacturing, trading and services.
Summary
- Yukti AI, a software company in Varachha, Surat, built a private diamond trading platform for a Surat diamond export house in about 7 days, on the firm's real daily stock list.
- Yukti AI's platform turns the Surat export house's daily Excel list of about 408 IGI-certified polished diamonds, in 13 shapes from 0.50 ct to 20.25 ct, into one live stock book with a private B2B portal for each client.
- In the diamond trading software Yukti AI built in Surat, each client sees only their own per-carat price from a tier and markup, the base rate is removed from client data, and visibility rules can hide shapes or cap carat weight per client.
- In the diamond hold management Yukti AI built for the Surat export house, holds last 2, 4, 12 or 24 hours, lock the price on request, need desk approval, allow one live hold per stone and expire automatically back to the book.
- The AI diamond search Yukti AI built for the Surat export house reads trade shorthand and Gujlish, reading "1.5 thi 2 carat cushion D to F VS" as Cushion Brilliant, 1.50–2.00 ct, colour D–F, clarity VS1 or VS2, and never claims a stone that is not in the book.
- Every Excel import on the diamond trading platform Yukti AI built in Surat runs an AI data-quality check that flags duplicate IGI certificate numbers and depth or table outliers before any buyer sees the list.
- Yukti AI's Surat diamond trading platform is deployed and going live with the firm's desk on its real stock list; its Supabase, OpenAI, WhatsApp Cloud API and n8n connection points are wired to connect.