# Events

{% hint style="info" %}
Before using these events, ensure that the Frontnow Advisor has been properly initialized. For setup instructions, please refer to the [Getting Started](https://docs.frontnow.com/advise/4/introduction/getting-started) page.
{% endhint %}

{% hint style="success" %}

#### Google Analytics Integration

If your site already integrates with Google Analytics, all of the advisor events will be automatically forwarded with the prefix "***frontnow:\[eventname]"***

Examples: ***frontnow:open*** or ***frontnow:message***
{% endhint %}

### `ready`

This event gets triggered when the Frontnow Advisor is initialized.

```javascript
advisor.on('ready', () => {
    console.log('Advisor is ready!');
});
```

### `open`

This event gets triggered when the Frontnow Advisor is opened.

```javascript
advisor.on('open', () => {
    console.log('Advisor is open!');
});
```

### `close`

This event gets triggered when the Frontnow Advisor is closed.

```javascript
advisor.on('close', () => {
    console.log('Advisor is closed!');
});
```

### `message`

This event gets triggered when a message is received.

```javascript
advisor.on('message', (data) => {
    console.log('Received message:', data);
});
```

```jsdoc
/**
 * @typedef {Object} MessageEventData
 * @property {string} value - The content of the message.
 */
```

### `recommended-question`

This event gets triggered when a recommended question is clicked.

```javascript
advisor.on('recommended-question', (data) => {
    console.log('Recommended question:', data);
});
```

```jsdoc
/**
 * @typedef {Object} RecommendedQuestionEventData
 * @property {string} value - The prompt text of the recommended question.
 */
```

### `discovery-topic`

This event gets triggered when a discovery topic is clicked.

```javascript
advisor.on('discovery-topic', (data) => {
    console.log('Discovery topic:', data);
});
```

```jsdoc
/**
 * @typedef {Object} DiscoveryTopicEventData
 * @property {string} topic - The identifier of the discovery topic.
 * @property {string} title - The title of the discovery topic.
 * @property {string} value - The prompt text for the discovery topic.
 */
```

### `document-click`

This event gets triggered when a document is clicked.

```javascript
advisor.on('document-click', (data) => {
    console.log('Document clicked:', data);
});
```

```jsdoc
/**
 * @typedef {Object} DocumentClickEventData
 * @property {string} title - The title of the clicked document.
 * @property {string} url - The URL of the clicked document.
 */
```
