Tajo는 두 가지 방식으로 Shopify 데이터를 Brevo로 옮깁니다. Tajo Shopify 앱은 Shopify 웹훅이 도착하는 대로 처리합니다. 동기화 규칙은 사람이 승인하고, 한 방향으로만 흐르며, 배치로 실행되고, 처음부터 끝까지 기록됩니다. 이 문서에서는 두 가지 방식, 각각에 포함되지 않는 것, 그리고 Tajo Shopify 앱이 Shopify에 다시 기록하는 몇 가지 항목을 설명합니다.
시작 전 확인 이 문서는 Shopify와 Brevo를 연결하고 동기화 규칙을 하나 이상 게시했다는 전제하에 작성되었습니다. 아직이라면 Tajo를 Shopify에 연결하기부터 시작하세요.
이벤트가 발생할 때: Tajo Shopify 앱
Tajo Shopify 앱은 Shopify 웹훅을 구독하고, 각 웹훅이 도착하는 대로 처리합니다. 고객과 상품 변경은 처리 전에 약 4초를 기다립니다. 고객, 주문, 체크아웃, 상품, 컬렉션, 재고 수준이 이 방식으로 Brevo에 전달되며, order_paid와 cart_abandoned 같은 이벤트도 함께 전송됩니다. 모든 토픽과 각 토픽이 Brevo에 기록하는 내용은 Shopify 연동 가이드에 정리되어 있습니다.
동기화 규칙의 구조
동기화 규칙은 무엇이 어떻게 이동하는지를 검토·승인한 정의입니다. 설명을 바탕으로 에이전트가 만들고, 사람이 승인합니다. 규칙은 네 부분으로 구성되며, Connections > Syncs and mappings의 규칙 페이지에서 확인할 수 있습니다.
| 구성 요소 | 역할 |
|---|---|
| 필드 매핑 | 각 소스 필드, 기록될 Brevo 필드, 그 사이에 적용되는 변환 |
| 필터 표현식 | 레코드별로 평가되며, 조건에 맞지 않는 레코드는 건너뜁니다 |
| 커서 | 동기화 진행 위치를 추적하여, 각 실행이 이전 실행이 멈춘 지점부터 이어가도록 합니다 |
| 실행 기록 | 모든 실행과 그 읽기·기록·실패 레코드 수, 소요 시간, 상태 |
동기화 규칙은 데이터를 한 방향, 즉 소스에서 Brevo로만 이동합니다. Shopify에는 절대 기록하지 않습니다. 다만 Tajo Shopify 앱은 수신 거부 동의나 로열티 등급 태그 같은 몇 가지 항목을 Shopify에 다시 기록합니다. 각 기록과 그 시점은 Shopify 권한 설명에 나와 있습니다.
동기화 규칙이 실행되는 시점
동기화 규칙은 배치로 실행됩니다. 연락처 동기화 규칙은 기본적으로 15분마다 실행됩니다. 활성 상태로 게시된 Shopify orders → Brevo orders 규칙도 15분마다 실행되지만, 템플릿의 구매자 마케팅 옵트인 필터가 있을 때만 그렇습니다. 필터를 편집한 규칙은 직접 시작할 때만 실행됩니다. 주문 규칙의 첫 예약 실행은 그 시점의 몇 분 전부터 시작하며 그보다 오래된 주문은 보내지 않습니다. 이후 각 실행은 이전 실행 이후에 업데이트된 주문을 보냅니다. 과거 주문은 규칙을 직접 실행할 때만 Brevo로 전송됩니다. 활성 규칙의 페이지에는 Test run (1 batch) 버튼이 있고, 요청하면 Sync Operator 에이전트가 활성 규칙을 실행합니다. 배치 실행이기에 모든 기록이 검토 가능하고, 예산이 관리되며, 특정 실행에 귀속될 수 있습니다.
각 실행은 커서 이후의 신규·변경 레코드를 읽고, 필터를 적용하고, 필드를 매핑한 뒤 Brevo에 기록합니다. 실행 레코드에는 읽고, 기록하고, 실패한 레코드 수가 정확히 표시됩니다.
거버넌스 보장
동의는 실패 시 차단됩니다
개인 데이터를 Brevo에 기록하는 규칙은 동의 및 발송 차단 필터 없이는 게시할 수 없습니다. 실행 시점에 동의를 입증할 수 없는 상태로 마케팅 오디언스에 기록되려는 연락처는 거부됩니다. 동의를 확인할 수 없을 때 Tajo는 추측하지 않고 기록을 거부합니다. 실패의 방향은 언제나 “지나치게 신중한” 쪽이지, “과잉 발송” 쪽이 아닙니다.
실행은 멱등합니다
모든 기록에는 소스 레코드에서 파생된 키가 부여됩니다. 이 키는 해시이므로 개인 데이터를 담고 있지 않습니다. 실패 후, 일시 중지 후, 또는 수동으로 같은 레코드에 대해 동기화를 다시 실행해도 중복 기록이 생기지 않습니다.
모든 것이 감사됩니다
규칙 게시, 무효화된 승인, 자동 일시 중지는 Activity에 기록됩니다. 각 승인 결정에는 서면 사유가 함께 남습니다. 각 실행은 규칙의 실행 기록에 남습니다. 게시를 허가한 승인은 미리 보기를 거친 바로 그 규칙의 다이제스트에 결속됩니다. 규칙을 수정하면 초안으로 돌아가고 승인이 무효화되므로, 실행되는 내용은 항상 허가된 내용과 같습니다.
실패가 반복되면 규칙이 일시 중지됩니다
실행이 5번 연속 실패하면 서킷 브레이커가 규칙을 자동으로 일시 중지하고 마지막 오류를 규칙 페이지에 표시합니다. 원인을 해결한 뒤 다시 게시하면 재개됩니다. 부분적으로 실패한 실행은 실패 건수를 보고하므로, 무엇이 기록되지 않았는지 정확히 확인할 수 있습니다.
수신 거부는 어떻게 처리되나요
- 연락처가 Brevo 이메일 하단의 링크로 수신을 거부하면, 그 옵트아웃이 연락처에 기록되고 Brevo가 이후 캠페인에서 해당 연락처를 제외합니다.
- 배치 고객 동기화에서 Tajo Shopify 앱은 Shopify 동의 시각과 Brevo 수신 거부 시각을 비교해 더 나중의 것을 유지합니다.
- Shopify에서 웹훅으로 도착한 동의 변경은 Shopify가 보고한 그대로 Brevo에 기록됩니다.
- 해당 연락처가 Shopify에서 구독 상태였다면, Tajo Shopify 앱은 Shopify에서도 수신 거부 상태로 표시합니다. Brevo 이벤트는 구독 상태에서 수신 거부 상태로만 바꿉니다. 누구도 구독 상태로 바꾸지 않으므로, Brevo에서 구독해도 Shopify는 바뀌지 않습니다.
어떤 데이터를 사용할 수 있나요
Tajo Shopify 앱은 연락처, 주문, 주문 및 장바구니 이벤트, 상품 카탈로그, 재고를 보냅니다. 동기화 규칙이 무엇을 보내는지는 필드 매핑에 따라 다릅니다. Shopify 고객의 경우 템플릿은 식별 필드, 총 구매 금액, 주문 수, 태그, 옵트인을 세그먼트와 캠페인에서 사용할 수 있는 Brevo 연락처 속성으로 매핑합니다. 워크스페이스의 정확한 매핑은 설명문 속에 숨어 있지 않습니다. 동기화 규칙을 열어 필드 매핑 표를 읽으세요. 그 표가 “무엇이 동기화되는가”에 대한 공식적인 답입니다.
Tajo가 현재 하지 않는 것
긴 기능 목록보다 경계를 정확히 하는 것이 더 중요합니다.
- 양방향 동기화 규칙은 없습니다. 동기화 규칙은 Brevo에만 기록합니다. Shopify 앱이 Shopify에 직접 수행하는 기록(수신 거부 동의, Brevo 참여 및 로열티 메타필드, 로열티 등급 태그)은 Shopify 권한 설명에 나와 있습니다.
- 실시간 동기화 규칙은 없습니다. 동기화 규칙은 배치로 실행됩니다. 이벤트가 도착하는 대로 동작하는 것은 Tajo Shopify 앱의 웹훅 동기화뿐입니다.
- 재입고 알림 버튼은 없습니다. 앱은 Brevo의 상품 재고를 최신 상태로 유지하고, 알림을 요청한 쇼핑객에게
back_in_stock이벤트를 보냅니다. 요청은 스토어프런트에서 보내야 합니다. 앱은 테마에 “알림 받기” 버튼을 추가하지 않습니다.
이 경계 중 하나가 사용 사례를 가로막는다면 팀에 알려 주세요. 얼리 액세스의 우선순위는 바로 이런 피드백으로 결정됩니다.
데이터를 확인하는 곳
- Tajo에서: Connections > Syncs and mappings에서 동기화 규칙을 열면 실행 기록, 커서 위치, 실행별 건수를 볼 수 있습니다. Activity에는 게시와 자동 일시 중지가 기록됩니다.
- Brevo에서: 연락처를 열고 아무 연락처의 속성을 살펴 매핑된 필드에 값이 채워지는지 확인하세요. 해당 속성으로 타기팅용 세그먼트를 만들 수 있습니다.
문제 해결
- Brevo에 연락처가 나타나지 않을 때: 규칙의 최신 실행에 실패가 있는지, 상태가 어떤지 확인하세요(일시 중지된 규칙은 실행되지 않습니다). Brevo에 연락처가 없을 때를 참고하세요.
- 실행이 반복해서 실패할 때: 서킷 브레이커가 규칙을 일시 중지하고 마지막 오류를 표시합니다. 데이터가 동기화되지 않을 때를 참고하세요.
- 연락처가 중복될 때: 기록은 소스 레코드 단위로 멱등하지만, Brevo에 원래 있던 중복은 그대로 남습니다. 중복 연락처를 참고하세요.
자주 묻는 질문
동기화를 더 빠르게 할 수 있나요? 활성 규칙의 페이지에는 Test run (1 batch) 버튼이 있습니다. 변경 사항을 바로 반영하려는 경우, Tajo Shopify 앱의 웹훅 동기화가 이미 고객, 주문, 체크아웃, 상품, 재고를 처리합니다.
실행이 중간에 실패하면 어떻게 되나요? 실행은 실패 건수를 보고하고, 커서는 처리된 범위만큼만 전진합니다. 다음 실행이 남은 구간을 안전하게 다시 처리하며, 멱등 키가 중복을 방지합니다.
동기화 내용을 변경할 수 있나요? 네. 에이전트에게 규칙의 필드 매핑이나 필터를 바꿔 달라고 요청하세요. 수정하면 규칙이 초안으로 돌아가며, 다시 실행되기 전에 미리 보기와 승인을 다시 거쳐야 합니다.
규칙이 왜 저절로 일시 중지됐나요? 연속된 실행 실패가 서킷 브레이커를 작동시켰기 때문입니다. 규칙 페이지에 실패 횟수와 마지막 오류가 표시됩니다. 문제를 해결하고 다시 게시하세요.