Get a Quote

Let’s connect and explore how we can make your next project a success.

  • Technical Architecture Overview
  • Project Budget Estimates
  • Estimated Launch Timeline
Mac memoji

Ready to help you code your next success!

I’m interested in...

Download AI project template

  • AI opportunity scoping worksheets
  • Clear success metrics and targets
  • Data inventory and project roadmap template

Before You Go :wave:

Let’s connect and explore how we can make your next project a success.

  • Technical Architecture Overview
  • Project Budget Estimates
  • Estimated Launch Timeline
Mac memoji

Ready to help you code your next success!

3 + 2 =

Book a Meeting

Book a meeting with one of our experts to discuss your requirements and solutions tailored to your needs.

  • Get tailored advice from our experts to meet your unique requirements.
  • Pick a time that works best for you with our seamless booking system.
  • Collaborate with us to turn your ideas into actionable results.
Mac memoji

Ready to help you code your next success!

You have unsaved changes. Do you really want to close?

Riddle Brothers CRM

Riddle Brothers CRM continues to serve as the central operating system for the roofing business. The QuickBooks reconciliation cron runs every 6 hours ensuring financial data never drifts.

 Riddle Brothers CRM is a custom-built construction CRM that manages leads, jobs, worksheets, payments, and real-time collaboration with deep QuickBooks, SalesRabbit, and EagleView integrations.

  • Construction
  • Construction CRM
  • Data Migration
  • Financial Integrations
  • Real-Time Collaboration
  • Roofing
  • SaaS
  • Webhook Processing
  • Custom CRM
  • EagleView
  • MongoDB
  • NestJS
  • Next.js
  • QuickBooks
  • Real-Time
  • SalesRabbit
  • Socket.io
Riddle Brothers CRM Construction, Construction CRM, Data Migration, Financial Integrations, Real-Time Collaboration, Roofing, SaaS, Webhook Processing case study

Project Challenges

Disconnected Lead-to-Job Workflow

The roofing business had no unified system to track a customer from initial lead capture through job completion, invoicing, and closure resulting in lost leads and missed follow-ups.

Manual Financial Tracking

Invoices, payments, worksheets, and approvals were handled manually or across spreadsheets, causing delays in billing and inaccurate financial records.

No Real-Time Team Collaboration

Field crews, office staff, and managers had no shared platform for messaging, task updates, or live job status leading to miscommunication and duplicated work.

Scattered Third-Party Tools

The team used SalesRabbit for lead generation, EagleView for aerial measurements, and QuickBooks for accounting but none of these tools talked to each other.

Complex Approval Workflows

Worksheets with amendments, change orders, supplements, and discounts required a multi-step approval process that was difficult to manage on paper or email.

Data Migration from Legacy System

Hundreds of historical jobs stored in AccuLynx needed to be migrated into the new CRM without data loss or workflow disruption.

PYTHON Construction, Construction CRM, Data Migration, Financial Integrations, Real-Time Collaboration, Roofing, SaaS, Webhook Processing case study

Our Solutions

  • End-to-End Lead & Job Pipeline Built a 6-stage pipeline (Lead, Prospect, Approved, Completed, Invoiced, Closed) with milestone tracking, date stamps, and role-based progression so every job is visible from first contact to final payment.
  • Comprehensive Worksheet & Approval Engine Developed a multi-section worksheet system with amendments, change orders, discounts, supplements, insurance claims, and a full approval pipeline (Draft, Pending, Approved, Rejected, Voided) controlled by admin and manager roles.
  • Real-Time Messaging & Notifications Implemented Socket.io WebSocket gateway with decorator-based event handling, per-lead chat rooms, per-user notification rooms, threaded conversations, @mentions with automatic notifications, and emoji reactions — keeping field crews and office staff in sync instantly.
  • Modular NestJS Architecture with Separated Cron Worker Architected the backend as 23 self-contained NestJS modules following the Controller, Service, Model pattern. All scheduled tasks run in a completely separate process a dedicated cron worker bootstrapped via NestFactory.createApplicationContext() (no HTTP listener) managed by PM2 with independent memory limits (API: 1GB, Worker: 512MB), separate log files, and graceful shutdown hooks. This ensures cron jobs never compete with API request handling for resources.
  • Deep QuickBooks Integration with Webhook Queue & Self-Healing Sync Connected QuickBooks via OAuth with a production-grade webhook pipeline: incoming webhooks are verified using HMAC-SHA256 signature validation against a verifier token, the controller returns 200 immediately and processes events asynchronously. Failed events are enqueued to a MongoDB-backed queue with atomic findOneAndUpdate() dequeuing (preventing duplicate processing across instances), status transitions (PENDING, PROCESSING, COMPLETED/FAILED), and configurable retry limits.
  • SalesRabbit Lead Sync with Intelligent Webhook Processing Integrated SalesRabbit webhooks (create/update/delete) with a multi-layer defense system: a sliding-window rate limiter (150 req/min per IP, 800 global), TTL-based echo prevention that checks if the CRM recently pushed the same resource (72-hour TTL markers) to prevent feedback loops, a coalesce buffer that batches rapid-fire updates within a 3-second window and processes only the latest event, and database-backed deduplication via unique sync markers.

Our Services

Our Strategy

Construction, Construction CRM, Data Migration, Financial Integrations, Real-Time Collaboration, Roofing, SaaS, Webhook Processing store implementation screenshot

Separated Process Architecture

Isolated all cron jobs (7 total across QuickBooks and SalesRabbit) into a dedicated worker process that loads only the modules it needs — ensuring API response times are never impacted by background processing.

Webhook-First Integration with Multiple Safety Nets

Designed all third-party integrations around webhooks with layered reliability: HMAC signature verification, immediate HTTP response with async processing, MongoDB-backed retry queues with atomic dequeuing, echo/loop prevention, rate limiting, coalescing, and reconciliation crons as the final safety net.

Real-Time Over Polling

Used Socket.io WebSockets instead of API polling for live messaging, notifications, appointment updates, and job status changes — delivering instant updates to all connected users.

Domain-Driven Module Isolation

Each of the 23 backend modules is fully self-contained (controller, service, schema, DTOs, crons) with explicit exports for cross-module dependencies — making the codebase maintainable as it grows.

Role-Based Access at Every Layer

Implemented 6 user roles (Admin, Manager, User, Office, Company Administrator, Location Administrator) with composable guards on every API endpoint and role-aware UI rendering on the frontend.

Results

Automated Financial Sync with QuickBooks invoices, payments, and balances stay accurate through HMAC-verified webhooks, atomic retry queues, and self-healing reconciliation every 6 hours.

Zero-Touch Lead Capture from SalesRabbit with intelligent webhook handling rate-limited, deduplicated, coalesced, and echo-protected no manual data entry, no duplicates, no sync loops.

Real-Time Team Communication with threaded messaging, @mentions, emoji reactions, and instant Socket.io notifications eliminating phone tag and email chains.

Instant Aerial Measurements via EagleView integration orders placed, priced, and reports received directly within the job without switching tools.

90+ API Endpoints powering 33+ frontend pages with 100+ React components across leads, jobs, contacts, calendar, reports, worksheets, and admin.

Ongoing Success

Riddle Brothers CRM continues to serve as the central operating system for the roofing business. The QuickBooks reconciliation cron runs every 6 hours ensuring financial data never drifts. SalesRabbit webhooks keep new leads flowing in with zero manual intervention. The separated cron worker processes 7 automated jobs 24/7 without impacting API performance. The worksheet approval engine streamlines complex billing with amendments and change orders. As the business grows, the modular NestJS architecture, PM2 process management, and scalable file service are ready to handle increased volume, new integrations, and additional team members.

Construction, Construction CRM, Data Migration, Financial Integrations, Real-Time Collaboration, Roofing, SaaS, Webhook Processing case study
Construction, Construction CRM, Data Migration, Financial Integrations, Real-Time Collaboration, Roofing, SaaS, Webhook Processing case study
Construction, Construction CRM, Data Migration, Financial Integrations, Real-Time Collaboration, Roofing, SaaS, Webhook Processing case study
Construction, Construction CRM, Data Migration, Financial Integrations, Real-Time Collaboration, Roofing, SaaS, Webhook Processing case study
Construction, Construction CRM, Data Migration, Financial Integrations, Real-Time Collaboration, Roofing, SaaS, Webhook Processing case study

Create digital reveneue streams that scale your business to new landscapes of efficiency, profitability and leadership

Initiate Digital Transformation

Related Case Studies

Explore how we've helped businesses like yours overcome challenges and achieve measurable success. These case studies highlight our expertise, innovation, and commitment to delivering impactful results

View Case Study