> For the complete documentation index, see [llms.txt](https://docs.lsports.eu/u/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lsports.eu/u/coverage-hub/notifications.md).

# Notifications

Stay informed about coverage changes across the LSports platform

The Coverage Hub Notification Center gives you real-time visibility into coverage changes across LSports ARENA360 platform.

***

## Overview

Notifications keep you informed automatically. When coverage changes, you see it.

The Notification Center has two tabs:

* **Notifications** — the feed of coverage changes
* **Delivery Methods** — how those changes reach you

The **Notifications** tab is split into two sub-tabs:

* **Markets** — changes to market coverage: new markets, market expansions, and settlement support
* **Providers** — changes to provider status: new providers, providers being activated or deactivated

In-app notifications are batched and delivered once per hour.

You can also have coverage changes delivered to your own systems via email or webhook. See [Delivery Methods](#delivery-methods).

***

## Getting Started

On your first visit to the Notification Center, a one-time registration popup appears before you access the feed.

**To register:**

1. Navigate to **Notification Center** in the Coverage Hub sidebar
2. Under **In-app notifications**, toggle on the notification types you want to receive:
   * **Markets**
   * **Settlements**
   * **Providers**
3. Click **Register**

You only receive notifications from your registration date onwards. There is no backfill of earlier coverage changes.

You can configure your preferences at any time from the **Delivery Methods** tab.

***

## Markets Notifications

The **Markets** tab tracks changes to market coverage across providers.

<figure><img src="https://2846470291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ftv77Uhe1UsyYNAhnfDk8%2Fuploads%2Fgit-blob-83a89bb4469664eed951ae8407f015e13b94a35b%2Fnotifications-markets.png?alt=media" alt="Markets notifications tab"><figcaption><p>The Markets tab in the Notification Center</p></figcaption></figure>

| Type                     | What It Means                                                                         |
| ------------------------ | ------------------------------------------------------------------------------------- |
| **New Market**           | A market not previously available on the platform has been added by a provider        |
| **Market Expansion**     | An existing market is now supported by an additional provider                         |
| **Settlement Supported** | A market that previously had no settlement logic now has confirmed settlement support |

Each Markets notification includes:

| Field                    | Description                                           |
| ------------------------ | ----------------------------------------------------- |
| **Timestamp**            | When the change was detected                          |
| **Type**                 | New Market, Market Expansion, or Settlement Supported |
| **Provider**             | Provider name and ID                                  |
| **Sport**                | Sport the market belongs to                           |
| **Market Category**      | Category of the market                                |
| **Market**               | Market name and ID                                    |
| **Market Type**          | PreMatch, InPlay, or both                             |
| **Settlement Supported** | Checkmark if settlement is confirmed                  |

You can filter the Markets tab by **Type**, **Provider**, **Market**, and **Sport**.

***

## Providers Notifications

The **Providers** tab tracks changes to provider availability.

<figure><img src="https://2846470291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ftv77Uhe1UsyYNAhnfDk8%2Fuploads%2Fgit-blob-59ed5b7acc19756d0fb6261a31f521e2808b30e2%2Fnotifications-providers.png?alt=media" alt="Providers notifications tab"><figcaption><p>The Providers tab in the Notification Center</p></figcaption></figure>

| Type             | What It Means                                         |
| ---------------- | ----------------------------------------------------- |
| **New Provider** | A provider appears on the platform for the first time |
| **Activated**    | A provider has become available on the platform       |
| **Deactivated**  | A provider is no longer available on the platform     |

Each Providers notification includes:

| Field           | Description                  |
| --------------- | ---------------------------- |
| **Timestamp**   | When the change was detected |
| **Type**        | Activated or Deactivated     |
| **Provider**    | Provider name and ID         |
| **Market Type** | PreMatch, InPlay, or both    |

You can filter the Providers tab by **Type**, **Provider**, and **Market Type**.

***

## Delivery Methods

Choose how coverage changes reach you from **Notification Center** → **Delivery Methods**.

In-app and email preferences are set per user: everyone on your account picks their own notification types. Webhooks work differently. They belong to the account, and any user on the account can add, edit, or delete them.

<figure><img src="https://2846470291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ftv77Uhe1UsyYNAhnfDk8%2Fuploads%2Fgit-blob-7b9c1a0a7c862a93d94b92101b0b1b728ad5512c%2Fchdeliverymethods.png?alt=media" alt="Delivery Methods tab"><figcaption><p>The Delivery Methods tab, with in-app, email and webhook delivery</p></figcaption></figure>

***

## Webhook Delivery

A webhook sends coverage changes straight into your own systems as an HTTP POST, so alerts can trigger automation instead of waiting for someone to open the platform. Point it at your internal tooling to drive workflows, or at a Slack incoming webhook URL to post alerts into a channel with nothing in between.

The **Webhook** panel on the Delivery Methods tab lists every webhook on your account with its name, URL, and the notification types it delivers.

### Setting up a webhook

<figure><img src="https://2846470291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ftv77Uhe1UsyYNAhnfDk8%2Fuploads%2Fgit-blob-9faf52c14baa45f8ff68c643b15ea1b6bdfaef15%2Fchwebhooks.png?alt=media" alt="Add Webhook dialog"><figcaption></figcaption></figure>

1. Go to **Notification Center** → **Delivery Methods**
2. In the **Webhook** panel, click **Add Webhook**
3. Complete the dialog:

| Field                 | Description                                                                                                                                                      |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**              | Required. A label for this webhook, for example "Risk Tool" or "Slack Alerts"                                                                                    |
| **URL**               | Required. Your HTTPS endpoint. The URL is validated when you save                                                                                                |
| **Notification Type** | Required. Turn on at least one of **Markets**, **Settlement**, and **Providers**. You cannot save without one                                                    |
| **Custom Headers**    | `Content-Type: application/json` is set for you and cannot be changed or removed. Click **add more** to send additional headers, such as an authentication token |
| **Payload**           | Required. The JSON body sent on each delivery. Start from the **Integration** or **Slack** preset and edit it, or write your own                                 |

4. Click **Save**

Your webhook appears in the table, where you can edit or delete it later.

### Payload presets

The dialog gives you two starting points. Both are editable.

**Integration** sends the batch as structured JSON, for systems that process the events:

```json
{
  "source": "lsports-coverage-hub",
  "type": "$Type",
  "detectedAt": "$DetectedAt",
  "events": $EventsJson
}
```

**Slack** renders a readable one-line message, for posting straight to a channel:

```json
{
  "text": "LSports Coverage Hub: $EventCount $Type update(s) detected at $DetectedAt."
}
```

### Batch template fields

Your payload is a template. On every delivery, Coverage Hub replaces these fields with values describing the batch. They are the four fields listed in the **Payload Template Fields** panel next to the payload editor.

| Template Field | Value Sent                                                                     |
| -------------- | ------------------------------------------------------------------------------ |
| `$Type`        | The notification type for this batch: `Markets`, `Settlements`, or `Providers` |
| `$DetectedAt`  | When the cycle detected the changes, in UTC                                    |
| `$EventCount`  | Number of events in this batch                                                 |
| `$EventsJson`  | The events themselves, as a JSON array                                         |

### Example delivery

Using the **Integration** preset, a Markets batch arrives like this:

```json
{
  "source": "lsports-coverage-hub",
  "type": "Markets",
  "detectedAt": "2026-08-18T10:34:49Z",
  "events": [
    {
      "eventType": "NewMarketForProvider",
      "market": { "id": 2, "name": "Under/Over" },
      "sport": "Football",
      "marketCategory": "Standard",
      "matchType": "Prematch, InPlay",
      "provider": { "id": 8, "name": "Bet365" },
      "settlementSupported": false
    },
    {
      "eventType": "MarketAdded",
      "market": { "id": 3432, "name": "First home team Player Serve - Game Winner" },
      "sport": "Tennis",
      "marketCategory": "Standard",
      "matchType": "Prematch",
      "provider": { "id": 11286, "name": "DoradoBet" },
      "settlementSupported": false
    }
  ]
}
```

### Event structure

Each object in `$EventsJson` describes one coverage change.

**Markets and Settlement events**

| Field                 | Description                                                     |
| --------------------- | --------------------------------------------------------------- |
| `eventType`           | `MarketAdded`, `NewMarketForProvider`, or `SettlementConfirmed` |
| `market`              | Market `id` and `name`                                          |
| `sport`               | Sport the market belongs to                                     |
| `marketCategory`      | Category of the market                                          |
| `matchType`           | `Prematch`, `InPlay`, or both, comma separated                  |
| `provider`            | Provider `id` and `name`                                        |
| `settlementSupported` | `true` when settlement is confirmed for this market             |

| `eventType`            | Shown in the Notification Center as | Meaning                                                                               |
| ---------------------- | ----------------------------------- | ------------------------------------------------------------------------------------- |
| `MarketAdded`          | New Market                          | A market not previously available on the platform has been added by a provider        |
| `NewMarketForProvider` | Market Expansion                    | An existing market is now supported by an additional provider                         |
| `SettlementConfirmed`  | Settlement Supported                | A market that previously had no settlement logic now has confirmed settlement support |

**Providers events**

| Field       | Description                                                                                              |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| `eventType` | `NewProvider`, `ProviderActivation`, `ProviderExpansion`, `ProviderReduction`, or `ProviderDeactivation` |
| `provider`  | Provider `id` and `name`                                                                                 |
| `dataType`  | `InPlay` or `PreMatch`                                                                                   |

Provider coverage is tracked separately for InPlay and PreMatch. The event type tells you how a provider's coverage of those two data types changed:

| `eventType`            | Shown in the Notification Center as | Meaning                                                                                                                                    |
| ---------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `NewProvider`          | New Provider                        | A provider appears on the platform for the first time and becomes available for at least one data type                                     |
| `ProviderActivation`   | Activated                           | A provider that had no active data types now has at least one. This covers a provider returning after an earlier reduction or deactivation |
| `ProviderExpansion`    | Activated                           | A provider that covered one data type now covers both                                                                                      |
| `ProviderReduction`    | Deactivated                         | A provider that covered both data types now covers only one                                                                                |
| `ProviderDeactivation` | Deactivated                         | A provider that was available is no longer available for either data type                                                                  |

A provider launching on both InPlay and PreMatch produces one event per data type.

Example Providers delivery:

```json
{
  "source": "lsports-coverage-hub",
  "type": "Providers",
  "detectedAt": "2026-08-18T11:55:26Z",
  "events": [
    {
      "eventType": "ProviderExpansion",
      "provider": { "id": 1, "name": "Unibet" },
      "dataType": "InPlay"
    }
  ]
}
```

### When webhooks are sent

| Notification type | Detection cycle |
| ----------------- | --------------- |
| **Markets**       | Hourly          |
| **Settlement**    | Hourly          |
| **Providers**     | Every minute    |

Each enabled type delivers its own POST. When one hourly cycle finds both market changes and settlement changes, your endpoint receives two separate requests, one with `$Type` set to `Markets` and one set to `Settlements`.

When a cycle finds no changes, nothing is sent. Quiet periods produce no empty deliveries.

### Testing your webhook

Verify your setup before pointing it at production tooling:

1. Go to [webhook.site](https://webhook.site) and copy the unique URL assigned to you
2. In the **Webhook** panel, add a webhook using that URL as the endpoint
3. Turn on **Providers**. Providers run every minute, so you get feedback fastest
4. Wait for the next cycle that contains a change
5. Return to webhook.site. The incoming request appears in the sidebar with your template fields resolved to real values

Once the payload looks right, replace the webhook.site URL with your production endpoint.

***

## Managing Notifications

### Sidebar Indicator

A dot appears on the Coverage Hub sidebar next to Notification Center when you have unread notifications. It clears only when all notifications are marked as read.

### Read / Unread

Opening the Notification Center does not automatically mark notifications as read. Mark them manually using the bulk action controls or per-notification options.

***

## Notification History

* Notifications are visible from your registration date onwards
* Notifications are retained for a defined period and expire automatically
* Turning off all notification toggles stops new notifications from arriving, but existing notifications remain visible until they expire

***

## Related

* [Coverage Hub](/u/coverage-hub/coverage-hub.md) — Overview
* [Markets](/u/coverage-hub/markets.md) — Market coverage by provider
* [Settlements](/u/coverage-hub/settlements.md) — Settlement availability by market


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.lsports.eu/u/coverage-hub/notifications.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
