> For the complete documentation index, see [llms.txt](https://help.usejimo.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.usejimo.com/docs/analyze/success-tracker/events.md).

# Events

Define a user action Jimo detects without code: a click, a hover, an input, a page visit. Create it once, test it, and reuse it in trackers, goals, triggers and segments.

An event is a user action Jimo can detect in your app without code: an element clicked, hovered or present, an input filled, a page visited. You define it once, and every part of Jimo that measures or reacts to behavior can use it.

Events live in **Success Tracker > Events**. Click **New Event** to create one.

## The Events tab

The **Events** tab lists every event of the project: the no-code events created here, and the events your app or your integrations send to Jimo. The list has four columns: **Name**, with the description underneath; **Source**, which is **Jimo no-code**, **Jimo API**, or an integration such as Segment or PostHog; **Created at**; and **Last received at**.

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FqVuY48YeWmwSpYKRrYfz%2FD2-s05-events-tab.png?alt=media&amp;token=9cc391eb-8e3f-49f0-a081-355f17c0617e" alt="Events tab of the Success Tracker: A the Events tab, B an event name with its description, C its source, here Segment, D New Event"><figcaption></figcaption></figure>

Open a no-code event to see its description and the conditions that make it fire.

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FBivT6eCpaxTe7YvBmSSa%2FD2-s06-no-code-event.png?alt=media&amp;token=d73eb35a-0299-49df-906d-197434b5c9c9" alt="A no-code event opened from the Events tab: A its name, next to its code name, B its description, C its conditions, D Test event"><figcaption></figcaption></figure>

{% hint style="info" %}
**The list is not a history.** **Last received at** shows when Jimo last received an event, but the tab does not show how often it was received, nor its history over time. To follow an event over time, create a [feature usage tracker](/docs/analyze/success-tracker/trackers.md#create-a-feature-usage-tracker) on it.
{% endhint %}

## Where events are used

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FyTfe1oyhM8glCjzgM73K%2FD2-11-one-event-four-uses.png?alt=media&amp;token=30b9ca46-4c7e-4351-88a9-0d987fc41fa3" alt="One saved event from Success Tracker > Events feeds four places: tracker steps, the Goal of an experience, the On event trigger of Show on, and the No-Code Events category of segments"><figcaption></figcaption></figure>

| Where                                                                              | What the event does                                                            |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [Trackers](/docs/analyze/success-tracker/trackers.md)                              | A step of an activation tracker, or the action a feature usage tracker follows |
| [Goal](/docs/publish/mesure-outcomes-goal.md)                                      | The outcome an experience is measured against                                  |
| [Show on](/docs/publish/trigger-on-the-right-spot-show-on.md)                      | The **On event** trigger: the experience launches when the event happens       |
| [Segments](/docs/analyze/users-and-segments/audience/segments/create-a-segment.md) | The **No-Code Events** category of the segment builder                         |

## Create an event

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FNd7w1fC3NY7LDd86aw7i%2Fimage.png?alt=media&amp;token=d52c352f-7c80-456e-8eff-9a904b2186c4" alt="Event creation screen"><figcaption></figcaption></figure>

{% stepper %}
{% step %}

### Describe it

| Field           | What to enter                                |
| --------------- | -------------------------------------------- |
| **Name**        | A readable name, such as "Clicked Upgrade"   |
| **Code name**   | A unique identifier for the event            |
| **Description** | What the event captures, for the next person |
| {% endstep %}   |                                              |

{% step %}

### Add its conditions

Add one or more conditions: element, input or current page. See [Add conditions](#add-conditions) below.
{% endstep %}

{% step %}

### Test it

Click **Test event**. Your app opens and shows whether the event fires when you perform the action.
{% endstep %}

{% step %}

### Save it

Click **Save**. The event is now available in trackers, goals, triggers and segments.
{% endstep %}
{% endstepper %}

## Add conditions

Click **Add...** and pick the type of condition. Combine several with **AND** (all must be true) or **OR** (one is enough), and group them with **Logic group** for more complex rules. The trash icon removes a condition.

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2F31fPnppiVc3ltcBu8MPl%2Fimage.png?alt=media&amp;token=40032a6e-0ad9-42fd-a3ac-dff73e076fcb" alt="Condition types: Element, Fills in input, Current page, Logic group"><figcaption></figcaption></figure>

### Element

The event fires based on an element of your app. Click **Select Element** and click the element in your app, or use **Manual selector** to enter its CSS selector and, optionally, its text.

| Behavior            | Fires when the element |
| ------------------- | ---------------------- |
| **Is clicked**      | is clicked             |
| **Is hovered**      | is hovered             |
| **Is present**      | is on the page         |
| **Is not present**  | is not on the page     |
| **Is disabled**     | is disabled            |
| **Is not disabled** | is not disabled        |

When several elements match the selector, choose whether the condition uses the first match or all of them.

The in-app picker does not select a disabled element. For **Is disabled**, enter the selector with **Manual selector**.

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FLO1hFELJi37F72JGY7iA%2Fimage.png?alt=media&amp;token=2f604f56-1303-4149-97e0-3fd060ba2214" alt="Manual selector settings for an element condition"><figcaption></figcaption></figure>

{% hint style="info" %}
**Pick stable selectors.** A selector built on generated class names breaks at the next release of your app. See [Targeting on dynamic apps](/docs/build/positioning/targeting-on-dynamic-apps.md).
{% endhint %}

### Input

The event fires based on what the user types in a field. Click **Select input** and click the field in your app, or enter its CSS selector with **Manual selector**. Then pick an operator:

| Operator                                                               | Matches when the field                   |
| ---------------------------------------------------------------------- | ---------------------------------------- |
| **Is** / **Is not**                                                    | equals, or does not equal, the value     |
| **Contains** / **Does not contain**                                    | contains, or does not contain, the value |
| **Starts with** / **Ends with**                                        | starts or ends with the value            |
| **Matches regular expression** / **Does not match regular expression** | matches, or does not match, the pattern  |
| **Is empty** / **Is not empty**                                        | is empty, or holds anything              |

### Current page

The event fires when the user is on a page whose URL matches the rule. The operators are the same as for inputs, applied to the URL.

## Events created on the fly

The trackers, the Goal and the **On event** trigger also let you create an event on the fly, with the same conditions. That event stays inside the place where you created it. If you will need it in more than one place, create it here instead.

## From your assistant

> "Open the onboarding tour when users click Upgrade."

Your assistant sets an element-click trigger on that one experience, from an element you captured in your app. It is a trigger, not a saved event: events you want to reuse across trackers, goals and segments are created here. See [What to ask?](/docs/integrations/mcp/what-to-ask.md).

## Related

* [Trackers](/docs/analyze/success-tracker/trackers.md): use events as steps
* [Goal: measure outcomes](/docs/publish/mesure-outcomes-goal.md): measure an experience against an event
* [Show on: trigger at the right moment](/docs/publish/trigger-on-the-right-spot-show-on.md): launch an experience on an event
* [Create a segment](/docs/analyze/users-and-segments/audience/segments/create-a-segment.md): target users by the events they performed
