Coast Technology
Dealers see who shopped them online and push each lead to their CRM
Coast Technology's portal turns pixel, geo fence and lead feed data into identified shoppers for each dealer. We rebuilt how that data is matched and loaded, and connected each dealer's own CRM and messaging tools.
Automotive & DealershipsDealership customer data platformModernized a live product
The challenge
Visitor data arrived from several vendors on their own schedules and had to land with the right dealership, while each dealer group used its own CRM and messaging stats sat with each provider.
What we did
We moved ingestion into scheduled workers and BigQuery pipelines that load only new visitors, then added CRM, DMS and messaging integrations one provider at a time.
The outcome
Dealers work from one portal that shows who shopped them and connects to the CRMs and messaging tools they already use; new sources and CRMs join the same pipeline.
- Data in
- Pixel, geo fence, Lead Post, FTP and manual imports
- CRMs and DMS
- VinSolutions, DealerSocket, DP360, Lightspeed and more
- Messaging
- Twilio, Mailgun, Mailjet and Volie in one view
- Before outreach
- Emails and phone numbers validated, duplicates blocked
The starting point
Coast Technology's portal shows RV, automotive, powersports and marine dealers who is shopping them online and in person. Dealers and their agents use it to follow up by email, text and their own CRM.
What had to change
Visitor data arrived from several vendors on their own schedules and had to be matched, de duplicated and attributed to the right dealership. Every dealer group used a different CRM, and messaging stats were spread across providers.
What could not break
- Dealers get their visitor data every day, whatever each vendor's schedule
- Every record lands with the right dealership and franchise
- Each dealer group keeps its own CRM, lead rules and configuration
- Emails and phone numbers are validated before outreach
- Visitor and enrichment data stay in the client's own Google Cloud
The calls we made
We framed it as one data and engagement layer over many outside systems that each behave differently, and changed it one source and one provider at a time.
- 01
Redraw the data flow before changing it
We drew the old visitor data flow next to a proposed one. The old flow handled one file at a time and created each visitor, page and visit record by record; the new one downloads every file, filters it, checks which visitors and pages already exist and inserts only the new ones in bulk.
Ruled outKeeping the old flow that created visitors and visits one record at a time, file by file.
- 02
Scheduled pipelines for every source
Pixel and geo data moved into scheduled polling workers, geo data then into BigQuery scripts that remove duplicates, Lead Post pixel data was automated with configuration per franchise, and tables moved to Cloud SQL.
Ruled outA parser and a script for every dealer.
- 03
One CRM at a time
Each CRM and DMS, from VinSolutions and DealerSocket to DP360 over ADF, Drive Centric, Op Logic and Lightspeed EVO, was added and tested on its own, with its configuration confirmed per dealership.
Ruled outSeveral CRM integrations released together.
- 04
Reconcile messaging in one place
Email, text, call and appointment events from Mailgun, Mailjet, Twilio and Volie come back through webhooks and stats APIs into one communication stats view, with text and email replies.
Ruled outLeaving each provider's stats in its own dashboard.
- 05
Check the data before outreach
Emails go through Mailgun's validation API, phone numbers through IP Quality Score, and lead creation prevents duplicates, so dealers do not contact bad or repeated records.
Ruled outSending outreach to unchecked contact data.
How the system fits together
What we built
Visitor data pipelines
Polling workers that download each vendor's files, filter them and insert only visitors and pages not already stored, Lead Post pixel automation set per franchise, BigQuery scripts that remove duplicates, and FTP, Lightspeed and manual imports with templates and logs.
One profile per shopper
Each shopper gets one profile with web and location visit history and an activity log of emails, texts and follow ups, found through filters such as credit grade, salary range, time on site and vehicle of interest.
Admin actions
Email, text, CRM and follow up actions that run automatically or by hand, text templates that carry the sales rep's name and number, and automatic emails to geo visitors within a set radius.
CRM and messaging integrations
VinSolutions, DealerSocket, DP360 over ADF, Drive Centric, Op Logic, CXMMAX, Lightspeed EVO and ADF/XML email leads, plus Twilio text replies, Mailgun webhooks and Mailjet events.
Data quality checks
Mailgun's validation API for emails, IP Quality Score for phone numbers, and duplicate prevention when a lead is created, including leads created from a text.
How it works
Ingest
Scheduled jobs pull pixel, geo and Lead Post data, and dealers add their own files through imports.
Match
Workers check which visitors and pages already exist, insert only new ones and attribute each visit to the right dealership and franchise.
Profile
Each shopper gets one profile with visits, pages viewed and outreach history.
Act
The dealer sends an email or a text, or pushes the lead to their own CRM, by hand or automatically.
Track
Delivery, reply and appointment events come back from each provider into one view.
A closer look
What changed
Dealers work from one portal that knows who shopped them and connects to the CRMs and messaging tools they already use. New data sources and CRMs have joined the same pipeline over time instead of new scripts, and the work continues sprint by sprint.
“Umair and the developers at Datics built a system to take pixel data and forward it to dealers so they can sell those people visiting their website. The project was flawless and they were a joy to work with. If you have development needs, this is the team for you.”
Under the hood
- Datics role
- Modernized a live product
- Data
- Google BigQuery, Cloud SQL and Cloud Storage in the client's Google Cloud for visitor and enrichment data, with PostgreSQL on AWS RDS for the application.
- Integrations
- Dealer CRMs and DMS, including ADF/XML email leads, plus Twilio, Mailgun, Mailjet, Volie, IP Quality Score and the client's inventory API.
- Separation
- Dealership and franchise level separation with role based access across six roles, and CRM and Lead Post configuration kept per dealership.
- Documentation
- Swagger and Postman for the API, plus cron, onboarding and white label guides for the team that supports it.
Data and retrieval
Apps and APIs
Also in the stack
How it shipped
Map the old flow
We analyzed the old visitor table and drew the old and proposed visitor data flows, with the database changes they needed, before changing ingestion.
Workers and admin actions
Pixel and geo polling workers, admin action endpoints for email, CRM, text and follow ups, and a communication stats API documented in Swagger.
CRM pushes and stats
CRM pushes from the visitor module, Volie appointment events, Mailgun and Twilio stats, email validation and manual visitor uploads.
Warehouse pipelines
Geo data moved through BigQuery with de duplication, Lead Post pixel data was automated, and tables moved to Cloud SQL.
More CRMs and validation
DP360, Drive Centric, Op Logic and Lightspeed, text and email replies, IP Quality Score phone validation and new ADF/XML templates.
Weekly data meeting
Every week we reviewed the pipelines and dealership attribution with Coast's VP of Product, in Coast's own AWS and Google Cloud accounts, so integration work followed what dealers actually saw.
Documented for support
Swagger and Postman API docs, a production support document, and cron and onboarding guides keep each integration supportable by Coast's team.
What this unlocked
Next on the same data layer: dynamic retargeting emails built from the client's inventory API, with unsubscribes handled through provider webhooks, and research into pixel data and manual imports.
Related work
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.
