Maciej Budzich
Back to work

Booksy Store seller settlements

Booksy Store is a marketplace where sellers list products. Every month, sales have to be settled between Booksy, each seller and accounting. The team running this asked me to automate it, and I built it end to end.

In final testing

Seller pages and emails work and are being tested with a trusted seller. Full rollout is expected at the December settlement, and I'll add measured results after it.

My role
Built all of it myself
Tools
Make, Google Apps Script, internal API, webhooks
Scale
A few dozen sellers, every month
How it works
  1. Automated:MakePulls the sales dataFrom the internal API into a spreadsheet, at the start of the month.
  2. Automated:Apps ScriptCreates the settlementsA separate one for each seller.
  3. A person decides:EmployeeReviews the first versionAdds notes and can change commissions.
  4. Automated:WebhookEmails each sellerApproval triggers it. Each email has a personal link.
  5. A person decides:SellerEnters correctionsOur system doesn't catch returned products, and the seller is owed part of the commission back.
  6. A person decides:EmployeeAccepts or sends back
  7. Automated:Apps ScriptUpdates accountingAccepted settlements go to the accounting spreadsheet.

The problem

According to the team, one person spent 2 working days preparing settlements and sending them out, a few more hours answering emails and correcting them, and a full day collecting everything into the accounting spreadsheet. The files were hard to read, everything went through direct email, and the work would grow with every new seller. There are currently a few dozen sellers.

My role

I built all of it myself, based on what the people running the process needed. A colleague exposed the API endpoint.

Key decisions

Nothing reaches a seller without approval. If data is wrong or missing, it stays inside the company.

No answer has a defined outcome. If a seller doesn't respond by the deadline, the settlement is accepted with no returns, so one silent seller can't hold up accounting.

Access depends on the stage. A check runs before the page opens, so a seller can't enter before the employee approves or after submitting.

New links every month. Links are regenerated for each settlement and cleared when it ends.

What can go wrong

If the API returns no data, the process stops before anything is sent. If an email fails, it's resent for that seller only. Scenario errors show up on my automation dashboard.