Skip to main content
Custom CRM Systems · Fleet Operations

Custom Fleet CRM with Automated Billing and Payment Matching

From spreadsheet-driven operations to a simple custom CRM: executive dashboard visibility, unified matched/unmatched payments, OpenPhone-powered hiring communication, resilient parsing controls, and live driver balance access in one place.

Gonzocar · Chicago, IL, USA
Screens

See it on screen

Gonzocar screenshot 1
Gonzocar screenshot 2
Gonzocar screenshot 3
Gonzocar screenshot 4
Gonzocar screenshot 5
Gonzocar screenshot 6
Gonzocar screenshot 7
Gonzocar screenshot 8
The change

From manual to automatic

One change at a time — swipe through the four.

  1. 01 / 04
    By hand

    Mapped Gonzocar’s proven

    Handled manually, step by step.

    Automatically

    Now automated

    Mapped Gonzocar’s proven spreadsheet logic into structured CRM workflows so the team could transition with minimal friction

  2. 02 / 04
    By hand

    Paginated Vetting Hub

    Handled manually, step by step.

    Automatically

    Drivers

    Built a paginated Vetting Hub workflow where approved applications are synced into Drivers and removed from active review lists

  3. 03 / 04
    By hand

    Expanded driver profiles

    Handled manually, step by step.

    Automatically

    Now automated

    Expanded driver profiles with full edit mode, payment aliases, agreement dates, and deposit tracking fields

  4. 04 / 04
    By hand

    Operations dashboard

    Handled manually, step by step.

    Automatically

    Now automated

    Built an operations dashboard with live totals, revenue windows, balance distribution, queue monitoring, and service health signals

What we shipped

Inside the build

Mapped Gonzocar’s proven spreadsheet logic into structured CRM workflows so the team could transition with minimal friction

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Built a paginated Vetting Hub workflow where approved applications are synced into Drivers and removed from active review lists

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Expanded driver profiles with full edit mode, payment aliases, agreement dates, and deposit tracking fields

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Built an operations dashboard with live totals, revenue windows, balance distribution, queue monitoring, and service health signals

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Implemented billing state controls (Active, Paused, Terminated) directly on the driver profile for faster operations

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Added manual ledger actions (charge/credit), overlap warnings, and payment cancellation via reversal entries

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Unified matched and unmatched transactions into one Payments table with in-row driver assignment and reassignment workflows

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Extended Application Detail workflows with internal review comments and OpenPhone status messaging for approve/hold/decline/onboarding actions

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Added vehicles and time-based driver assignments, plus Ticket Finder search by plate or driver

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Implemented Swap Vehicle flow to close the current assignment and open the next one without timeline gaps

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Stabilized Gmail payment parsing for updated recipient addresses, forwarding scenarios, deduplication safety, and backfill recovery

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Added parser miss-history visibility in Settings so operators can track failed windows, delays, and recovery status

FastAPISQLAlchemyAlembicPostgreSQLReactVite

Kept scheduled automation in place: payment parsing every 5 minutes and nightly billing with reminder logging

FastAPISQLAlchemyAlembicPostgreSQLReactVite
Results

Measurable results

Swipe the metrics — each one with what it changed in the business, and why it mattered.

  • Outcome

    Daily operations moved from scattered Google Sheets into one custom CRM workspace, while preserving the team’s established operating logic.

    Higher adoption with lower process disruption

  • Outcome

    Payment ingestion now handles updated recipient addresses and forwarding routes, reducing parser breaks during account changes.

    Continuity of collections data during account/inbox migrations with clean, non-duplicated records

  • Command-center reporting

    Operations now run from an executive dashboard view with live totals, trend windows, payment-source distribution, queue signals, and integration health checks.

    Faster financial and staffing decisions with fewer blind spots

  • Identity abstraction layer

    Alias matching now maps payments from alternate payer identifiers to the correct driver account.

    Higher auto-match rates with fewer manual corrections

  • Outcome

    Payments are managed in one unified pool of matched and unmatched transactions, with immediate in-row driver reassignment when exceptions occur.

    Lower backlog and faster cash application without data handoffs

  • Outcome

    Application review now includes internal comments and OpenPhone-triggered status messaging, so hiring decisions and applicant communication stay synchronized.

    Cleaner handoffs and fewer applicant communication errors

  • Temporal chain consistency

    Ticket liability is now easier to prove with chronological vehicle assignment history, date-time search, and swap continuity.

    Faster incident attribution and lower admin friction

Stack

Built on what they already ran

No rip-and-replace, no new SaaS to buy — we connected the tools already in the building.

Runs on
FastAPISQLAlchemyAlembicPostgreSQLReactViteTypeScriptGmail APIOpenPhone APIRailway FunctionsFastAPISQLAlchemyAlembicPostgreSQLReactViteTypeScriptGmail APIOpenPhone APIRailway FunctionsFastAPISQLAlchemyAlembicPostgreSQLReactViteTypeScriptGmail APIOpenPhone APIRailway FunctionsFastAPISQLAlchemyAlembicPostgreSQLReactViteTypeScriptGmail APIOpenPhone APIRailway Functions
Works equally with
Stripe direct API integrationDriver self-service portalStripe direct API integrationDriver self-service portalStripe direct API integrationDriver self-service portalStripe direct API integrationDriver self-service portalStripe direct API integrationDriver self-service portalStripe direct API integrationDriver self-service portalStripe direct API integrationDriver self-service portalStripe direct API integrationDriver self-service portal
Let's talk

Got a process like this —
still running by hand?

A 30-minute discovery call. We listen, sketch the schema live, and tell you whether we're the right fit — straight.

— or —[email protected]