# programmer_message_recurrent

> Pour les agents IA : l'index complet de la documentation est sur [llms.txt](https://stampywallet.com/docs/llms.txt), et toute la documentation tient en un fichier : [llms-full.txt](https://stampywallet.com/docs/llms-full.txt). Page en ligne : https://stampywallet.com/docs/mcp/outils/programmer_message_recurrent/

Avec compte · Écrit (confirmer) · Formule Croissance.

Programme un message qui se répète tout seul sur l’écran verrouillé des clients : chaque semaine (un ou plusieurs jours), ou chaque mois (tel jour du mois, ou « le premier lundi », « le dernier vendredi »), à une heure du commerce entre 7 h et 21 h 45. Exemples : « chaque mardi 11 h, l’emplacement du food truck », « le 1er de chaque mois, aux anniversaires du mois ». Le groupe visé se recalcule à chaque envoi. Fin facultative : une date, ou un nombre d’envois. Règles : un message par jour (un jour où un autre message part déjà, l’occurrence est sautée), jours de fermeture et congés sautés (ou décalés au jour ouvert suivant avec si_ferme=decaler), heures calmes respectées, premier envoi dans les 60 jours. confirmer=false (défaut) rend un aperçu ; confirmer=true l’exécute, après l’accord explicite de la personne. Pour un envoi unique et immédiat, utiliser envoyer_message.

## Paramètres

- `texte` (string, ≤ 180 caractères, requis) : Le texte exact de la notification, 180 caractères au plus.
- `groupe` (enum, facultatif) : Qui le reçoit, recalculé à chaque envoi : tous, inactifs_30/60/90 (pas venus depuis N jours), proches (à 1 ou 2 tampons de la récompense), anniversaires (nés ce mois-ci), meilleurs, nouveaux. Un groupe autre que tous demande les notifications ciblées. Pour programmer seulement (défaut tous). Valeurs : tous, inactifs_30, inactifs_60, inactifs_90, proches, anniversaires, meilleurs, nouveaux.
- `frequence` (enum, facultatif) : semaine : avec jours. mois : avec jour_mois, ou rang et jour_rang. Valeurs : semaine, mois.
- `jours` (array<enum>, ≤ 7, facultatif) : Pour frequence=semaine : les jours d’envoi. Valeurs : dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi.
- `jour_mois` (integer, 1…31, facultatif) : Pour frequence=mois : le jour du mois (1 à 31 ; un 31 tombe le dernier jour d’un mois plus court).
- `rang` (enum, facultatif) : Pour frequence=mois : « premier » lundi, …, « dernier » vendredi du mois (avec jour_rang). Valeurs : premier, deuxieme, troisieme, quatrieme, dernier.
- `jour_rang` (enum, facultatif) : Le jour de la semaine qui va avec rang. Valeurs : dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi.
- `heure` (string, facultatif) : L’heure du commerce, HH:MM, entre 07:00 et 21:45.
- `debut` (string (date), facultatif) : Premier jour possible (AAAA-MM-JJ). Par défaut aujourd’hui.
- `fin` (string (date), facultatif) : Dernier jour possible, inclus (AAAA-MM-JJ). Facultatif.
- `nombre` (integer, 1…366, facultatif) : Ou : le nombre d’envois réellement partis après lequel la règle s’arrête.
- `si_ferme` (enum, facultatif) : Un jour de fermeture ou de congés : sauter (défaut) ou décaler au jour ouvert suivant. Valeurs : sauter, decaler.
- `confirmer` (boolean, facultatif) : false (défaut) : rend seulement un aperçu de ce qui serait fait, sans rien changer. true : exécute. Toujours montrer l’aperçu à la personne et attendre son accord avant de repasser avec true. Défaut : false.

## Réponse

Un texte que lit l'assistant (`content`), et les mêmes informations en données structurées (`structuredContent`). En cas de refus (paramètre à corriger, formule, rôle), la réponse porte `isError: true` et une phrase que l'assistant peut reformuler.

> **Attention :** cet outil écrit. Appelé avec `confirmer: false` (par défaut), il rend seulement un aperçu, sans rien changer. L'assistant doit vous le montrer et attendre votre accord avant de repasser avec `confirmer: true`.

## Exemple

Prompt : « Chaque mardi à 11 h, préviens mes clients de l'emplacement du food truck. »

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "programmer_message_recurrent",
    "arguments": {
      "texte": "Food truck aujourd'hui place de la Mairie, de 11 h 30 à 14 h. À tout à l'heure !",
      "groupe": "tous",
      "frequence": "semaine",
      "jours": [
        "mardi"
      ],
      "heure": "11:00",
      "confirmer": false
    }
  }
}
```

```bash
curl https://app.stampywallet.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $STAMPY_JETON" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"programmer_message_recurrent","arguments":{"texte":"Food truck aujourd'\''hui place de la Mairie, de 11 h 30 à 14 h. À tout à l'\''heure !","groupe":"tous","frequence":"semaine","jours":["mardi"],"heure":"11:00","confirmer":false}}}'
```

`$STAMPY_JETON` est le jeton OAuth que l'assistant obtient quand vous connectez votre compte ([voir Brancher](https://stampywallet.com/docs/mcp/brancher/#connexion)). Vous n'avez pas à le manipuler vous-même.
