Skip to main content
Card class: HeroCategory: Project Management

At a glance

The percentage of Vortex IQ-filed Intercom conversations that the merchant team has actually closed in the last 90 days. Designed to answer the merchant question: “is the audit programme working, or am I paying for findings that nobody actions?” Intercom is messenger-first; the typical merchant has Fin AI agent intercepting conversations before a human ever sees them, so this card needs to be read with Fin’s resolution-rate-by-AI in mind: a Fin-on account’s headline number can look excellent while engineering findings rot in a side-channel.
What it countsclosed_findings_90d / (closed_findings_90d + open_findings_90d) × 100, expressed as a percent of Vortex IQ-tagged conversations created in the last 90 days now in closed state.
NumeratorConversations with tag:vortex_iq AND state:closed AND created_at >= now-90d.
DenominatorAll conversations with tag:vortex_iq AND created_at >= now-90d, regardless of state.
Status filterClosed counts as resolved; Open and Snoozed count as unresolved. Snoozed in Intercom usually means “remind me in N days”; on a Vortex IQ conversation it means waiting on a developer, so still unresolved.
Issue type filterAll Vortex IQ-tagged conversations included. The category sub-tags (vortex_iq:catalogue, vortex_iq:checkout, vortex_iq:performance, vortex_iq:seo) do not filter the rate; they exist for breakdown views.
Project / board scopeSingle Intercom workspace. Multi-workspace accounts (rare) connect each workspace as a separate Vortex IQ instance.
Fin AI Agent closuresCounted as resolved. If Fin closes a Vortex IQ conversation (rare; Fin is trained on Articles, not technical findings) it counts toward the numerator. The merchant should monitor Fin’s confidence on vortex_iq tickets specifically; a Fin closure on a technical bug usually means Fin replied with a generic “we’ll look into it” canned answer, which is not a real resolution.
Custom Bot deflectionsIf a Custom Bot resolves a Vortex IQ conversation without human handoff, it counts as closed. Same Fin-side caveat applies: bots rarely actually fix bugs.
Reopened conversationsIf a conversation is closed then reopened, it counts as unresolved at the moment of measurement. Intercom auto-reopens conversations when the user replies after closure.
API endpointPOST /conversations/search with {"query":{"operator":"AND","value":[{"field":"tag_ids","operator":"IN","value":["<vortex_iq_tag_id>"]},{"field":"state","operator":"=","value":"closed"},{"field":"created_at","operator":">","value":<now-90d-epoch>}]}} for the numerator. Page size 50; the search endpoint is rate-limited at 1000/hour on Intercom Pro and below, higher on Premium.
Time window90D rolling. Anchored on the filing date; an old finding closed today does NOT count if it was filed more than 90 days ago.
Alert trigger<50%. At 50% you are leaving as many findings open as you close, the point at which the backlog grows faster than the team clears it.
Sentiment thresholdsGood >= 75%, warn 50-75%, critical <50%.
Time zoneWorkspace timezone in Settings -> Workspace -> General.
Rolesowner, operations

Calculation

Calculated automatically from your Intercom data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A US SaaS-meets-DTC subscription-box brand on Shopify Plus running Intercom Pro with Fin AI Agent enabled and 4 Custom Bots routing intent. Snapshot taken on 02 May 26 at 13:00 ET, looking back over the rolling 90 days from 02 Feb 26.
BucketCountNotes
Vortex IQ conversations filed in window78Findings filed via API to a “vortex_iq” team inbox
Closed by human teammate41The honest engineering work
Closed by Fin AI Agent9Mostly cosmetic / SEO findings Fin had Article context for
Closed by Custom Bot2Two findings the merchant had pre-built bots for (image-alt, missing-meta)
Snoozed (counts as open)6Waiting on engineering sprint
Open (no movement)20Active findings
Resolution rate(41 + 9 + 2) / 78 = 52 / 78 = 66.7%Amber, healthy mid-range
The card reads 67%. Five observations:
  1. The 9 Fin closures need scrutiny. Fin AI Agent resolves a conversation by replying with content from the merchant’s Articles (Help Centre). On a Vortex IQ finding, Fin closing the conversation usually means it replied with “we have noted your feedback” or a generic “we are looking into it” message and the customer (in this case Vortex IQ as the API filer) did not push back. The conversation is closed in Intercom but the underlying issue is unresolved. Audit the 9 Fin closures monthly; if the underlying issues are still happening, train Fin to defer to a teammate on tag:vortex_iq conversations.
  2. 67% with Fin enabled is the merchant-reality-check number. Subtract the 9 Fin closures and the rate drops to (41+2)/78 = 55%, which is the human-action resolution rate. This is the truer signal for whether the audit programme is paying its way. Vortex IQ Mind investigates the gap when it widens.
  3. The 6 Snoozed conversations are the leading indicator of capacity strain. Intercom’s Snooze feature is the engineer’s “I’ll come back to this on Monday” button; in practice it becomes “I’ll come back to this never”. Pair with int_vortexiq_findings_abandoned to confirm.
  4. Pair with shopify.refund_rate. If refund rate is steady or falling AND this card sits at 67%, the audit programme is paying for itself, the unclosed findings are probably the lower-impact ones. If refund rate is climbing despite findings being closed (especially Fin-closed), the team is closing the wrong findings cosmetically.
  5. Subscription-box brands have a 7-30 day customer cadence; findings that show up between renewal cycles get prioritised lower. A finding filed 4 days after a renewal will sit Snoozed for 25 days waiting for the next renewal cycle to test the fix in production. This is normal but pulls the rate down. Compensate by setting a hard SLA on vortex_iq conversations (next-update within 5 days) regardless of renewal cadence.
  6. Reconcile with int_open_tickets. If global Intercom backlog is also above the team’s normal mark, this rate dropping is symptomatic of Inbox overload, not of audit-programme failure. The action is to add capacity (a temp teammate) or to enable Fin on a wider intent set; not to question the audit.

Sibling cards merchants should reference together

CardWhy pair it with Finding Resolution RateWhat the combination tells you
VortexIQ Findings OpenThe unresolved-count counterpart.Open count high + resolution rate low equals findings filed but never closed, the worst possible state.
Abandoned Findings (>14d no movement)The “silent-leak” subset; especially relevant on Intercom because Snoozed conversations age silently.Abandoned rising while this rate falls equals the team is losing ground specifically.
Avg Time-to-Fix (days)Cycle-time peer. The rate tells you whether findings close; this tells you how fast once they do.Rate green + time-to-fix slow equals team eventually ships but late; rate red + time-to-fix fast equals team ships some quickly and abandons the rest.
Open Tickets (all)Total Intercom Inbox backlog context.Both elevated equals teammate team overloaded; rate dropping in isolation equals findings deprioritised specifically.
Avg Cycle TimeTriage-health peer for the whole queue.Cycle time creeping up while this rate falls equals systemic triage breakdown.
Refund Rate (Shopify / BigCommerce / Adobe)The downstream truth metric an audit programme should protect.Refund rate flat or falling + rate at 60%+ equals the programme is paying for itself; refund rate climbing despite high resolution rate equals team is closing low-impact findings (or Fin is closing them prematurely).
Customer Service Sentiment (Shopify)The retention-side outcome of running this programme well.Rate climbing + sentiment climbing equals the audit story works; sentiment flat while rate climbs equals Fin is closing things customers consider unresolved.
Datadog Operational Health ScoreSibling-platform health score for technical findings.Datadog health green + this rate green equals the team is keeping pace with both reliability and audit work.

Reconciling against the vendor’s own dashboard

Where to look in Intercom’s own dashboard: Intercom does NOT provide a single “tag-scoped resolution rate” gauge, so this card is computed by Vortex IQ from the Conversations Search API. To verify it manually:
Reports -> Conversation reports filtered to tag = vortex_iq, date range last 90 days. Read the percentage of Closed against Total opened. That is the same calculation this card runs. Inbox -> Search with tag:vortex_iq state:closed, gives the numerator population at a glance. [Saved Inbox view -> “Vortex IQ findings”] if you have set one up, gives the count without re-typing the filter.
Why our number may legitimately differ from Reports’ number:
ReasonDirectionWhy
Time zoneBoundary days offReports honours the workspace’s configured timezone; the card uses the same workspace timezone but rounds the rolling 90-day window to UTC midnight for cross-connector arithmetic. Sub-1% gap.
Search API rate limitBrief gapsConversations Search is rate-limited at 1000/hour on Pro and below. On polling-burst minutes the card may use a cached prior value; Reports queries the analytics warehouse directly and is unaffected.
Reopened conversationsOurs lowerIf a conversation was closed then reopened in the 90-day window, we count it as unresolved. Some Reports views count “ever closed” rather than “currently closed”.
Tag inclusionOurs stricterWe require literal tag:vortex_iq. Legacy tags drop out of our population.
Snoozed conversationsOurs stricterWe treat Snoozed as unresolved. Some default Inbox views suppress Snoozed (the conversation is hidden until the snooze ends).
Fin AI Agent closuresSameWe count Fin closures the same way we count human closures (both move state to closed). Some Reports views break Fin out separately under “Resolved by Fin”.
Custom Bot deflectionsSameWe count bot-resolved conversations the same as human-resolved.
Cross-connector reconciliation:
CardExpected relationshipWhat causes the divergence
shopify.refund_rate / bigcommerce.refund_rate / adobe_commerce.refund_rateInverse correlation. Higher resolution rate should reduce refund rate over a 4-8 week trailing window.Resolution rate up + refund rate up equals team is closing low-impact findings (likely Fin auto-closing); resolution rate down + refund rate down equals findings were duplicates or stale.
shopify.customer_service_sentimentPositive correlation, 2-4 week lag.Sustained 70%+ resolution rate predicts CSAT lift of 2-4 points within a quarter. On Intercom specifically, watch for the inverse: rate up but sentiment flat usually means Fin is closing things customers feel are unresolved.
datadog.dd_health_scoreIndependent peer; correlates only when the audit is dominantly technical.Both green equals balanced engineering culture; technical findings closing fast and reliability holding.

Known limitations / merchant FAQs

The rate dropped 15 points this week. What changed? Three usual causes, in order of likelihood:
  1. Audit volume up. Vortex IQ filed more findings than usual. The denominator grew faster than the team’s closure rate. Often resolves itself within 2-3 weeks.
  2. Capacity loss. A senior teammate on holiday, or a product launch swallowing engineering attention. Pair with Open Tickets (all); if global Inbox backlog is also up, capacity is the answer.
  3. Workflow drift. A Custom Bot or Workflow that auto-tagged or auto-routed Vortex IQ conversations turned off. Open Operator -> Custom Bots and confirm the vortex_iq rules are still active.
Fin AI Agent is closing my Vortex IQ conversations. Is that a real resolution? Often no. Fin closes by replying with content from your Articles. Vortex IQ findings are technical bug reports filed via API; Fin is unlikely to have a relevant Article. If Fin closes a finding, it usually replied with a generic “we have noted your feedback” canned answer, which is not a real resolution. Audit Fin’s vortex_iq-tag closures monthly. If the underlying issues persist, train Fin to defer to a teammate on tag:vortex_iq conversations: in Fin Settings -> Audience, exclude tag:vortex_iq from Fin’s intent matching. A finding closed today but it was filed 95 days ago. Does it count? No. The window is anchored on the filing date, not the closure date. A conversation filed outside the 90-day window does not appear in the denominator at all, even if it just closed. What is a healthy rate on Intercom?
  • 75%+ : healthy. Audit programme is working; team has slack.
  • 60-75% : normal for a maturing programme. Acceptable.
  • 50-60% : warn. Team is straining; investigate triage process.
  • <50% : critical. Findings are filed faster than they are closed.
My headline rate is 85% but my CSAT is flat. What is going on? Classic Fin-driven inflation. Fin closing 30%+ of vortex_iq conversations with generic replies pushes the headline number up while underlying issues remain. The honest signal is the human-action rate: subtract Fin closures and bot deflections from the numerator and recompute. If that drops the rate below 60%, the headline is misleading. Fin makes a great front line for end customers; it is not a substitute for engineering work on Vortex IQ findings. Snoozed conversations counted as unresolved annoy my team. Why? Because they are unresolved. Snooze is the engineer’s “I’ll come back to this on Monday” button; in practice it is the silent-death path for findings. We treat Snoozed as open to surface this honestly. If the team uses Snooze legitimately (waiting for a customer reply on a real customer ticket), this is not a problem; for Vortex IQ tickets the customer is Vortex IQ itself, so Snooze almost always means “deferred”. Pair with Abandoned Findings. My account uses Inbox teams. Why does the gauge show a single number? The card aggregates by default across all teams. To break out per-team, build a Stacked Panel in the Vortex IQ Nerve Centre with multiple instances scoped via a custom config flag (vortex_iq.team_id_filter). Alternatively, set Conversation Reports to filter by team in Intercom for the same answer. A reopened conversation dropped my rate by 1 point. Can I exclude it? A closed conversation that gets reopened (the customer replied) is genuinely no longer resolved, so the rate correctly drops. If reopens are common (>5% of closed conversations), it points to a quality-of-fix problem. Custom Bots resolved 12 of my findings without human input. Should I trust that? Depends on the bot. If the bot ran a workflow that fixed the underlying issue (rare for technical findings), trust it. If the bot replied with a templated message and closed the conversation, do not. Audit each Custom Bot’s vortex_iq-tag closure logs monthly. Why is the alert threshold 50% and not 70%? 50% is the breakeven point at which the team is closing one finding for every one filed. Below 50% the backlog grows mathematically; above 50% it shrinks. A 70% threshold would over-page in the first quarter of any new audit programme. My account is on Intercom Premium with the Conversational Support Funnel. Does that change anything? The CSF report breaks out Self-Serve / Proactive / Human-resolved buckets. This card aggregates all three (any state-closed conversation counts as resolved regardless of which path closed it). For a path-broken-out view, build the same query in Intercom Reports and group by Resolved by. Product Tours triggered by an audit finding. Are they captured? No. Product Tours do not create conversations and so are not in the population of this card at all. If you are running Vortex IQ-driven Tours (e.g., a guided “click here to fix the broken filter” tour), capture engagement separately through the Tours analytics, not this card.

Tracked live in Vortex IQ Nerve Centre

Finding Resolution Rate (90d) is one of hundreds of KPI pulses Vortex IQ tracks across Intercom and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.