이전 웹캐스트의 후속으로 다음과 같은 주제의 웹캐스트를 준비했습니다. NoSQL과 관계형 데이터베이스의 세 번째 단계에 있다고 설명했습니다. NoSQL 데이터베이스 채택, 즉 엔터프라이즈 애플리케이션의 "광범위한 리플랫포밍"에 대해 설명합니다. 이 문서에서는 애플리케이션에서 JSON 데이터 모델과 Couchbase를 활용하는 방법에 대한 예시를 제공하고자 합니다. N1QL (SQL++ 구현)를 사용하여 CRM 애플리케이션의 복잡한 데이터 가시성 규칙을 해결합니다.
개요
CRM 애플리케이션에서 중요하지만 종종 간과되는 한 가지 중요한 측면은 활동 관리 프로세스입니다. 고객 관계를 관리하고 이를 효과적으로 수행하려면 애플리케이션이 관계 관리 작업과 직간접적으로 관련된 모든 활동을 추적해야 합니다. CRM 활동은 비즈니스가 전체 관계에서 고객과 맺는 모든 상호 작용을 캡처합니다. 또한 CRM 시스템에 있는 다양한 활동을 기록하는 데 사용되며, 그 중 일부는 다음과 같이 계정과 직접 연결되지 않을 수도 있습니다. 리드 생성 프로세스, 할당량 관리 및 주문 이행에 사용됩니다. 또한 마케팅 캠페인 및 서비스에서 모든 지원 활동을 추적하는 데 사용됩니다.
이 글에서는 활동 관리 모델을 JSON으로 가장 잘 표현할 수 있는 방법을 보여드리겠습니다. 그런 다음 Couchbase N1QL을 쿼리 언어로 사용하여 직접 및 팀 데이터 가시성에 대한 기능적 요구 사항을 충족합니다.
활동 관리의 과제
활동은 다른 모든 주요 개체에 연결될 수 있기 때문에 활동 관리는 CRM 애플리케이션의 공통 구성 요소로 간주됩니다. 하지만 다른 CRM 개체와 달리 활동은 데이터 보안을 위해 다른 주요 개체에 의존하도록 구성되는 경우가 많습니다. 따라서 활동에 대한 액세스 권한은 연결된 개체에 따라 결정됩니다. 예를 들어, 사용자는 자신이 소유한 계정이나 기회와 관련된 모든 활동을 볼 수 있을 것으로 기대할 수 있습니다. 이러한 이유로 시간이 지남에 따라 많은 엔터프라이즈 CRM 배포에서 대량의 활동 레코드가 발생할 수 있습니다. 비즈니스 활동의 데이터 양 자체가 항상 우려할 만한 수준은 아닙니다. 하지만 복잡한 데이터 가시성 규칙과 결합되면 더욱 어려운 문제가 됩니다.
사용자가 볼 수 있는 활동을 검색하기 위한 관계형 쿼리는 간접적인 데이터 액세스 규칙으로 인해 복잡해질 수 있습니다. 이로 인해 활동 관리 프로세스뿐만 아니라 이 기능에 대한 비즈니스 보고서 생성 시 시스템 응답 시간이 느려지는 경우가 많습니다.
볼륨
활동 상호 작용은 CRM의 모든 단계에서 캡처되기 때문에 가장 많이 사용되는 개체입니다. 사용자가 볼 수 있는 모든 활동에 액세스하려고 하면 데이터의 양과 복잡한 비즈니스 규칙으로 인해 시스템 응답이 느려지는 경우가 많습니다.
데이터 액세스
CRM에서 데이터 액세스는 여러 가지 방식으로 정의됩니다. 직접 및 간접 소유권, 팀 및 계층적 액세스 권한이 있습니다.
직접/소유자 액세스
사용자는 해당 개체에 대한 직접 소유권을 통해 데이터 개체에 액세스할 수 있습니다. CRM에서는 계정, 연락처, 기회 등과 같은 모든 주요 개체에 대한 직접 소유권이 명확하게 정의되어 있습니다. 계정 관리자는 계정을 소유하고, 영업 담당자는 기회를 소유하며, 지원 팀원은 서비스 요청을 소유합니다.
간접 액세스
이 모델에서 개체에 대한 액세스는 상위 개체에서 추론됩니다. 예를 들어, 사용자에게 계정에 대한 액세스 권한이 있는 경우 사용자가 계정의 모든 연락처에 액세스할 수 있도록 CRM 시스템을 구성할 수 있습니다. 이는 기회 및 서비스 요청과 같은 계정과 관련된 다른 개체로 확장될 수도 있습니다.
팀 액세스
직접 소유권의 변형은 한 개체에 여러 팀원이 있는 경우입니다. 예를 들어 한 계정에 계정 소유자가 있지만 그 계정을 관리하는 영업 담당자가 여러 명인 계정 팀이 있을 수 있습니다. 이는 지역 기반 영업에서도 매우 일반적입니다.
계층적 액세스
이 유형의 액세스 권한의 예는 관리 계층 구조입니다. 관리자는 직속 보고서의 모든 활동에 대한 가시성을 가져야 합니다. 마찬가지로 상위 영역 노드의 사용자는 하위 영역에 연결된 활동을 볼 수 있어야 합니다.
사용자 지정 비즈니스 규칙 액세스
조직은 데이터 가시성을 관리하기 위한 사용자 지정 규칙을 가질 수도 있습니다. 예를 들어 제품 라인 또는 사용자 지정한 지리적 지역이 있습니다.
활동 관리 데이터 모델
활동 JSON 문서
JSON 문서의 특징 중 하나는 데이터 구조에 대한 유연성입니다. CRM 활동 개체의 경우 관계형 데이터베이스 제한으로 인해 모든 활동 속성이 테이블 정의에 미리 정의되어 있어야 합니다. 이는 모든 속성이 채워지지 않기 때문에 활동 레코드를 볼 때 혼란스러울 수 있습니다. 그러나 JSON에서는 스키마가 없기 때문에 각 문서마다 다른 열 집합을 가질 수 있습니다.
아래 두 개의 활동 문서는 유연한 JSON 스키마의 이점을 보여줍니다. '약속' 유형의 활동에는 연락처 집합, 시작 시간, 기간 및 '참가자'와 같은 컨텍스트 속성이 포함됩니다. 반면 '작업'에는 마감일 및 할 일 목록과 같은 특정 속성이 있습니다.
확장성
활동 개체는 다양한 CRM 요구 사항에 따라 자주 확장되는 핵심 개체 중 하나이기도 합니다. 일반 영업 자동화에서는 결과 및 후속 조치 세부 정보와 같은 특정 속성이 포함된 통화 보고서를 나타낼 수 있습니다. 제약 영업의 경우 의사 방문을 나타낼 수 있으며, 여기에는 약품 샘플 드롭 목록 캡처가 포함될 수 있습니다.
다양한 CRM 업종에서 요구하는 활동 개체의 변경 가능한 특성으로 인해 이 개체에 대한 스키마 구조가 여러 가지로 변형될 수 있습니다. 따라서 JSON은 이러한 이유 하나만으로도 이 객체를 모델링하는 데 이상적인 수단입니다.
소유자 및 참여자 모델
데이터 가시성
사용자가 확인해야 합니다: 모든 활동
- 사용자가 소유하고 있는
- 사용자가 다음의 참여자임을 확인합니다.
소유자 및 참여자, 관련 계정 소유자 및 계정 팀과 함께
데이터 가시성
사용자가 확인해야 합니다: 모든 활동
- 사용자가 소유하고 있는
- 사용자가 다음의 참여자임을 확인합니다.
- 사용자가 소유한 계정에 속합니다.
- 사용자가 계정 팀에 속해 있는 계정에 속합니다.
소유자 및 참여자, 관련 계정 소유자 및 계정 팀, 관련 영역 소유자 및 지역 팀
데이터 가시성
사용자가 확인해야 합니다: 모든 활동
- 사용자가 소유하고 있는
- 사용자가 다음의 참여자임을 확인합니다.
- 사용자가 소유한 계정에 속합니다.
- 사용자가 계정 팀에 속해 있는 계정에 속합니다.
- 사용자가 소유한 계정 영역에 속해야 합니다.
- 사용자가 속한 계정 영역이 영역 팀에 속해 있어야 합니다.
요약
위의 예는 다음과 같은 핵심 사항을 설명합니다.
- JSON 유연한 스키마 데이터 모델은 활동 개체의 모호한 특성에 매우 적합합니다.
- 관계형 데이터 모델보다 더 적은 수의 JSON 객체가 있습니다.
- 팀원 개념은 JSON 배열과 잘 작동합니다.
- N1QL의 쿼리 구성은 SQL과 매우 유사하며 다소 간단합니다.
다음 글에서는 계층적 데이터 보안 문제와 이를 JSON에서 가장 잘 기능적으로 모델링하는 방법에 대해 설명하겠습니다.