비즈니스 시스템
고객, 멤버십 및 권한
인물당 하나의 연락처 기록, 동적 세그먼트, 비밀번호 없는 고객 로그인, 그리고 접근 권한을 결정하는 권한 기능에 대해 설명합니다.
폼을 작성하거나, 상품을 구매하거나, 로그인하는 모든 사람은 하나의 연락처(Contact)로 기록됩니다. Kanorio는 기능별로 별도의 목록을 유지하는 대신 모든 활동을 해당 기록에 통합합니다.
핵심 객체
- 연락처(Contacts): 이름, 이메일, 전화번호, 동의 여부, 태그와 함께 해당 인물의 주문, 제출 내역, 코스 진행 상황을 포함합니다. 각 연락처에는 시스템 고유 ID(
externalId, 사이트당 고유하며 한 번만 설정 가능)와 통합 필드를 위한 플랫한metadata를 저장할 수 있으며, 로그인 상태(accessStatus)를 가집니다. 차단된 연락처는 로그인할 수 없지만, 주문 및 이메일 수신은 계속됩니다. - 세그먼트(Segments): 연락처에 대한 저장된 필터로, 예를 들어 '이번 달에 코스를 구매한 모든 사람'과 같이 자동으로 업데이트됩니다.
- 권한(Entitlements): 코스나 회원 전용 기사와 같은 특정 콘텐츠에 대한 접근 권한을 부여합니다. 구매 시 자동으로 부여되며, 직접 부여하거나 취소할 수도 있습니다.
- 고객 세션(Customer sessions): 고객은 일회용 코드를 사용하여 로그인하며 Customer API를 위한
knr_cat_토큰을 발급받습니다.
멤버십, 구독, 크레딧 및 권한은 Kanorio에서 각각 별개의 개념입니다. 권한은 오직 '누가 무엇에 접근할 수 있는지'를 판단하는 용도로만 사용되며, 잔액이나 결제 플랜으로 사용되지 않습니다.
API 활용 방법
-
Management API를 사용하여 연락처, 세그먼트 및 권한을 관리합니다.
-
Customer API를 사용하여 고객을 로그인시키고 자신의 데이터를 읽거나,
<kanorio-account>(패스키, Google, 이메일 코드 등 사이트에서 활성화된 인증 방식 적용.GET /site의customerAccess.methods에서 확인 가능)를 도입합니다. -
Content Delivery API의 게이트 콘텐츠는 고객의 토큰을 사용하여 반환할 데이터를 결정합니다.
-
Webhooks는 연락처 변경(
customers.contact.created,updated,merged,access_changed), 마케팅 동의 변경(customers.consent.updated) 및 권한 부여/취소 이벤트를 보고합니다. 연락처 페이로드에는 ID와 필드 이름만 포함되며 이메일 주소나 전화번호는 포함되지 않습니다. 값을 읽으려면 연락처를 조회(fetch)하십시오.
API로 제공되는 범위
- Contacts & dynamic segments (external reference, metadata, sign-in status, manual merge)사용 가능
- API
- Management API
contacts.*(externalId,metadata, look-up byexternalId),segments.* - 호스팅 사이트
/customers/contacts,/data/contacts,/data/segments- Webhooks
customers.contact.created,customers.contact.updated,customers.contact.merged,customers.contact.access_changed,customers.consent.updated,customers.form.submitted
- Customer login (magic link / 6-digit code)사용 가능
- API
- Customer
POST /auth/challenge,POST /auth/verify→ Bearer;GET /me;DELETE /session - Elements
<kanorio-login>(stores Bearer in localStorage,kanorio:loginevent)- 호스팅 사이트
/account/login
- Entitlements (who may access what)사용 가능
- API
- Management API
entitlements.grant/revoke/list/check; CustomerGET /access/:id - Elements
<kanorio-unit>shows locked / preview / not-released states- 호스팅 사이트
- Backoffice contact → Access tab;
/data/entitlements;/account/content - Webhooks
deliverables.entitlement.granted,deliverables.entitlement.revoked
- Membership tiers (ranked segments & automatic perks)예정
- API
- Planned (
tiers.*) - 호스팅 사이트
- Planned (
/data/tiers)
API 레퍼런스
Webhook 이벤트
- customers.sharedSender.softCap · Fired once per day when sign-in code and similar emails sent from Kanorio's shared address exceed the site's daily soft cap; the bot check before sign-in is strengthened automatically. Nothing to do.
- customers.sharedSender.paused · Fired when those emails are paused for the site because of bounces, complaints or unusual volume; passkey, Google and signed-in customers are unaffected. Kanorio reviews and restores sending.
- customers.sharedSender.resumed · Fired when paused sign-in code emails resume after review.
- customers.contact.created · Fired when a contact is created from any source (checkout, form, import, manual, customer sign-up). Identities are listed by kind only; the data never includes the email address or phone number.
- customers.contact.updated · Fired when a contact's fields change (name, tags, note, locale, invoice preference, metadata, external reference, profile attributes). Lists the changed field names; fetch the contact to read the values.
- customers.contact.merged · Fired when two contacts become one, either automatically (the same person arrived with another identity) or by the owner. mergedContactId no longer exists; move your references to contactId.
- customers.contact.access_changed · Fired when the owner blocks or unblocks a customer's sign-in. BLOCKED revokes every session and refuses new sign-ins; orders, consent and emails are unaffected.
- customers.consent.updated · Fired when a contact's marketing consent on one channel changes (subscribed, pending confirmation, unsubscribed, bounced, complained).
- deliverables.entitlement.granted · Fired when a contact is granted access (Entitlement) to a deliverable or unit.
- deliverables.entitlement.revoked · Fired when a contact's Entitlement is revoked (e.g. refund or manual revocation).
Elements
- <kanorio-account> · Customer sign-in panel: passkey, Google and a 6-digit email code, in the order the site enables them; signed-in customers see the account menu. Stores the customer token in localStorage and fires kanorio:login and kanorio:logout.
- <kanorio-login> · Deprecated alias of kanorio-account kept for pages that already embed it; same panel, same events.
최근 변경
- 2026-11-03 Contacts: external references, metadata, sign-in status and contact webhooks
- 2026-10-31 Contacts: contacts.update replaces contacts.update_tags_note and can set the name
- 2026-10-27 entitlements.grant: bring-your-own payments (source EXTERNAL), idempotency keys
사이트 운영자용
관리 화면에서 이 제품을 사용하는 방법은 도움말 센터에서 안내합니다.
도움말 센터 열기