Skip to content

Case study · Scheduled reports

Expiring contracts, emailed 21 of 22 weeks.

Finding the supplier contracts about to end meant filtering the ERP by hand. Now a robot does it every Monday morning and emails the list. First run on May 29, 2026.

Client
A Brazilian industrial construction groupPrecast concrete and construction · Name withheld
Period
Since May 29, 2026
Status
LiveRuns every Monday morning
Result
21 of 22weeks with the report delivered, June to October 2026MeasuredExecution logs · June to October 2026
Illustration: the Monday email listing the supplier contracts that end within 15 days, and the next scheduled run.
Illustrative data
The problem

Expiring contracts were found by hand.

To know which supplier contracts would end in the next 15 days, someone had to open the contract list in the ERP and filter it by hand.

Each expiring contract needs action: a final pay application, an amendment or a close-out.

Illustrative dataIllustration: the ERP's list of supplier contracts, with the end-date filter typed by hand, and the weekly to-do note.
What we did

A robot that runs the search every Monday.

Every Monday morning, a robot signs in to the ERP through the company's single sign-on (SSO), filters the contracts that end within 15 days and extracts the 11-column table.

It sends the result as an HTML report through Microsoft 365. The robot runs on its own, and every run is recorded with its result and duration.

Illustrative dataIllustration: the Monday run, step by step: the scheduled trigger, the sign-in through SSO, the 15-day filter, the 11-column table and the email.
How it runs

From the schedule to the inbox.

Every Monday morning, with no one at the keyboard.

  1. 01

    Start on schedule

    A scheduled trigger starts the run every Monday morning.

  2. 02

    Sign in with SSO

    The robot signs in to the ERP through the company's single sign-on.

  3. 03

    Filter and extract

    It keeps the contracts that end within 15 days and extracts the 11-column table.

  4. 04

    Email the report

    It sends the HTML report through Microsoft 365.

Stack

  • Python + Playwright
  • Single sign-on (SSO)
  • Scheduled trigger
  • Microsoft 365
Results

Measured run by run, week by week.

Measured numbers come from the execution logs, from May 29 to October 26, 2026. The manual time is a team estimate and is labeled as one.

From the execution logs

  • 21 of 22

    weeks with the report delivered, June to October 2026

    Measured

    Execution logs · June to October 2026

  • 42 of 50

    runs completed, May 29 to October 26, 2026

    Measured

    Execution logs · May to October 2026

  • 3 of 3

    failed scheduled triggers were covered the same morning by a new run that delivered the report

    Measured

    Execution logs · June to October 2026

The robot against manual work

  • 65-137 s

    per completed scheduled run; the robot runs on its own

    Measured

    Execution logs · scheduled runs

  • 5 min

    of someone's time every week to pull the report by hand; with the robot, zero

    Team estimate

    Not timed

Limits and lessons

Not every run completes.

Limits

42 of the 50 runs completed; the others did not. In one of the 22 weeks, the report did not go out.

The 5 minutes of manual work per week is a team estimate; nobody timed it.

What we learned

Scheduled triggers fail sometimes. Each of the 3 times it happened here, a new run delivered the report the same morning.

A record of every run, with its result and duration, is what lets this page show measured numbers instead of impressions.

More case studies

Other projects we built.

  1. 2 h 42 min

    for 300 invoices, about 32 seconds each

    MeasuredExecution logs · May 8, 2026

    May to June 2026 · Invoice automation

    300 invoices posted into the ERP in 2 h 42 min

    A system migration left a backlog of outgoing invoices. Robots attached to the team's logged-in browser posted each one and checked it against its total.

    Read the case study
  2. 156-274 s

    per contract with 2 to 6 items, in validation

    MeasuredValidation logs · July 9 to 14, 2026

    July 2026 onward · ERP integration

    A contract robot, and an orchestrator so robots can share one login

    A robot posts each new contract from the client's internal platform into the ERP. An orchestrator gives the shared ERP login to one robot at a time.

    Read the case study
  3. 35

    redirect rules that send each old sports-portal address to its new page

    MeasuredServer configuration · October 31, 2026

    Since May 2026 · Club management

    One platform for a club's members, sports and management

    A club website with a member area on the club system's API, a chat, sports competitions, dashboards and a tournament site, built from May to October 2026. The old sports portal moved into the new website with page-by-page redirects, and its links kept working.

    Read the case study
  4. 8

    modules live, from sales to financial BI

    MeasuredClient portal · October 31, 2026

    Since June 2026 · Manufacturing operations

    An eight-module operations suite for a food manufacturer

    Sales, accounting, finance, production, maintenance, fleet, HR and financial BI modules, built from June to October 2026. Each module has its own database, and payables are read from the ERP the company already uses.

    Read the case study
  5. 30 days

    of nightly backups kept, each one verified automatically after it runs

    MeasuredServer configuration · October 31, 2026

    Since October 4, 2026 · Financial control

    Financial control for a notary office, where nothing is deleted

    Every payable and receivable goes in as a provision, an entry made before it is due, and is then settled in full or in part. Corrections and cancellations are logged with a reason, every change records who made it and when, and the database is backed up and verified every night.

    Read the case study

Free 30-minute automation assessment

Find the three repetitive tasksthat cost you the most.

In 30 minutes we map the three most expensive repetitive tasks in your operation and tell you what automating them would cost.