All posts

How to Track Custom Orders (When the Spreadsheet Stops Working)

Mat Caissy

I love a spreadsheet. Ours tracked every custom order the farm took: the festival marigold bookings, the tulip bunches, the wedding garlands. One tab, updated by me, usually late at night, usually from memory.

Last season we ran 14 custom orders worth $4,366.50 through 12 customers. Not a huge number. And the spreadsheet still nearly broke us. Two quotes sat open and unpaid for weeks ($25 and $50, small money, but real orders nobody followed up). A pickup date moved and the sheet still said Saturday. I found out about a design change from a DM thread three days after the customer sent it.

The problem was not effort. The problem is that a spreadsheet is the wrong shape for a custom order. Here is exactly where it breaks, what to track instead, and the system we use now.

The five ways spreadsheets fail custom shops

1. Unpaid quotes look exactly like paid orders.
A row is a row. Nothing in a spreadsheet screams "this person has not paid yet" the way an unpaid invoice should. Our two open quotes sat in the sheet looking like every other row, which is why nobody chased them. Money you do not chase is money you do not get.

2. Dates move and the row does not.
Custom orders change. Weddings move, customers ask to push pickup by a day, a festival deadline shifts. The new date arrives by DM or email, and the spreadsheet keeps the old one, because updating the sheet is a separate job from answering the customer. The version of the truth is always whichever place you looked at last.

3. The conversation lives somewhere else.
The spreadsheet says "6 centerpieces, sunflowers and zinnias." It does not say that the customer changed the colors in a DM last Tuesday, or that they are allergic to lilies, or that the quote they agreed to was the revised one. Every important detail of a custom order starts as a conversation, and a spreadsheet cannot hold a conversation.

4. Only one person can hold it.
If the whole system is your spreadsheet, the whole system is you. Nobody else can answer "what is due this week" without calling you, which means you can never be fully in the field, in the kitchen, or on holiday. A tracking system that requires its inventor to operate it is not a system.

5. It never reminds you.
A spreadsheet does not nudge the customer who never paid. It does not flag the pickup that is tomorrow. It sits there, perfectly accurate and completely silent, while orders quietly die.

What every custom order actually needs tracked

Forget the tool for a minute. Every custom order, in any business, needs these seven things recorded somewhere:

  1. Who. Name and how to reach them.
  2. Where it came from. DM, email, or form. When something goes wrong, you need to find the original thread.
  3. What. Items, quantities, and the details that make it custom.
  4. The quote. Amount, the link you sent, and when it expires.
  5. Payment status. Unpaid, deposit paid, or paid in full. This is the single most important field and the one spreadsheets hide.
  6. Pickup or delivery date. Locked only when payment clears.
  7. Notes. Allergies, design changes, "no marigolds," anything the next person touching this order must know.

If your current system cannot answer all seven for every open order in under a minute, it is not tracking. It is hoping.

The better spreadsheet (steal this)

If you are not ready for software, make your spreadsheet shaped like the list above. Seven columns:

Order # | Customer | Channel | Items | Quote $ | Paid? | Pickup | Notes

Download this custom order spreadsheet template here (.xlsx)

And three rules that make it work:

  • Update it the day anything changes, not at the end of the week. A spreadsheet updated weekly is a history book, not a tracking system.
  • The Paid column only changes when money clears, not when the customer says "I will send it tonight."
  • Every evening, read the unpaid rows. Anything quoted more than three days ago gets a nudge. (There is a template for that in our post on following up on quotes.)

This will carry you a long way. It carried us through our first seasons. But it has a ceiling, and you will feel it: the day there are too many rows to read every evening, the day someone else needs to answer a customer while you are harvesting, the day the DM with the design change does not make it into the Notes column.

The ticket: one order, one record

The fix is to stop tracking orders as rows and start tracking them as tickets. One order gets one record, and everything about that order lives on it: the customer, the original conversation, the quote, the payment status, the pickup date, the notes. Not linked across tabs. Attached.

Here is what that looks like in practice:

  • Gurpreet Dhaliwal, 250 marigold loose blooms. Paid $250. Pickup missing but we can easily ask in the ticket.
  • Mei Lin, eight dahlia bunches. Paid $64, pickup tomorrow morning. Everything about this order is green: money cleared, date locked, crew knows to cut dahlias first thing.
  • Ruth Okada, sympathy bunch. $30 due, pickup Saturday, and the note says no marigolds, soft whites and greens. The note is on the ticket, not in someone's memory, so the person arranging on Saturday sees it.
  • Sofia Alvarez, six centerpieces. $123 due, quote sent, pickup not locked yet. This is the one that needs a nudge tonight.

Three orders, three states, visible in one glance. No cross-referencing, no "wait, which thread was that in." That is the whole idea: the ticket is the unit of a custom order, the way the row was the unit of the spreadsheet.

What this looks like with a little help

We built IntoPaid because the ticket inbox is what our farm needed and nothing sold it as a product. DMs, emails, and form submissions become tickets. Quotes go out from your real Shopify catalog. Payment status updates itself when checkout completes. Paid orders land on the pickup calendar.

The screenshot above is our actual ticket inbox: who asked, what they want, what is due, what is paid, and when pickup is, all in one place. No spreadsheet, no memory, no Sunday-night panic.

We are opening soon. If your next custom order is probably sitting in a spreadsheet row that has not been updated since Tuesday, join the waitlist and give it a ticket when we open. No card required.

Get early access

Your next custom order is probably already sitting in your inbox.

Join the waitlist and turn it into a paid order when we open.

No card required, no spam.