> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fyno.io/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fyno.io/docs/_mcp/server.

# Real-time Dashboard

The Real-time Dashboard shows notification traffic as it happens, over a short rolling window, and refreshes itself automatically every 10 seconds. Where the Analytics Dashboard is built for reporting and trend analysis over days or weeks, the Real-time Dashboard is built for the minutes during and after a send.

> **Note**
>
> The Real-time Dashboard is currently in Beta. Metrics and controls may change between releases.

Navigate to: **Dashboard > Real-time**. Real-time sits under Dashboard in the left menu and is not visible until you click Dashboard.

![](/docs/_fern-img/6991e160820500668429a686ee8aa4aada455cb2a7f41555c3ae07a66850d24e.webp)

The page heading shows the current time next to the dashboard name. The **Live** badge means the dashboard shows live data. There is no Real-time Dashboard for test data.

Use the Real-time Dashboard to:

* Watch a campaign or bulk send as it executes.
* Catch a spike in Error, Failed, or Undelivered while you can still act on it.
* Confirm that a route, template, or provider change behaves as expected right after you ship it.
* Verify traffic is flowing at all before escalating to a provider.

## Global controls

The controls at the top of the page set the scope for every widget on it.

<table>
  <thead>
    <tr>
      <th>
        Control
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Time window
      </td>

      <td>
        Rolling window of traffic to display: 5, 15, 30, or 60 minutes.
      </td>
    </tr>

    <tr>
      <td>
        Compare against the same window yesterday
      </td>

      <td>
        Shows each value next to the same window from the previous day so you can tell a real drop from a normal traffic pattern. See 

        [Comparing with yesterday](#comparing-with-yesterday)

        .
      </td>
    </tr>

    <tr>
      <td>
        Analytics Labels
      </td>

      <td>
        Restricts every metric on the page to the selected labels. Leave empty to see all traffic.
      </td>
    </tr>
  </tbody>
</table>

To keep the same filters every time, select the time window and Analytics Labels you want, then bookmark the page.

The top of the page also has a **Status Guide** link, which opens the full status lifecycle reference, and a countdown to the next automatic refresh. No manual refresh is needed.

## Status summary

The table at the top of the page counts every notification in the selected window at each stage of its lifecycle.

![](/docs/_fern-img/97953ea8c48c168aa7fee857f8fa3b90aa848a52f4160a93e8410ecdac836642.webp)

Every status except Requested shows a percentage below its count. The label under each column heading tells you what the percentage is measured against:

<table>
  <thead>
    <tr>
      <th>
        Statuses
      </th>

      <th>
        Percentage shown
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Error, Failed, Dropped, Attempted
      </td>

      <td>
        % of requested
      </td>
    </tr>

    <tr>
      <td>
        Timeout, Sent, Delivered, Undelivered, No DLR
      </td>

      <td>
        % of attempted
      </td>
    </tr>
  </tbody>
</table>

The table opens with a single **All** row that totals every channel. Click the arrow beside All to expand it and see the same counts broken down by channel, one row per channel, such as SMS, Email, and WhatsApp. Click the arrow again to collapse the breakdown.

![](/docs/_fern-img/64ee91640fb15131313a1261672936a2f9ee1ef9fa3fa6738e8296cdfc52f4b1.webp)

Counts are derived the same way as elsewhere in Fyno:

```
Attempted = Requested − (Error + Failed + Dropped)
Sent      = Requested − (Error + Failed + Dropped + Timeout)
```

> **Note**
>
> Delivery reports arrive after the notification is sent, not at the same time. Fyno counts a notification under Sent as soon as the provider accepts it, but cannot count it under Delivered or Undelivered until the provider reports back, which can take seconds or minutes. Delivered therefore reads lower than Sent for a while after a send, and on a 5- or 15-minute window it may read zero while Sent is in the thousands. This is expected. Widen the window to 60 minutes before concluding that delivery has stalled.

## Trend cards

![](/docs/_fern-img/f6f1ec45343d7ac64d7b95f19fa74e1eb0357d43b60b80f9476e07138264aa75.webp)

Four cards plot the shape of traffic across the window. Each card shows its total for the window, a trend line, and Max, Min, and Avg below the chart. The vertical axis scales to the data in the window.

<table>
  <thead>
    <tr>
      <th>
        Card
      </th>

      <th>
        What it shows
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Requested
      </td>

      <td>
        Requests received across the window.
      </td>
    </tr>

    <tr>
      <td>
        Attempted
      </td>

      <td>
        Requests handed to a provider across the window.
      </td>
    </tr>

    <tr>
      <td>
        Delivered
      </td>

      <td>
        Notifications confirmed as delivered across the window.
      </td>
    </tr>

    <tr>
      <td>
        Undelivered
      </td>

      <td>
        Notifications the provider could not deliver across the window.
      </td>
    </tr>
  </tbody>
</table>

Max, Min, and Avg are the highest, lowest, and average values across the points plotted in the window.

> **Note**
>
> Hovering over any point on one of the four charts shows the values at that exact time across all four cards.

The time of the hovered point is shown in the top-right corner of each card. The hover moves through the window one minute at a time, so no minute in the window is skipped.

## Delivery rates

The Delivery rates table breaks delivery performance down for the same window.

Use the dropdown in the section heading to switch between three views:

![](/docs/_fern-img/3d04721e2c5ad0a1545c7fd587cc6a6e1ad64d0a6829d2870315c44a7ea1552d.webp)

* **Notification Events Delivery Rates**: grouped by notification event, for pinpointing which event is degrading.
* **Provider Delivery Rates**: grouped by provider, for spotting whether a drop is limited to one provider.
* **Analytics Labels Delivery Rates**: grouped by label, for tracking a campaign or business initiative as a whole.

#### Notification Events

![](/docs/_fern-img/2793ba6acd694ac0c0eb6f63bd4a24a832a61c341569c765143f7c59c9dcbf82.webp)

#### Provider

![](/docs/_fern-img/123bc7253b88776d8f5380c88236b26f1a988a50baa32bb6ecd5cd60f44d3e32.webp)

#### Analytics Labels

![](/docs/_fern-img/1f12fa3e55fc539019a2e6769d777fbbf56ecc1090e7882aa01da722c1c65b1c.webp)

The table carries the same statuses as the status summary: Requested, Error, Failed, Dropped, Attempted, Timeout, Sent, Delivered, Undelivered, and No DLR.

### Table controls

Two controls sit above the table:

<table>
  <thead>
    <tr>
      <th>
        Control
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Search Notification Events
      </td>

      <td>
        Find a specific notification event instead of scrolling the table. Available only in the Notification Events Delivery Rates view.
      </td>
    </tr>

    <tr>
      <td>
        Columns
      </td>

      <td>
        Choose which status columns the table displays. The button shows how many of the available columns are currently on, such as 10/10.
      </td>
    </tr>
  </tbody>
</table>

The table also has the following controls:

<table>
  <thead>
    <tr>
      <th>
        Control
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Expand / Collapse
      </td>

      <td>
        The 

        `><`

         icon at the right end of the column headings. Collapses the Error, Failed, Dropped, and Timeout columns into a single Not Sent column, so the table fits on screen. Click it again to see each status separately.
      </td>
    </tr>

    <tr>
      <td>
        Full Screen
      </td>

      <td>
        The icon at the top-right of the section. Opens the table in a full-screen view so you can read every column and row without scrolling the rest of the dashboard. Click the icon again to return to the dashboard.
      </td>
    </tr>
  </tbody>
</table>

In full-screen view, the heading shows the selected time window and the refresh indicator.

![](/docs/_fern-img/33151287f4dc3083cd8dea8979be44c6bf9063211d7d6bf8a90170b3ecf4c704.webp)

### Sorting

To sort the table, click the three-dot menu beside a status column heading and choose a sort order. Each option sorts in ascending or descending order.

For every status except Requested, you can sort by:

* **Count**
* **%**
* **% Change**, when comparing with yesterday

> **Note**
>
> **Requested is different.** Requested has no percentage, so its menu has no **%** options. Without the comparison, Requested can only be sorted by count. When comparing with yesterday, its **% Change** options sort by the change in count from yesterday, not by a percentage.

#### Requested

![](/docs/_fern-img/de43b61a3d2c0bd5044bbe66e64a5631cdeb99cda128e828d78e31713a7a16de.webp)

#### Other statuses

![](/docs/_fern-img/5afbe450d3bd9fe4f7f70e262302be0d195550adde2979d9cc2d81e322348dc8.webp)

### Expanding rows

Each row can be expanded using the arrow beside its name, in every view. Expanding a row shows one row per integration that was used, with the channel shown beneath the integration name, and the status counts for that integration alone. A channel appears in more than one row when the notification event, label, or provider used more than one integration on it.

In the Analytics Labels Delivery Rates view, notifications sent without an analytics label are grouped in a **No analytics label** row.

The table shows 20 rows per page by default. Use **Rows per page** and the arrows below the table to change the page size or move between pages.

## Active Alarms

The Active Alarms section shows every [alarm](/docs/alarms) with at least one occurrence in the selected window, including alarms first raised before the window started. You can see what has gone wrong next to the traffic it affected.

![](/docs/_fern-img/5cfd3984da1c8f9674d9e8d40c6e39f8a224c27fc1438259dcaeef48d8c4f84a.webp)

Each alarm appears as a card with:

* The alarm name and its severity: High, Medium, Low, or Info.
* The number of occurrences in the window, with a bar chart of occurrences across the window.
* What the alarm relates to, such as the workflow, notification event, provider, or integration.
* When it last occurred.
* **View**, which opens the full alarm details.

The severity chips in the section heading show the total number of alarms at each severity level in the selected window.

If no alarm has occurred in the selected window, the section shows a message saying all is calm in place of the cards.

### Full-screen view

Click the full-screen icon in the section heading to open Active Alarms in a full-screen view. The heading keeps the severity chips and also shows the selected time window and the refresh indicator. Click the icon again to return to the dashboard.

![](/docs/_fern-img/bc76dcdcb245d1f0507cbe9dda0a2aabe16c7cb8d459e4cf9fab171465f1c69c.webp)

## Channel trends

A card is shown for each channel with at least one notification requested in the selected window. Each card plots Requested and Attempted for every minute in the window, with the total for each shown above the chart. Requested is plotted in grey and Attempted in the channel's colour.

![](/docs/_fern-img/fdc2f0be73e2e3ad1ea7d013a99ec1b6fa14e1bf1ffd68e4948df7c58a2ad44e.webp)

Hover over a point on the chart to see the Requested and Attempted counts for that minute. The time of the hovered point is shown in the top-right corner of the card, and the counts above the chart change to that minute's values.

![](/docs/_fern-img/b5c92312b8f99fddaf3e0a4281e82a70fbb9306b646086732899ce7861febdb1.webp)

## Comparing with yesterday

Select **Compare against the same window yesterday** at the top of the page to see how today's traffic compares with the same window yesterday. Every section of the dashboard except Active Alarms updates to show the comparison.

![](/docs/_fern-img/258bc731222adcd3da9def9c9275a6f4bdfce0c1c47f8313d1f5da4ef216e5da.webp)

### How the change is calculated

Each value gets a change chip with an up or down arrow. The change is calculated differently for Requested and for the other statuses:

<table>
  <thead>
    <tr>
      <th>
        Status
      </th>

      <th>
        How the change is calculated
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Requested
      </td>

      <td>
        The difference in count between yesterday and today. For example, 383,700 requests yesterday and 392,200 today shows ▲8.5K.
      </td>
    </tr>

    <tr>
      <td>
        All other statuses
      </td>

      <td>
        The difference between yesterday's percentage and today's. For example, Delivered at 52.6% yesterday and 95.8% today shows ▲43.2%.
      </td>
    </tr>
  </tbody>
</table>

> **Warning**
>
> The change for **Requested** is a count, not a percentage. Wherever Requested is shown, in the status summary, the trend cards, the delivery rates table, and the channel cards, its chip shows how many more or fewer requests there were than yesterday. Every other status shows a percentage.

### What changes in each section

#### Status summary

The chip for Requested appears below its count. For every other status, the chip appears next to today's percentage.

![](/docs/_fern-img/c9f9d45a48fff73c779a601300143b33b860fdb68572bfb58cfc3b56c121e024.webp)

Hover over a value to see the exact counts for yesterday and today, for example Yesterday: 172,627 and Today: 174,674.

![](/docs/_fern-img/60b94513389508c5a37ef83d81a1a689241e90efc23bf5afb2691567a299c9e4.webp)

#### Trend cards

Each card shows its change chip next to the card name, and its total as today's value followed by yesterday's, for example 387.7K / 383.7K. Yesterday is plotted as a dotted line behind today's line. Max, Min, and Avg are not shown while the comparison is on.

![](/docs/_fern-img/86ead7860c537af8bb9424e206aa4de1a5bb37c996d0d6939b90b37b9653b5c2.webp)

#### Delivery rates

All three views show change chips and hover counts in the same way as the status summary. **N/A** appears in place of a chip when there is nothing to compare, for example a notification event with no traffic today.

**Notification Events**

![](/docs/_fern-img/c30b499a665c199fb86d41a96a56eedf8c5ee7e1ac0a77c3b45222be6b53447a.webp)

**Provider**

![](/docs/_fern-img/f9b49ae929b3c38a7aef5c8f4a0945a7472c23b458a4db1821884cab6a8e502a.webp)

**Analytics Labels**

![](/docs/_fern-img/d546c3345183cff13658c0a2c678e4566039ab7f62f15f839512fec672561c13.webp)

To sort by the change, choose **Sort by Ascending % Change** or **Sort by Descending % Change** from the three-dot menu beside a status column heading.

#### Channel trends

The counts above each chart show today's total followed by yesterday's, with a change chip for each, for example Requested: 388.8K /383.7K. Yesterday's series appear as dotted lines.

![](/docs/_fern-img/8218447a4856b1f9d1a017e9e97bf67100d1a85daef99a7e235488ce79288279.webp)

Hover over a point to see today's and yesterday's counts for that minute.

![](/docs/_fern-img/7a3f4e897d1872560af2e1c6e1600cc5e79eafac3ff276ed4037816ec629f968.webp)