Lucis / Ops Dashboard
Live ·

Ticketing

incoming · AI triage · live SLA tracking
Auto-triage running

AI orchestration · live

Classifies every incoming ticket and re-runs pattern detection after each batch. Triggered by the Intercom webhook in production.

Open
P0
SLA breached
Triaged
To triage 0
awaiting AI classification
P0 · Critical 0
respond < 1h
P1 · High 0
respond < 4h
P2 / P3 · Standard 0
respond < 24h
Workflow spec · Task E

How this auto-triage works in production

Trigger
Intercom webhook on conversation.created. n8n captures the event and routes the payload to the classify endpoint within seconds. No human click required.
Data inputs
Intercom payload (subject, body, language, member id) joined with Attio member metadata (tier, medical tags, prior tickets, RDV proximity flags). Lab status pulled on-demand from the Lucis Postgres for delay-class tickets.
AI step
A large language model accessed through an internal proxy, with a strict JSON-output prompt that encodes Lucis priority rules (P0 = medical risk, regulator threat, data integrity; P1 = delay without medical urgency; etc.). The agent is fine-tuned on the full history of resolved tickets in our existing ticketing system, so it learns Lucis tone and edge cases. Output is schema-validated and any parse failure falls back to a P1 default for human review.
Human checkpoint
P0 drafts always require one-click Ops review before they go out. P1 drafts pre-fill the reply box in Intercom for fast human send. P2/P3 with classifier confidence above 0.85 auto-send within 4 minutes of triage. Pattern Detector alerts are advisory only and never trigger an outbound message without Ops sign-off.
Failure modes to watch
1 · Sentiment under-rating. Angry members landing in P2/P3 because the AI weights factual content over emotion. Mitigated by a regex layer that promotes any ticket containing high-risk terms (cardio, ARS, urgent, médecin, malaise) to at least P1, and by sampling 20 P2/P3 tickets weekly for manual review.

2 · Hallucinated ETA in drafts. The AI invents a delivery time the lab never confirmed, repeating the original failure mode that broke Claire's trust. Mitigated by a post-processing regex that strips or replaces any explicit time/date phrase unless flagged as confirmed by a partner upstream.
Single metric
Percentage of P0 tickets where the first member response is sent within 60 minutes of ticket arrival. Baseline on the Claire case: 0%. Target after launch: 95%.

Active Risk Summary

Monday · week 21
Network SLA
Critical
Delays >48h
Warning
Range errors
Critical
At-risk members
Critical

Île-de-France · Eurofins result delays

14/16 delays concentrated on 3 centres · 3 members with medical-decision impact
Critical
Owner
Grégoire
Detected
D-5
Hypothesis
Lab saturation + mapping
Next action
Eurofins call · range diff

Alerts

    Priority Queue · this morning

    ordered by risk
    1. Reference range errors
      data-integrity risk
      P0
    2. Member with imminent medical appointment
      Claire M. · cardiology tomorrow morning
      P0
    3. Missing results
      6 cases · re-send within 36h
      P1
    4. Remaining delays >48h
      14 IDF cases
      P1
    5. Partner process question
      Synlab · panel clarification
      P2
    6. Product feedback
      power user
      P3

    SOP · Lab SLA spike

    Published Friday · owner Ops Associate · monthly review

    Objective

    Triage a lab incident spike in under 30 minutes, and make sure no SLA drift stays invisible for more than 24h.

    Trigger

    A Slack alert in #ops-sla fires automatically as soon as one of the following thresholds is crossed over the last 24h.

    • Partner SLA under 80% over the rolling week
    • More than 5 “result delay” tickets in 24h, same partner
    • Any reference range error detected
    • Partner silent for more than 48h on a P0 or P1 ticket

    Triage · 30 minutes max

    1. Snapshot · open the dashboard, capture the 3 key metrics (SLA, TAT, dominant incident type) and the geographic concentration.
    2. Scope · is the spike concentrated on one partner, one centre, one incident type, one time window? If yes, the scope is locked.
    3. Member risk · filter tickets with medical tag or imminent appointment. These cases go to P0, handled within 1h.
    4. Likely cause · pick a hypothesis from the two known families: lab operational or Lucis regression. Document in Notion in 3 lines.
    5. Partner contact · structured message to the account manager with hard numbers, no anecdotes. Template in Notion.

    Escalation

    Within 2h with no partner reply on a P0, escalate to the Ops lead. Within 24h with no partner action plan, escalate to founders with a one-page note backed by numbers. Any incident affecting a medical decision is notified to the Ops lead immediately, regardless of volume.

    Member communication

    For every member impacted by an active incident, a proactive message goes out within 4h with an honest status. No ETA is promised until confirmed by the lab. A recap for the member’s doctor is prepared in parallel if an imminent appointment is mentioned.

    Incident closure

    An incident is closed when SLA stays green for 5 consecutive days, the root cause is documented, and a corrective or contractual action is in place. A short post-mortem is shared in the partner QBR.

    Anti-silence

    The dashboard runs 24/7 on Metabase, Slack alerts stay active outside business hours. A 5-minute human check is part of the morning ops standup. If no one opens the dashboard for 48h, n8n automatically pings the Ops lead.