← Case Studies
ETL Pipeline & Automation

2 days of manual QuickBooks work every week.
Now a Python pipeline runs it daily — for 8 companies at once.

The VP of Finance at a US-based education holding company was spending 2 full days a week manually exporting QuickBooks Online data across 8 entities and pasting it into a shared Google Sheet. I built a pipeline that eliminated that entirely.

16 hrs/week
saved for the finance team
100%
data accuracy — no manual touchpoints
8 entities
automated simultaneously
Before & After
Metric Before After
Time spent on data entry ~16 hrs/week (2 full days) 0
Data freshness Updated manually, once a week Automated daily
Accuracy Prone to human error 100% — no manual touchpoints
Coverage 8 entities, one by one 8 entities, simultaneously
Risk of failure Single point of failure Fault-isolated per entity

The VP of Finance recovered 2 full days a week — time she'd been spending on data entry instead of actual financial analysis. With the pipeline running daily, the team stopped making decisions from week-old numbers and started getting ahead of them.

From 2 days of manual QuickBooks exports to zero. Data accurate. Data current. Every morning.

The Problem

Every Friday, the VP of Finance had a deadline: deliver updated financials for the entire group. To meet it, she spent 2 full days a week manually exporting data from QuickBooks Online — one company at a time, across 8 separate entities — and pasting it into a shared Google Sheet.

No automation. No pipeline. Just copy, paste, check, repeat.

The process wasn't just slow. It was fragile. One wrong cell, one missed export, one formatting inconsistency — and the numbers were off. At the scale of a multi-entity holding company, that kind of error isn't a minor inconvenience. It's a risk.

The Solution: A Python + GCP Pipeline Connected to QuickBooks Online

I designed and built a fully automated data pipeline from scratch — connected directly to the QuickBooks Online REST API, running on a daily schedule, writing clean output to Google Sheets automatically. Always current. Not just ready for Friday.

Key design decisions
Fault isolation by entity
If one company's data fails to sync, the other 7 continue unaffected. Errors surface cleanly without breaking the full pipeline.
Secret Manager for credentials
API keys and OAuth tokens stored securely in GCP Secret Manager — never hardcoded.
Idempotent runs
The pipeline can re-run safely without duplicating or corrupting data.
Full documentation
The client can understand, monitor, and maintain what was built.
Stack Used
Python GCP Cloud Functions Cloud Scheduler Secret Manager QuickBooks Online REST API Google Sheets API

Have a similar workflow eating your team's time?

Book a call →

Spending hours on data your tools should handle automatically?

If your team is manually exporting, copying, or refreshing data that could run on a pipeline — that's time and accuracy you're leaving on the table.

Book a Discovery Call  → No commitment. 30 minutes.