> ## Documentation Index
> Fetch the complete documentation index at: https://docs.insito.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Screens & Events

> The registry of events and screens your app can trigger surveys on — auto-discovered, declared in code, or added by hand.

Every event key and screen your app can trigger a survey on lives in a variable
registry, split into two settings tabs: **Events** and **Screens**. Open them
from [admin.insito.app](https://admin.insito.app) → **Settings → \[your app
name] → Events** (or **Screens**). They power the searchable selects in each
survey's [Trigger](/dashboard/triggers) tab.

Each tab has two lists:

* **Available** — approved variables that show up in the trigger picker.
* **Auto-discovered** — names the SDK has reported that are waiting for your
  approval before they can be used.

## Where variables come from

Each variable has a **source**:

| Source                    | How it's created                                                                                                                       | Approved?                                               |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| **Auto** (`sdk_auto`)     | The SDK fired it at runtime — a `trigger()` call (events) or a screen-map flush (screens).                                             | No — waits in **Auto-discovered** until you approve it. |
| **Declared** (`sdk_init`) | Listed in [`MicroSurvey.init({ events, screens })`](/sdk/react-native/configure#events-and-screens) and sent on the next `identify()`. | Yes — appears in **Available**.                         |
| **Manual**                | Added here in the dashboard.                                                                                                           | Yes — appears in **Available**.                         |

## The approval gate

Auto-discovered names land in the **Auto-discovered** list with `approved =
false`. They are **not** selectable in the survey builder until you approve
them — this keeps typos and one-off event names out of your trigger picker.

* Click **Approve** on a row to move it into **Available**.
* Use **Approve all** to clear the whole waiting room for that tab at once.

Declared and manual variables skip the gate — they're approved on creation.

## Auto-discovery toggles

Auto-discovery is controlled **per type**. Each tab has its own toggle:

* **Auto-discover events** (Events tab) and **Auto-discover screens** (Screens
  tab) are independent.
* When a toggle is off, new names of that type **stop being added** to
  Auto-discovered. Existing variables keep updating their "last seen" time.
* Declared and manual variables are never affected.

Turning a toggle back on resumes discovery from that point; it doesn't backfill
names fired while it was off.

## Statuses

Badges on each row tell you whether a variable is wired up:

* **Verified** — the SDK has fired this event / reported this screen.
* **Not seen yet** — declared or added manually but never observed. Double-check
  the name matches your app code exactly (names are case-sensitive).
* **Auto** — discovered from runtime traffic (still needs approval).

## Adding, editing, renaming, deleting

* **Add** an event or screen with a name and optional display label — useful to
  set up a trigger before the relevant app version ships.
* **Edit** the display label and description on any variable to document it for
  teammates.
* **Rename** the key itself. Because triggers reference the key, a rename
  **cascades** into every survey that uses it (both live and draft
  configurations). If any survey references the key, you'll be asked to confirm
  before the rename is applied.
* **Delete** any variable regardless of source. If it's referenced by a survey
  you'll get a confirmation first. Note that SDK-reported names reappear in
  **Auto-discovered** the next time the SDK sends them (unless you've turned the
  matching auto-discovery toggle off).

<Note>
  The fastest way to populate the registry with approved variables is to declare
  your key events and screens in code — see
  [`events` and `screens`](/sdk/react-native/configure#events-and-screens) in
  the SDK config. Declared variables are approved automatically.
</Note>

## Using variables in a trigger

When you configure a survey's **App event** or **Screen visit** trigger, the
name field is a searchable select backed by the **Available** list. You can
still type a brand-new name (it registers as a manual, approved variable), but
auto-discovered names must be approved first before they appear. If the list is
empty, the picker links straight back to the matching Events / Screens tab.
