---
title: "Check that events arrive"
description: "Send events with the test key and see them within seconds — in the dashboard or from your agent — before you ship."
canonical: "https://www.togohq.ai/docs/verify"
applies_to: "Test keys, mcp.togohq.ai/mcp"
updated: "2026-11-03T00:00:00Z"
---

# Check that events arrive

Send events with the test key and see them within seconds — in the dashboard or from your agent — before you ship.

## Use the test key while you build

Every project has two kinds of write key:

| Key  | Prefix      | Where it goes                                                       |
| ---- | ----------- | ------------------------------------------------------------------- |
| Test | `togo_pkt_` | Development, previews, staging. Shown within seconds; never charted |
| Live | `togo_pkl_` | Production. Charted after the next processing run                   |

Events sent with a test key go through every check a live event gets — the key, the shape, the
clocks, the limits — and then to the test views instead of your reports. So a test event that
arrives is a live event that would have been kept, and your charts stay free of localhost
traffic.

## See them in the dashboard

Open your project in [app.togohq.ai](https://app.togohq.ai), go to **Events** and open the
**Live View** tab. Trigger the flow in your app; each event appears within seconds, with its
properties exactly as sent and what production would do with it.

## Or ask your agent

If your agent is connected to the [Togo MCP server](/docs/mcp), it can check exactly what its test
run sent, each event with its [diagnostics](/docs/reference/event-diagnostics) — what is wrong and the
fix for your agent:

- **[`verify_tracking_by_event_ids`](/docs/reference/mcp-tools#verify_tracking_by_event_ids)** takes
  the event ids the run's `track()`, `identify()` and `setPersonProperties()` calls returned, and
  says which of them never arrived.
- **[`verify_tracking`](/docs/reference/mcp-tools#verify_tracking)** finds the run's events by who
  sent them — the device's `getDeviceId()`, or a `userId` — and, given the event names you expect,
  says which never arrived.

Both return an `errorCount`, a `warningCount` and a `missingCount`; when all three are 0, the run
sent everything you expected and Togo found nothing to fix. Call the SDK's `flush()` before checking,
since it uploads in batches.

A prompt that works:

```text
Run the signup flow with Togo's test key, then use verify_tracking with this
browser's device id to check that signup_completed, project_created and identify
arrived. Apply each fix it names and check the new run until every count is 0.
```

## After you deploy

Production uses the live key, and live events reach your reports after the next processing run,
a few hours later ([When your data shows up](/docs/concepts/data-freshness)). To confirm production
is sending without waiting, open **Events → Live View** in the dashboard and switch to
**Production**: it shows copies of live traffic for 20 minutes, with property names but never
values. Your agent's tools check test-key events only.

## Nothing arrived?

Start with [No events showing up](/docs/troubleshooting). The two most common causes are a write
key that did not reach the build and a serverless function that returned before
`flush()`.
