Automation Skill Builder
All posts Home

Product blog

From dynamic Excel to repeatable line entry

A short story about automating Odoo vendor bills when every invoice has a different number of rows.

We started with a familiar chore: a vendor sends a PDF or spreadsheet with a changing number of line items, and someone re-types each row into Odoo’s vendor bill — Product, Quantity, Unit price — in the same form every time.

Automation Skill Builder felt like the right tool: teach the browser flow once, turn it into a skill, and let software handle the repetition. What took longer than expected was not the clicking — it was deciding what to automate as one big story versus what to repeat row by row.

The goal sounded simple

At first we tried to automate the whole invoice in one go: open the bill, attach the PDF, read Excel, fill every line, save. That is fine for a demo with a fixed row count. In real use, each invoice has a different number of rows, and the same three fields must be filled again and again with new values.

What stays in the loop — and what stays out

The turning point was to split the work in two.

Outside the loop — once per bill — we kept navigation, PDF upload, header fields, and Save. Inside the loop — once per Excel row — we kept only “Add a line” and fill Product, Quantity, and Price. Record that single line with example values, package it as a skill, and call it from the outer automation for each row.

The packaged skill is “add one line,” not “automate the entire spreadsheet.”

The prompt change that made it work

Early attempts were brittle: the assistant typed directly into Odoo’s product field and often missed the dropdown. Rewriting the prompt in plain operator language — without “recording mode” jargon — fixed most of that.

We described the task the way a person would do it: add a line, put each value on the clipboard, paste into the field, tab to the next, wait briefly, confirm the product with Enter. Example values in the prompt double as the defaults when you package the skill.

Add a line on the vendor bill. For Product, Quantity, and Unit price, copy each value to the clipboard and paste it (Ctrl+V). Use Office Supplies, 40, and 25 as the example values. After pasting the product name, press Enter. Between fields, press Tab and wait a few seconds for the page to settle.

That was enough. We did not need a longer technical brief — a clear, human prompt plus the loop split got us to a stable one-line template.

Package once, run for every row

Generate Skill turned the demo values into parameters — product name, quantity, and price — so the same packaged skill or executable can be invoked with different inputs each time.

The outer script reads Excel (or any other source), loops over the rows, and calls the skill once per line. Navigation and Save stay outside; the inner skill stays small and easy to re-record if the form changes.

Dynamic Excel into a fixed browser form is less about one giant automation and more about drawing the loop boundary, writing the prompt like an operator would, and packaging the smallest piece that is worth repeating.