How this is built
The stack, how the parts fit together, and how access is controlled — in plain English.
The services behind the contract, each with a test button on its card
Every card carries its own test button, under the one-line description. up to 30 tests a minute.
None of the systems named below is connected to anything here — no account, no key, no call ever leaves this app. Press a card’s test button and it sends a real read, from this page, through this app’s own implementation of the contract each of those systems would implement in their own way.
Stock
Answering todayWhat is on hand, what is already spoken for, and holding or releasing it as an order moves.
- check
- One piece: how many can this property have, and when.
- check_many
- A whole basket in one go — what a quote asks on every line as it is built.
- reserve
- Hold the pieces on an approved order so nothing else promises them.
- commit
- Take them off the books when the order ships.
- release
- Put them back when an order is cancelled.
- allocation
- How much of the current run is already spoken for.
- stockout_risk
- Which pieces are heading for empty, before they get there. Declared, not built.
Plugs in here — none connectedCin7 Omni · Cin7 Core · NetSuite · Brightpearl
Orders
Answering todayDrafting an order, sending it on, and cancelling it. Safe to retry — a repeat never becomes a second order.
- draft
- Start an order. Never sends it.
- submit
- Send it on. The same send twice is still one order.
- order_history
- This property's orders as the order system holds them, newest first.
- usual_order
- What this property usually orders, worked out from the last few.
- cancel
- Undo a send, and give the held stock back.
- confirm_to_buyer
- Send the buyer their confirmation. Declared, not built.
Plugs in here — none connectedCin7 Omni · Cin7 Core · NetSuite · Brightpearl
Shipping
Not built yetFreight terms, an arrival estimate, and where a shipment has got to.
- terms
- How this property's freight is agreed — who pays, and to where. Declared, not built.
- eta
- When a sent order should arrive. Declared, not built.
- status
- Where it has got to. Declared, not built.
Plugs in here — none connectedShipStation · Shippo · EasyPost
Direct sales
Not built yetSales made straight to holidaymakers, and the shops that carry the line.
- recent_orders
- What has sold direct since a given moment. Declared, not built.
- stockists
- The shops carrying the line, and where they are. Declared, not built.
Plugs in here — none connectedShopify · Square
Text messages
Not built yetReading an incoming reorder from a buyer and replying to it.
- inbound_webhook
- Take in a message a buyer just sent. Declared, not built.
- resolve_contact
- Work out which buyer a number belongs to. Declared, not built.
- send
- Reply to them. Declared, not built.
Plugs in here — none connectedTwilio
Email
Not built yetDrafting a message, sending it once someone approves, and pulling it back.
- draft
- Write one and put it in the queue. Never sends. Declared, not built.
- send
- Send it, once a person has approved it. Declared, not built.
- recall
- Pull it back. Declared, not built.
- send_correction
- Correct it, when pulling it back is no longer possible. Declared, not built.
- sentiment
- How a property's replies have been reading lately. Declared, not built.
Plugs in here — none connectedGmail · Microsoft 365 · SendGrid
Two of the cards above come back with real records out of the demonstration company; the other four come back with the refusal they were written to give, naming themselves. A third answer is its own word — did not answer — and it means the service IS built and its records were not reachable at that moment, which is a different fact from declared, not built.
Anything a company already runs plugs in here: each of the six services above is a named set of operations, and each operation either answers today or is declared and refuses when it is called — never a plausible-looking number standing in for one. Pointing one at a real provider later is a new implementation of the same contract plus a setting on the account; the screens do not change, and neither does anything a rep sees.
Settings lists one more than this section does, and the difference is deliberate: issues raised by a property are kept as records in this app today rather than going out to an outside system, so there is nothing to plug in yet.
What moves, and which way
Inventory system
One account covers both Stock and Orders.
- IN
- your products and stock levels
- OUT
- approved wholesale orders — the one thing this CRM sends out. Declared, not built against a real system.
Books
There is nothing here to plug in yet — this row would be filled through your inventory system.
Through your inventory system
- IN
- what you have invoiced
- OUT
- nothing — this one only reads.
Straight from your books
- IN
- what you have invoiced, plus what is overdue and any credit hold
- OUT
- nothing — this one only reads.
Shipping
Through your inventory system
- IN
- whatever your inventory system last passed along
- OUT
- nothing — this one only reads.
Straight from your shipping account
- IN
- where a shipment has actually got to, and its tracking number
- OUT
- nothing — this one only reads.