Continuous updates from the SalesThumb team — features, improvements, and the occasional bug fix. Subscribe via RSS or follow @salesthumb.
May 2, 2026
Sales matrix + the playbook ops platform — bulk ops, AI personalization, HQ chain defaults, deep reporting
Big multi-batch landing. The sales matrix is a point-of-sale package builder the rep walks the customer through with a tablet. The post-invoice sales playbook went from a fire-and-forget queue to a full ops surface — bulk operations, AI-personalized cross-sell pitches, HQ chain-wide defaults with drift audit, real-time engagement detection, period-over-period reporting with sparklines, customer-portal opt-out (also via SMS keyword), per-shop and per-org notification preferences, daily failure alerts, daily reply digests at both shop and HQ tiers, and chain-wide CSV exports for board reporting.
NewPackage builder at /app/package-builder — point-of-sale package builder. Service tiles grouped by category, tap to add, tap again to bump qty. Sticky right rail shows the live invoice draft with editable qty + price. One tap materializes a real invoice (or quote) and jumps to its detail page. (Previously lived at /app/sales-matrix; that route was reclaimed for the analytics Sales Matrix.)
NewSales playbook — every fully-paid invoice auto-enqueues a 6-step sequence: review request at +24h, warranty registration at +7d, cross-sell at +30d, maintenance check at +90d, win-back at +180d, anniversary at +365d. Cross-sell pitches are service-aware (tint→PPF, ceramic coating→wrap, detail→ceramic coating) AND customer-history-aware (repeat-ceramic-coating customers get a maintenance pitch, not another wrap push).
NewAI-personalized cross-sell pitches — at enqueue time we feed the customer's last 5 paid services + primary vehicle to Haiku, get back a 1-sentence pitch grounded in their actual history. Falls back cleanly to the deterministic copy when AI is off.
NewPer-shop SMS templates — edit the body + delay + enabled state for each of the 6 plays. Snapshot semantics mean in-flight plays survive template edits unchanged. Live preview with vertical-aware sample values, one-tap test-fire to your own phone, plus a Test-all button that fires every enabled template back-to-back so the whole sequence can be validated in one tap. First-time / Repeat preview toggle so you see both faces of the {{pitch}} merge field.
NewHQ chain-wide defaults — multi-location orgs set the default SMS copy + delays from /app/hq/[orgId]/playbook. Resolution at enqueue: shop override → org default → hardcoded. Drift audit shows which shops have customized which kinds.
NewPer-shop kill switch + per-customer opt-out — pause the whole shop's playbook from /app/playbook (existing rows hold; flip back to resume). Customers can opt out of nudges only (keeping transactional SMS) from the customer portal OR by texting NUDGES OFF / NUDGES ON.
NewBulk play actions + cron failure alerting — pause-all / resume-all / skip-all on the playbook page (two-step confirm). Hourly Inngest cron fires due plays in production via the unified messaging stack (SMS opt-out gated, per-shop quota). UI banner when 3+ plays fail in any rolling hour, plus an Inngest job emails shop OWNERs + the shop email when failures hit 5+ in any hour (deduped per-hour, daily GC of the dedup log).
NewReply detection + attribution — playbook SMS replies flagged ✓ Replied within 14 days (real-time on inbound, with hourly cron backstop). Attribution card shows total revenue from invoices that came after a play, plus a high-confidence subtotal where the play also got a reply.
NewThese plays got replies — emerald panel surfacing engaged plays with the actual customer message + AI intent. Quick-actions: open conversation, build a quote (auto-prefills the customer + cross-sell line item), or jump to book-appointment when intent reads as BOOKING / RESCHEDULE.
NewSmart slot-fill — when an appointment is canceled or no-shows, AI ranks your waitlist + recent inquiries and surfaces the top 3 customers to text. Each candidate gets a draft SMS the operator can fire as-is, edit, or copy.
NewPlain-English booking — customer types 'just bought a Tesla, want darkest legal tint' and the AI matches it to the shop's actual menu. Hallucination-guarded: AI never picks a service that's not in your catalog. Auto-advances to the time picker on tap.
NewPlaybook conversion funnel report — per-kind sent → replied → quoted → invoiced, with reply % and close % columns. Period-over-period delta arrows on Sent + Revenue, 7d/30d/90d window selector, 'biggest swing' highlight banner with runner-up callout, and revenue-per-play KPI (single normalized productivity number, with delta vs prior). 12-week sparkline per kind row with hover popover showing the per-week numbers; current-week bar tints emerald/rose based on trend vs trailing average.
NewDaily reply digest emails — per-shop at 8am, per-org at 8:15am, per-org failure leaderboard at 8:30am. Each lists yesterday's playbook activity with one-tap conversation links. Per-shop and per-org opt-outs (mirrored on Notification Settings + the playbook config page so operators find them where they look).
NewCSV exports — per-shop reply CSV, chain-wide play CSV (HQ-tier), and per-shop performance funnel + 12-week trend CSV. RFC-4180 escaped for Excel + Google Sheets.
NewPLAYBOOK_REPLIED_30D smart segment in the bulk-blast composer — target customers who've shown engagement with your outreach.
NewCustomer-detail engagement timeline — visual horizontal strip showing scheduled / sent / replied for every play with a 'now' line bisecting future vs past. 30d / 90d / All zoom toggle, axis date labels at start / midpoint / end, and per-dot hover popovers with full play info. Queued-play badge on the AI 'what should they book next?' panel so the operator doesn't fire a duplicate touch.
ImprovedActivity feed All / Playbook only filter — every entity audit log gets a tab to triage every salesPlay.* and org.playbook* event without scrolling past unrelated quote/invoice/appointment churn.
ImprovedMarketing site defaults to light theme — visitors on a dark OS now see the white-surface brand. Existing users who explicitly chose dark keep their preference. HQ dropdown copy 'From 2 shops to 200' → 'Built for 2 shops or more'.
Three big swings at the gap between 'shop did the work' and 'shop got paid again.' Every paid invoice now fires a 12-month nudge sequence with revenue attribution. Every cancellation gets an AI-ranked candidate list to fill the slot. Every confused booking-page visitor can describe what they want in plain English.
NewSales playbook — every fully-paid invoice auto-enqueues a 6-step sequence: review request at +24h, warranty registration at +7d, cross-sell at +30d, maintenance check at +90d, win-back at +180d, anniversary at +365d. Cross-sell pitches are service-aware (tint→PPF, ceramic coating→wrap, detail→ceramic coating, etc.).
NewPlaybook revenue attribution — paid invoices that arrive within 60 days after a SENT play get credited to that play. Live $-attributed figure on the playbook page with per-kind breakdown so you can see which nudges drive the most revenue.
NewReply-detection — when a customer replies within 14 days of a playbook SMS, the play is flagged ✓ Replied. Reply-rate KPI on the playbook page tells you which kinds actually start conversations.
NewPer-shop kill-switch + per-customer opt-out — shop-wide pause toggle on the playbook page (existing rows stay queued, ready to resume). Customers can opt out of playbook nudges from the customer portal without losing transactional SMS.
NewPer-shop playbook templates — every shop can edit the SMS body and delay days for each of the 6 play kinds. Snapshot at enqueue means in-flight plays keep their original copy when you tune templates.
NewSmart slot-fill — when an appointment is canceled or no-shows, AI ranks your waitlist + recent inquiries and surfaces the top 3 customers to text. Each candidate gets a draft SMS the operator can fire as-is, edit, or copy. Average shop fills 1 in 3 open slots this way.
NewPlain-English booking — customer types 'just bought a Tesla, want darkest legal tint' and the AI matches it to the shop's actual menu. Hallucination-guarded: AI never picks a service that's not in your catalog. Auto-advances to the time picker on tap.
ImprovedCompressed dashboard — 10 stacked cards collapsed into 4 hero rows + a 2-column auto-flow grid. On a busy day the dashboard is roughly half as tall; quiet-day cards still hide cleanly.
April 29, 2026
AI everywhere — inbox triage, customer briefs, dispute defender
Big AI drop. Every inbound text now auto-categorized for urgency + intent. Every customer detail page gets a one-tap brief + next-service recommendation. Every chargeback gets an evidence-pack suggestion + cover-note draft. Plus bulk operations on lists, a daily standup digest, and a visual service-history timeline.
NewAI inbox triage — every inbound SMS auto-tagged with intent (booking / question / complaint / payment / etc.) and urgency (low / normal / urgent). Urgent threads bubble to the top of the inbox.
NewInbox filter chips — All / Unread / Needs reply / Urgent + per-intent chips (Booking / Question / Complaint / Payment) that only render when there's at least one match.
NewAI customer brief — one-click 2-sentence relationship summary on any customer (Long-time VIP, 8 ceramic visits…) with tags like VIP, Ceramic loyalist, Open balance, At-risk.
NewAI suggest next service — reads the customer's history + your active catalog and recommends 1-3 services to pitch with reason + SMS-ready copy. One-click to send the SMS or build a quote.
NewAI dispute defender — on any chargeback, surveys the evidence on file (photos / quote / messages / warranty / past appointments) and recommends which sections to pack + drafts a 2-3 sentence cover note in your voice. One-click apply.
NewInline AI quote suggest — when the quote builder is empty, an inline tip-bar lets the rep type a free-form description and have line items pre-filled with industry-standard pricing.
NewBulk operations on Quotes and Invoices lists — multi-select via checkbox column + sticky action bar with Mark sent / paid / void / approved / expired / delete.
NewPickup list with one-tap notify — today's READY/COMPLETED jobs in a dashboard card. One tap texts the customer their car is ready (idempotent — anti-spam guard).
NewAuto-text when work starts — when a job moves to IN_PROGRESS, the customer auto-gets a 'we just started on your vehicle' SMS with a tracking link.
NewVisual service-history timeline — every customer detail page shows past visits as chronological nodes (emerald for completed, rose for no-show, outline for upcoming).
NewMorning standup digest — 7am email to the shop owner with today's appointments, urgent inbox count, and AR aged 30+ days. Skips quiet days entirely.
NewCustomer portal upgrades — per-appointment links to the photo gallery (when complete) and the reschedule/cancel flow (when upcoming). One place to manage everything.
ImprovedMarketing site refresh — landing hero now leads with 'The best shop software on the planet' + a CSS-rotating vertical eyebrow (tint / PPF / ceramic / detail / wrap). Each industry page leads with its own superlative claim.
NewTip-the-tech — on the customer photo gallery, the customer can tip the team via Stripe (preset chips + custom amount). 100% goes to the shop. Auto-records as a payment with tipCents set so the existing tip-distribution UI picks it up.
NewMy day AI brief — one button on the dashboard generates a 2-3 sentence morning brief from real numbers (today's appointments, urgent inbox, aged AR, inventory risks). Lazy — only fires on click.
Improved/track/[token] now links straight to the photo gallery + tip flow once a job is COMPLETED — same publicToken powers the live job tracker, the post-job photos page, and the tip checkout.
April 27, 2026
Lobby & sales-counter TVs, AI pricing, bulk blasts
A big drop expanding SalesThumb beyond the back office and into the showroom. Lobby TVs, sales-counter casting, AI close-rate pricing, customer photo galleries, and a bulk-blast composer.
NewDigital signage — pair any browser-equipped TV (Chromecast, Fire TV, Apple TV, Mac mini) in 30 seconds. Auto-rotating playlists with 11 slide kinds: image, video, web URL, promo card, reviews feed, jobs queue, weather, booking QR, before/after, warranty trust, upsell bar.
NewSales-counter cast — the rep's tablet drives the big screen behind them. Spotlight a single product, side-by-side compare 2-3 services, or push 3 cross-sell cards. They can't buy what they don't know we have.
NewHQ-pushable signage — org admins build a playlist once and every shop in the system sees it in their display picker. Adoption snapshot shows which playlists are actually running across the org.
NewSmart Pricing — per-service close-rate analysis. We tell you when reps are leaving money on the table (RAISE), when to lower a price to remove the haggle (REDUCE), and when to hold. One-click apply.
NewBulk blast composer — pick a segment (VIPs, new in 30 days, dormant 90+, churned), preview recipients live, send. SMS opt-outs filtered automatically. Test mode logs without firing.
NewCustomer-facing photo gallery — token-link page (no login) where customers see their before/after photos, share with friends, and leave a one-tap review. Review-request SMS now lands them here first.
NewEmbeddable reviews widget — iframe snippet that drops your featured reviews into your own shop website. Theme + accent customizable.
NewPer-shop QR-print page — booking, kiosk, and review-link QR posters with size presets and clean print stylesheet.
NewAI Quote Suggest — describe a job in plain English; get back structured line items with industry-standard pricing.
ImprovedSidebar compressed — AI Tools and Growth groups now collapse into single hub entries (each lists every tool inside) so the rail stays at a manageable length even as features grow.
Improved1-click Purchase Order from low-stock alert — auto-drafts a PO with one line per below-threshold film, qty calculated to refill to 2x threshold.
ImprovedAI review reply drafts — tone-aware Claude-generated replies for incoming reviews (gracious for 4-5★, concerned for 1-3★).
ImprovedCalendar conflict detection — appointment.create now throws on resource overlap unless explicitly forced.
April 25, 2026
Franchise development tools, dialer, and HQ job assignments
A big drop focused on multi-location franchisors and the operations layer underneath every shop.
NewAI Assistant for franchise sales — recommendations, deal-risk scores, and per-rep coaching from your live pipeline.
NewPower Dialer with Twilio click-to-call, voicemail drop, and disposition tracking.
NewCommunity channels for franchisees (wins, help, suppliers, marketing, general).
NewHQ → Shop job assignments — push individual fleet jobs from a master contract down to a specific location.
NewInventory low-stock alerts with daily email digest, plus per-period COGS reporting.
NewCustomer-facing warranty claim filing from the public warranty card; shop-side claim queue.
NewStripe refunds — issue full or partial refunds from the invoice detail page; webhook keeps payment status in sync.
ImprovedTemplated SMS + email — reuse merge-field templates from anywhere in the product.
ImprovedMobile HQ Job Queue screen for installers on the floor.
April 25, 2026
Marketing site SEO/AEO/GEO upgrade
Major search-discoverability pass across every public page.
ImprovedPer-page metadata, OpenGraph cards, and canonical URLs everywhere.