Technical Roadmap

More force. Same team.

Internal — March 2026

4
Phases
15
Projects
122
Deliverables
26
Weeks

Timeline

Build Phase (Weeks 1-10) Founder Phase (Weeks 11-18) Growth Phase (Weeks 19+)
Phase 0 Weeks 1-6 Build Phase

Foundation

Foundation

This phase runs two parallel workstreams: the website replatform (visible to the firms) and the platform infrastructure build (invisible to the firms). Both must complete before Phase 1 can deliver value.

Gate

Both firms have new websites live, clean analytics running, and the Torque platform infrastructure is deployed with multi-tenant support.

Multi-Tenant Platform Setup

7 deliverables

P0 — Multi-Tenant Platform Setup

Convert OneRing from single-tenant to multi-tenant. This is prerequisite infrastructure — nothing else works until tenant isolation is in place.

Add firm_id to all data tables

Migration across 42+ tables. Every row belongs to a tenant.

2-3 days
PostgreSQL RLS policies

Row-level security enforcing tenant isolation at the database level.

2 days
Tenant-aware auth middleware

JWT includes firm_id. All API requests scoped to tenant automatically.

1-2 days
Per-tenant firm config

Feature flags, branding, connector credentials, module toggles (connector vs. owned mode).

1-2 days
Redis namespace isolation

BullMQ jobs scoped per tenant. No cross-firm data leakage in background workers.

1 day
Tenant provisioning flow

Script/admin endpoint to create a new tenant: database seed, config, credentials.

1 day
Deploy to Railway

Docker deployment: API, workers, PostgreSQL, Redis. Health checks, environment variables.

1 day

Firm Involvement

None. This is invisible infrastructure.

Website Replatform: Rossen

14 deliverables

P0 — Website Replatform: Rossen

Rebuild rossenlawfirm.com on Astro. Client-centered design from the UX audit. Full schema markup from the schema audit.

Content audit

Extract all pages, practice areas, attorney bios, blog posts from WordPress.

0.5 day
Information architecture

Page hierarchy, navigation structure (5-7 items max), URL mapping.

0.5 day
Astro project setup

Shared codebase, Tailwind, component library, Content Collections, firm-specific config layer.

1 day
Homepage

Empathetic headline, phone + "Free Consultation," review score (Google Places API), practice area grid, 3-field form. 3-4 mobile screens.

1 day
Practice area page template

Empathetic headline, "Is this you?", "Here's what happens next", results, FAQ, CTA.

0.5 day
Attorney profile template

Real photos, plain-English bios, practice focus, results. Person schema per attorney.

0.5 day
Contact, results, reviews pages

Map, click-to-call, form, case outcomes, live Google reviews feed.

1 day
Blog archive migration

Migrate WordPress posts. Preserve clean URLs for SEO continuity.

0.5 day
JSON-LD schema generation

LocalBusiness (per location), Attorney (per lawyer), AggregateRating, FAQPage, BreadcrumbList, WebSite + SearchAction. Automated from Content Collections.

0.5 day
Mobile sticky CTA bar

React island: Call + Text buttons, visible on every page.

0.5 day
GA4 + GTM + CallRail setup

Single container, no duplicates. Conversion events for calls, forms, chat.

0.5 day
301 redirect map

Every WordPress URL mapped to new URL. No broken links.

0.5 day
QA

Test at 375px, 768px, 1920px. Lighthouse target 90+.

0.5 day
DNS cutover + monitoring

Go live. Post-launch monitoring for 48 hours.

0.5 day

Firm Involvement

Adam reviews content and approves pages. Provides attorney photos/bios if missing. Signs off on DNS cutover.

Website Replatform: DDT

8 deliverables

P0 — Website Replatform: DDT

Same deliverables as Rossen, using the shared Astro codebase. DDT-specific content, branding, and configuration. ~60% of the effort since templates and components are shared.

Content audit + IA

Extract content from WordPress. Define DDT-specific page hierarchy.

0.5 day
DDT content + branding config

Firm name, colors, logo, practice areas, attorney data, office locations.

0.5 day
Build all pages

Apply shared templates with DDT content. Homepage, practice areas, attorneys, contact, results, reviews, blog.

2 days
Schema generation

8 office locations as separate LocalBusiness entries. Attorney schemas. AggregateRating (3,000+ reviews).

0.5 day
GA4 + GTM + CallRail

DDT-specific tracking. Separate GA4 property, same GTM setup pattern.

0.5 day
301 redirect map

DDT WordPress URLs mapped.

0.5 day
QA + Lighthouse

Same targets: 90+ mobile, 375/768/1920px.

0.5 day
DNS cutover + monitoring

Go live. Stagger 2-3 days after Rossen to avoid concurrent cutovers.

0.5 day

Firm Involvement

Derek reviews content and approves pages. Signs off on DNS cutover.

Form to Salesforce

4 deliverables

P0 — Form to Salesforce

Website contact forms write leads directly to each firm's Salesforce pipeline. This is the first Salesforce touchpoint and validates the API connection before the full connector build in Phase 1.

Salesforce OAuth setup

Connected app in each firm's Salesforce. OAuth flow for API access.

1 day
Form submission edge function

Astro form, edge function, Salesforce Lead create. Maps form fields to SF fields.

1 day
UTM parameter passthrough

Source, medium, campaign captured from URL and stored on the Salesforce lead.

0.5 day
Test end-to-end both firms

Submit test leads, verify they appear in Salesforce with correct attribution.

0.5 day

Firm Involvement

Grant Salesforce API access. Verify test leads appear correctly.

Phase 1 Weeks 5-10 Build Phase

Visibility

Visibility

This phase requires active participation from Derek and Adam. Dashboards will surface data inconsistencies, missing attribution, and metrics that don't match what Salesforce reports natively. Their feedback during this phase directly shapes what we prioritize in Phase 2.

Gate

Both firm owners can see live dashboards with their own Salesforce data, marketing performance, and call metrics. Weekly scorecards are being delivered automatically.

Salesforce Connector

9 deliverables

P1 — Salesforce Connector

The #1 integration. Both founding firms run on Salesforce. This single connector unlocks most of Level 1 reporting.

SalesforceIAO class

OAuth token management, SOQL query builder, bulk data sync, error handling. Follows OneRing's IAO pattern.

2 days
Lead sync

Pull leads, pipeline stages, lead sources, conversion dates. Map to Torque analytics schema.

2 days
Case sync

Pull cases, statuses, assigned attorneys, matter types, court dates, dispositions.

2 days
Client/contact sync

Pull client records, contact information, co-defendants, expert witnesses.

1 day
Revenue sync

Pull payments, invoices, trust balances, fee agreements.

2 days
Attorney/team sync

Pull team member data, caseloads, roles.

1 day
Background sync worker

BullMQ cron job: incremental sync every 15 minutes. Full sync nightly. Handles rate limits.

2 days
Webhook listener

Real-time updates from Salesforce outbound messages (new lead, case stage change, payment).

1 day
Data validation + reconciliation

Compare Torque warehouse totals against Salesforce reports. Flag discrepancies.

1 day

Firm Involvement

Salesforce admin walkthrough. Grant API access. Identify custom objects/fields. Validate data accuracy after sync.

Marketing Connectors

6 deliverables

P1 — Marketing Connectors

Connect to ad platforms and analytics to power Level 2 marketing services.

Google Ads IAO

Campaign data, ad spend, impressions, clicks, conversions, search terms.

2 days
GA4 IAO

Website traffic by source/medium, conversion events, landing page performance.

2 days
GBP IAO

Google Business Profile insights, review data, post performance.

1 day
CallRail IAO

Call recordings, call source attribution, duration, caller ID, first-time vs. repeat.

2 days
Heymarket IAO

Text message data, response times, conversation history.

1 day
Sync workers

Background jobs for each connector. Incremental sync schedules.

2 days

Firm Involvement

Grant API access to Google Ads, GA4, GBP, CallRail, Heymarket accounts. Confirm which accounts/properties to connect.

Analytics Warehouse

4 deliverables

P1 — Analytics Warehouse

Normalized reporting tables optimized for aggregation, not CRUD. This is different from OneRing's operational schema — it's designed for dashboards and AI engines.

Schema design

Normalized tables: leads, cases, revenue, marketing, calls, messages, attorneys. All with firm_id.

2 days
Aggregation views

Materialized views for common queries: cost-per-sign by channel, lead-to-sign conversion by period, revenue by practice area, caseload by attorney.

2 days
ETL pipeline

Transform data from connector raw tables into analytics schema. Handle deduplication, normalization, currency.

2 days
Data freshness monitoring

Track last sync time per connector per firm. Alert on stale data.

1 day

Firm Involvement

None directly. But they'll surface data quality issues when they see the dashboards.

Reporting Dashboards

18 deliverables

P1 — Reporting Dashboards

The first thing firm owners interact with. These are the Level 1 services from the Torque menu.

Dashboard shell

Auth, layout, sidebar, firm switcher (for Josue/admin), theme. Adapt from OneRing frontend shell.

2 days
R1. Weekly KPI Scorecard

Leads, consultations, signs, revenue, collections. Red/yellow/green coding. Period-over-period comparison.

2 days
R2. Financial Dashboard

Revenue by practice area, AR aging, collections rate, average fee, monthly/quarterly trends.

2 days
R3. Marketing Performance

Spend vs. signs by channel. Cost per lead, cost per sign, ROI by source.

2 days
R4. Intake Pipeline

Lead volume, speed-to-contact, consultation set rate, show rate, close rate, average fee at sign.

2 days
R5. Attorney Productivity

Caseload per attorney, cases opened/closed, revenue generated, average case cycle time.

1 day
R6. Compensation & Profitability Modeling

Fully loaded cost per seat, net margin per practice area, where the money actually goes.

2 days
R7. Client Satisfaction Pulse

NPS/CSAT scoring tied to review generation. Client experience tracking that feeds both ops and marketing.

1 day
R8. Custom Alerts

Threshold-based flags: collections drop, lead flow drops, caseload exceeds capacity. Email + dashboard notification.

2 days
R9. Staff Utilization & Capacity Forecaster

Caseload per team member, capacity projection at current growth rate, bottleneck identification. Re-runs weekly.

2 days
R10. Retainer & AR Decay Monitor

Trust account balances, payment plan compliance, AR aging. Weekly collections priority list ranked by recovery probability.

2 days
R11. Practice Area Profitability Ranker

True profitability by practice area after attorney time, staff time, marketing cost-per-sign, case cycle, and overhead allocation. Models impact of shifting spend.

2 days
R12. Client Lifecycle Revenue Mapper

Tracks clients across full relationship. Repeat engagement, cross-sell opportunity, referral generation. Lifetime value by acquisition source.

2 days
R14. Local Market Demand Forecaster

Search trends, court filing volumes, seasonal patterns to demand forecast by practice area and geography. Quarterly refresh with actual vs. predicted.

2 days
Automated weekly scorecard

BullMQ cron: generate R1 scorecard every Monday, email to firm owner as formatted report.

1 day
I7/I11. Coaching Dashboard

Per-rep call scores over time, improvement trends, auto-generated coaching notes from Claude, coaching assignment tracking.

2 days
I4. Live Intake Script System

Dashboard view: rep sees the right talk track based on practice area, lead source, caller scenario. Pulls from I15 objection patterns to keep scripts current.

2 days
I8. Fee Calculator

Dynamic quoting tool built on OneRing's lead_quotes + fee_schedule_rules tables. Suggests retainer range based on practice area, complexity, jurisdiction.

1 day

Firm Involvement

Derek and Adam review dashboards against their own Salesforce reports and flag discrepancies. They define KPI thresholds for alerts and request additional breakdowns. Plan for 2-3 rounds of iteration per dashboard.

Phase 2 Weeks 11-18 Founder Phase

Intelligence

Intelligence

This phase activates the AI layer. The firm owners go from "I can see my data" to "Torque is telling me things I didn't know." This is also the phase where Torque has enough to demo to prospective Founder Phase clients.

Gate

AI engines are running autonomously — call scoring on real calls, competitor briefs landing weekly, marketing optimization recommendations being acted on. The firms are using Torque outputs to make decisions.

Call Scoring

7 deliverables

P2 — Call Scoring

OneRing has a working call scoring engine (Claude API, 8 dimensions, RingCentral/Dialpad integration). It needs testing, debugging, and adaptation for multi-tenant + connector-mode call data (CallRail for Rossen, RingCentral for DDT).

Audit existing call scoring code

Review OneRing's AIScorIAO, intake_scores schema, scorer dashboard. Identify gaps.

1 day
Multi-tenant adaptation

Ensure scoring pipeline is firm_id aware. Firm-specific rubrics stored in firm_config.

1 day
CallRail to scoring integration

CallRail webhook, download recording, Deepgram transcription, Claude scoring.

2 days
RingCentral to scoring integration

Verify existing RingCentral pipeline works with multi-tenant setup.

1 day
Scoring dashboard adaptation

Port OneRing's scorer page to Torque dashboard. Per-firm filtering.

2 days
End-to-end testing

Score 20+ real calls from each firm. Validate dimensions, coaching notes, conversion predictions.

2 days
Alerts

Trigger notification when a call scores below threshold (configurable per firm).

1 day

Firm Involvement

Derek and Adam review scoring rubrics and confirm they match how their firms evaluate intake calls. They decide whether scores are shared with the intake team or kept internal. Both firms need to confirm call recordings are being captured and stored.

Marketing AI Engines

17 deliverables

P2 — Marketing AI Engines

Autonomous AI systems that run on a schedule, analyze data, and produce actionable outputs.

Engine framework

Base class for all AI engines: scheduled trigger, data pull, Claude prompt, structured response parsing, result storage, delivery.

2 days
M16. Competitor Intelligence

Weekly scan of top 5-10 competitors across Google Ads, LSA, GBP, organic rankings, review velocity. Produces brief with recommended responses.

3 days
M13. GEO Auditor

Weekly audit of AI visibility across top 20 keywords. Produces GEO plan, executes content structured for LLM citation.

2 days
M20. Ad Waste Auditor

Weekly crawl of Google Ads search term report. Identifies wasted spend, generates negative keyword lists, quantifies dollars saved.

2 days
M17. Review Velocity Monitor

Monitors review volume, star rating trends, sentiment analysis on review text. Benchmarks against competitors.

2 days
M18. Content Gap Mapper

Crawl firm site + competitors. Maps topic coverage gaps, prioritizes content production queue by search volume and intent.

2 days
M19. Website Conversion Auditor

Monthly Lighthouse + GA4 conversion analysis. Produces prioritized punch list against benchmarks.

1 day
M14. Meta Ads Optimization Engine

Analyzes historical Meta Ads performance, builds creative scoring matrix, generates ad variants, deploys tests, kills losers, scales winners.

3 days
M15. LSA Rank & Dispute Automation

Weekly audit of LSA positioning. Tracks rank shifts, budget pacing, cost-per-lead trends. Auto-files disputes on unqualified leads.

2 days
M21. Email & SMS Engagement Decay Optimizer

Monitors open/click/response rates across sequences. Identifies stale sequences. Auto-A/B tests new variants, retires underperformers.

2 days
M22. Referral Source ROI Tracker

Monitors every referral source: sign rate, average fee, case type mix, lifetime value. Ranks by true ROI. Identifies which relationships to invest in.

2 days
Engine delivery system

Each engine's output delivered via: dashboard section, email summary, and PDF report (for firm owners who want to forward to staff).

2 days
M2. Review Generation Engine

BullMQ worker: Salesforce case status change (disposition entered), wait X days, send review request via SMS (Twilio/Heymarket) + email (SendGrid). Templated per practice area. Tracks request-to-review conversion rate.

2 days
M7. Content Production Pipeline

Claude generates drafts from the M18 Content Gap Mapper queue. Content workflow: AI draft, human review queue, approved, publish to Astro site via CMS API or Git commit.

3 days
M9. Review Response Workflow

M17 engine detects new review, Claude drafts response, queued for human approval, posts to Google via GBP API. Negative reviews escalated with alert.

2 days
M12. Creative Generation

Claude + template system generates ad creative variants (headlines, descriptions, copy). Fed by winning patterns from M20 (Google Ads) and M14 (Meta Ads) performance data. Human selects winners.

2 days
M6. A/B Testing & CRO Toolkit

Automated Lighthouse monitoring, form completion rate tracking, heatmap integration (Hotjar/Clarity). Surfaces CRO recommendations alongside M19 conversion auditor data.

2 days

Firm Involvement

Derek and Adam review weekly engine outputs and decide which recommendations to act on. Establish a weekly 30-minute review cadence: Josue walks through outputs, Derek/Adam assign actions or dismiss.

Channel Automation

6 deliverables

P2 — Channel Automation

Automated channel management tools that extend the Marketing AI Engines with direct platform integrations for publishing, optimization, and monitoring.

M1. GBP Posting Scheduler

Claude generates weekly GBP posts (case results, tips, FAQs) from content pipeline. Queued via GBP API. Firm approves with one click in dashboard. Q&A monitoring: new question alerts + Claude drafts answer.

2 days
M3. LSA Dispute Automation

Extends M15 engine: unqualified lead detected, auto-file dispute via LSA API without human intervention. Budget pacing alerts when spend ahead/behind target.

1 day
M4. PPC Auto-Optimization

Extends M20 engine: auto-pause underperforming keywords, auto-add negative keywords, auto-adjust bids based on cost-per-sign targets via Google Ads API. Human reviews weekly brief, overrides if needed. System acts by default.

3 days
M5. Technical SEO Monitor

Automated crawl: broken links, missing meta descriptions, crawl errors, Core Web Vitals regressions. Alert on issues. Auto-generate citation submissions to top directories.

2 days
M8. Social Media Scheduler

AI-generated post variants from content pipeline. Scheduling/publishing via platform APIs (Meta, LinkedIn) or Buffer integration. Performance tracking fed back to content scoring.

2 days
M10. Referral Tracking & Nurture

Referral source CRM: track who sends referrals, sign rate, case value. Automated nurture sequences (email/SMS) to top referral sources. Powered by M22 ROI data.

2 days

Firm Involvement

Firms approve AI-generated content with one click in the dashboard. System acts by default on optimization tasks; firms review weekly briefs and override if needed.

Intake Analytics

6 deliverables

P2 — Intake Analytics

Deeper intake reporting powered by the call scoring + Salesforce data now flowing.

I2. Speed-to-Lead metrics

Measure first-response time from lead creation to first contact. Alert when leads wait too long.

1 day
I15. Objection Pattern Analyzer

Claude analyzes scored call transcripts to identify most common objections by practice area. Monthly report with talk tracks.

2 days
I16. After-Hours Lead Analysis

Track what happens to every lead outside business hours. Quantify revenue lost between 6pm and 8am.

1 day
I17. Intake Conversion Decay

Weekly analysis: how conversion rate degrades over time from first contact. Maps speed-to-contact to close rate.

1 day
I9. Pipeline Management & Lead Recovery

Weekly pipeline scrubs, dead-lead reactivation campaigns, systematic follow-up for cold leads. Automated flagging of stale pipeline.

1 day
R13. Lead Source Attribution

Connect CRM, call tracking, and ad platforms for true source-to-sign attribution. Weekly cost-per-sign by channel with reallocation recommendations.

2 days

Firm Involvement

These reports identify operational gaps — missed calls, slow follow-ups, pipeline leaks. Derek and Adam decide which findings to share with their intake teams and how to address them.

Phase 3 Weeks 19-26 Growth Phase

Automation

Automation

Torque moves from reporting to executing. Automated sequences contact real leads. Derek and Adam approve templates, timing rules, and escalation paths before anything goes live. Rollout is incremental — one sequence on one firm first, validate results, then expand.

Gate

Torque is actively running parts of the firm's intake workflow — follow-up sequences fire automatically, AI chat qualifies leads on the website, routing recommendations are being implemented.

Follow-Up Automation

7 deliverables

P3 — Follow-Up Automation

Multi-touch sequences for leads that don't sign on first contact.

Sequence builder

Define multi-step sequences: text (Heymarket/Twilio), email (SendGrid), task (assign follow-up call). Configurable delays and conditions.

3 days
Trigger system

Sequences fire based on events: new lead created, consultation no-show, lead stale for X days.

2 days
I5. Follow-up sequences

Build 3-4 standard sequences: post-consultation follow-up, missed call recovery, stale lead reactivation, after-hours capture.

2 days
I6. After-hours auto-response

Automated text-back within 60 seconds of after-hours lead. Captures intent, schedules callback.

1 day
Opt-out handling

Respect unsubscribe requests. Compliance with TCPA for SMS.

1 day
Sequence performance dashboard

Track: sequences sent, response rates, leads recovered, revenue attributed to automation.

2 days
M11. Email/SMS Nurture Campaigns

Drip sequences for unconverted leads, past client reactivation, referral source stay-in-touch. Extends the P3 sequence builder with marketing-specific templates and triggers.

2 days

Firm Involvement

Derek and Adam approve every sequence template, message, and timing rule before activation. Each firm may want different messaging and cadence. Start with one sequence on one firm, measure results over 2 weeks, then expand. TCPA compliance requires opt-out handling on all SMS.

AI Chat Widget

5 deliverables

P3 — AI Chat Widget

Torque-branded AI chat on every page of the firm's website. The first owned module that lives on the client-facing site.

Chat widget (React island)

Embedded on Astro sites. Opens as bottom-right overlay. Firm-branded.

2 days
AI conversation engine

Claude-powered: understands practice areas, qualifies leads, answers basic questions, collects contact info. Firm-specific knowledge base.

3 days
Lead routing

Qualified lead creates in Salesforce + Slack notification to intake team (business hours) or auto-text-back + schedule callback (after hours).

2 days
Conversation logging

Every chat interaction stored in Torque warehouse. Scored for lead quality.

1 day
Dashboard integration

Chat metrics: conversations started, leads captured, conversion rate, top questions asked.

1 day

Firm Involvement

Review the AI's knowledge base (practice areas, FAQs, office hours, consultation process). Test the chat with real scenarios. Decide who gets the Slack notifications when a qualified lead comes in.

Intake Optimization Engines

4 deliverables

P3 — Intake Optimization Engines

AI engines that analyze intake performance and recommend operational changes.

I12. Call Routing Optimizer

Analyze which rep converts best by practice area, time of day, lead source. Recommend routing changes. Re-analyze after changes to confirm lift.

2 days
I13. Fee Optimization Engine

Historical fee data analysis by practice area, case type, jurisdiction. Identifies underpricing/overpricing. Monthly recommendations.

2 days
I14. No-Show Predictor

Risk model from historical no-show data. Scores upcoming consultations. Triggers intervention for high-risk appointments.

2 days
I18. AI Receptionist Auditor

Weekly audit of AI chat interactions. Scored for accuracy, tone, qualification quality, conversion. Tuning recommendations.

1 day

Firm Involvement

These engines recommend changes to how the firm operates — who answers which calls, how fees are quoted, how no-shows are handled. The firm owner has to decide whether to act on the recommendations. Torque advises — the firm decides.