Success Story · CRM Migration

From Chaos to Fully Automated — In Under 4 Weeks

A general contracting company in Texas had outgrown Follow Up Boss. Their growing team needed one system to track every lead from inquiry to close — and they needed the switch done inside a 30-day deadline, without losing a single contact or pausing follow-ups.

15
Workflows built in one week
4 wks
To fully live — ahead of the 30-day deadline
0
Downtime during the migration

What we built together:

✅ Full CRM migration Follow Up Boss → GHL
✅ 12-stage Active pipeline around their sales process
✅ Automated SMS + email follow-up sequences
✅ A2P 10DLC compliance — approved & operational
✅ Lead sources + Webhook for automatic lead capture
✅ Individual user accounts + call routing
✅ Full team training + Loom video library
✅ Complete handoff documentation
My standard on every project: zero downtime, fully documented, and your team owns it completely.
Want Results Like This? Let's Talk

n8n Data Automation

Automated Historical Data Pipeline & Knowledge Base

A home services contracting business had years of pricing history locked inside Estimate Rocket — a CRM/estimating platform with no public API and no export option. Every past proposal existed only as an individually rendered PDF, so there was no way to search, filter, or compare what had been charged for similar work before. Rather than opening over a thousand client records by hand, I built an automated pipeline in n8n to handle it end to end.

n8n scraper workflow pulling proposal PDFs from Estimate Rocket

Phase 1 — the scraper workflow: client sheet → project pages → proposal PDFs, downloaded straight into Google Drive.

n8n workflow parsing PDF text into structured knowledge base rows

Phase 2 — the parsing workflow: reading each downloaded PDF, extracting line items, and writing structured rows into the knowledge base.

1,394
Client records processed
3,325
PDF proposals downloaded
6 hrs
Total runtime

The approach

With no official API to work from, the platform's data structure had to be mapped by hand before any automation could run:

Mapping

Client → Project → Proposal

Mapped the relationship between client records, projects, and saved proposals by inspecting the app's rendered HTML and network requests.

Access

Working with the business's own access

  • Proposal PDFs were retrieved through the same customer-facing proposal links the business already sends to its clients.
  • Client and project pages were read using the business's own authorized account, since the platform offers no API keys or integrations.
Extraction

3,325 PDFs, downloaded automatically

Automated traversal from client → project → proposal, pulling every proposal PDF into Google Drive without a single manual download.

Parsing

Custom regex parser for unstructured text

PDF text extraction doesn't preserve the original table layout, so a custom JavaScript parser was built to pull each line item — description, unit price, quantity, and total — directly out of the raw extracted text.

Clean, Scalable Writes

Batches that fail safely and re-run

Processing ran in chunks of 50 records to stay within the automation platform's execution and memory limits, using an idempotent "append-or-update" write pattern so any batch could be safely re-run without creating duplicates.

Key challenges solved

No public API

Built the entire pipeline against a platform never designed for programmatic access, using the business's own account access and careful mapping of internal ID relationships.

Sandboxed execution environment

The automation platform didn't support common HTML-parsing libraries, so hand-written regex parsers stood in as a substitute.

Execution limits at scale

Full-dataset runs initially failed on memory and timeout limits, so the pipeline was redesigned around small, resumable batches instead.

Data integrity at scale

Caught and fixed a parsing bug where quantities were misread from adjacent dollar amounts — an error that would have silently corrupted a large share of the dataset if it had gone unnoticed.

What we built:

✅ Automated login and page navigation per client record
✅ Extracted full pricing breakdowns (item, price, qty, date)
✅ Auto-downloaded proposal PDFs into Google Drive
✅ Batched, idempotent processing to handle scale reliably
The result: what would have taken weeks of manual copy-paste took 6 hours, fully automated — and left the business with a searchable pricing reference for every future estimate.
Want Results Like This? Let's Talk

Ready to Build Something Like This?

Let's talk. Book a free 30-minute discovery call and let's map out exactly what your business needs. No pressure. No obligation. Just a real conversation.

📅 Let's Talk — Book Your Free Call