Mailchimp 커넥터
Mailchimp 계정을 Tajo를 통해 Brevo에 연결하여 원활한 오디언스 마이그레이션, 캠페인 데이터 동기화, 두 플랫폼 간의 통합 마케팅 자동화를 실현하십시오.
개요
| 속성 | 값 |
|---|---|
| 플랫폼 | Mailchimp |
| 카테고리 | Marketing |
| 설정 복잡도 | 쉬움 |
| 공식 통합 | 예 |
| 동기화 데이터 | 연락처, 캠페인, 자동화, 이벤트 |
| API Base URL | https://{dc}.api.mailchimp.com/3.0 |
기능
- 오디언스 동기화 - Mailchimp 오디언스를 Brevo 연락처 목록과 마이그레이션 및 동기화
- 캠페인 데이터 - 통합 보고를 위한 캠페인 성능 데이터 동기화
- 자동화 마이그레이션 - Mailchimp 자동화를 Brevo 워크플로에 매핑
- 참여 지표 - 오픈, 클릭, 반송 데이터를 Brevo 속성에 동기화
- 세그먼트 매핑 - Mailchimp 세그먼트를 Brevo 목록 또는 세그먼트로 복제
- 이커머스 데이터 - Mailchimp 이커머스에서 스토어, 제품, 주문 데이터 동기화
- 태그 동기화 - Mailchimp 태그를 Brevo 연락처 속성 또는 목록에 매핑
- 템플릿 마이그레이션 - Brevo 캠페인에서 사용할 Mailchimp 템플릿 내보내기
사전 요구 사항
시작하기 전에 다음이 준비되어 있는지 확인하십시오.
- Mailchimp 계정 (Free, Essentials, Standard 또는 Premium)
- Mailchimp API 키 또는 OAuth 앱
- API 접근이 가능한 Brevo 계정
- Tajo 계정
인증
API 키 인증
Mailchimp Account > Extras > API Keys에서 API 키를 생성하십시오.
curl https://{dc}.api.mailchimp.com/3.0/ping \ --user "anystring:{api_key}" \ -H "Content-Type: application/json"{dc} 데이터 센터 접두사는 API 키의 마지막 부분입니다 (예: us21).
OAuth 2.0
다중 계정 통합의 경우:
# 인증 URLhttps://login.mailchimp.com/oauth2/authorize? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}
# 토큰 교환curl -X POST https://login.mailchimp.com/oauth2/token \ -d "grant_type=authorization_code" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "redirect_uri={redirect_uri}" \ -d "code={auth_code}"데이터 센터
항상 API 키 또는 OAuth 메타데이터 엔드포인트에서 데이터 센터를 추출하십시오. 잘못된 데이터 센터를 사용하면 인증 실패가 발생합니다.
구성
기본 설정
connectors: mailchimp: enabled: true api_key: "${MAILCHIMP_API_KEY}" data_center: "us21"
# 데이터 동기화 옵션 sync: audiences: true campaigns: true automations: true ecommerce: true
# 오디언스를 Brevo 목록에 매핑 audience_mapping: "Main Audience": 40 "Newsletter": 41 "Customers": 42필드 매핑
Mailchimp 병합 필드를 Brevo 연락처 속성에 매핑합니다.
기본 매핑
| Parameter | Type | Description |
|---|---|---|
email_address required | string | 구독자 이메일 (고유 식별자) |
FNAME optional | string | 이름 병합 필드, FIRSTNAME에 매핑 |
LNAME optional | string | 성 병합 필드, LASTNAME에 매핑 |
PHONE optional | string | 전화 병합 필드, SMS에 매핑 |
status optional | string | 구독 상태 (subscribed, unsubscribed, cleaned, pending) |
tags optional | array | 세그먼테이션을 위한 구독자 태그 |
stats.avg_open_rate optional | number | 평균 이메일 오픈율 |
stats.avg_click_rate optional | number | 평균 이메일 클릭률 |
맞춤 병합 필드 매핑
field_mapping: # 표준 필드 email_address: email FNAME: FIRSTNAME LNAME: LASTNAME PHONE: SMS
# 참여 지표 stats.avg_open_rate: AVG_OPEN_RATE stats.avg_click_rate: AVG_CLICK_RATE member_rating: ENGAGEMENT_SCORE
# 이커머스 필드 ecommerce_data.total_revenue: TOTAL_REVENUE ecommerce_data.number_of_orders: ORDER_COUNT
# 맞춤 병합 필드 MMERGE5: COMPANY_NAME MMERGE6: CUSTOMER_TYPEAPI 엔드포인트
오디언스 (목록)
| 메서드 | 엔드포인트 | 설명 |
|---|---|---|
GET | /3.0/lists | 모든 오디언스 목록 |
GET | /3.0/lists/{list_id} | 오디언스 세부 정보 가져오기 |
GET | /3.0/lists/{list_id}/members | 오디언스 멤버 목록 |
POST | /3.0/lists/{list_id}/members | 멤버 추가 |
PUT | /3.0/lists/{list_id}/members/{hash} | 멤버 업데이트 |
POST | /3.0/lists/{list_id} | 배치 구독/구독 취소 |
캠페인
| 메서드 | 엔드포인트 | 설명 |
|---|---|---|
GET | /3.0/campaigns | 캠페인 목록 |
GET | /3.0/campaigns/{id} | 캠페인 세부 정보 가져오기 |
GET | /3.0/reports/{id} | 캠페인 보고서 가져오기 |
GET | /3.0/reports/{id}/email-activity | 이메일 활동 가져오기 |
자동화
| 메서드 | 엔드포인트 | 설명 |
|---|---|---|
GET | /3.0/automations | 자동화 목록 |
GET | /3.0/automations/{id} | 자동화 세부 정보 가져오기 |
GET | /3.0/automations/{id}/emails | 자동화 이메일 목록 |
이커머스
| 메서드 | 엔드포인트 | 설명 |
|---|---|---|
GET | /3.0/ecommerce/stores | 연결된 스토어 목록 |
GET | /3.0/ecommerce/stores/{id}/customers | 스토어 고객 목록 |
GET | /3.0/ecommerce/stores/{id}/orders | 스토어 주문 목록 |
GET | /3.0/ecommerce/stores/{id}/products | 스토어 제품 목록 |
이벤트
캠페인 이벤트
| 이벤트 | 트리거 | 사용 사례 |
|---|---|---|
campaign.sent | 캠페인 배달됨 | 성능 추적 |
campaign.opened | 이메일 오픈됨 | 참여 점수 산출 |
campaign.clicked | 링크 클릭됨 | 관심사 추적 |
campaign.bounced | 이메일 반송됨 | 목록 정리 |
구독자 이벤트
| 이벤트 | 트리거 | 사용 사례 |
|---|---|---|
subscribe | 신규 구독자 추가됨 | 환영 플로 |
unsubscribe | 구독자 옵트 아웃 | 선호도 관리 |
profile | 프로필 업데이트됨 | 속성 동기화 |
cleaned | 이메일 정리됨 (반송) | 목록 유지 관리 |
이커머스 이벤트
| 이벤트 | 트리거 | 사용 사례 |
|---|---|---|
ecommerce.order | 주문 배치됨 | 구매 후 플로 |
ecommerce.cart | 카트 업데이트됨 | 방치된 카트 복구 |
코드 예제
커넥터 초기화
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Mailchimp 연결await tajo.connectors.connect('mailchimp', { apiKey: process.env.MAILCHIMP_API_KEY});오디언스를 Brevo로 마이그레이션
// Mailchimp에서 Brevo로의 전체 오디언스 마이그레이션await tajo.connectors.sync('mailchimp', { type: 'full', resources: ['audiences', 'campaigns', 'ecommerce'], options: { preserveTags: true, migrateSegments: true, includeUnsubscribed: false }});
// 마이그레이션 상태 확인const status = await tajo.connectors.status('mailchimp');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 52000,// campaignsSynced: 245,// segmentsMapped: 18// }캠페인 참여 데이터 동기화
// 캠페인 성능을 Brevo 속성에 동기화await tajo.connectors.sync('mailchimp', { type: 'incremental', resources: ['campaigns'], options: { syncEngagement: true, updateContactMetrics: true, since: '2024-01-01' }});속도 제한
Mailchimp Marketing API 속도 제한:
| 유형 | 제한 | 세부 사항 |
|---|---|---|
| 표준 | 10개 동시 요청 | API 키당 |
| 배치 작업 | 배치당 500개 작업 | 요청당 |
| 내보내기 제한 | 1개 동시 내보내기 | 계정당 |
| 트랜잭션 | 25 요청/초 | API 키당 |
속도 제한 전략
Mailchimp는 초당 요청보다는 동시 연결을 제한합니다. 배치 엔드포인트를 사용하고 429 응답에 대해 지수 백오프로 재시도 로직을 구현하십시오.
문제 해결
일반적인 문제
| 문제 | 원인 | 해결 방법 |
|---|---|---|
| 401 Unauthorized | 잘못된 API 키 또는 데이터 센터 | API 키 확인 및 올바른 dc 접두사 추출 |
| 멤버가 이미 존재함 | 이메일이 이미 오디언스에 있음 | 기존 멤버 업데이트에 POST 대신 PUT 사용 |
| 규정 준수 상태 | GDPR 삭제로 재추가 방지 | 연락처는 가입 폼을 통해 재구독해야 함 |
| 배치 시간 초과 | 대규모 배치 작업 | 500개 작업의 더 작은 배치로 분할 |
| 병합 필드 누락 | 맞춤 필드가 생성되지 않음 | 매핑 전에 Mailchimp에서 병합 필드 생성 |
디버그 모드
자세한 로깅 활성화:
connectors: mailchimp: debug: true log_level: verbose log_api_calls: true연결 테스트
tajo connectors test mailchimp# ✓ API 연결 성공# ✓ 오디언스 읽기 가능# ✓ 캠페인 읽기 가능# ✓ 이커머스 데이터 접근 가능# ✓ 웹훅 구성됨모범 사례
- 배치 작업 사용 - 대량 업데이트에 배치 구독/구독 취소 사용
- 구독자 상태 보존 - 마이그레이션 중 구독 동의 존중
- 먼저 병합 필드 매핑 - 동기화 전에 해당하는 Brevo 속성 생성
- 참여 데이터 동기화 - 과거 세그먼테이션을 위한 오픈/클릭률 가져오기
- 규정 준수 상태 처리 - GDPR 및 영구 삭제 상태 준수
- 증분 동기화 사용 - API 사용을 줄이기 위해 마지막 동기화 이후 변경 사항만 동기화
보안
- API 키 인증 - HTTP Basic Auth 비밀번호로 전달되는 시크릿 키
- OAuth 2.0 - 다중 계정 접근을 위한 토큰 기반 인증
- TLS 암호화 - HTTPS를 통해 암호화된 모든 API 통신
- 웹훅 확인 - 공유 시크릿으로 웹훅 소스 검증
- 데이터 센터 격리 - 지역별 데이터 센터에 저장된 데이터