Que fait CLI-anything-mailchimp ?
Identité
Une CLI native pour les agents de l'API Marketing Mailchimp v3.0, construite sur le framework CLI-Anything.
Ce que cette CLI fait
- Gérez les audiences (listes) — créez, mettez à jour, supprimez des listes ; ajoutez/mettez à jour/archivez des membres ; gérez les champs de fusion, segments, tags et webhooks.
- Lancez des campagnes — créez, planifiez, envoyez, mettez en pause, dupliquez et analysez des campagnes email.
- Lisez les rapports — taux d'ouverture, taux de clics, statistiques de rebond, désabonnements, activité email, données géographiques.
- Contrôlez les automatisations — créez et gérez des flux de travail email automatisés.
- Gérez l'e-commerce — magasins, commandes, clients, produits, paniers et codes promo.
- Utilisez les modèles, le gestionnaire de fichiers, les pages d'atterrissage, les campagnes SMS, les enquêtes et toutes les autres ressources de l'API Marketing.
Prérequis
- Python 3.10+
- Variable d'environnement
MAILCHIMP_API_KEY définie avec votre clé API (incluant le suffixe du centre de données, par ex. abc123-us8)
Installation
pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mailchimp/agent-harness
cd mailchimp/agent-harness && pip install -e .
Référence des commandes
Racine
| Commande | Description |
|---|
cli-anything-mailchimp ping | Vérification de l'état — confirme la connectivité API |
cli-anything-mailchimp root list | Obtenir les informations du compte |
cli-anything-mailchimp --json <cmd> | Sortie JSON de n'importe quelle commande |
cli-anything-mailchimp | Lancer le REPL interactif |
Listes (Audiences)
| Commande | Description |
|---|
lists list | Lister toutes les audiences |
lists get <LIST_ID> | Obtenir les informations d'une audience |
lists create --data '<json>' | Créer une audience |
lists update <LIST_ID> --data '<json>' | Mettre à jour une audience |
lists delete <LIST_ID> | Supprimer une audience |
lists list-lists-id-members <LIST_ID> | Lister les membres |
lists get-lists-id-members-id <LIST_ID> <SUBSCRIBER_HASH> | Obtenir un membre par son hachage MD5 |
lists create-lists-id-members <LIST_ID> --data '<json>' | Ajouter un membre |
lists list-lists-id-merge-fields <LIST_ID> | Lister les champs de fusion |
lists create-lists-id-merge-fields <LIST_ID> --data '<json>' | Ajouter un champ de fusion |
lists list-lists-id-segments <LIST_ID> | Lister les segments |
lists list-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> | Lister les tags d'un membre |
lists create-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> --data '<json>' | Ajouter/supprimer les tags d'un membre |
lists list-lists-id-webhooks <LIST_ID> | Lister les webhooks |
lists create-lists-id-webhooks <LIST_ID> --data '<json>' | Ajouter un webhook |
Campagnes
| Commande | Description |
|---|
campaigns list | Lister les campagnes |
campaigns get <CAMPAIGN_ID> | Obtenir les informations d'une campagne |
campaigns create --data '<json>' | Créer une campagne |
campaigns update <CAMPAIGN_ID> --data '<json>' | Mettre à jour les paramètres d'une campagne |
campaigns delete <CAMPAIGN_ID> | Supprimer une campagne |
campaigns send <CAMPAIGN_ID> | Envoyer une campagne immédiatement |
campaigns schedule <CAMPAIGN_ID> --data '<json>' | Planifier une campagne |
campaigns cancel-send <CAMPAIGN_ID> | Annuler l'envoi planifié |
campaigns pause <CAMPAIGN_ID> | Mettre en pause une campagne RSS |
campaigns resume <CAMPAIGN_ID> | Reprendre une campagne RSS |
campaigns replicate <CAMPAIGN_ID> | Dupliquer une campagne |
campaigns list-content <CAMPAIGN_ID> | Obtenir le contenu d'une campagne |
campaigns list-send-checklist <CAMPAIGN_ID> | Liste de vérification avant envoi |
Rapports
| Commande | Description |
|---|
reports list | Lister tous les rapports de campagne |
reports get <CAMPAIGN_ID> | Obtenir le rapport récapitulatif d'une campagne |
reports list-email-activity <CAMPAIGN_ID> | Activité d'ouverture/clic par abonné |
reports list-click-details <CAMPAIGN_ID> | Répartition des clics par lien |
reports list-open-details <CAMPAIGN_ID> | Ouvertures par abonné |
reports list-unsubscribed <CAMPAIGN_ID> | Désabonnés |
reports list-locations <CAMPAIGN_ID> | Répartition géographique |
reports list-domain-performance <CAMPAIGN_ID> | Statistiques par domaine |
Automatisations
| Commande | Description |
|---|
automations list | Lister les automatisations |
automations get <WORKFLOW_ID> | Obtenir les informations d'une automatisation |
automations create --data '<json>' | Créer une automatisation |
automations pause <WORKFLOW_ID> | Mettre en pause une automatisation |
automations start <WORKFLOW_ID> | Démarrer une automatisation |
automations archive <WORKFLOW_ID> | Archiver une automatisation |
automations list-emails <WORKFLOW_ID> | Lister les emails d'automatisation |
E-commerce
| Commande | Description |
|---|
ecommerce list-ecommerce-stores | Lister les magasins |
ecommerce get <STORE_ID> | Obtenir les informations d'un magasin |
ecommerce create --data '<json>' | Ajouter un magasin |
ecommerce list-ecommerce-stores-id-orders <STORE_ID> | Lister les commandes |
ecommerce list-ecommerce-stores-id-products <STORE_ID> | Lister les produits |
ecommerce list-ecommerce-stores-id-customers <STORE_ID> | Lister les clients |
ecommerce list-ecommerce-stores-id-carts <STORE_ID> | Lister les paniers |
ecommerce list-ecommerce-stores-id-promocodes <PROMO_RULE_ID> <STORE_ID> | Lister les codes promo |
Autres ressources
| Groupe | Description |
|---|
templates | Modèles email (lister, obtenir, créer, mettre à jour, supprimer) |
template-folders | Dossiers de modèles |
campaign-folders | Dossiers de campagnes |
file-manager | Fichiers et dossiers dans le gestionnaire de fichiers |
landing-pages | Pages d'atterrissage (lister, créer, publier, dépublier) |
sms-campaigns | Campagnes SMS (10 opérations) |
surveys | Enquêtes (lister, obtenir, publier) |
reporting | Rapports publicitaires Facebook et pages d'atterrissage |
search-campaigns | Rechercher des campagnes par requête |
search-members | Rechercher des membres dans toutes les audiences |
batches | Opérations API par lots |
batch-webhooks | Webhooks d'opérations par lots |
verified-domains | Vérification de domaine email |
authorized-apps | Applications connectées via OAuth |
connected-sites | Intégrations de sites connectés |
conversations | Conversations de la boîte de réception |
activity-feed | Flux d'activité du compte |
account-exports | Exportations de données du compte |
Sortie JSON
Toutes les commandes prennent en charge --json au niveau racine :
cli-anything-mailchimp --json lists list
cli-anything-mailchimp --json reports get abc123def
cli-anything-mailchimp --json lists list | jq '.lists[].name'
cli-anything-mailchimp --json campaigns list | jq '.campaigns[].id'
Formes d'enveloppe (réponse native de l'API Mailchimp — utilisez la clé spécifique à la ressource) :
{"lists": [...], "total_items": 42, "_links": [...]}
{"campaigns": [...], "total_items": 10, "_links": [...]}
{"id": "abc123", "name": "My List", ...}
{"ok": true, "message": "Deleted."}
{"ok": false, "message": "Resource Not Found: ...", "data": {...}}
Motifs d'agent courants
cli-anything-mailchimp --json ping | jq '.health_status'
cli-anything-mailchimp --json lists list | jq '.lists[] | {id, name}'
cli-anything-mailchimp --json lists list-lists-id-members <list_id> --status subscribed | jq '.members[].email_address'
cli-anything-mailchimp --json campaigns create --data '{"type":"regular","settings":{"subject_line":"Bonjour","from_name":"Moi","reply_to":"[email protected]"}}' | jq '.id'
cli-anything-mailchimp --json campaigns list-send-checklist <campaign_id> | jq '.items[] | select(.result == false)'
cli-anything-mailchimp --json reports list-unsubscribed <campaign_id> | jq '.unsubscribes[].email_address'
cli-anything-mailchimp --json lists create-members <list_id> --data '{"email_address":"[email protected]","status":"subscribed"}'
cli-anything-mailchimp --json search-members list --query "[email protected]" | jq '.exact_matches.members[]'
REPL interactif
Exécutez cli-anything-mailchimp sans arguments pour entrer dans le REPL :
◆ cli-anything · Mailchimp
v0.1.0
Tapez help pour les commandes, quit pour quitter
◆ mailchimp ❯ ping
✓ {"health_status": "Everything's Chimpy!"}
◆ mailchimp ❯ --json lists list
{"lists": [...], "total_items": 3, "_links": [...]}
◆ mailchimp ❯ quit
Remarques
- Hachage d'abonné : Mailchimp identifie les membres par le hachage MD5 de leur email en minuscules. Calculez-le avec
python -c "import hashlib; email='[email protected]'; print(hashlib.md5(email.strip().lower().encode()).hexdigest())".
- Corps des requêtes : Toutes les commandes POST/PATCH/PUT acceptent
--data '<json>'. Consultez la documentation de l'API Mailchimp pour le schéma de chaque point de terminaison.
- Centre de données : Votre clé API se termine par
-us8, -eu2, etc. La CLI l'extrait automatiquement — incluez-le dans MAILCHIMP_API_KEY.
- Limites de débit : L'API Marketing limite à 10 connexions simultanées et une limite glissante par compte. Pour les opérations en masse, utilisez le groupe
batches.