# Set-up

## Installation

To get started with IntelliProve widgets, include the IntelliProve widget bundle in your application. This script must be loaded **once**, in the `<head>` of your document.

The bundle registers all IntelliProve web components globally, making them available as custom HTML elements throughout your application.

```javascript
<script
  type="module"
  src="https://cdn.intelliprove.com/packages/intelli-widgets/v3/latest.js">
</script>
```

## Create your session

All IntelliProve web components must be wrapped inside an `<ip-session>` element.

The session component acts as a **global configuration and context provider**, making shared settings — such as authentication and language— available to all nested IntelliProve components.

**Key rules & information**

-   All IntelliProve web components must exist within the descendant tree of `<ip-session>`. They are not required to be direct children and can be nested at any level.
-   Standard HTML elements that are not part of IntelliProve may also be placed within `<ip-session>`

| **Session properties** | **Requirement** | **Description** |
| --- | --- | --- |
| `action-token` | **required** | Action token of the user’s current session. Request one via the [Rest API](https://docs.intelliprove.com/technical-docs/rest-api#create-user-action-token). |
| `language` | _optional_ | Language with or without region, e.g. (`en`, `en-GB`). Defaults to the browser language. |

**Code example**

```html
<ip-session
  action-token="eyJhbG..."
  language="en-GB"
>
  <!-- IntelliProve components go here -->
</ip-session>
```

**Library**

[Access our widget library to integrate your first widget →](https://docs.intelliprove.com/technical-docs/main-widget)
