연락처 속성(Contact Properties)
계정 유형, 지역, 계약 등급 같은 연락처의 커스텀 필드를 정의하고 위젯을 통해 전달하세요. 속성은 연락처 프로필에 표시되고, 상담원이 편집할 수 있으며, Inbox에서 필터링할 수 있습니다.
개요#
연락처 속성을 사용하면 기본 제공 필드(email, name, userId)를 넘어 구조화된 데이터를 대화에 첨부할 수 있습니다. 자유 형식의 metadata와 달리 속성은 타입, 레이블, 검증이 정의된 스키마를 가집니다 — HubSpot이나 Salesforce의 커스텀 필드와 비슷합니다.
스키마 정의
string, number, enum, boolean, date, url 같은 타입으로 에이전트 설정에서 속성 정의를 만드세요
위젯에서 전달
Respondo.identify()로 속성 값을 전송하세요 — 값은 자동으로 저장되고 표시됩니다
필터링 & 편집
Inbox에서 속성 값으로 대화를 필터링하세요. 상담원은 연락처 프로필에서 연락처의 속성을 보고 편집할 수 있습니다.
속성 정의하기#
속성은 에이전트 설정 → 연락처 속성에서 에이전트별로 정의됩니다. 각 속성은 다음을 가집니다:
| 필드 | 설명 |
|---|---|
| key | 코드에서 사용되는 고유 식별자. 레이블에서 자동 생성됩니다(편집 가능). 소문자, 숫자, 언더스코어만 허용되며, 문자로 시작해야 하고, 2~63자여야 합니다. 시스템 키(user_id, visitor_id, timezone, page_url 등)는 예약되어 있습니다. 예: account_type |
| label | 대시보드에 표시되는 사람이 읽을 수 있는 이름. 예: "Account Type" |
| type | 값 타입: string, number, boolean, enum, date, url |
| enum_values | enum 타입의 경우 — 허용되는 값 목록. 예: ["starter", "pro", "enterprise"] |
| is_filterable | 향후 필터 제어를 위해 예약됨. 정의와 함께 저장되지만, 현재 Inbox 필터 선택기는 정의된 모든 속성을 나열합니다(기본값: true) |
| is_visible | 향후 표시 제어를 위해 예약됨. 정의와 함께 저장되지만 아직 UI에는 적용되지 않습니다(기본값: true) |
위젯에서 전달하기#
Respondo.identify()의 properties 필드에 속성 값을 전달하세요. 키는 에이전트 설정의 속성 정의와 일치해야 합니다.
Respondo.identify({
email: 'user@example.com',
name: 'Jane Smith',
userId: 'usr_456',
properties: {
account_type: 'enterprise', // enum
region: 'eu-west', // string
monthly_spend: '15000', // number (문자열로 전달)
is_partner: 'true', // boolean (문자열로 전달)
contract_end: '2026-12-31', // date
dashboard_url: 'https://app.example.com/org/123' // url
}
});통합 스니펫#
통합 스니펫은 속성을 하나 이상 정의하면 에이전트 설정 → 연락처 속성 아래에 모든 속성 키가 미리 채워진 상태로 자동으로 나타납니다. 복사를 클릭해 가져다가 애플리케이션에 붙여 넣으세요. 생성된 스니펫에는 신원 확인(HMAC-SHA256)용 userHash 플레이스홀더도 포함되어 있습니다.
값이 저장되는 방식#
속성 값은 대화의 metadata JSONB 필드에 cp_ 접두사를 붙여 저장됩니다. 예를 들어 키가 account_type인 속성은 cp_account_type로 저장됩니다.
속성은 모든 메시지마다 업데이트됩니다 — 위젯이 새 값을 보내면 기존 값을 덮어씁니다. 즉, 속성 값은 항상 애플리케이션의 최신 데이터를 반영합니다.
Inbox에서 필터링하기#
Inbox 필터 바나 저장된 뷰(View)를 사용해 속성 값으로 대화를 필터링하세요. 속성(Property) 조건을 추가하고 이름으로 속성을 고르세요 — 선택기는 모든 에이전트에 걸친 모든 정의를 나열하며 정의가 없는 원시 키도 허용합니다 — 그런 다음 값을 선택하세요. 값 필드는 입력하는 동안 관측된 값과 enum 값을 제안합니다.
API에서는 대화 목록 엔드포인트가 cp.<key>=<value> 쿼리 매개변수(attr.<key>의 정확한 별칭)를 받습니다. 자유 텍스트 쿼리 구문은 없습니다:
GET /api/v1/conversations?cp.account_type=enterprise값 편집#
속성 값은 여러분의 애플리케이션이 — 위젯 통합이나 API를 통해 — 설정하며, 대화 상세 패널에서는 읽기 전용입니다. 패널은 연락처 프로필로 이어지는 링크를 제공하며, 상담원은 그곳에서 연락처의 속성을 보고 편집할 수 있습니다(연락처 → 연락처 → 속성).
properties와 metadata 비교
| 기능 | properties | metadata |
|---|---|---|
| 스키마 | 에이전트 설정에서 타입과 함께 정의됨 | 자유 형식 키-값 쌍 |
| 필터 가능 | 가능, 필터 바 / 저장된 뷰로(API: cp.<key> 매개변수) | 불가능 |
| 상담원 편집 가능 | 불가능 — 값은 여러분의 애플리케이션에서 옵니다. 연락처 속성은 연락처 프로필에서 편집합니다 | 불가능 |
| 타입별 표시 | 가능(배지, 링크, 날짜, 불리언) | 일반 텍스트만 |
| 자동 완성 | 가능, 필터 값 필드에서 값 제안 | 불가능 |
metadata를 사용하세요. 팀이 세그먼테이션과 워크플로에 적극적으로 활용할 구조화된 데이터에는 properties를 사용하세요.