SaveOnHouseTaxes.com on desktop and mobile
All Work

WordPress / CRM / Automation / PDF Generation

Building the Operational Infrastructure a Growing Tax Consultancy Actually Needed

A full client enrollment system — digital agreements, automated PDF generation, Zoho CRM sync, and follow-up sequences — built to handle hundreds of concurrent cases without anyone on staff managing the queue.

Client
SaveOnHouseTaxes.com
Platform
WordPress / Custom Plugins
Disciplines
Automation, CRM, PDF Pipeline
Market
Texas Property Tax Consulting
Plugins Built
3 from scratch

The business was growing fast. The process holding it together was built for a tenth of the volume. Every new client meant more emails, more PDFs printed and scanned, more manual CRM entries — more opportunities for something to slip.

What looked like a website project from the outside was really an operational infrastructure problem. The enrollment system we built didn't just replace a manual process — it removed the ceiling that was quietly limiting how many clients the firm could take on.

SaveOnHouseTaxes.com — desktop and mobile
Client Website
SaveOnHouseTaxes.com — Simplified Property Tax Savings
Thousands
of Texas homeowners served

The Challenge

A manual process that couldn't scale.

SaveOnHouseTaxes.com operates on a contingency model: clients sign agreements, the firm files property tax protests on their behalf, and earns a percentage of whatever savings they secure. The model works. The problem was the intake process was entirely manual — new clients received a PDF via email, printed it, signed it, scanned it, and sent it back. Staff then manually entered that data into a spreadsheet and updated Zoho by hand.

During peak filing season in Texas (spring through early summer), this process was failing under volume. Documents were going unsigned because no one was following up. CRM records were incomplete. Cases were getting mixed up between counties. The firm was losing revenue not because of bad service — but because of bad infrastructure.

The core problem: every additional client added more manual work rather than less. The firm had built something that couldn't scale with them. Our job was to build the thing that could.

20min
Average staff time per new client enrollment under the old manual process
3
Separate plugins built to keep the codebase modular, testable, and maintainable
100+
Active client cases handled simultaneously during first full protest season
0
Manual data entry steps required after client completes the enrollment form
Built on WordPress.
WordPress Custom PHP Plugins Zoho CRM API TCPDF Engine SMTP / Transactional Email WP REST API jQuery / AJAX Canvas E-Signature
Architecture approach
Platform as operational infrastructure.

Process Audit

What the old process looked like.

Before building anything, we mapped the existing enrollment workflow from first contact to Zoho CRM entry. Every manual step was a failure point. Here's what we found.

01
Client submits web form

Basic contact form submission. No validation, no county detection, no multi-property handling. Data went into a generic email inbox.

Kept and upgraded
02
Staff emails PDF agreement manually

Generic PDF template attached to a manually written email. No client-specific data baked in. No tracking of whether the email was opened or the agreement was accessed.

Eliminated entirely
03
Client prints, signs, scans, and returns

The most significant friction point. Many clients never completed this step. No automated follow-up. No way to track who had and hadn't signed without manually checking an email thread.

Replaced with digital signature
04
Staff manually enters data into Zoho

Each new client required a Zoho contact record to be created or updated by hand: name, address, property details, account number, county. Error-prone and time-consuming during peak season volume.

Fully automated via API
05
No follow-up for unsigned agreements

Clients who didn't complete the signing process simply fell off. No reminders, no re-engagement. Revenue was being left on the table with every filing deadline.

Automated follow-up sequences added
Client Enrollment Dashboard — Admin View
ENROLLED TODAY 47 +12% PENDING SIGNATURE 12 ZOHO SYNCED 100% ACTIVE CASES 318 CLIENT NAME COUNTY PROPERTIES SIGNED ZOHO STATUS ENROLLED J. Martinez Harris 3 SIGNED SYNCED Today 9:14am R. Thompson Fort Bend 1 PENDING SYNCED Today 8:42am S. Patel Travis 2 SIGNED SYNCED Yesterday A. Johnson Bexar 4 SIGNED SYNCED Yesterday

We didn't build a website. We built the operational infrastructure the business needed to grow past the limits of what one person could manually manage. The website is just the front door.

Jackson Digital — Project Methodology

Technical Implementation

Three plugins. One automated pipeline.

We built three separate custom WordPress plugins — enrollment + PDF pipeline, CRM bridge, and admin tooling — keeping each domain isolated so changes to one can't break the others.

PLUGIN 01 / Enrollment Pipeline

From Form Submit to Signed Agreement in Under 3 Minutes

On submission, the plugin validates the data, detects the county from the property account number format (including Fort Bend's R-prefix pattern and similar county-specific variations), normalizes the format, and stores the record to a custom WordPress database table.

A PDF is generated server-side via TCPDF in under two seconds using the client's actual data — name, property address, account number, agreement terms, and a signature placeholder block. A secure time-limited link is emailed to the client for signature capture.

Account detectionCounty-specific prefix patterns normalized before PDF generation
PDF generationTCPDF server-side, client-specific data, under 2 seconds
Signature linkTime-limited token, expires after configurable window
ENROLLMENT WORKFLOW Form Submit Validate + detect county Generate PDF TCPDF, client data baked in Email Signature Link SMTP, time-limited token Client Signs Canvas → Base64 → PDF embed Final PDF Stored Signed agreement + delivery Zoho CRM Sync Automatic, zero staff input Auto Follow-up If unsigned after N days Runs automatically. No staff involvement required.
PLUGIN 02 / Zoho CRM Bridge

Real-Time CRM Sync Without a Single Manual Entry

The Zoho bridge was built as a standalone plugin to isolate CRM logic from the enrollment pipeline. Changes to field mapping or API behavior can be made without touching the PDF generation or email delivery code — critical during the filing season when stability is non-negotiable.

The plugin handles contact creation and update on enrollment using email as the deduplication key, custom field population (county, account number, property address), status updates as the agreement moves through stages, and activity log entries for every workflow event.

DeduplicationEmail address as primary key — no duplicate Zoho contacts
Status updatesFires on: enrolled, signed, follow-up sent, protest filed
Activity logFull event history per contact, no manual entry
Zoho CRM — Contact Record (Auto-generated)
Contact NameJ. Martinez Emailj.martinez@email.com CountyHarris Account No.0012345678 Properties3 EnrolledToday 9:14 AM AgreementSigned Protest StatusFiled
Activity Timeline
9:14 AMContact enrolled via web form
9:14 AMAgreement PDF generated and sent
11:02 AMAgreement signed — status updated
11:02 AMSigned PDF delivered to client
FEATURE / PDF Engine

Dynamic Agreement Generation With E-Signature Embed

Agreement templates change periodically as state law and firm policy evolve. Rather than hardcoding templates into the plugin, we built a template management system inside WordPress admin that lets the firm update agreement language, reposition signature blocks, and preview the rendered output before it goes live.

Signature capture uses a canvas element on a mobile-friendly page. The signature is locked to the correct output dimensions before base64 conversion to prevent the aspect ratio distortion that affected earlier attempts. The final image is embedded into the PDF at the exact signature block position.

Template managementAdmin UI for updating agreement copy without developer involvement
Signature canvasNormalized to PDF output dimensions before Base64 conversion
DeliveryCompleted PDF emailed to client and stored server-side
AGREEMENT PDF — GENERATED OUTPUT Property Tax Protest Agreement CLIENT PROPERTY ADDRESS COUNTY / ACCOUNT NO. This agreement authorizes representation for the current tax year property protest proceedings. Contingency fee applies only upon successful... CLIENT SIGNATURE Generated Server-side, 1.8s Signature Canvas normalized Zoho synced

Results

What the system changed.

The enrollment system went live ahead of the first peak filing season and handled the volume surge without incident. These are the outcomes from that first full season.

<2min
Staff time per enrollment — down from 20+ minutes of manual work per client
100%
CRM record completeness on new enrollments — from incomplete manual entries to full data on every contact
+0
Enrollment records lost or corrupted during peak season, despite higher volume than any prior year
Signature Rate Improved Significantly
Automated follow-up sequences caught clients who hadn't completed the signing process — a conversion that was being missed entirely under the manual system.
Operational Ceiling Removed
The firm was able to take on more clients during the filing season than any prior year. The system removed the manual bottleneck that had quietly capped their growth.
Multi-County Account Support
Fort Bend, Harris, Travis, Bexar, and other Texas counties each have different account number formats. The system detects and normalizes all of them without staff intervention.
Modular Architecture Enables Safe Updates
Three separate plugins mean changes to the CRM mapping, PDF template, or admin tooling can be made independently without risking the enrollment pipeline during active filing periods.
SaveOnHouseTaxes.com website

Build something similar

If your business runs on manual processes that should be automated, we should talk.

Whether it's client enrollment, document generation, CRM integration, or any other operational workflow — we build systems that scale with your business instead of holding it back.

Start a Free Consultation CRM & Automation Services
WordPress Zoho CRM PDF Automation GoHighLevel HubSpot Custom API