카카오 채널 고객관리 파일 등록 관련 문의

안녕하세요 결제를 진행하고 나서 고객 관리:고객 파일 등록하기 api를 통해 해당 결제 날짜를 포함한 날짜[ex) xxx.20240108 ] 이런 식으로 파일 등록을 한 다음에 고객 관리:사용자 추가하기 api를 통해 결제한 사람의 정보를 만든 파일에 정보에 기입하려고 합니다

제가 질문 드리고 싶은 부분은 총 1가지 입니다.

  1. 만약 파일 등록을 진행할 때, 날짜 없이 하나의 파일로 관리하려고 하면 파일을 한번만 만들고 그 후에 사용자 등록 api만 사용해서 사용자 정보를 등록하면 되나요? 이렇게 하려는 이유는 결제 할 때마다 파일을 만드는 것도 좀 아닌 것 같다는 생각이 들었고 스키마 한 곳에서만 관리하는 게 좋을 것 같아서 질문 드립니다.

추가적으로 만약 1번처럼 진행한다면 결제할 때 마다 파일 등록은 없애고 추후에 따로 한번만 실행하는 함수를 만들어 스키마를 만들면 될 것 같은데 제 생각이 맞을까요?

안녕하세요.

고객 파일은 그룹을 관리하고자 하는 방향에 따라 결정하시면 됩니다.

문의 하신 내용에서 어떻게 활용하고자 하시는지 잘 이해가 되지 않는데요
결제 일자별로 고객파일을 각각 생성하고자 하시는건가요?

그렇다면 그렇게 하고자 하시는 사유가 어떻게 되시나요?
고객 파일을 어떤 용도로 활용하고자 하시는지 설명해 주시면 활용 방법에 대해 같이 생각해 보겠습니다.

앗 기획이 좀 변경되서 날짜별로 관리하진 않구요

다시 변경되어서 지금 기획은 해당 결제정보나 혹은 유료결제를 진행했을 경우의 경우 등급제로 나누어서 관리하는거로 기획이 변경되었거든요

이 경우는 혹시 파일생성 api는 1번이면 되나요?

파일 생성은 어떻게 활용 하실지에 따라 결정 하시면 됩니다.

예를들어…

  1. 전화번호를 키로 두고 유료결제여부,등급,최종결제일시로 이루어진 파일을 하나둘 수 있습니다.
  2. 2~3일 간격으로 변경된 정보를 업로드하여 갱신해 두고
  3. 특정 일자에 유료결제 여부 최종결제일시를 조건으로 필터링하여 메시지를 발송할 수 있습니다.

혹시 다른 질문을 드려도 될까요?

지금 현재 파일은 미리 만들어 놨고 그 해당하는 파일에 사용자 추가 api 를 사용해서 데이터만 쌓으면 되는 상황인데요

다만 다른 걱정이 좀 있습니다 저희 상품이 만료일에 따라서 멤버십 등급을 수정할 예정이거든요

해당 데이터에도 멤버십 등급이 있는데 이런 등급을 저희 쪽 배치를 통해서 매일매일 해당 유저의 멤버십을 수정할 계획인데요
다만 이렇게되면 데이터 쌓는 구조가 어떻게 되는지 궁금합니다
에를들어
사용자 : A, 구매날짜 : 2024.01.10, 멤버쉽등급 : 4
이런 유저가 있고 배치를 통해 구매날짜를 확인한 후 다시 사용자 등록 api를 사용하여 해당 사용자의 멤버십 정보를 추가하는게 아니라 update 할 수 있는지 궁금합니다.
만약 안된다면 배치에서는 삭제 후 추가해야 될 것 같아서요

안녕하세요.

삭제하시고 추가 부탁드립니다.

사용자 추가 API 사용 시, 기 등록된 내용이 있으면 업데이트 하지만
친구그룹 목록에는 반영되지 않을 수 있습니다.

예를들어,
서비스의 회원등급이 1,2,3,4가 있고 친구그룹 목록 조건으로 3등급 이상을 주셨을 때

  1. 등급 1로 최초 등록 → 친구그룹에 반영되지 않음 (조건 미일치)
  2. 등급 3으로 업데이트 → 친구그룹에 반영됨
  3. 등급 2로 다시 업데이트 → 친구그룹에서 제외되지 않음

즉, 친구그룹 목록에 이미 등록된 친구는 조건 변경에 따라 제외되지는 않고 사용자 삭제 API를 통해서만 제거할 수 있습니다.

실제 사용자 등록을 하려고 하고 있는데요
request_count : 1
만 있고
success_count : 0
인 경우는 어떤 경우인가요?

앱 아이디는 166395 입니다.

안녕하세요.

고객 파일에 추가 요청한 사용자 수(request_count) 와 고객 파일에 추가된 사용자 수(success_count)는 다를 수 있습니다.

유효하지 않은 사용자로 등록 요청 하시는 경우 추가된 사용자 수에 집계 되지 않습니다.
전달된 전화번호 또는 회원번호는 실제 해야 합니다.

실제 제가 등록한 파일은 번호인데요 실제로 존재하는 번호이기도 하고 해당 채널에 해당 번호로 되어있는 사람도 추가가 되어있는 상태입니다
채널이름도 문제없는것 같고
List<Map<String, Object>> usersList = new ArrayList<>(); 만든 다음
Map<String, Object> userMap = new HashMap<>();

Map<String, Object> fieldMap = new HashMap<>();
을 따로 만들어서
userMap 에는 id 에 해당하는 값만 세팅하고
그외 값들은 Map<String, Object> fieldMap = new HashMap<>();
변수 fieldMap에 세팅한 다음에
gson을 사용하여 해당 필드를 json으로 세팅하였습니다
그 후에 바디 에다가 userList만 보낸 상황입니다.

{user_type=phone, channel_public_id=_pjAxdG, file_id=67980, users=[{field={상품코드=2000051006, 멤버십 등급=4, 정기결제여부=1, 최근구매일=2024-01-16}, id=xxx-xxxx-xxxx}]}

이런식으로 세팅이 되어있는 것으로 확인하였습니다

전달된 한글 부분이 인코딩이 깨져서 요청 되었는데요
구현하신 코드의 인코딩 확인 부탁드립니다.

참고: 고객 파일에 일부 사용자가 추가되지 않은 경우 확인 항목
  • 카카오톡 채널과 친구 상태인 사용자만 고객 파일에 추가 가능합니다.
  • user_type이 app인 경우, ID 값이 카카오 로그인을 통해 발급된 회원번호(user id)여야 합니다. 즉, 해당 사용자가 카카오계정으로 서비스에 연결된 상태여야 합니다.
  • user_type이 phone인 경우, ID 값이 카카오톡에 가입되어 있는 전화번호여야 합니다.

아하 알겠습니다

혹시 추가적으로 질문드리고 싶은데요
친구 상태라는게 모호한데 api 실제 예시를 보면 친구상태임을 표시하는 데이터는 없는데 어떤걸 말씀하시는건지 상세하게 질문드립니다.

아 그리고 한글 깨진다는 말씀을 핫서 setHeader 안에 charset=UTF-8 도 넣긴 넣었습니다만 여전히 request_count만 1 나옵니다.

한글깨지는부분 해결하고 나니깐 success_count도 1 잘 체크되서 확인되었습니다 답변 감사합니다

해당 채널을 친구로 추가한 사용자를 말합니다.
전달한 전화번호에 해당하는 사용자가 채널을 친구 추가하지 않은경우 고객 파일에 등록되지 않습니다.

혹시 그 말씀은 등록하려는 사용자가 채널 관계 api를 통해 친구 추가 여부를 파악한 다음에 사용자 추가를 진행 해야 된다는 말씀이신가요?

문의 주신 내용처럼 정확히 하고자 하신다면 채널 관계를 조회하여 추가 하실 수도 있겠지만
보통은 확보한 고객 중, 메시지 발송 가능한 대상이라는 큰 틀로 보기에 그러한 체크를 하지 않는 경우가 더 많습니다.

사용자는 채널 친구를 언제든지 차단하고 다시 추가할 수 있습니다.
때문에 굳이 정확히 체크해야 하는 니즈가 없다면 그냥 사용하셔도 무방할것 같습니다.

즉, 서비스측 기호에 따라 처리하시면 됩니다.

넵 답변 감사합니다

혹시 번외 질문 해도 될까요? 사용자 파일 읽기 api를 사용해서 request까지는 문제없는것 같은데요

응답메시지가 msg: Forbidden, code: -403 이런식으로 떨어져서 그런데 이 이슈는 혹시 저희 쪽 문제라고 봐야 될까요?