{% extends "base.html" %} {% block content %}

Behavioral Signals

Presence is only one slice. This page exposes the broader behavioral event surface used for timing, read, typing, and response analysis.

{% csrf_token %}

Behavioral Event Statistics

Primary source is `gia_events` in Manticore. When unavailable, this page falls back to Django `ConversationEvent` shadow rows.

Source: {{ behavioral_stats_source }}
Contacts: {{ behavioral_totals.contacts }} Events: {{ behavioral_totals.total_events }} Presence: {{ behavioral_totals.presence_events }} Read: {{ behavioral_totals.read_events }} Typing: {{ behavioral_totals.typing_events }} Messages: {{ behavioral_totals.message_events }} Abandoned: {{ behavioral_totals.abandoned_events }}

By Transport

{% for row in transport_stats %} {% empty %} {% endfor %}
Service Contacts Total Presence Read Typing Messages Abandoned Last Event TS
{{ row.service }} {{ row.contacts }} {{ row.total_events }} {{ row.presence_events }} {{ row.read_events }} {{ row.typing_events }} {{ row.message_events }} {{ row.abandoned_events }} {{ row.last_event_ts }}
No behavioral transport summaries available.

By Contact

{% for row in behavioral_stats %} {% empty %} {% endfor %}
Contact Service Total Presence Read Typing Messages Abandoned Last Event TS
{{ row.person_name }} {{ row.service }} {{ row.total_events }} {{ row.presence_events }} {{ row.read_events }} {{ row.typing_events }} {{ row.message_events }} {{ row.abandoned_events }} {{ row.last_event_ts }}
No behavioral events found in either Manticore or ConversationEvent shadow rows.
{% endblock %}