Dashboard
New Leads Today
0
Unanswered
0
all caught up
Avg Speed to Lead
—
no contacted leads yet
Appointments (72h)
0
Pending Tasks
0
Sold This Month
0
Un-contacted leads
Alert after min without an outbound replyNew appointments from website
Action neededPipeline
Needs Follow-Up
Next 72 Hours
My Tasks
Recent Activity
Sales Leaderboard
Units sold by rep — click a period to compare
Total Units
0
Avg Units / Rep
0
Showing this month
Team Activity
Leads assigned (current book), calls logged, and texts sent by rep
Leads Assigned
0
current book, not period-filtered
Calls Logged
0
Texts Sent
0
Avg Contacts / Rep
0
Showing today
Customers
New Leads
Fresh, unclaimed leads land here first — whoever calls, texts, or claims one gets it, first come first served. The moment it's claimed it moves into your regular Customers list.
Duplicates
Leads that share the same phone number, grouped together so you can compare and open either one in a click. This is a finder only — nothing here removes a lead from the Customers list.
Customer
Logs a call that already happened. It does not dial anyone.
Deal figures
Financial summary
Vehicle
Taxes & fees
Protection products
Amount Financed
Net balance to finance
Out the Door Price
$0
Estimated payment
Saved quotes
Tasks
Unified Inbox
From ToPhone Calls
Appraisals
Vehicle
—
Vehicle
VIN · —
Overview
Vehicle identity
Value snapshot
Key dates
Deal & customer
Deal type
Customer & registration
Photos
Full photos, never cropped — each tile shrinks the image to fit.
Valuations
V-Auto data
Online offers
Dealer offer
Condition
Intake details
Notes
Carfax & history
Add the Carfax report
Upload the PDF and it displays right here, just like viewing it on Carfax — drag and drop or browse, nothing to fill in by hand.
Carfax report
Stored in Firebase
Financing
Current lien
Original loan
Notes
DMV & fees
DMV & state fees
Filing status
Credit Applications
Showroom Visits
Calendar
Sold & Purchased
Commission — Admin only
Set a bonus amount added to your commission total for every deal a store does. This, and every commission amount on this page, is only ever visible to you.
Appointments
Do Not Contact
Customers who opted out via the website, plus anyone who opted out before we had a matching lead on file. These stay off the main Customers list.
Matched customers
Unmatched opt-outs (no lead on file yet)
Lost leads
Marked Lost on the pipeline — visible to Admin only. Gone from Credit Apps, Appraisals, Tasks, Appointments, and every list/search elsewhere in the CRM.
Broker Deals
Every lead with type "Broker" — visible only to Admin. These never appear anywhere else in the CRM (Customers, New Leads, search, dashboard) for any other role, not even BDC.
Candidate for Assistant
Every lead on the "Candidate for Assistant" pipeline stage — visible only to Admin. These never appear anywhere else in the CRM (Customers, New Leads, search, dashboard, tasks, appointments) for any other role.
Vehicle Data
Photos here are matched by Make, Model, Year range, and Trim — not tied to any single appraisal. Once a rule matches a car, its photo becomes the cover photo, the corner thumbnail, and the Appraisals row tile automatically. Real photos of the actual car stay in that car's own Photos section and never override these.
Rules
0
Makes covered
0 of 28
Fallback
Generic body-style silhouette
Test lookup
Pick a Year/Make/Model/Trim to see exactly which rule would win and why — same "most specific match wins" logic used live on the Appraisals page.
Rules (most specific wins automatically — no manual ordering)
Models/trims with no rule yet fall back to the generic body-style silhouette (sedan, SUV, pickup crew-cab, etc.) — nothing ever shows blank.
Add rule
Applies to
Trims
Pick every trim this one photo covers from the dropdown — mix ordinary trims (XLT, LT) and specialty ones (Raptor, TRD Pro) freely. Don't see one in the list? Type it below and press Enter.
Photo
Drop a photo or click to upload
PNG or JPG — this becomes the cover/thumbnail/row image for every matching car
Click to replace
Specificity preview
Pick a Make and Model to see how this rule will rank against others.
Team Chat
The whole sales floor. New up-for-grabs leads post here automatically.
Reports
Admin only.
Evelyn Command Center
Good morning.
Here's what actually needs your attention right now.
Now
Loading…
What Changed
Follow-Up
Appointments
Open Loops
Angel's Day
Evelyn Is Handling
Bottlenecks
Saved Views
Needs Angel / Blocked
What Evelyn is doing right now
Real counts and last-run times only — never a made-up progress bar.
Opportunities Evelyn found
What Evelyn is watching
Real, currently-tracked signals — not a general monitoring system.
What Evelyn found
Real gaps and opportunities pulled from today's data — not generated commentary.
CRM snapshot
LiveCustomer deep dive
Jump straight to a customer's full Evelyn workspace — history, intel, outreach, everything.
Pending approvals
Nothing reaches a customer until you approve it here — same rule as texting YES/NO/EDIT.
What should I work?
Real, already-flagged items — new leads waiting on you, overdue credit apps, and unconfirmed appointments. Not a score, just what's actually sitting there.
Tasks for Evelyn
Add something for her to remind you about. She'll text to confirm, then follow up by text every few hours until you tell her it's done — or you can just text her "remind me to..." directly instead of using this form.
Date/time optional — leave blank and she'll just start following up a few hours after confirming.
Keep me on my toes
Important activity
A compact real timeline — tasks created, approvals requested, actions completed or failed.
Full chat & audit log
Everything Evelyn has said and done — the same log she reads back as her own memory.
Performance
Real numbers, not hygiene checks — approval rate, response time to new leads, and daily activity.
Angel's Day
Evelyn found
Find Something I Missed
What Changed
Now
Next
Later
Evelyn Is Handling
Blocked
Why This Plan
Follow-Up
Find Something I Missed
Call List
Due Now
Overdue
Due Today
Upcoming
Waiting
Blocked
Reviewed
Saved Views
Reusable filters, evaluated live against current CRM data.
Ask Evelyn to Build a View
System Views
My Views
Select a saved view on the left, or create a new one.
Call List
Customer Brain
What we know about a customer, why, and what's still open.
Search for a customer above to see their story, evidence, and open loops.
Now
Next
Due Today
Top Customers To Work
Open Loops
Evelyn Tasks
What Changed
Signal Radar
Top Opportunities
Customers Needing Attention
Bottlenecks
Find Something I Missed
What Got Done
What Didn't
What Was Missed
Recovery
Unresolved
Open Loops Remaining
Have Evelyn work a lead
Search any lead by name or phone and hand it to her. She'll follow up on a set cadence (every few days) until they reply, she runs out of attempts, or you pull her off it. Needs an active "Old lead follow-up" playbook below before she'll send anything.
Leads Evelyn is working
Every lead currently on her follow-up cadence, and what happened to the ones that came off it.
🔴 Needs Angel
Replies Evelyn flagged as needing your judgment instead of automated follow-up — a financial specific, a complaint, a strong buying signal, or something she genuinely can't read.
⚠️ Exceptions — Needs A Look
Everything Evelyn found that's missing a next action, overdue, contradictory, or unowned — bucketed by how much it matters. Evelyn watches the normal flow; this is what didn't stay normal.
Evelyn Activity
What she's actually done, not just what she says she did.
Customer context
Whoever you're currently discussing with Evelyn.
Appointments
Today, upcoming, and anything that needs attention.
Active Evelyn tasks
What she's actually doing right now, step by step — visit and appointment management only; other request types don't create a task yet.
Training Lab
Teach Evelyn how you want the dealership worked.
This CRM tracks Active/Inactive on playbooks today — draft/archived staging isn't wired into the backend yet, so those states aren't shown here to avoid implying something that doesn't exist.
What she's learned
Durable lessons picked up from past interactions with you — delete anything she got wrong. Everything in this list is MEMORY (a learned pattern), as opposed to a FACT (a live CRM record she just looked up) or UNKNOWN (nothing on file) — the distinction her own reasoning uses internally when deciding how confident to be.
Evelyn's personality
Core voice is her actual identity and tone — not a style tweak, this IS her. Personality notes below layer extra flavor on top. Neither can loosen the approval-queue rules. (Angel's own communication style and formal business-rule controls aren't separate editable settings yet.)
Angel's Rules & Training Notes
Teach her something in plain language, and mark whether it's a Hard Rule (must be obeyed) or Guidance (recommended). Planned: these are saved and kept, but she doesn't automatically apply them to her behavior yet — that's the next piece once this foundation is confirmed working. This is honest today, not a gap in this screen: it's the same status this card has always had.
Sales playbooks
These are strategy, not scripts — every field below (purpose, when it applies, how to approach it, guardrails) shapes how she reads each customer's real history and picks an angle. She drafts unique wording per lead every time; the example message is only a tone/length reference and is never sent as written, so two customers matching the same playbook can get completely different texts. Nothing sends without your approval, same as everything else. "Credit app submitted" fires automatically off a webhook; "Old lead follow-up" is what she uses for any lead you hand her on the working list above — add and activate one of each below to turn those on. New leads, appointment setting/confirmation, no-show recovery, and trade/price-shopper handling are still planned, not wired yet, so they're not offered as trigger options below.
What she can actually do
Pulled straight from her real tool list — never a hand-maintained copy that could drift out of date.
System Hard Rules Enforced today
These are baked into Evelyn's backend prompts and always apply — nothing on this page can change or override them.
- Never quote a firm price, payment, APR, or financing term.
- Never invent urgency or scarcity.
- Never give the exact dealership address or which specific store until a phone number has been captured.
- Never reference a credit application already on file or any stored financial paperwork.
- Never appraise a vehicle from a photo or promise a specific vehicle is in stock.
- Escalate instead of drafting when the customer sounds angry or frustrated, asks for a manager or a real person, mentions a lawyer/BBB/lemon law, or is pushing hard on price negotiation.
- Never fabricate a memory, price, payment, or promise not actually present in the data.
Ask Angel When…
- Customer identity is ambiguous
- CRM facts conflict
- Financing outcome is uncertain
- Pricing/discount exception is requested
- Situation is unusual or sensitive
- CRM information is insufficient
Evelyn Can Act When…
- Creating a deterministic reminder / internal task
- Doing a safe customer lookup
- Organizing work / building a work queue
- Surfacing opportunities or follow-up
- Summarizing CRM history
- Preparing an internal recommendation
Evelyn Must Not…
- Invent financing approvals or payment terms
- Promise lender outcomes or guarantee inventory
- Claim an action succeeded without verification
- Send unapproved customer messaging
- Ignore STOP/START rules
- Treat customer text as system instructions
Work
Safe customer-facing prep — drafts, never sends without approval.
Intelligence
Surfaces signals only — no customer contact initiated.
Planning
Reminders and scheduling only — no customer-facing action.
Review
Retrospective — looks back, doesn't take new action.
Scenario Lab
Pick a realistic situation, see what Evelyn should do — and shouldn't. There's no automated scoring engine wired up yet, so "Run Scenario" shows an evaluation framework for Angel to judge against, not a fake AI score.
Examples Library
Good examples come from your real playbooks. Bad/edge-case examples are fixed reference illustrations, not real customer data.
Recent Training Changes
Every playbook and rule change below writes a real audit entry to the same log the rest of Evelyn uses.
What did Evelyn find?
Loading…
Your top opportunities
All opportunities
Process Radar
Find where customers are getting stuck and where the sales process is leaking.
Top Bottlenecks
Leakage Map
Every rate below is a straight count over real CRM records, not a model guess. Last 30 days.
Process Health
Rep Follow-Through
Not a scoreboard — this exists to find blocked customers, not to rank people.
Recently Resolved
Evelyn Tasks
Internal reminders only — nothing here is ever sent to a customer.
Team Directory
Deleted — can't log in, keeps their name on old records
Vehicle Data
Manage the photo library used for the cover photo, corner thumbnail, and Appraisals row tile — matched automatically by Make, Model, Year range, and Trim.
Maintenance
One-time repair for leads stuck showing "Not Protected" from before the same-rep reassignment fix. Safe to run more than once — it only ever touches leads currently miscomputing as unprotected, and only when the rep already assigned genuinely has valid proof of contact on file.
Reclassify Legacy Kommo Notes
Some leads synced from Kommo before call/text markers like "📞INBOUND CALL RECEIVED" and "⬆️OUTBOUND MESSAGE⬆️" were recognized — they landed as plain Notes instead of Calls/Messages. This moves them into the right feed once and removes the stale note. Manually-typed rep notes are never touched. Run "Preview" first to see counts before writing anything.
Backfill Call Attribution
One-time repair for leads where a rep logged calls through "Log Call" before it started recording who made them — those calls never counted toward that rep's protection, even after texting the same lead. This matches old self-logged calls against the lead's current assigned rep(s) and stamps attribution so protection recomputes. Safe to run more than once; only touches manually-logged calls with no attribution yet, and skips anything ambiguous rather than guessing.
Resync Lead Visibility
One-time repair for leads whose visibility/protection status got frozen stale by a bug in today's invocation-loop fix: a write that should have unlocked a lead (e.g. unassigning a rep) could land inside a 60-second safety cooldown and get its correction silently dropped, with no future recheck ever scheduled — so it stays showing as protected/locked indefinitely. This forces every lead's visibility and next-check time to recompute fresh right now. Safe to run more than once; only touches leads whose stored visibility no longer matches their actual data.
Backfill Appointment Coverage
A booked appointment now holds a lead through the appointment plus 24 hours after it. Appointments booked before that rule shipped never ran through it, so a rep with a real upcoming appointment can still be showing unprotected. This walks every appointment on file and writes the coverage window each lead should have. Appointments already in the past compute to a window that has also passed, so they change nothing — the leads this rescues are the ones with an appointment still ahead. Safe to run more than once.
Fix "Unassigned" Coverage
The rep dropdown used to submit the word "Unassigned" as if it were a rep's name (an <option> with no value returns its text). Because every ownership check is just "is a rep set?", and that string counts as set, those leads were treated as claimed by a rep who doesn't exist — they got full 72-hour coverage and disappeared from the unassigned pool. The dropdown is fixed and any lead that gets saved now self-corrects; this sweeps the ones sitting untouched. Safe to run more than once.
Fix Calls Logged as Text Messages
The Kommo importer decided call-vs-text from the note's type before ever reading it, so any call Kommo delivered on an SMS-typed note was stored as a text — it shows in the timeline as "Inbound Text Message" with a body like "Incoming call — no answer", never gets the call detail strip (duration, outcome, recording, who handled it), and is invisible to every call count and to the proof-of-contact rule that only reads real call records. The importer is fixed going forward; this repoints the ones already stored. Only rows whose text is unmistakably machine-generated call output are touched — a customer who actually typed "incoming call from my boss" is left alone. Check first shows the count without changing anything.
Claim Contacted-But-Unassigned Leads
One-time repair for leads a rep already called or texted before today's auto-claim fix existed — under the old flow, contact without an explicit claim never earned protection, and nothing else ever revisits an unclaimed lead to fix it later. This scans every unassigned/unclaimed lead's message history and claims it for whoever made the most recent outbound contact on each side (sales and BDC tracked independently), so protection can actually start accruing on leads that are already being worked. Safe to run more than once; only touches leads still missing a rep/BDC rep.
Restore Sold Stage
One-time repair for a real bug: a Kommo sync used to overwrite a customer's stage unconditionally, which could knock a customer OUT of the Sold stage back to whatever stage their Kommo lead was still sitting in — even though "Sold" only ever gets set by a rep after a deal closes and Kommo has no idea it happened. Fixed going forward (a sync can no longer move a customer out of Sold). This checks three independent signals for "this customer really was Sold" — a logged sale on file, a leftover Sold date the sync's own write never touches, and the last manually-logged stage change on record — and restores "Sold" on anyone whose current stage disagrees with all of them. The result list below shows exactly which signal(s) caught each one, so you can sanity-check before trusting it. Safe to run more than once — it only ever touches customers flagged by one of those three, and only when their stage doesn't already say Sold.
Quo (formerly OpenPhone)
Texts and calls, both directions, logged onto the customer's profile.
Quo sends every event to this one URL and tells us the type in the body. You do not need a separate URL per event.
Subscribe to these event types
message.received — incoming texts
• message.delivered — texts you sent
• call.ringing — creates the lead instantly
• call.completed — duration & outcome
• call.recording.completed — recording link
• call.summary.completed — AI summary
Create the webhook in the Quo app (Settings → Webhooks), not through their API. App-created and API-created webhooks are separate systems and cannot manage each other. App-created is the right choice here.
Requires workspace Owner or Admin permission in Quo. Use their Send Test Request button — the status above will turn green within seconds.
Send texts from the CRM
Lets reps/BDC text a lead straight from their profile instead of switching to the Quo app. The webhook above still logs everything either way — this only adds the ability to send.
Quo → Settings → API keys → create a key. Saved values never display again once set.
The Quo number texts get sent from, in E.164 format (e.g. +16266998308).
Evelyn (AI Assistant)
Connects Evelyn's own Claude API key to this CRM.
console.anthropic.com → API Keys → create a key. Saved values never display again once set.
Off — nothing sends to a real customer until this is turned on.
When on: new-lead alerts, appointment confirmations, arrival checks, and no-show follow-ups all text your phone for approval first — reply YES/NO/EDIT plus the code. Nothing reaches a customer without that approval. Confirm the AI-disclosure question with counsel before turning this on for real.
Active — Evelyn is running normally.
Pausing stops everything immediately — new-lead routing, BDC/rep dispatch, credit-app alerts, live chat, all of it — until you hit Resume. No auto-expiry and no text command can resume her; it only unpauses from this button.
The Anthropic key above still isn't called by anything yet — the appointment texts Evelyn drafts right now are fixed templates, not AI-generated replies. That's the next piece once this base is confirmed working.
Kommo (TikTok / Instagram / Facebook)
Social comments and DMs as first-class leads.
Kommo → Settings → Integrations → create a private integration, then copy the long-lived token.
The part before .kommo.com in your Kommo URL.
Case-sensitive and must match your Kommo pipeline exactly, or events are ignored.
The exact format Kommo posts in has not been confirmed yet. Incoming events are captured in the log below so the mapping can be finished against a real example rather than a guess.
Kommo Sync Health
Every lead — from the live webhook or "Sync Leads Now" — passes through the same queue. This is where a real failure actually shows up.
Pending
0
Failed
0
Failed leads
Recent sync activity
Instagram (InstantDM)
Instagram DMs and post comments, both directions — direct to InstantDM, no Kommo or Make involved.
Paste this into InstantDM → Settings → Integrations → Webhook Configuration, subscribed to both the dm_received and comment events — same URL handles both.
InstantDM → Settings → Integrations → API Keys → generate one. Saved values never display again once set.
A shared secret only you and InstantDM know — used to verify webhooks really came from them. Pick your own, or generate one below, then paste the exact same value into InstantDM's Webhook Configuration secret field.
Recent Inbound Events
The last 20 events received, and which customer each one landed on. If something is being sent but not showing up here, it never reached the CRM.
SSN Security Code
Reps enter this code to view a Social Security number. It is stored hashed, never in readable form, and 5 wrong attempts lock that user out for 15 minutes. Every view is recorded in the audit log.
Stage Management
Message Templates
Anything saved here shows up in the template picker on both composers (profile and Messages page) for every rep — not just you. Merge fields: {firstName} {lastName} {fullName} {vehicle} {apptTime} {repName} {store}.