Skip to content
All insights
Case study2 min readBy the DonDev team

Automated reporting without an API: A weekly telecom report

How Selenium, n8n and Google Apps Script turned several telecom portals into one weekly report, and how to spot missing or stale data.

Last updated

Three reporting screens feed into one printed weekly report
On this page
  1. Check for a supported export before automating the browser
  2. Validate the reporting period at collection time
  3. Decide what to send when one account fails

Every week, a telecom team in Egypt needed figures from several portal accounts. There was no API available for the job. Someone had to sign in, select the period, collect the figures and assemble the same report again.

In our telecom reporting project, scheduled Selenium runs collected the data through the portals, n8n received it and Google Apps Script formatted and sent the weekly report. The collection and delivery steps were separate, which is also a useful starting point for testing a similar build.

Key takeaways

  • Separate collection, validation and delivery.
  • Make missing accounts visible and rehearse recovery.

Check for a supported export before automating the browser

Ask whether the vendor offers scheduled exports, downloadable reports or an integration that can be enabled. Those are usually easier to maintain than a script that clicks through pages. Use browser automation only for accounts you are authorized to access and a workflow the portal permits.

When a browser is the only practical option, start with one account and one report. Confirm you can reliably select the correct period, identify when the data is ready and distinguish an empty report from a failed page load.

Validate the reporting period at collection time

A portal can show the previous week while its loading indicator is still visible. Wait for a meaningful condition, such as the expected date range and the report table, rather than adding an arbitrary delay. See Selenium’s guide to waits for the browser behavior behind this pattern.

Alongside the figures, record the source account, requested period, observed period and collection result. If a required column disappears after a portal update, fail that source with a useful error. Do not replace missing values with zero.

Decide what to send when one account fails

If a report goes into a management meeting even when one source fails, mark it partial and name the missing source. If the report drives decisions that need complete totals, hold delivery and alert the owner. Write down which rule applies before the first scheduled run.

Run the automated and manual versions in parallel for one period. Compare dates, source counts and totals, then simulate an expired login and a portal layout change. Check that staff get a useful alert and can rerun the affected source without sending a duplicate report.

The takeaway

Treat source freshness and completeness as part of the report so a polished layout cannot hide missing data.

The cover is an illustration. The example records and test scenarios are illustrative. How we write these guides.

Continue reading