A team's records live in a spreadsheet because that is where the team works, but the document it hands over has to be a formatted PDF. This automation reads the worksheet through a service account and renders it with FPDF, so the sheet stays the working surface.
Worksheet rows read by a service account, rendered as PDF
Screens from this system are being added.
The situation
A team's records live in a spreadsheet because that is where the team works, but the document it hands over has to be a formatted PDF, assembled by hand each time.
What we built
Google Cloud and Google Sheets API connection with service-account access
Worksheet rows read through gspread, so the sheet stays the single working surface
Spreadsheet rows rendered into structured PDF output with FPDF
What changed
The sheet stayed the single working surface and the PDF assembled itself from it. Nobody copied rows into a document again.
An email becomes order lines against a catalogue, stock moves to reserved, and a quotation drafts itself. 3 quantities per stock item: on hand, available and reserved.
The CSV or JSON export an ads-ops person opens every morning, aggregated per campaign, compared against the previous day, with what to look at first pulled to the top. 40 minutes of a person's morning, and a spreadsheet, before the prototype.
Gemini 2.5 Pro reads a scanned Thai and English insurance form and returns every field as structured JSON, on video, with the SAP entry stage mapped for the operation to decide on. 46 fields out of one scanned insurance form, as JSON.