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

# Callbacks

Use the following callbacks to get notified on certain state changes of the Gleap widget. This enables you to create an even deeper integration with Gleap.

## On initialized

This allows you to get notified once Gleap is initialized and ready.

```javascript theme={null}
Gleap.on("initialized", () => {
  console.log("Gleap got initialized and is ready :)");
});
```

## On notification count updated

This allows you to get updates on the unread notification count.

```javascript theme={null}
Gleap.on("unread-count-changed", (unreadCount) => {
  console.log("unread-count-changed", unreadCount);
});
```

## On open

This allows you to get notified once Gleap opens.

```javascript theme={null}
Gleap.on("open", () => {
  console.log("Gleap did open.");
});
```

## On close

This allows you to get notified once Gleap closes.

```javascript theme={null}
Gleap.on("close", () => {
  console.log("Gleap did close.");
});
```

## On product tour completed

This allows you to get notified once a product tour gets completed.

```javascript theme={null}
Gleap.on("productTourCompleted", (data) => {
  console.log(data);
});
```

## On conversation started

This allows you to get notified when the user starts a new conversation (with or without a bot workflow).

```javascript theme={null}
Gleap.on("conversation-started", (data) => {
  console.log("User started a new conversation with optional workflow.");
  console.log(data.workflowId);
});
```

## On feedback sent

This allows you to get notified once feedback is sent.

```javascript theme={null}
Gleap.on("feedback-sent", (formData) => {
  console.log("Gleap did send a feedback item.");
  console.log(formData);
});
```

## On outbound response sent

This allows you to get notified once a survey got answered.

```javascript theme={null}
Gleap.on("outbound-sent", (outboundData) => {
  console.log("Gleap did send survey results.");
  console.log(outboundData);
});
```

## On conversation rating

This allows you to get notified when a user submits a conversation rating in the widget.

```javascript theme={null}
Gleap.on("rating-sent", (outboundData) => {
  console.log("User submitted conversation rating.");
  console.log(outboundData);
});
```

## On flow started

This allows you to get notified once a Gleap flow is started.

```javascript theme={null}
Gleap.on("flow-started", (flow) => {
  console.log("The user selected a flow");
  console.log(flow);
});
```

## On error while sending feedback

This allows you to get notified if an error occurs while Gleap is trying to send a feedback item.

```javascript theme={null}
Gleap.on("error-while-sending", () => {
  console.log("Ouch, something went wrong.");
});
```

## On checklist loaded

This allows you to get notified when a checklist is loaded.

```javascript theme={null}
Gleap.on("checklist-loaded", (data) => {
  console.log("Checklist loaded:", data);
});
```

## On checklist step completed

This allows you to get notified when a user completes a step in a checklist.

```javascript theme={null}
Gleap.on("checklist-step-completed", (data) => {
  console.log("Step completed:", data.stepId);
});
```

## On checklist completed

This allows you to get notified when a user completes an entire checklist.

```javascript theme={null}
Gleap.on("checklist-completed", (data) => {
  console.log("Checklist completed!");
});
```
