Windows may warn “unknown publisher” — click More info → Run anyway. After install the app keeps itself up to date automatically.
All Leads
32 total leads · MoeGo webhook active
All 32New 11Contacted 9Action Needed 6Converted 4Lost 2⚑ Flagged 4🕔 Stale 0
⚑Sev-1: Rachel Kim (24h no reply) · Brian Foster (quote 72h pending)
Lead
Pet
Source
Status
Response
Assigned
Flags
Created
My Dashboard
Your assigned leads + unassigned new leads
Last synced: —
My Active Leads
0
📥 Unassigned Inbox
0
⚑ Needs Attention
0
✓ My Conversions
0
Kanban Board
Drag-ready view · 4 stage pipeline
Sync & Data
Manual MoeGo pulls and conversion checks. Routine syncing runs automatically on the server (cron).
Automation status
Last completed server (or manual) runs, from the sync log.
Job
Last run
Status
Loading…
Data sync (MoeGo → database)
Pull appointments, sales, and leads. Use the date range for reports; leads always pull in full.
Conversion check
Match open leads against booked appointments/sales and mark matches as Converted (persisted to the database). This also runs automatically every 15 minutes on the server.
Abandoned bookings sync
Mirror MoeGo Online Booking abandoned bookings into the database for the Abandoned Bookings page. Uses the date range above. This also runs automatically every 15 minutes on the server.
Audit Log
Security & activity trail — append-only
Loading…
Roles & Permissions
Define roles, assign them to your team, and see exactly who can do what — and why. Permissions resolve server-side as the union of a user's assigned roles; this page reflects, endpoints enforce.
Loading…
My Profile
New role
The base role sets the endpoint tier and the default grants below. To change it later, create a new role and reassign users. Only differences from the base defaults are stored.
Email Setup
Postmark configuration, sender identity & test send (Owner only)
⚠️ No app encryption key is set (config app_key), so the API key will be stored unencrypted. Set app_key in config.php for encryption at rest.
When off, messages are still queued — just never sent.
Send a test email
Resources & Shifts
Groomers, vans, weekly shift patterns, time off & business hours — powers native availability
Every company you can act on — status, sync, credential health & SLA go-live
Loading…
Tenants
Every GroomTrack tenant — provision, configure, suspend, offboard.
Platform Operator — cross-tenant administration, above lf_authorize. Every action here is logged to the operator audit trail.
Isolation-Crossing · gated by C-E1 threat model
Total tenants
—
Active
—
Provisioning
—
Suspended
—
Offboarded
—
All
Active
Provisioning
Suspended
Offboarded
Tenant
company_id
Edition
Status
Footprint
Created
Loading…
Provision tenant
Confirm
Phone Setup Quo
Quo API key, workspace & webhooks per company (Owner only)
⚠️ No app encryption key is set (config app_key), so the Quo API key would be stored unencrypted. Set app_key in config.php for encryption at rest.
After Save, click Test connection (verifies the key + syncs phone numbers), then Register webhooks. A prod WAF may block the Save POST — if so, provision that company via php src/quo_provision.php.
Route Intelligence
Two layers: hard rules the code always enforces, and judgment the AI weighs. Tune the mix here — no code changes needed. (Owner only)
⚙ Hard rules always enforced by code
Applied exactly, every run — no AI interpretation. Leave a field blank / 0 to disable that rule.
✓ Saved
🧠 Judgment & context the AI weighs these
Nuance a hard rule can't capture — which clients are flexible, seasonal notes, "keep Van 2 in Bentonville." Best-effort judgment, not guaranteed like the hard rules above.
📄 Working docs
Longer-form judgment/context the AI reads on every run. Toggle a doc off to exclude it without deleting.
Twilio account keys, numbers & webhooks per company (Owner only)
⚠️ No app encryption key is set (config app_key), so secrets would be stored unencrypted. Set app_key in config.php for encryption at rest.
Numbers → this company
“Test connection” auto-imports your account’s numbers.
Twilio webhooks — paste into the Console (HTTP POST)
Secrets are stored encrypted (needs config app_key) and never shown again; config.php is a fallback. A prod WAF may block the Save POST (secret in body) — if so, whitelist this endpoint or set config['twilio'].
AI Attendant
The AI receptionist that answers calls — its behavior and knowledge base.
Settings
Business hours (AI answers outside these for the after-hours modes)
Service area
Free-draw the area you serve. When on, the attendant geocodes a caller's address and checks it against this boundary — real geography, not a ZIP list. Click the map to drop boundary points; drag a point to adjust; the shape closes automatically. It takes at least 3 points.
Knowledge base
The attendant answers questions using these. Anything not covered, it takes a message instead of guessing. Add separate docs (e.g. Hours, Services & Pricing, Service Area, Policies) and toggle any off to exclude it.
Agent Access
Grant Messages & Calls per company. Inbound calls ring agents with “Calls” enabled.
Loading…
Notifications
Choose how you receive operational alerts
Loading…
Immediate sends each alert as it happens · Daily digest batches them into one email · Off mutes that alert.
Active Sessions
Devices currently signed in to your account
Loading…
Product Roadmap v1.0
Live from ClickUp — version milestones, status & progress.
Leads automatically converted by appointment poll engine matching
✓ Avg detection lag: 14 min post-booking
Response Types
Conversion Rate Over Time · cohort by received date · bars = leads received · line = conversion % · auto monthly / weekly
Bookings & Ops analytics are available to managers.
Best Day (net/op-day)
—
absorb demand here
Softest Day (net/op-day)
—
slack for win-back
Lowest $/Groom
—
pricing review
Appointments booked over time · bars = total · line = avg per day · auto-buckets monthly (weekly under 90 days)
Net per operating day · normalized by operating days, not calendar days
Net per groom · value density
Avg appointments by weekday · scheduled · by appointment date
Avg appointments created by weekday · booking demand · by created date
Grooms per operating day · throughput
Throughput & utilization · grooms/day business-wide & per van/groomer · feeds the cadence capacity model
Grooms-per-day distribution
By van / groomer
By weekday · full breakdown
Capacity usage
· booked vs available hours (vans in service × business hours)
Booking lead time · created → appointment
Scheduling accuracy · estimate vs actual duration
Cancellation rate — by month
Cancellation rate — by weekday
Cancellation by lead time · deposit / card-on-file signal — target high-leak windows, not blanket friction
Dogs & Pets analytics are available to managers.
Dogs Groomed
—
grooms, not distinct
New Pets
—
first-time
Avg Revenue / Dog
—
net ÷ grooms
Dogs / Appt
—
avg per visit
Pet Rebook Rate
—
left rebooked
Avg Groom Frequency
—
days between
Dogs groomed per day
Revenue by Breed
New vs Returning Pets
Pets by Breed (volume)
About these numbers
Dogs groomed counts grooms, not distinct pets — a dog visiting twice counts twice. New vs returning, by breed, pet rebook rate and avg frequency are computed from the dated appointment mirror and follow the timeframe; a pet is identified by client + pet name (no MoeGo pet ID yet, so a multi-pet booking counts its primary pet). Unique dogs = distinct pets serviced in the selected period. Dogs-groomed & revenue trend come from the summary cache.
Key-person risk · clients with a preferred groomer
Client analytics are available to managers.
Clients Served
—
in period
New Clients
—
first-time
Recurring
—
loyal clients
Rebook Rate
—
target 60–70%
Avg LTV (net/client)
—
proxy
Avg Groom Frequency
—
days between
Overdue & At-risk · past a 6-week cadence, no upcoming booking
Loading…
Client lifecycle · auto-lapse status · active → at-risk → lapsed
Loading…
First & second visit — not retained · only 1–2 visits, no upcoming booking, 30+ days lapsed
Loading…
Cadence adherence · actual ÷ target interval
Cadence revenue opportunity · move the recurring base faster
Loyalty Ladder
New vs Returning Clients
Revenue by City
About these numbers
The loyalty ladder & client counts come from MoeGo's client-summary report, which groups by breed — so counts are summed across breeds and read as a close approximation. Avg LTV here is net revenue ÷ clients served in the window (a period proxy, not lifetime). Revenue-by-city is exact, from the invoice mirror. LTV-by-acquisition-source arrives with the lead overlay (Team Value).
Team Value analytics are available to managers.
💡
Revenue influenced by the GroomTrack lead owner who worked the lead — attributed via conversion match, not MoeGo's groomer field. "Influenced," not "generated."
No attributed revenue yet. Team Value fills in as conversions are detected — the poll engine stamps each converted lead with its booking & customer match, then invoices for those bookings credit the lead owner here. Check back after the next sync cycle once leads start converting.
Influenced Revenue
—
via lead owners
Converted Leads
—
with revenue
Avg $ / Converted Lead
—
influenced
Conversion → Revenue Lag
—
lead to sale
Influenced revenue by lead owner · scheduler leaderboard
Lead Owner
Influenced Revenue
Converted Leads
Avg / Lead
Influenced Revenue by Lead Source
How this is measured
Each invoice in the window is credited once — to the lead whose converting booking it matches, otherwise to the lead that owns that customer. Lead source is GroomTrack's own (richer than MoeGo's). MoeGo's assigned_staff is the groomer who did the work, which is why this view exists only inside GroomTrack.
Abandoned Bookings
Recover lost online bookings — drop-off & recovery trends
Total Abandoned
—
vs prior
Recovery Rate
—
vs prior
Recovered
—
vs prior
Avg Time to Recover
—
vs prior
Open / Follow-up
—
vs prior
Abandonment & Recovery Trend
Drop-off by Step
Recovery Attribution
Recovery
New vs Returning
Visitors
You're viewing the follow-up worklist. Recovery analytics are available to managers.
Needs Follow-up
Customer
Left at step
Status
Abandoned
Last texted
Last emailed
Reports
SLA performance, conversion rates, staff metrics
Response Time & SLA Performance
Lead
Source
Received
First Contact
Response
SLA Status
Outcome
Conversion by Source
Source
Leads
Converted
Rate
Staff Performance
Staff
Leads
Avg Resp.
Conv.
Sales & Revenue
Live from the MoeGo report cache — gross, net, collected, A/R, tips, discounts
Sales & Revenue analytics are available to managers.
No data loadedOpen the Sync & Data page to pull bookings, or upload on the Sales & Revenue section.
Hours Booked & Van Utilization
Hours Booked by Month bars = hours · line = % capacity
Bookings by City
Bookings by Source
Revenue by Van
By Van
Payment Status
Payment
Staff Revenue
Gross, net & net per groom by groomer and vehicle
👥
No data loadedOpen the Sync & Data page to pull bookings, or upload on the Sales & Revenue section.
Appointments by Staff
Revenue Split by Staff
Staff
Top Services — Net Revenue
Top Services — Count
Client Value
Lifetime value, top clients by revenue & revenue by city
↻
No data loadedOpen the Sync & Data page to pull bookings, or upload on the Sales & Revenue section.
New vs Returning Clients — Monthly
Client Visit Frequency
Top Returning Clients by visit count
Client
Visits
History
Net Revenue
Avg Ticket
First Visit
Last Visit
Expenses & Tax
Discounts, adjustments, taxes billed vs collected, revenue erosion
No expense files loaded
📉
No data loadedOpen the Sync & Data page to pull bookings, or upload on the Sales & Revenue section.
Discounts & Adjustments Over Time
Sales Tax by City
City
Tax Billed
Tax Collected
Variance
Gross vs Net — Revenue Erosion Monthly
Discounts by Staff
Detail Table
All appointment records with linked sales data
🗂️
No data loadedOpen the Sync & Data page to pull bookings, or upload on the Sales & Revenue section.
Date ↕
Client
Service ↕
Staff
Van
City
Status
Net ↕
Gross ↕
Tips
Source
—
Win-back
Overdue clients with no upcoming booking — work the list, recover the revenue
🎯
Active clients past due for their next groom, excluding anyone already rebooked. Overdue is measured beyond the selected cadence — an interim default until per-client preferred frequency is captured. Click a bucket to filter; export the list to work it.
Needs win-back
Client
Pet
Phone
Email
Last service
Groomer
Last visit
Overdue
Lifetime $
Marketing Insights
Acquisition, source ROI, territory & reputation
Source performance scorecard · leads acquired in the selected period → repeat, LTV, CAC & ROI
Source
Leads
Matched
Repeat
Loyal (4+)
Avg LTV
Spend
CAC
ROI
CAC = ad spend ÷ new clients acquired in-window · ROI = avg LTV ÷ CAC. Enter monthly spend per source to populate.
New customers booked over time · net-new customers acquired · auto-buckets monthly (weekly under 90 days)
Source mix trend · recent vs prior share
Territory · revenue & LTV by city
Review capture · reviews ÷ finished grooms
Ad spend by source & month
MoeGo doesn't hold ad spend, so enter it here to unlock cost-per-acquisition & ROI per channel.
Recorded spend
Marketing Lists
Filter, segment, and export lead lists
0 leads match filters
Name
Email
Phone
Pet
Service
Source
Tags
Users
Team directory — search, filter by status, open a profile
Reorders + retimes each groomer's day to squeeze out backtracking and idle gaps, showing the time you could resell. Advisory only — nothing is changed in MoeGo.
Pick a day (or switch to Week) and hit Analyze.
Appointment
Reschedule
New walk-in appointment
Customer
Service location — mobile; drives open times
Pets & services
When
Estimate for quoting — final price is set in MoeGo.
Where the van begins and ends the day. We look up the coordinates for these addresses (your own depot — not customer data). Leave End blank for a round trip back to the start.
Add Company
Goal line on the Analytics → Dogs & Pets “dogs groomed per day” chart. Leave blank for none.
Cockpit pane — auto-login (optional)
The desktop Cockpit opens this company's web app in its pane and signs in automatically on launch — works with any system, not just MoeGo. The password is encrypted before storage.
Advanced — custom login field selectors (for non-MoeGo sites)
CSS selectors for the site's login form. Leave blank to use the defaults (which match MoeGo). Comma-separated fallbacks are allowed.
MoeGo Integration —
Connect this company to its MoeGo account. The API key is encrypted before it is stored.
Integration —
Credentials are encrypted before storage and never shown again. Leave a field blank to keep its current value.
Team Access —
Choose which team members can work this company's leads. Changes save immediately.
Companies —
Choose which companies this person can work. Changes save immediately.
Change Password
☀ Morning Brief
Loading…
Two-Factor Authentication
🔒 Your team requires two-factor authentication. Set it up now to continue.
Loading…
Set Password —
They'll be prompted to choose their own password at next login.
📞 Live calls run in the Quo app — this is a real-time mirror. Use “Call” to open the Quo dialer; GroomTrack never places the call.
Loading…
Lead Assignment
Auto-assign incoming leads by ordered rules — per company (Manager+)
Automation is OFF
When on, new leads are auto-assigned by the first matching rule below. Off = every lead stays manual for pickup.
Rules · evaluated top-down, first match wins
ⓘ Assignment runs server-side on lead intake, respects each agent's company access & role (Scheduler+), and logs a lead_events row. Master toggle OFF = every lead stays unassigned.
Alert Configuration
Configure SLA triggers and notification escalation
Severity 1 — Warning
Amber banner · 4h no contact · notifies assigned staff
Severity 2 — Urgent
Red banner · 24h no contact · management escalation
Severity 3 — Critical (Flashing)
48h no contact · all-staff blast email
Auto-Conversion Alert
Fires immediately on appointment poll match
Appointment Poll Engine
Auto-detects lead conversions via MoeGo Appointments API
Polls Run
0
This session
Auto-Conversions
0
Matched & converted
Next Poll In
20s
Interval: 20s
API Calls
0
ListAppointments
Configuration
// MoeGo Appointments API — polled every interval
GET https://api.moego.pet/v1/businesses/biz165e/appointments/list
Authorization: Basic ZjkzNzMyNWYt••••••••
{ "companyId": "cop53IK", "pageSize": 100 }
Live Poll Log
○ Idle (cron handles this)
Confirmed Auto-Conversions
Lead
Matched On
Appt ID
Time
Status
Archived Leads
Stale, junk, and manually archived leads — searchable and restorable
Lead
Source
Phone
Email
Reason
Archived
Created
Loading…
🔔 Alerts
✦
— Unassigned
Contact Info
Pets
Tags
Notes
Communication Log
📱 MoeGo SMS/call logs aren't API-accessible yet — log manually after each interaction.
Phone & Messages
No phone number on this lead — add one to text or call.
Google LSA Messages
Google only accepts replies to leads where the customer started a message thread — no reply is available for this lead.
Audit Trail
Manager actions
Archive hides the lead from active views (reversible from Reports → Archived Leads). Delete removes it; auto-captured leads can reappear on the next full MoeGo sync.
Add New User
Just the essentials — you'll land on their profile to finish setup (contact, employment, more roles).
The tenant's default role is pre-selected. Permissions are the union of all assigned roles — add more on the profile after creating. Groomer-base roles get a calendar lane automatically in each assigned company.
Add New Lead
Manually log a lead from a channel outside MoeGo (phone, walk-in, referral, etc.)