{% extends 'layouts/app.html' %} {% block title %}FM Operations Console{% endblock %} {% block extra_styles %} {% endblock %} {% block sidebar %} {% set active_nav = 'fm_dashboard' %} {% include 'components/sidebar.html' %} {% endblock %} {% block topbar %}

FM Operations

Facilities Management Console

{% endblock %} {% block content %}

FM Operations Dashboard

Queue · Triage · Conversation · Evidence · Inbound Event Audit
ENV Live
Total tickets
{{ kpis.total }}
All time
Open tickets
{{ kpis.open }}
Excluding Done / Cancelled
Urgent open
{{ kpis.urgent }}
Needs immediate attention
Pending triage
{{ kpis.pending_triage }}
Status: NEW

Ticket Queue

All
Urgent
Assigned
Waiting
Blocked
{% if tickets %} {% for t in tickets %}
{{ t.ref }}
{{ t.priority }} {{ t.status }} {{ t.category }}
{{ t.summary[:80] }}{% if t.summary|length > 80 %}…{% endif %}
{{ t.estate }}{% if t.unit %} · {{ t.unit }}{% endif %} {% if t.assignee %} · {{ t.assignee }}{% endif %} · {{ t.updated_at[:16] }}
{% endfor %} {% else %}
No tickets yet.
{% endif %}

Conversation Thread

Select a ticket to view the conversation thread

Ticket Details

View Full Ticket ↗

Inbound Events (Webhook Audit)

/push/events
{% if events %} {% for ev in events %} {% endfor %} {% else %} {% endif %}
Source Type Ticket Received (UTC) Status eventId
{{ ev.source }} {{ ev.event_type }} {{ ev.ticket_ref or '—' }} {{ ev.received_at[:16] }} {{ ev.status }} {{ ev.event_id[:8] }}…
No events yet

WhatsApp JSON Import

/fm/api/import/whatsapp

Drop a JSON file or paste below

LLM-generated WhatsApp conversation JSON → creates FM ticket + conversation thread automatically

New FM Ticket

{% endblock %} {% block scripts %} {% endblock %}