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

# Candu SDK Event Names

Candu's SDK emits events to both Candu servers and your customer application. These events help track user interactions and analyze product usage.

To familiarize yourself with all the identifiers, read more about Candu's [Entities](/docs/entities).

All Candu SDK events start with the prefix `candu.sdk`.

# Common Events

Content events are generic events common to every type of content.

Every SDK event includes a core set of identifiers. Depending on the event type, additional properties may be included.

| Identifier    | Type      | Description                                                                                    |
| :------------ | :-------- | :--------------------------------------------------------------------------------------------- |
| `contentId`   | `String`  | Identifies the Content that triggered the event                                                |
| `segmentId`   | `String`  | The Segment that was matched against the user when the event fired.                            |
| `documentId`  | `Integer` | The Document ID associated with the Segment                                                    |
| `versionId`   | `String`  | A digest hash uniquely identifying the document version. Used for tracking publishing changes. |
| `placementId` | `String`  | The matched Placement that triggered the content display. Useful for debugging.                |

## candu.sdk.content

Fired when a user views content on their screen. This event only triggers if the user has actually seen the content on their screen.

# Component Events

These are useful for tracking interactions.  Component events always have a `nodeId` associated with them.  Note that components do not have identifiers as they're a logical grouping of `Nodes`.

Component events have the following identifiers:

| Identifier    | type      | Description                                                                                                                                                |
| :------------ | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `contentId`   | `String`  | The Content that fired the event.                                                                                                                          |
| `segmentId`   | `String`  | The Segment that was matched against the user when the event fired.                                                                                        |
| `documentId`  | `Integer` | The Document associated with the Segment.                                                                                                                  |
| `versionId`   | `String`  | A digest hash of the document uniquely identifying a specific version of the Document. Useful for tracking publishing changes.                             |
| `placementId` | `String`  | The Placement that matched to trigger the Content. Useful for debugging and analytics.                                                                     |
| `nodeId`      | `String`  | The specific node that fired a given event. `nodeId` are **not** uniques across documents, however the combination of `documentId` and `nodeId` is unique. |
| `nodeType`    | `String`  | The type of Node that fired the event.                                                                                                                     |
| `eventName`   | `String`  | \[Optional] The Interaction label associated with a given action inside the node.                                                                          |

## candu.sdk.content.interaction

A generic interaction event. This event is emitted by components like `Button`, `Link`, `Card` and any other component where an interaction can be specified.

## candu.sdk.dismiss

A generic dismiss events. This action is emitted by `Modal` or `Card` when they are dismissed.

## Checklists

### candu.sdk.tutorial.checklist\_group\_complete

Event emitted once when all items in a Checklist have been completed.

Includes the following additional properties:

| Key     | type     | Description         |
| :------ | :------- | :------------------ |
| `title` | `String` | The Checklist title |

Includes the checklist `title` in the payload.

### candu.sdk.tutorial.checklist\_item\_state\_updated

Emitted when an individual checklist item's state changes. Please note that event-driven Checklists do not emit this event.

Includes the following additional properties:

| Key     | type     | Description                                        |
| :------ | :------- | :------------------------------------------------- |
| `title` | `String` | The Checklist title                                |
| `state` | `String` | The Checklist state. Either `Done` or `NotStarted` |

Includes the checklist `title` in the payload,

## Flows

### candu.sdk.flow\_step

A Flow Step has been seen. This actions are emitted by`FlowStep`nodes when they are being displayed as part of a `Flow`.

## Form

### candu.sdk.form\_submit

A Form has been submitted. The `formId` will be included in the body, as well as an encoded payload of all the Form fields.

| Key    | type     | Description   |
| :----- | :------- | :------------ |
| `name` | `String` | The Form name |

## Tour

### candu.sdk.tour\_step\_tooltip

A Tour Step has been viewed.

### candu.sdk.tour\_step\_dismissed

A step has been dismissed.

### candu.sdk.tour\_completed

The Tour has been completed.

## Hotspot

### candu.sdk.hotspot\_tooltip

A Tooltip has been opened.

### candu.sdk.hotspot\_beacon

A Tooltip beacon has been rendered.

### candu.sdk.hotspot\_dismissed

A Hotspot has been permanently dismissed.

### candu.sdk.hotspot\_group\_dismissed

All the Hotspots in a group have been dismissed.

# Experimentation events

## candu.sdk.impression

Tracks experiment variant views, including control group impressions.

A User has seen an Experiment Variant. This happens when there is a matching Placement. In the case of control group, an impression occurs anytime a Placement matches for another Variant.

The event has the following payload:

| Key           | type     | Description                                    |
| :------------ | :------- | :--------------------------------------------- |
| `contentId`   | `String` | \[Optional] The Content being rendered.        |
| `variantId`   | `String` | The Variant to which the User was assigned to. |
| `placementId` | `String` | The Placement that was matched.                |
