Was macht cli-anything-mailchimp?
Identität
Ein agenten-nativer CLI für die Mailchimp Marketing API v3.0, basierend auf dem CLI-Anything Framework.
Was dieser CLI tut
- Verwalte Zielgruppen (Listen) – erstelle, aktualisiere, lösche Listen; füge Mitglieder hinzu/aktualisiere/archive sie; verwalte Merge-Felder, Segmente, Tags und Webhooks.
- Führe Kampagnen durch – erstelle, plane, sende, pausiere, dupliziere und analysiere E-Mail-Kampagnen.
- Lese Berichte – Öffnungsraten, Klickraten, Bounce-Statistiken, Abmeldungen, E-Mail-Aktivitäten, geografische Daten.
- Steuere Automatisierungen – erstelle und verwalte automatisierte E-Mail-Workflows.
- Verwalte E-Commerce – Geschäfte, Bestellungen, Kunden, Produkte, Warenkörbe und Promo-Codes.
- Nutze Vorlagen, Dateimanager, Landing Pages, SMS-Kampagnen, Umfragen und alle anderen Ressourcen der Marketing API.
Voraussetzungen
- Python 3.10+
MAILCHIMP_API_KEY Umgebungsvariable, die auf Ihren API-Schlüssel gesetzt ist (inklusive Rechenzentrumssuffix, z. B. abc123-us8)
Installation
pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mailchimp/agent-harness
cd mailchimp/agent-harness && pip install -e .
Befehlsreferenz
Stammverzeichnis
| Befehl | Beschreibung |
|---|
cli-anything-mailchimp ping | Gesundheitscheck – bestätigt API-Konnektivität |
cli-anything-mailchimp root list | Kontoinformationen abrufen |
cli-anything-mailchimp --json <cmd> | Jeden Befehl als JSON ausgeben |
cli-anything-mailchimp | Interaktive REPL starten |
Listen (Zielgruppen)
| Befehl | Beschreibung |
|---|
lists list | Alle Zielgruppen auflisten |
lists get <LIST_ID> | Zielgruppeninformationen abrufen |
lists create --data '<json>' | Zielgruppe erstellen |
lists update <LIST_ID> --data '<json>' | Zielgruppe aktualisieren |
lists delete <LIST_ID> | Zielgruppe löschen |
lists list-lists-id-members <LIST_ID> | Mitglieder auflisten |
lists get-lists-id-members-id <LIST_ID> <SUBSCRIBER_HASH> | Mitglied per MD5-Hash abrufen |
lists create-lists-id-members <LIST_ID> --data '<json>' | Mitglied hinzufügen |
lists list-lists-id-merge-fields <LIST_ID> | Merge-Felder auflisten |
lists create-lists-id-merge-fields <LIST_ID> --data '<json>' | Merge-Feld hinzufügen |
lists list-lists-id-segments <LIST_ID> | Segmente auflisten |
lists list-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> | Mitglieds-Tags auflisten |
lists create-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> --data '<json>' | Mitglieds-Tags hinzufügen/entfernen |
lists list-lists-id-webhooks <LIST_ID> | Webhooks auflisten |
lists create-lists-id-webhooks <LIST_ID> --data '<json>' | Webhook hinzufügen |
Kampagnen
| Befehl | Beschreibung |
|---|
campaigns list | Kampagnen auflisten |
campaigns get <CAMPAIGN_ID> | Kampagneninformationen abrufen |
campaigns create --data '<json>' | Kampagne erstellen |
campaigns update <CAMPAIGN_ID> --data '<json>' | Kampagneneinstellungen aktualisieren |
campaigns delete <CAMPAIGN_ID> | Kampagne löschen |
campaigns send <CAMPAIGN_ID> | Kampagne sofort senden |
campaigns schedule <CAMPAIGN_ID> --data '<json>' | Kampagne planen |
campaigns cancel-send <CAMPAIGN_ID> | Geplanten Versand abbrechen |
campaigns pause <CAMPAIGN_ID> | RSS-Kampagne pausieren |
campaigns resume <CAMPAIGN_ID> | RSS-Kampagne fortsetzen |
campaigns replicate <CAMPAIGN_ID> | Kampagne duplizieren |
campaigns list-content <CAMPAIGN_ID> | Kampagneninhalt abrufen |
campaigns list-send-checklist <CAMPAIGN_ID> | Checkliste vor dem Versand |
Berichte
| Befehl | Beschreibung |
|---|
reports list | Alle Kampagnenberichte auflisten |
reports get <CAMPAIGN_ID> | Kampagnenzusammenfassungsbericht abrufen |
reports list-email-activity <CAMPAIGN_ID> | Öffnungs-/Klickaktivität pro Abonnent |
reports list-click-details <CAMPAIGN_ID> | Link-Klickaufschlüsselung |
reports list-open-details <CAMPAIGN_ID> | Öffnungen pro Abonnent |
reports list-unsubscribed <CAMPAIGN_ID> | Abmeldungen |
reports list-locations <CAMPAIGN_ID> | Geografische Aufschlüsselung |
reports list-domain-performance <CAMPAIGN_ID> | Statistiken pro Domain |
Automatisierungen
| Befehl | Beschreibung |
|---|
automations list | Automatisierungen auflisten |
automations get <WORKFLOW_ID> | Automatisierungsinfo abrufen |
automations create --data '<json>' | Automatisierung erstellen |
automations pause <WORKFLOW_ID> | Automatisierung pausieren |
automations start <WORKFLOW_ID> | Automatisierung starten |
automations archive <WORKFLOW_ID> | Automatisierung archivieren |
automations list-emails <WORKFLOW_ID> | Automatisierungs-E-Mails auflisten |
E-Commerce
| Befehl | Beschreibung |
|---|
ecommerce list-ecommerce-stores | Geschäfte auflisten |
ecommerce get <STORE_ID> | Geschäftsinfo abrufen |
ecommerce create --data '<json>' | Geschäft hinzufügen |
ecommerce list-ecommerce-stores-id-orders <STORE_ID> | Bestellungen auflisten |
ecommerce list-ecommerce-stores-id-products <STORE_ID> | Produkte auflisten |
ecommerce list-ecommerce-stores-id-customers <STORE_ID> | Kunden auflisten |
ecommerce list-ecommerce-stores-id-carts <STORE_ID> | Warenkörbe auflisten |
ecommerce list-ecommerce-stores-id-promocodes <PROMO_RULE_ID> <STORE_ID> | Promo-Codes auflisten |
Andere Ressourcen
| Gruppe | Beschreibung |
|---|
templates | E-Mail-Vorlagen (auflisten, abrufen, erstellen, aktualisieren, löschen) |
template-folders | Vorlagenordner |
campaign-folders | Kampagnenordner |
file-manager | Dateien und Ordner im Dateimanager |
landing-pages | Landing Pages (auflisten, erstellen, veröffentlichen, zurückziehen) |
sms-campaigns | SMS-Kampagnen (10 Operationen) |
surveys | Umfragen (auflisten, abrufen, veröffentlichen) |
reporting | Facebook-Anzeigen- und Landing-Page-Berichte |
search-campaigns | Kampagnen durchsuchen |
search-members | Mitglieder über alle Zielgruppen hinweg suchen |
batches | Batch-API-Operationen |
batch-webhooks | Batch-Operation-Webhooks |
verified-domains | E-Mail-Domain-Überprüfung |
authorized-apps | OAuth-verbundene Apps |
connected-sites | Verbundene Site-Integrationen |
conversations | Posteingangs-Konversationen |
activity-feed | Kontoaktivitätsfeed |
account-exports | Konto-Datenexporte |
JSON-Ausgabe
Alle Befehle unterstützen --json auf Stammebene:
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'
Antwortstrukturen (native Mailchimp-API-Antwort – den ressourcenspezifischen Schlüssel verwenden):
{"lists": [...], "total_items": 42, "_links": [...]}
{"campaigns": [...], "total_items": 10, "_links": [...]}
{"id": "abc123", "name": "Meine Liste", ...}
{"ok": true, "message": "Gelöscht."}
{"ok": false, "message": "Ressource nicht gefunden: ...", "data": {...}}
Häufige Agenten-Muster
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":"Hallo","from_name":"Ich","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[]'
Interaktive REPL
cli-anything-mailchimp ohne Argumente ausführen, um die REPL zu starten:
◆ cli-anything · Mailchimp
v0.1.0
Geben Sie help für Befehle ein, quit zum Beenden
◆ mailchimp ❯ ping
✓ {"health_status": "Everything's Chimpy!"}
◆ mailchimp ❯ --json lists list
{"lists": [...], "total_items": 3, "_links": [...]}
◆ mailchimp ❯ quit
Hinweise
- Abonnenten-Hash: Mailchimp identifiziert Mitglieder anhand des MD5-Hashs ihrer kleingeschriebenen E-Mail. Berechnen Sie ihn mit
python -c "import hashlib; email='[email protected]'; print(hashlib.md5(email.strip().lower().encode()).hexdigest())".
- Body-Payloads: Alle POST/PATCH/PUT-Befehle akzeptieren
--data '<json>'. Die Schemata der einzelnen Endpunkte finden Sie in der Mailchimp API-Dokumentation.
- Rechenzentrum: Ihr API-Schlüssel endet auf
-us8, -eu2 usw. Der CLI extrahiert dies automatisch – geben Sie es in MAILCHIMP_API_KEY an.
- Ratenlimits: Die Marketing API begrenzt auf 10 gleichzeitige Verbindungen und ein rollierendes Limit pro Konto. Für Massenvorgänge verwenden Sie die Gruppe
batches.