Aller au contenu
WbizTool

Envoyez des rappels WhatsApp récurrents avec l’API

Envoyez le même message WhatsApp selon un planning – loyer mensuel, emploi du temps hebdomadaire, point quotidien – depuis votre propre numéro. Créez le rappel une fois avec une expression cron et un fuseau horaire, et WbizTool met le message en file d’attente à chaque correspondance. Les rappels sont inclus dans tous les forfaits payants, à partir de 25 $ par mois aux États-Unis (votre prix figure sur la page Tarifs).

Les rappels nécessitent un forfait payant : à partir de 25 $ par mois aux États-Unis.

Comment ça marche

  1. Obtenez votre clé API et reliez votre numéro

    Reliez votre numéro WhatsApp sur la page Numéros WhatsApp avec un code QR ou un code de connexion, et créez une clé dans Paramètres → Clés API. Les rappels nécessitent un forfait payant (Lite, Standard, Advanced ou Enterprise).

  2. Choisissez le planning

    Écrivez-le sous forme d’expression cron à cinq champs : 0 10 1 * * correspond à 10 h le 1er de chaque mois, 0 9 * * 1-5 à 9 h en semaine. Ajoutez un fuseau horaire IANA comme Asia/Kolkata.

  3. Créez le rappel

    Faites un POST vers /api/v1/reminder/create/ avec reminder_name, phone, message, cron_expression et timezone. Conservez le reminder_id de la réponse.

  4. Listez-le ou annulez-le plus tard

    /api/v1/reminder/list/ renvoie vos rappels, 50 par page. /api/v1/reminder/cancel/ avec le reminder_id en arrête un définitivement – par exemple quand le client paie.

Exemples de code API de rappels

Créer un rappel mensuel
curl -X POST https://wbiztool.com/api/v1/reminder/create/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "reminder_name": "Monthly rent reminder",
    "phone": "919876543210",
    "message": "Hi Aman, a reminder that your rent is due on {current_date_formatted}.",
    "cron_expression": "0 10 1 * *",
    "timezone": "Asia/Kolkata"
  }'
Créer un rappel en Python
import requests

response = requests.post(
    "https://wbiztool.com/api/v1/reminder/create/",
    json={
        "client_id": 12345,
        "api_key": "YOUR_API_KEY",
        "whatsapp_client": 678,
        "reminder_name": "Monthly rent reminder",
        "phone": "919876543210",
        "message": "Hi Aman, a reminder that your rent is due on {current_date_formatted}.",
        "cron_expression": "0 10 1 * *",
        "timezone": "Asia/Kolkata",
    },
    timeout=60,
)

try:
    result = response.json()  # read the body even when the HTTP code is 400
except ValueError:
    raise SystemExit(f"HTTP {response.status_code}: not JSON. Send every text value as a string.")

if result["status"] == 1:
    print("Reminder created with reminder_id", result["reminder_id"])
else:
    print("Failed:", result["message"])
Un rappel hebdomadaire avec image
import requests

response = requests.post(
    "https://wbiztool.com/api/v1/reminder/create/",
    json={
        "client_id": 12345,
        "api_key": "YOUR_API_KEY",
        "whatsapp_client": 678,
        "reminder_name": "Weekly class timetable",
        "phone": "919876543210",
        "msg_type": 1,
        "img_url": "https://example.com/timetable.png",
        "message": "Here is this week's timetable.",
        "cron_expression": "0 8 * * 1",
        "timezone": "Asia/Kolkata",
    },
    timeout=60,
)
print(response.status_code, response.text)
Lister vos rappels
curl -X POST https://wbiztool.com/api/v1/reminder/list/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "page": 1
  }'
Annuler un rappel
curl -X POST https://wbiztool.com/api/v1/reminder/cancel/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "reminder_id": "3187"
  }'

Ce que vous pouvez faire

  • Tous les plannings que cron sait exprimer

    Tous les jours à 9 h (0 9 * * *), chaque lundi (0 9 * * 1), deux fois par jour (0 9,18 * * *), le 15 de chaque mois (0 10 15 * *) ou toutes les 6 heures (0 */6 * * *).

  • Des dates remplies pour vous

    Des variables comme {current_date_formatted}, {current_time_12h} et {reminder_name} sont remplacées à chaque exécution du rappel, dans son propre fuseau horaire.

  • Images et fichiers

    msg_type 1 envoie une image depuis img_url. Pour un fichier, utilisez msg_type 2 avec l’URL publique du fichier dans img_url et son nom dans file_name.

  • Visibles dans votre tableau de bord

    Les rappels créés via l’API apparaissent aussi sur la page Rappels, où vous pouvez les mettre en pause ou les modifier. Cette page permet aussi d’importer de nombreux rappels depuis un fichier CSV ou Excel.

  • Envoi depuis le numéro de votre choix

    Indiquez whatsapp_client pour choisir le numéro. Sans lui, chaque exécution utilise un numéro connecté à ce moment-là.

Bon à savoir

  • Les rappels nécessitent un forfait payant. Avec l’essai gratuit, l’API répond Upgrade your plan to use reminders feature.
  • Utilisez des noms de fuseaux horaires IANA comme Asia/Kolkata ou America/Chicago. Les abréviations comme IST ou CST sont refusées avec Invalid timezone ; sans fuseau horaire, le planning suit l’heure UTC.
  • phone prend le numéro avec son indicatif pays, comme 919876543210 – cet endpoint n’a pas de champ country_code.
  • L’API n’a pas d’appel de modification ni de pause. Pour changer un planning, annulez le rappel et créez-en un nouveau ; pour le mettre en pause, utilisez la page Rappels.
  • Les rappels sont vérifiés périodiquement, pas à la seconde près : un envoi peut partir jusqu’à 10 minutes après son heure ; si une vérification arrive plus tard que cela, l’envoi est sauté. Chaque envoi compte dans les 1 000 messages par jour du numéro.
  • Dans la liste des rappels, next_run est calculé comme si le fuseau horaire du rappel était UTC. Consultez la page Rappels pour connaître la bonne heure du prochain envoi.
  • Si un champ texte comme phone, message ou reminder_name est envoyé sous forme de nombre, de true ou de null, la réponse est une page d’erreur HTML (HTTP 500) : envoyez donc les valeurs texte sous forme de chaînes et gérez un corps qui n’est pas du JSON, comme le fait l’exemple Python.
  • Si le numéro whatsapp_client est déconnecté quand vous créez le rappel, l’API le refuse avec WhatsApp Logged Out. Please Reconnect!!
  • Les messages partent de votre propre numéro WhatsApp, donc les règles de WhatsApp s’appliquent : écrivez aux personnes qui s’attendent à avoir de vos nouvelles.

Questions fréquentes

Quelle différence entre un rappel et un message planifié ?
Un message planifié (/api/v1/schedule_msg/) part une seule fois, à la date et à l’heure indiquées. Un rappel se répète selon son planning cron jusqu’à ce que vous l’annuliez.
Comment arrêter un rappel quand le client paie ?
Appelez /api/v1/reminder/cancel/ avec son reminder_id. Il s’arrête immédiatement et ne sera plus exécuté. Un message qu’il avait déjà mis en file d’attente avant l’annulation peut encore partir.
Puis-je mettre en pause ou modifier un rappel via l’API ?
Pas encore. Mettez-le en pause ou modifiez-le sur la page Rappels de votre tableau de bord, ou annulez-le et créez-en un nouveau avec le nouveau planning.
Un rappel peut-il envoyer un PDF ?
Oui. Utilisez msg_type 2, mettez l’URL publique du fichier dans img_url et son nom avec l’extension (comme invoice.pdf) dans file_name. Le fichier est téléchargé à chaque exécution du rappel : gardez donc le lien actif.
Quels forfaits incluent les rappels ?
Tous les forfaits payants : Lite (1 numéro), Standard (3 numéros) et Advanced (10 numéros) – 25 $, 59 $ et 149 $ par mois aux États-Unis ; la page Tarifs affiche le prix de votre pays. Tous envoient des messages illimités dans le cadre d’un usage raisonnable. L’essai gratuit n’inclut pas les rappels.

Lire les guides

Voir aussi

Envoyez votre premier message WhatsApp automatisé dès aujourd'hui

Créez un compte, scannez le QR code et envoyez un message en moins de cinq minutes.

Essai gratuit

Forfaits payants à partir de 25 $ par mois aux États-Unis. Tarifs