Skip to content
Caroline Gonçalves All cases

Tempo · Product, AI and operations

Nobody was going to prioritise this feature. I fixed it myself.

Low impact on the dashboard, high daily cost on the floor. It's the kind of problem that stays invisible in any metric-driven prioritisation while it blocks thirty people every day.

My rolePM, designer and builder, on my own
What was at stake~300 templates a week across the operation
ToolLovable, built from scratch
Engineering costZero sprints consumed

The context

Tempo organises clients' financial and day-to-day admin over WhatsApp: payments, purchases, quotes, bookings. The people doing the work are human assistants, backed by AI.

When a request had several options for the client to choose from, like products, quotes or flights, the assistant pasted the link into a template feature and it generated a PDF with the options.

When the link came from a site that allowed scraping, the technique of pulling price, image and description off a page automatically, it worked straight away. Trouble started when the site blocked it, and plenty of them did.

A PDF almost nobody could edit quickly

With scraping blocked, the assistant opened a generic PDF editor and built the template from nothing. Create each text box, paste the information, pick the font, position everything. If the product name ran long, the layout broke and she rearranged it all over again. A simple template could take more than 30 minutes of pure formatting labour.

And the worst of it wasn't the annoyance. That time came out of the part that matters to the client: researching the right product, comparing options, understanding what he needs. The assistant sat there formatting text instead.

Looking at the roadmap, this feature was nowhere near a priority. Improving the old system meant real engineering effort for something that moved no metric the team watched.

Low impact on the dashboard, high cost on the floor. That kind of problem never wins a metric-driven prioritisation, and it blocks people every day.

What I chose not to do

There were two obvious routes and I dropped both.

The first was fighting for a slot in the engineering queue. I'd have lost that fight, and rightly so. A team of 12 has better things to do than incremental work on a feature that moves nothing.

The second was improving the old system. Also no. The problem lived in the format, and the format was PDF. Fixing the manual assembly of a static document still leaves you with a static document.

So I threw the feature away and built a new one myself in Lovable. The only engineering dependency was a single ask: have the feature's icon in the Cockpit redirect straight to my app.

The price of that choice: maintenance became mine. When a bug turned up after launch, I was the one going into the code, fixing it and shipping. That works while I'm here, and it's a dependency the company took on along with me. If it had been a critical system, I wouldn't have done it this way.

From paste a link and pray to a real builder

The new version handled the easy path and the hard one, and went past what the old feature could do.

  • Automatic layout

    The app repositions and resizes everything on its own, even with long text. The assistant only fills in the data. No text boxes, no fonts, no manual rearranging.

  • Link or fast manual entry

    Pasting the link still works when the site allows it. When it doesn't, filling it in by hand stopped being a half-hour punishment.

  • Multiple photos per product

    Paste the address of each image and a full carousel comes out in very little time.

  • Custom fields

    For specific quotes, like "does this car wash include X or not?", you can add a field just for that question. The old PDF had no such flexibility.

  • CSV import in table format

    For long lists, like flight options, you can paste a CSV and generate the template as a table, which reads faster than cards.

And the output stopped being a PDF. It became an interactive link: the client picks the option right there, and the choice comes back to Tempo's WhatsApp on its own. The assistant sees the decision without having to ask again.

What changed for the people using it daily

Before

  • Static PDF, no client interaction
  • Layout assembled by hand, box by box
  • Text that didn't fit meant redoing everything
  • Over 30 minutes per template in manual cases
  • The client's choice didn't come back on its own, someone had to check and relay it
  • No custom fields and no table mode

After

  • Interactive link, the client chooses directly
  • Layout adjusts itself to the content
  • Fast manual entry when it's needed
  • Template ready in under 3 minutes
  • The choice returns to the assistant's WhatsApp automatically
  • Custom fields per request and CSV import

Small on paper, large at scale

Saving time on one template sounds like nothing. Except each of the 30 assistants generated around 2 templates a day, which lands at roughly 300 templates a week across the whole operation.

The arithmetic, with the assumptions on the table

300 templates a week, at 30 min each≈ 150h/week
300 templates a week, at 3 min each≈ 15h/week
Estimated reduction-90%
300/wktemplates generated per week across the operation
0engineering sprints consumed to build the feature
100%of the old feature replaced, none of the old format survived

Where this arithmetic is fragile

The 30 minutes is the manual case, when the site blocked scraping. When the link worked, the template came out fast even before. Since I never instrumented the split between the two paths, applying 30 minutes to all 300 templates treats every one as manual, so 150h a week is a ceiling, not a measurement. What I hold firmly is the ceiling of the before, the time of the after, and the volume. The real saving sits between those two numbers, closer to the ceiling the more often the block occurred.

What I'd do differently

I instrumented almost nothing. I know how many templates get created. I don't know how many clients opened the link before deciding, or how many purchases came out of it, and I have no direct before-and-after comparator. It's the same failure I made on the payments case, and it's the thing I'd most change in my own routine: ship the tracking on the same day the feature ships.

I should have measured both paths before building. One week counting how many templates fell into the manual flow would have turned the number above from an estimate into a measurement, and it would have cost almost nothing.

My strongest evidence here is qualitative, and I'd rather say that than inflate. The assistants' recurring complaint about this feature simply stopped, and unprompted praise showed up in the internal channels. That's a signal. It isn't proof.

Got one of these sitting around?

The problem everyone knows about and nobody ever prioritises. Those are my favourite.