# Hackle Event (Auto-collected)

Events whose Event Key starts with `$` are events managed separately by Hackle.

## 1. Auto-collected Events

{% hint style="info" %}
Auto-collected events are only collected by Web / App SDKs.
{% endhint %}

In the \[Auto-collected Events] section of Event Management, you can view events that are automatically collected without separately sending events.

![Event Management > Auto-collected Events](/files/Ielh5L3iUSPJByyTW7lN)

<table data-full-width="true"><thead><tr><th width="157.93359375">Event Key</th><th width="396.88671875">Description</th><th width="79.78125">Web</th><th width="76.4296875">App</th><th width="73.90625">Billing</th><th width="90.53125">on/off</th></tr></thead><tbody><tr><td><code>$page_view</code></td><td><p>Event collected when a page loads.</p><ul><li>Web: page title</li><li>App: Activity, ViewController</li></ul></td><td>O</td><td>O</td><td>O</td><td>Available</td></tr><tr><td><code>$engagement</code></td><td><p>Collects the page a user stayed on and the time spent as properties.<br>Can be used for the following data analysis:</p><ul><li>Average dwell time per page</li><li>Average dwell time per user</li></ul></td><td>O</td><td>O</td><td>O</td><td>Available</td></tr><tr><td><code>$session_start</code></td><td>Automatically collected when a session starts.</td><td>O</td><td>O</td><td>O</td><td>Available</td></tr><tr><td><code>$session_end</code></td><td>Collected when a session ends.</td><td>O</td><td>O</td><td>O</td><td>Available</td></tr><tr><td><code>$app_install</code></td><td>Collected on the first launch after app installation.</td><td>X</td><td>O</td><td>O</td><td>Available</td></tr><tr><td><code>$app_update</code></td><td>Collected on the first launch after an app update.</td><td>X</td><td>O</td><td>O</td><td>Available</td></tr><tr><td><code>$app_open</code></td><td>Collected when the app is launched or reactivated.</td><td>X</td><td>O</td><td>O</td><td>Available</td></tr><tr><td><code>$app_background</code></td><td>Collected when the app transitions from an active state (foreground) to an inactive state (background).</td><td>X</td><td>O</td><td>O</td><td>Available</td></tr></tbody></table>

## 2. User Property Collection Events

Events collected when a function is called via SDK/API to update user properties.

<table data-full-width="true"><thead><tr><th width="194.95703125">Event Key</th><th width="350.60546875">Description</th><th width="78.82421875">Web</th><th width="77.53515625">App</th><th width="73.84765625">Billing</th><th width="92.7265625">on/off</th></tr></thead><tbody><tr><td><code>$properties</code></td><td>An event automatically created by the SDK when general user properties are updated.</td><td>O</td><td>O</td><td>X</td><td>Not available</td></tr><tr><td><code>$push_subscriptions</code></td><td>An event automatically created by the SDK when the push channel subscription consent among CRM user properties is updated.</td><td>O</td><td>O</td><td>O</td><td>Not available</td></tr><tr><td><code>$kakao_subscriptions</code></td><td>An event automatically created by the SDK when the Kakao Message channel subscription consent among CRM user properties is updated.</td><td>O</td><td>O</td><td>O</td><td>Not available</td></tr><tr><td><code>$sms_subscriptions</code></td><td>An event automatically created by the SDK when the Text Message channel subscription consent among CRM user properties is updated.</td><td>O</td><td>O</td><td>O</td><td>Not available</td></tr></tbody></table>

## 3. CRM Campaign Events

Events occurring from In-App Messages, Push Messages, Kakao Messages, Text Messages, Webhooks, and User Journeys in CRM campaigns are auto-collected and always collected for performance measurement.

<table data-full-width="true"><thead><tr><th width="200.41015625">Event Key</th><th width="370.30859375">Description</th><th width="82.42578125">Web</th><th width="76.4921875">App</th><th width="73.82421875">Billing</th><th width="89.69140625">on/off</th></tr></thead><tbody><tr><td><code>$in_app_impression</code></td><td>Event that occurs when an In-App Message is displayed.</td><td>O</td><td>O</td><td>O</td><td>Not available</td></tr><tr><td><code>$in_app_action</code></td><td>Event that occurs when an In-App Message is clicked.</td><td>O</td><td>O</td><td>O</td><td>Not available</td></tr><tr><td><code>$push_send</code></td><td>Event that occurs when a Push Message is sent.</td><td>X</td><td>O</td><td>O</td><td>Not available</td></tr><tr><td><code>$push_click</code></td><td>Event that occurs when a Push Message is clicked.</td><td>X</td><td>O</td><td>O</td><td>Not available</td></tr><tr><td><code>$kakao_send</code></td><td>Event that occurs when a Kakao Message is sent.</td><td>-</td><td>-</td><td>O</td><td>Not available</td></tr><tr><td><code>$sms_send</code></td><td>Event that occurs when a Text Message is sent.</td><td>-</td><td>-</td><td>O</td><td>Not available</td></tr><tr><td><code>$webhook_send</code></td><td>Event that occurs when a Webhook is sent.</td><td>-</td><td>-</td><td>O</td><td>Not available</td></tr><tr><td><code>$journey_entry</code></td><td>Event that occurs when a user enters a journey.</td><td>O</td><td>O</td><td>O</td><td>Not available</td></tr><tr><td><code>$journey_node</code></td><td>Event that occurs when a user enters a specific node (step) of a journey.</td><td>O</td><td>O</td><td>O</td><td>Not available</td></tr><tr><td><code>$journey_complete</code></td><td>Event that occurs when a user completes a journey.</td><td>O</td><td>O</td><td>O</td><td>Not available</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackle.io/en/event-management/hackle-event.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
