> ## 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.

# Task

> Exécuter une tâche manuellement

Les **`Tasks`** vous permettent d'exécuter des actions de manière manuelle, en réponse à d'autre bloque logique. Vous pouvez personnaliser la logique de la tâche en fonction d'un `payload` fournies lors de son invocation.

### Créer une Task

Depuis l'editeur de Sparkle, créer un nouveau fichier et exportez une fonction `createTask`

```typescript theme={null}
export default createTask({
  id: "task-id",
  run: async (payload, ctx) => {
    // Votre code ici
  },
})
```

### Déclancher une Task

Pour déclancher une Task, vous devez utiliser la méthode `invoke` ou `invokeUntil` disponible sur l'objet `ctx` (contexte).

Exemple :

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

Dans l'exemple ci-dessus, `task-id` est l'identifiant de la Task que vous avez définie, et `{ "key": "value" }` représente les données fournies.

### Exemple de Task

Voici un exemple de task qui supprime un utilisateur à la liste des VIP de la chaîne :

```typescript remove-vip theme={null}
export default createTask({
  id: "remove-vip",
  run: async (payload, ctx) => {
    const { user_id } = payload

    await ctx.twitch.moderation.removeVip(user_id)
  },
})
```

Vous pouvez ensuite déclancher cette tâche depuis n'importe quel autre bloc logique :

```javascript theme={null}
ctx.invoke("remove-vip", { user_id: "123456789" })
```
