Connector fires
A BillingMirror per platform maps that store's paid-order event onto one universal conversion shape. WHMCS ships reference-grade; the same shape powers any store.
Your store knows what sold. Your chat, promos and pages know who and why. Sales Bridge is the connective tissue that joins them, so every paid order carries its full story back to the visit, the conversation and the campaign that created it. WHMCS, Stripe, Paystack, Shopify or your own checkout.
There's no SDK to bolt onto your checkout. Your billing system fires the event it already fires (invoice.paid) and Sales Bridge does the joining. A small BillingMirror per platform maps that platform's paid-order event onto one universal conversion row, linked to the visitor session that led there.
A BillingMirror per platform maps that store's paid-order event onto one universal conversion shape. WHMCS ships reference-grade; the same shape powers any store.
OpsIQ links the order to the visitor session: page, chat thread, promo and full touch sequence. Anonymous visitors still link via UTM params or referrer.
One row lands with first touch, last touch, device and country, and new-vs-renewal decided automatically from the subscription's invoice history.
Orders flow in from every connected store and land linked to the page, the chat and the campaign that earned them: first touch, last touch and the full path in between.
The Recent Purchases table mirrors your real Sales screen: Date, Customer, Platform, Order / Items, Amount, Traffic Source, Country, Device. New paid orders land the moment your billing system fires its event. No nightly import, no spreadsheet.
Each conversion is linked to the visitor session that led there: the page, the chat thread, the promo and the full touch sequence. "Where did this sale come from?" finally has a real answer.
Most tools give you last-click and call it done. Sales Bridge keeps the whole sequence: the ad that discovered them, the pages they returned to, the chat that answered the final question, and the order that closed it. The path animates as the visitor moves; the sale lands with its story attached.
Webhooks fail: networks blip, endpoints time out, deploys restart. Sales Bridge doesn't care. Every time the dashboard loads, a 7-day self-heal sweeps the last week of paid orders from your connected store and quietly backfills anything that slipped through.
Not just what they paid today. Every new sale and renewal rolls up per customer into a lifetime value, so a ₦154,800 first order and an ₦2,208,000 three-year account never look the same in the queue. New-versus-renewal splits itself automatically (a first paid invoice is a new sale, a later one on the same subscription is a renewal) and your team prioritises by worth, not by who shouted loudest.
A small BillingMirror per platform maps that platform's paid-order event onto one universal conversion row. WHMCS ships reference-grade; the same shape powers any store.
When your system fires invoice.paid (or its equivalent), OpsIQ links it to the visitor session (page, chat, promo and touch sequence) and writes a conversion.
No identified visitor? Session ID links to the checkout via UTM params or referrer. Identification adds depth but is never required.
Once revenue and intent live in one place, the rest writes itself: a composite score that means "ready to buy", a consent-gated bridge into the CRM, a real lead workflow, and follow-up that drafts with full context.
Raw pageviews lie. Sales Bridge weighs the signals that actually predict a purchase (repeat /pricing visits, a /demo view, chat questions, return cadence, country and source) and fuses them into a single 0-100 composite intent score. Cross a tier and the lead is Cold, Warm, Hot or Ready, ranked at the top of the board.
The Leads screen tracks returning visitors who haven't converted yet: quality-scored, with source, country, sessions, pages and time-on-site attached. When intent crosses the line, the lead bridges straight into the CRM as a contact: consent-gated, deduped, ready for outreach.
A lead isn't done when it's scored. Sales Bridge moves it through a real workflow (New → Contacted → Qualified → Closed) searchable by IP, city or country, deduped against existing contacts. When a lead heats up, the right person hears about it.
/pricing, or a chat keyword.Once revenue and intent live in one place, follow-up writes itself. The Outreach hub turns reusable templates with {{variables}} into personalised messages, drafted with the customer's page history, purchase record and chat context already filled in.
{{name}}, {{email}} and more, dropped into any send with a live email-client preview.Keep your store, your billing and your analytics. Sales Bridge is the layer that ties revenue to the support and marketing that earned it, so the numbers finally agree.
| What you want to know | Store / billing alone | Web analytics alone | OpsIQ Sales Bridge |
|---|---|---|---|
| What sold & for how much | Yes, that's its job | Estimated / sampled | Linked to the real paid order |
| Which page started the sale | Unknown | Yes | First touch on the order itself |
| Which chat closed the sale | Unknown | No concept of chat | Closed-by credited to the thread |
| Which promo / campaign earned it | Unknown | Last-click only, usually | Full multi-touch path kept |
| New sale vs renewal | Manual to separate | Can't tell | Split automatically |
| Customer lifetime value | Per system, siloed | Not its domain | Rolled up on the contact |
| Lead intent before they buy | No leads concept | Pageviews, not intent | Composite score → CRM bridge |
| Acts on it (alert / outreach) | No | No | Slack alerts + drafted follow-up |
| One source of truth | One slice | Another slice | Same data as chat, CRM & promos |
Every capability, grouped. ★ marks a stand-out.
| Feature | What it does |
|---|---|
| Revenue tracking | |
| Recent Purchases Feed ★ | Every order across every connected store, landing live in one feed. |
| Platform-Driven Badges | Per-row platform badges generated from enabled connectors, never a hardcoded list. |
| Sales Search & Filter | Find any sale by email, IP, order ID or platform, just like the in-app desk. |
| 7-Day Self-Heal Backfill ★ NEW | Missed webhooks auto-backfill when the dashboard loads, idempotent by order ID. |
| Today / Week / Month / Year Stats | Order count and revenue for any period at a glance. |
| 30/60/90 & All-Time Trend Chart NEW | Revenue line and volume bar trended across any range. |
| Year-over-Year Comparison NEW | This year versus last, month by month. |
| Month-over-Month Comparison NEW | This month versus last, day by day. |
| AI Sales Readout ★ NEW | Plain-English what happened, why, and what to do next about your numbers. |
| New vs Renewal Auto-Detection ★ | First paid invoice is a new sale; a later one on the same subscription is a renewal. |
| New vs Renewal Stats Breakdown | Separate counts and revenue for new sales and renewals. |
| Renewal Badge on Orders NEW | An amber renewal badge distinguishes renewals at a glance in the feed. |
| Multi-Currency Support NEW | Per-row currency with base conversion, so totals aggregate across currencies. |
| Attribution | |
| Conversion Record with Session Link ★ | Every order is linked to the full visitor journey that led there. |
| First Touch Attribution ★ | The channel that originally discovered the customer, preserved on the order. |
| Last Touch Attribution ★ NEW | The channel that closed the deal, kept alongside first touch, never collapsed. |
| Multi-Touch Attribution Path ★ | The full page / referrer / chat / campaign sequence from discovery to purchase. |
| Chat-Closed Conversions ★ | Revenue credited to the chat thread that actually won the deal. |
| Anonymous Attribution via UTM / Referrer ★ | Session links to checkout even with no identified visitor. |
| Lead UTM Capture | UTM parameters stored on the lead record to show which campaigns generate leads. |
| Device Type Tracking NEW | Mobile, desktop or tablet recorded per conversion. |
| Customer value | |
| Customer Lifetime Value (CLV) ★ | Total spend, order count and ARR rolled up per customer. |
| VIP Customer Routing ★ | High-LTV customers jump the queue, reach senior agents and trigger their own alerts. |
| Lead capture, scoring & management | |
| Lead Capture Via Chat ★ | Name, email and company captured naturally in conversation, no form. |
| Composite Intent Score ★ | 0-100 from pricing / demo / cart / chat / cadence / scroll: intent, not just traffic. |
| Lead Quality Tiers NEW | Cold / Warm / Hot / Ready classification by score. |
| High-Value Lead Tagging NEW | Sessions over five pages earn a high-value badge. |
| Lead Source Breakdown NEW | Stacked bar of leads by source percentage: which channels bring the best. |
| Lead Country Breakdown NEW | Leads ranked by country with flags. |
| Lead Session & Page Analytics NEW | Sessions, pages, time-on-site, browser and OS per lead. |
| Lead Status Workflow NEW | Move every lead through New → Contacted → Qualified → Closed. |
| Lead Search by IP / City / Country NEW | Filter lead cohorts by location. |
| Lead-to-CRM Contact Bridge ★ | Threshold or manual bridge to a CRM contact, deduped on email, consent-gated. |
| Outreach | |
| Template Library with {{Variables}} ★ | Markdown templates with smart variables like {{name|fallback}}. |
| Template Live Email Preview | See the message rendered with resolved variables before you send. |
| Template Category & Tone | Organise and filter templates by category and tone. |
| AI Tone Rewriter ★ | Rewrite the tone of a draft while keeping every variable intact. |
| Template Archive & Soft Delete | 30-day recovery window for archived templates. |
| AI-Drafted Next-Step Messages ★ | Personalised follow-ups built from page history, views, chat and LTV. |
| Alerts & routing | |
| Slack Sales Alerts ★ | Ping the team on score >90, a returning customer on /pricing, or chat keywords. |
| Hot Lead Notifications NEW | An in-app bell fires at score 70+ with a 7-day cooldown. |
| Integration | |
| Connector Pattern for Billing ★ | A BillingMirror per platform maps its paid-order event to one universal schema. |
| invoice.paid Event Contract ★ | One billing event fires the full attribution join, no checkout SDK. |
| WHMCS Integration (Reference) NEW | Reference-grade sync of invoices, clients, orders and line items. |
| Stripe Events Bridge NEW | invoice.payment_succeeded and subscription events into Sales Bridge. |
| Paystack Events Bridge NEW | payment.success transactions synced, NGN-aware. |
| Shopify Orders Bridge NEW | orders.paid webhook brings store orders in. |
| Custom Checkout via API NEW | Fire invoice.paid from your own backend for identical attribution. |
| Experience, attribution & export | |
| Country-Aware Routing NEW | Route customers to the local gateway, hours and language. |
| Revenue by Top Sources | Top six sources ranked by conversions, so you fund what earns. |
| CSV Export of Conversions | Every conversion with all columns, ready for your warehouse or board deck. |
| CSV Export of Sessions | Pages, time, bounce, threat score and conversion link per session. |
| CSV Export of Lead Scores | IP, score, tier, source and engagement metrics for your CRM. |
Everything teams ask before they wire their billing in: connectors, renewals, reliability and export.
invoice.paid via the OpsIQ API after a successful payment. Your custom backend gets the same attribution as a Stripe-connected one: first touch, last touch, the full multi-touch path and new-vs-renewal detection all included.invoice.paid-style event fits; no platform name is hardcoded anywhere, and the per-row badge is driven by your enabled connectors.