← All work

Coast Technology

Dealers kept using their portal daily while we rebuilt it module by module

Coast Technology's portal shows RV, auto, powersports and marine dealers who is shopping them and helps them follow up. We rebuilt the live portal one module at a time and kept adding CRM, campaigns, workflows and AI to the same codebase.

Automotive & DealershipsDealership customer intelligence SaaSModernized a live product

The challenge

The first portal was a reporting tool on per dealer parsers and scripts, with data, messaging and CRM steps in separate tools, and dealers relied on it every day.

What we did

We ran discovery, then rebuilt the portal module by module, each release on demo before production, with every new capability added to the same codebase.

The outcome

The portal kept growing in production without a core rewrite, from reporting tool to CRM, campaigns, workflows and an AI assistant, and Coast resells it under other brands.

Resold as
White label brands from one codebase
Core rewrites
None, the platform keeps growing in production
Who uses it
RV, auto, powersports and marine dealers
Added in place
CRM, campaigns, workflows, AI assistant

The starting point

Coast Technology, formerly Dealership Toolkit, sells a customer intelligence and sales engagement portal to RV, automotive, powersports and marine dealers. Dealers see identified website and location visitors, daily leads and reports, and act on them by email, text and CRM.

What had to change

The first version was a Django reporting portal with per dealer parsers and scripts, and the data, messaging and CRM steps lived in separate tools. The client wanted one multi role portal that turns visitor and dealer data into follow ups, appointments and CRM leads, and that it could resell under other brands.

What could not break

  • Dealers keep working in the portal every day while modules are replaced
  • Outside data feeds keep arriving on their vendors' schedules, not ours
  • Each dealership and franchise keeps its own configuration, roles and data
  • Every brand runs from one codebase, with features hidden or changed per brand
  • Application and visitor data stay in Coast's own AWS and Google Cloud accounts

The calls we made

We treated it as replacing the engine of a moving car: learn the old system fully, then swap one module at a time.

  1. 01

    Discovery before the rebuild

    We read the existing requirements and code, wrote user stories for each of the six roles and checked them against designs and demos across areas such as roles and permissions, subscriptions, unsold visitor upload and agent activity, to find gaps before building.

    Ruled out

    Writing new code before the gaps between requirements, designs and demos were known.

  2. 02

    One module at a time, demo before production

    Each module was rebuilt on React, Material UI and a Node.js backend with role based access and released on its own: first to a demo environment, then to production, where a new reporting dashboard was opened to Coast's own staff before every dealer saw it.

    Ruled out

    A single switchover, or trying new configurations on the portal dealers were using.

  3. 03

    Workers instead of per dealer scripts

    Pixel and geo visitor data moved from per dealer parsers and scripts into shared scheduled polling workers that serve every dealership.

    Ruled out

    Maintaining a parser and a script for every dealer.

  4. 04

    One codebase for every brand and device

    The CRM layer, campaigns, the workflow builder and the white label brands all build on the same codebase, and each brand gets its own production branch and deployment with features hidden or changed.

    Ruled out

    A separate product or fork for each new capability or brand.

  5. 05

    AI as one contained feature

    The AI assistant arrived as a chat feature inside the portal on the OpenAI ChatGPT API, next to sockets, notifications and text replies, and it can be hidden on a white label brand.

    Ruled out

    Rebuilding the product around AI; the core stays data pipelines, CRM and automation.

How the system fits together

daily workother brandsrequestssame codebasechat widgetpromptsapp datavisitor datade duplicatedleads andmessagesDealer teamsSix roles, from superadmin to agentWeb portalReact and Material UI,rebuilt module by moduleWhite label instancesSame codebase, own branchand deploy per brandNode.js backendExpress, Node ACL roles,dealership separationAI chat assistantOne chat feature insidethe portalData workersScheduled pixel, geo andLead Post pullsPostgreSQL on AWSRDSApplication data in theclient's AWS accountOpenAI ChatGPT APIThe model behind theassistantBigQuery and CloudSQLVisitor data in theclient's Google CloudCRMs and messagingDealer CRMs, Twilio,Mailgun, Mailjet
PeopleBuilt by DaticsData storeAI modelOutside serviceApplication data stays in Coast Technology's own AWS account and visitor data in its own Google Cloud; the AI assistant is one feature on top of that core.

What we built

Rebuilt core portal

Visitor and views analytics, visitor profiles with web and location visit history, unique vehicle detail and service page analytics, advanced filters with shareable short URLs, and dealership, franchise and user management for six roles.

The entry screen where a dealer picks a module of the portal.

Appointments and alerts

An appointments module with scheduled, cancelled, rescheduled and no show counts above a calendar, fed by appointment events from Volie, plus hot alerts and be back alerts in one list.

The appointments module with scheduled, cancelled, rescheduled and no show counts above a calendar.

CRM layer and automation

Leads and tasks in list and kanban views, performance dashboards and auto assignment of a returning visitor to the same agent, plus contact lists, scheduled email campaigns, an Audience Builder and a workflow builder with merge fields.

Leads and tasks in kanban view, with a filter by task, status and date range.

White label brands

Instances of the portal for other brands of Coast, such as one for a manufactured home business with home detail pages, each on its own production branch from the same codebase.

Design of the entry screen where a dealer picks a module: visitor intelligence, shopping insight, reporting or appointments. ClickUp, December 6, 2021
05

AI chat assistant

A chat widget in the web app on the OpenAI ChatGPT API, with prompt updates, markdown responses and testing, shipped alongside real time notifications over sockets and Twilio text replies.

How it works

Identify

Pixel, geo fence and lead data arrive on schedule and become identified visitors for the right dealership and franchise.

Review

A dealer or agent filters visitors by pages viewed, credit grade, time on site or vehicle of interest and opens one profile per shopper.

Act

From the list or the profile they send an email or a text, or push the lead to the dealer's own CRM.

Follow up

Leads and tasks land in the CRM layer, and a returning visitor goes to the same agent automatically.

Measure

Communication stats, appointment insights and reports on unsold traffic and lost deal reasons show what worked.

A closer look

What changed

The platform has kept evolving in production without a core rewrite, from a reporting tool to a CRM layer with campaigns, workflows and an AI assistant. Coast now resells it under other brands from the same codebase, and the work continues sprint by sprint.

“They finished several long-term projects under this contract for us. We are 100% satisfied with their work and will continue to work with them on many projects.”
Richard DeLanceyCo-Founder and CIOCoast Technology

Under the hood

Datics role
Modernized a live product
Application
React and Material UI frontend, Node.js and Express backend with Node ACL for role based access, and PostgreSQL on AWS RDS with EC2 and S3 in the client's own AWS account.
Tenancy and brands
Dealership and franchise level separation across six roles, a separate production branch and deployment for each white label brand, and demo and development servers where every release is checked before production.
Data
Scheduled polling workers and BigQuery pipelines with de duplication, Cloud SQL and Cloud Storage in the client's Google Cloud, and the API documented in Swagger and Postman.
AI assistant
A chat feature inside the portal on the OpenAI ChatGPT API, with markdown responses, which can be hidden for a white label brand.

AI and models

OpenAI API

Data and retrieval

PostgreSQL

Cloud and infrastructure

AWS

Apps and APIs

ReactNode.js

Also in the stack

Material UIGoogle BigQuery

How it shipped

  1. Support the original portal

    We started on the first Django and React reporting portal: parsers for daily dealer lead sheets, pixel and geo visitor data and an appointments calendar.

  2. Discovery and designs

    Visitor module designs, user stories for every role, a gap analysis against designs and demos, and the old and proposed visitor data flows.

  3. Module by module rebuild

    Weekly sprints rebuilt sign in, dashboard, search, visitor profiles, roles, polling workers, onboarding, admin actions and communication stats, then reporting and appointments moved over.

  4. CRM layer

    Leads and tasks with kanban views, performance dashboards and a BigQuery geo pipeline, on the same backend.

  5. AI assistant, brands and automation

    The in portal AI assistant, white label instances for other brands, campaigns and an Audience Builder, and now a workflow builder and retargeting emails built from inventory data.

Sprint by sprint with Coast

Our business analyst runs the backlog with Coast's product lead every sprint, and each release goes to a demo environment before production.

In Coast's own accounts

The portal runs in Coast's AWS account and the visitor data in its Google Cloud, so every release, server and pipeline we touch stays under Coast's control.

Continuity through change

When the lead business analyst changed, a structured knowledge transfer plan carried module and integration context across, and the original analyst later returned as lead.

What this unlocked

The open backlog extends the workflow builder and dynamic emails built from the client's inventory API, on the roles, tenancy and data the rebuild put in place.

Have a product with the same kind of constraints?

Tell us what already exists and what you want it to do. We will tell you what it takes.

Book a 30-minute Product Review