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

# Introduction

Le contexte est un objet recu en paramètre par tous les types de déclancheur. Il vous permet d'interagir avec Twitch, la base de données et d'exécuter des tâches.

### Propriétés

Le contexte expose les propriétés suivantes :

* `twitch` : expose des méthodes pour interagir avec Twitch.

  Pour en savoir plus, consultez la documentation de [Twitch API](/integrations/twitch/base).

* `data` : expose des méthodes pour interagir avec la base de données.

  Pour en savoir plus, consultez la documentation de [la Base de Données](/context/database/base).

**Exemple d'utilisation du contexte**

Voici un exemple d'utilisation du contexte pour envoyer un message via Twitch :

```javascript theme={null}
await ctx.twitch.sendMessage({ message: "Hello World !" })
```

## Interagir avec vos Tasks

Le contexte offre des méthodes pour interagir avec vos [Tasks](/logics/task) créer dans Sparkle.

### invoke

La méthode `invoke(id, payload)` vous permet d'exécuter une tâche spécifique en utilisant son identifiant (`id`) et un objet `payload` qui sera transmis à la tâche.

Cela peut être utile pour déclencher des actions spécifiques dans votre bot en réponse à des événements.

Exemple :

```javascript theme={null}
const taskPayload = { key: "value" }
await ctx.invoke("task-id", taskPayload)
```

### invokeUntil

La méthode `invokeUntil(id, when, payload)` vous permet d'exécuter une tâche spécifique (`id`) à un moment donné (`when`).

Cela peut être utile pour des scénarios où vous souhaitez attendre un moment spécifique avant d'exécuter une tâche.

`when` peut être une date ou une durée specifiée par une chaîne de caractères (voir [la documentation de la librairie `ms`](https://www.npmjs.com/package/ms)) ou en millisecondes.

Si vous fournissez une date la tâche sera exécutée à cette date. Si vous fournissez une durée, la tâche sera exécutée dans la durée spécifiée à partir de maintenant.

Exemple :

```javascript theme={null}
const taskPayload = { key: "value" }
await ctx.invokeUntil("task-id", "7d", taskPayload)
```

La fonction `task-id` sera exécutée dans 7 jours.

```javascript theme={null}
const taskPayload = { key: "value" }
const date = new Date("2023-12-31")
await ctx.invokeUntil("task-id", date, taskPayload)
```

La fonction `task-id` sera exécutée le 31 décembre 2023.

<Note>Les planifications ne sont jamais pas en heure locale, mais en UTC.</Note>

N'oubliez pas de consulter la documentation de chaque sous-objet pour en savoir plus sur les fonctionnalités disponibles et les meilleures pratiques.
