무엇을 도와드릴까요?

문의 내용을 간단히 알려 주세요. 이메일로 답변드릴게요.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
홈으로

채팅의 고객 데이터(주문, 배송, 청구서)

AI 어시스턴트가 로그인한 고객 자신의 주문 질문에 답하게 합니다. 서명된 신원과 정확히 정한 필드로 안전하게 처리하며 쇼핑몰에서 조회하거나 가져옵니다.

고객 데이터를 사용하면 AI 어시스턴트가 “내 택배는 어디에 있나요?”, “청구서가 결제되었나요?”, “지난 주문에 무엇이 있었나요?” 같은 질문에 답합니다. 로그인한 고객의 자신의 데이터만 다룹니다. 이 기능은 유료 요금제에서 제공됩니다.

데이터 보호 방식

전제 조건: 본인 확인

어시스턴트는 운영자의 서버가 신원을 확인한 방문자의 고객 데이터만 사용합니다. 계정의 프로젝트 → 본인 확인에서 시크릿을 설정합니다. 시크릿은 서버에만 두고 브라우저나 스니펫에 넣어서는 안 됩니다.

서버는 로그인한 고객마다 만료 시각(최대 24시간 후)이 포함된 해시를 계산해 위젯에 전달합니다.

$userId = (string) $customer->id;
$exp    = time() + 3600;
$hash   = hash_hmac('sha256', $userId . '.' . $exp, getenv('RC_IDENT_SECRET'));
echo "<script>ReactiveChat('identify', { userId: " . json_encode($userId)
   . ", userHash: " . json_encode($hash) . ", exp: " . $exp . " });</script>";
const crypto = require('crypto');
const exp  = Math.floor(Date.now() / 1000) + 3600;
const hash = crypto.createHmac('sha256', process.env.RC_IDENT_SECRET)
                   .update(String(user.id) + '.' + exp).digest('hex');
// in the template: ReactiveChat('identify', { userId: '<id>', userHash: '<hash>', exp: <exp> });

exp가 없는 해시도 방문자를 확인합니다(예: 대화 기록용). 하지만 고객 데이터에는 충분하지 않습니다. 시크릿을 갱신하면 이전 시크릿은 24시간 동안 유효합니다.

이메일에도 서명하기(일정 예약과 이메일 기반 연동용). 해시 옆의 email은 서명에 포함되어야 확인된 것으로 간주합니다. userHash = HMAC-SHA256(secret, userId + "." + exp + "." + email)이며 주소는 identify에 전달하는 그대로여야 합니다. 포함하지 않으면 방문자는 로그인 상태를 유지하지만 어시스턴트는 그 주소로 일정을 예약하지 않고 연동에서도 조회하지 않습니다. 기존 userId + "." + exp 형식은 그대로 작동합니다.

조회, 가져오기 또는 둘 다

프로젝트 → 고객 데이터에서 어시스턴트의 데이터 출처를 선택합니다.

어시스턴트가 받을 수 있는 데이터

각 필드를 개별적으로 활성화합니다. 기본값은 일반적인 질문을 지원합니다.

비활성 필드는 어시스턴트에 도달하지 않습니다. 조회 시 폐기하고 가져오기 시 아예 저장하지 않습니다. 도시와 우편번호는 명시적으로 활성화해야만 허용됩니다. 도로명과 이름은 항상 제외됩니다.

절대 전달하지 않는 정보

다음 항목은 활성화할 수 없습니다. 쇼핑몰에서 보내면 폐기합니다.

제한

응답당 최대 주문 10개, 주문당 항목 20개, 텍스트 최대 200자, 전체 응답 최대 16 kB입니다. 알 수 없는 필드는 오류 없이 폐기합니다.

조회 엔드포인트

reactive.chat은 POST로 엔드포인트를 호출합니다.

POST https://shop.your-domain.com/rc-customer-data
Content-Type: application/json
X-RC-Zeit: 1791196400
X-RC-Signatur: <hex(HMAC_SHA256(endpoint secret, X-RC-Zeit + "." + body))>

{"user_id":"4711","anliegen":"bestellung","referenz":"2026-0815","sprache":"en","nonce":"..."}

엔드포인트는 다음을 충족해야 합니다.

  1. 서명을 검증하고(상수 시간 비교), X-RC-Zeit가 5분 넘게 차이 나는 요청은 거부합니다.
  2. 지정된 user_id의 데이터만 반환합니다.
  3. 공인 주소의 443 포트에서 https로 접근 가능해야 하며 리디렉션은 없어야 합니다.
  4. 3초 안에 응답합니다.

응답:

{
  "bestellungen": [
    {
      "nummer": "2026-0815", "datum": "2026-09-28", "status": "shipped",
      "summe": "49.90", "waehrung": "EUR",
      "positionen": [ { "name": "Balance bike blue", "menge": 1 } ],
      "versand": { "dienst": "DHL", "sendungsnummer": "00340434...", "status": "out for delivery" },
      "rechnung": { "nummer": "R-2026-1201", "status": "paid", "faellig_am": "2026-10-12" }
    }
  ]
}

개발자 문서에 완전한 PHP 예제가 있습니다(kundendaten-referenz-endpunkt.php).

연결 테스트로 reactive.chat은 user_id가 rc-test, 요청 유형이 test인 요청을 엔드포인트에 보내고 결과를 표시합니다. 빈 목록이나 샘플 주문을 반환합니다.

API로 가져오기

kundendaten:schreiben 권한이 있는 API 키를 사용합니다.

PUT https://reactive.chat/v1/kundendaten/4711?project_id=123
Authorization: Bearer <API key>
Content-Type: application/json

{"bestellungen":[ ... as above ... ]}

project_id는 프로젝트 번호입니다. 워크스페이스에 프로젝트가 하나뿐이면 생략할 수 있습니다. PUT은 이 고객 ID의 모든 주문(최대 50개)을 대체합니다. DELETE /v1/kundendaten/4711?project_id=123은 제거합니다. 가져온 데이터는 당사에 암호화해 저장하며 마지막 가져오기 후 90일에 삭제합니다. 따라서 상태가 바뀔 때마다 보내는 등 변경 사항을 지속적으로 전송합니다.

로그인하지 않은 방문자

확인된 신원 없이 주문을 질문하면 어시스턴트는 아무 데이터도 조회하지 않습니다. 대신 프로젝트 → 고객 데이터에서 설정한 안내를 표시합니다. 언어별 텍스트와 선택적 로그인 링크입니다. 또는 팀에 질문을 인계합니다.

저장되는 내용

문제 해결

문서에서 더 알아보기

자세한 내용: 고객 데이터 엔드포인트. 모든 장은 문서에서 확인할 수 있습니다.

최종 업데이트: