cli-anything-mailchimp은(는) 무엇을 하나요?
정체성
CLI-Anything 프레임워크를 기반으로 구축된 Mailchimp 마케팅 API v3.0을 위한 에이전트 네이티브 CLI입니다.
이 CLI가 하는 일
- 잠재 고객 (목록) 관리 — 목록 생성, 업데이트, 삭제; 회원 추가/업데이트/보관; 병합 필드, 세그먼트, 태그, 웹훅 관리.
- 캠페인 실행 — 이메일 캠페인 생성, 예약, 전송, 일시 중지, 복제 및 분석.
- 보고서 읽기 — 열람률, 클릭률, 반송 통계, 수신 거부, 이메일 활동, 지리적 데이터.
- 자동화 제어 — 자동화된 이메일 워크플로우 생성 및 관리.
- 전자상거래 관리 — 스토어, 주문, 고객, 제품, 장바구니, 프로모션 코드.
- 템플릿, 파일 관리자, 랜딩 페이지, SMS 캠페인, 설문조사 및 기타 모든 마케팅 API 리소스 사용.
사전 요구 사항
- Python 3.10+
MAILCHIMP_API_KEY 환경 변수가 API 키(데이터센터 접미사 포함, 예: abc123-us8)로 설정되어 있어야 함.
설치
pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mailchimp/agent-harness
cd mailchimp/agent-harness && pip install -e .
명령어 참조
루트
| 명령어 | 설명 |
|---|
cli-anything-mailchimp ping | 상태 확인 — API 연결 확인 |
cli-anything-mailchimp root list | 계정 정보 가져오기 |
cli-anything-mailchimp --json <cmd> | 모든 명령어를 JSON으로 출력 |
cli-anything-mailchimp | 대화형 REPL 실행 |
목록 (잠재 고객)
| 명령어 | 설명 |
|---|
lists list | 모든 잠재 고객 목록 표시 |
lists get <LIST_ID> | 잠재 고객 정보 가져오기 |
lists create --data '<json>' | 잠재 고객 생성 |
lists update <LIST_ID> --data '<json>' | 잠재 고객 업데이트 |
lists delete <LIST_ID> | 잠재 고객 삭제 |
lists list-lists-id-members <LIST_ID> | 회원 목록 표시 |
lists get-lists-id-members-id <LIST_ID> <SUBSCRIBER_HASH> | MD5 해시로 회원 조회 |
lists create-lists-id-members <LIST_ID> --data '<json>' | 회원 추가 |
lists list-lists-id-merge-fields <LIST_ID> | 병합 필드 목록 표시 |
lists create-lists-id-merge-fields <LIST_ID> --data '<json>' | 병합 필드 추가 |
lists list-lists-id-segments <LIST_ID> | 세그먼트 목록 표시 |
lists list-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> | 회원 태그 목록 표시 |
lists create-list-member-tags <LIST_ID> <SUBSCRIBER_HASH> --data '<json>' | 회원 태그 추가/제거 |
lists list-lists-id-webhooks <LIST_ID> | 웹훅 목록 표시 |
lists create-lists-id-webhooks <LIST_ID> --data '<json>' | 웹훅 추가 |
캠페인
| 명령어 | 설명 |
|---|
campaigns list | 캠페인 목록 표시 |
campaigns get <CAMPAIGN_ID> | 캠페인 정보 가져오기 |
campaigns create --data '<json>' | 캠페인 생성 |
campaigns update <CAMPAIGN_ID> --data '<json>' | 캠페인 설정 업데이트 |
campaigns delete <CAMPAIGN_ID> | 캠페인 삭제 |
campaigns send <CAMPAIGN_ID> | 캠페인 즉시 전송 |
campaigns schedule <CAMPAIGN_ID> --data '<json>' | 캠페인 예약 |
campaigns cancel-send <CAMPAIGN_ID> | 예약 전송 취소 |
campaigns pause <CAMPAIGN_ID> | RSS 캠페인 일시 중지 |
campaigns resume <CAMPAIGN_ID> | RSS 캠페인 재개 |
campaigns replicate <CAMPAIGN_ID> | 캠페인 복제 |
campaigns list-content <CAMPAIGN_ID> | 캠페인 콘텐츠 가져오기 |
campaigns list-send-checklist <CAMPAIGN_ID> | 전송 전 체크리스트 |
보고서
| 명령어 | 설명 |
|---|
reports list | 모든 캠페인 보고서 목록 표시 |
reports get <CAMPAIGN_ID> | 캠페인 요약 보고서 가져오기 |
reports list-email-activity <CAMPAIGN_ID> | 구독자별 열람/클릭 활동 |
reports list-click-details <CAMPAIGN_ID> | 링크 클릭 분석 |
reports list-open-details <CAMPAIGN_ID> | 구독자별 열람 |
reports list-unsubscribed <CAMPAIGN_ID> | 수신 거부자 |
reports list-locations <CAMPAIGN_ID> | 지역별 분석 |
reports list-domain-performance <CAMPAIGN_ID> | 도메인별 통계 |
자동화
| 명령어 | 설명 |
|---|
automations list | 자동화 목록 표시 |
automations get <WORKFLOW_ID> | 자동화 정보 가져오기 |
automations create --data '<json>' | 자동화 생성 |
automations pause <WORKFLOW_ID> | 자동화 일시 중지 |
automations start <WORKFLOW_ID> | 자동화 시작 |
automations archive <WORKFLOW_ID> | 자동화 보관 |
automations list-emails <WORKFLOW_ID> | 자동화 이메일 목록 표시 |
전자상거래
| 명령어 | 설명 |
|---|
ecommerce list-ecommerce-stores | 스토어 목록 표시 |
ecommerce get <STORE_ID> | 스토어 정보 가져오기 |
ecommerce create --data '<json>' | 스토어 추가 |
ecommerce list-ecommerce-stores-id-orders <STORE_ID> | 주문 목록 표시 |
ecommerce list-ecommerce-stores-id-products <STORE_ID> | 제품 목록 표시 |
ecommerce list-ecommerce-stores-id-customers <STORE_ID> | 고객 목록 표시 |
ecommerce list-ecommerce-stores-id-carts <STORE_ID> | 장바구니 목록 표시 |
ecommerce list-ecommerce-stores-id-promocodes <PROMO_RULE_ID> <STORE_ID> | 프로모션 코드 목록 표시 |
기타 리소스
| 그룹 | 설명 |
|---|
templates | 이메일 템플릿 (목록, 조회, 생성, 업데이트, 삭제) |
template-folders | 템플릿 폴더 |
campaign-folders | 캠페인 폴더 |
file-manager | 파일 관리자의 파일 및 폴더 |
landing-pages | 랜딩 페이지 (목록, 생성, 게시, 게시 취소) |
sms-campaigns | SMS 캠페인 (10개 작업) |
surveys | 설문조사 (목록, 조회, 게시) |
reporting | Facebook 광고 및 랜딩 페이지 보고 |
search-campaigns | 검색어로 캠페인 검색 |
search-members | 모든 잠재 고객에서 회원 검색 |
batches | 배치 API 작업 |
batch-webhooks | 배치 작업 웹훅 |
verified-domains | 이메일 도메인 인증 |
authorized-apps | OAuth 연결 앱 |
connected-sites | 연결된 사이트 통합 |
conversations | 받은 편지함 대화 |
activity-feed | 계정 활동 피드 |
account-exports | 계정 데이터 내보내기 |
JSON 출력
모든 명령어는 루트 수준에서 --json을 지원합니다:
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'
응답 구조 (기본 Mailchimp API 응답 — 리소스별 키 사용):
{"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": {...}}
일반적인 에이전트 패턴
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":"Hello","from_name":"Me","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
인수 없이 cli-anything-mailchimp를 실행하면 REPL이 시작됩니다:
◆ cli-anything · Mailchimp
v0.1.0
Type help for commands, quit to exit
◆ mailchimp ❯ ping
✓ {"health_status": "Everything's Chimpy!"}
◆ mailchimp ❯ --json lists list
{"lists": [...], "total_items": 3, "_links": [...]}
◆ mailchimp ❯ quit
참고 사항
- 구독자 해시: Mailchimp는 소문자로 변환된 이메일의 MD5 해시로 회원을 식별합니다. 계산 방법:
python -c "import hashlib; email='[email protected]'; print(hashlib.md5(email.strip().lower().encode()).hexdigest())".
- 본문 페이로드: 모든 POST/PATCH/PUT 명령어는
--data '<json>'을 허용합니다. 각 엔드포인트의 스키마는 Mailchimp API 문서를 참조하세요.
- 데이터센터: API 키는
-us8, -eu2 등으로 끝납니다. CLI가 자동으로 이를 추출하므로 MAILCHIMP_API_KEY에 포함시키기만 하면 됩니다.
- 속도 제한: 마케팅 API는 동시 연결 10개 및 계정당 롤링 제한으로 속도를 제한합니다. 대량 작업의 경우
batches 그룹을 사용하세요.