데이터 관리
컨택 센터는 보고 데이터부터 통화 목록에 이르기까지 방대한 양의 데이터를 처리합니다. CXone(으)로 데이터를 주고받아야 할 수 있으며, CXone 내의 데이터로 작업해야 할 수도 있습니다. Studio 스크립트나 API에서 데이터로 작업하는 방식은 시스템 성능과 상호 작용의 품질에 영향을 미칩니다. 이 페이지에서는 데이터의 효율적인 관리를 도와줍니다.
적합한 작업에 적합한 도구
Studio의 주요 목적은 컨택 라우팅을 제어하는 것입니다. Studio 스크립트에서 수행하는 모든 작업은 컨택 중심으로 수행해야 합니다. 컨택과 관련이 없는 데이터 처리는 모두 Studio 외부에서 수행해야 합니다. Studio은(는) 많은 양의 데이터를 처리하도록 설계되지 않았으므로 데이터 제한이 32KB로 설정되어 있습니다. 컨택으로 작업할 때는 이 정도면 충분하며 서버를 효율적으로 운영할 수 있습니다.
다음은 데이터 관리가 필요한 작업이며, 작업 달성의 두 가지 예시입니다.
예시 작업: 상담원 데이터를 매일 분석하여 명백하게 긴 휴식 시간이나 예정에 없던 휴식 시간 등 잠재적인 문제를 파악합니다.
부적절한 해결책: 매일 실행되는 예약된 Studio 스크립트를 생성합니다. 스크립트는 먼저 API 호출을 통해 해당 날짜의 상담원 목록을 가져온 다음 해당 날짜의 상담원 상태 기록을 가져옵니다. 그런 다음 스크립트는 예약되지 않은 휴식을 30분 이상 취한 상담원이 있는지 확인합니다. 또한 4시간의 화장실 휴식과 같이 명백하게 긴 휴식 시간도 검색합니다. 또한 스크립트는 어떤 상담원이 부재 상태에서 가장 많은 시간을 보냈는지, 어떤 상담원이 특정 스킬 상담원 스킬, 능력 및 지식에 기반한 인터랙션의 전달을 자동화하는 데 사용됩니다.에 가장 많은 시간을 보냈는지도 파악합니다.
이 방법이 바람직하지 않은 이유:
-
이 작업은 단일 컨택에 초점을 맞춘 것이 아니며, Studio은(는) 작업에 적합한 도구가 아닙니다.
-
Studio은(는) 대량의 데이터를 처리하기 위한 것이 아니라 컨택 처리를 위해 설계되었습니다. 메모리에 많은 데이터가 있으면 서버 성능이 저하되므로 테넌트 고급 조직 그룹화는 CXone 환경을 위해 기술 지원, 청구 및 글로벌 설정을 관리하는 데 사용됩니다.에서 성능 문제가 발생할 수 있습니다.
-
Studio의 데이터 한도는 32KB입니다. 이 방법을 사용하려면 데이터를 소량으로 분할하여 한도 이하로 유지해야 합니다. 따라서 스크립트가 장시간 실행될 수 있으며, 리소스 집약적입니다.
-
이 작업은 Studio 스크립트보다는 CXone API를 사용할 수 있는 엔지니어가 더 잘 해결할 수 있습니다.
-
Studio은(는) 특정한 상태에서 가장 많은 시간을 보낸 상담원이나 가장 적은 수의 통화를 처리한 상담원과 같은 정보를 식별하는 데 가장 적합합니다. 외부 서버에서 데이터를 처리하면 더 가치 있는 지표를 생성할 수 있습니다.
적절한 해결책: 이는 작업을 해결하는 한 가지 잠재적인 방법일 뿐입니다. 시나리오별 해결책은 다른 접근 방식이 필요할 수 있습니다.
이 작업을 해결하는 한 가지 방법은 더 많은 처리 능력을 제공하는 AWS 서버에서 Python을 실행하는 것입니다. 서버에서 동일한 API 호출을 수행하여 상담원 목록과 해당 일자의 상담원 상태 기록을 가져옵니다. 데이터를 테이블이나 배열에 넣을 수 있습니다. 데이터베이스 테이블은 향후 데이터를 더 쉽게 비교하고 분석하기 위해 선호되는 방식입니다. 반환되는 데이이터는 메가바이트 단위일 수 있으며, 이는 데이터베이스에 문제가 되지 않지만 Studio의 데이터 한도를 초과합니다. 메모리 내에 모든 상담원의 전체 상태 기록을 보유할 수 있으며, Studio 스크립트의 작은 데이터 조각이 아닌 전체 데이터 집합을 한 곳에서 작업할 수 있습니다.
이제 데이터 작업을 시작하여 특정 상태에서 보낸 시간을 기준으로 정렬된 상담원 목록처럼 원하는 지표를 생성할 수 있습니다. 데이터베이스를 활용하면 Studio의 제약을 받는 대신, 원하는 대로 데이터를 표시할 수 있습니다.
다음 지침은 정의된 열 매핑으로 새 호출 목록을 만드는 단계와 API 호출의 예시입니다.
- 인증:
- 인증 복구 를 수행하여 토큰 링크를 획득합니다. 결과적으로 획득하는 토큰은 캐싱할 수 있습니다.
- 이전 단계에서 발견한 토큰 엔드포인트에서 토큰 요청:
- x-www-form-urlencoded 본문으로 https://cxone.niceincontact.com/auth/token에 POST 요청을 생성합니다.
- client_secret 및 client_id과(와) 같은 5개의 키-값 쌍을 검색합니다.
- API 엔드포인트 검색 수행:
- 위 1단계에서 반환된 토큰에서 tenantId을(를) 추출합니다.
- https://cxone.niceincontact.com/.well-known/cxone-configuration?tenantId={내 테넌트 ID}에 GET 요청을 생성합니다. 예시 회신:
{ "private": false, "area": "na1", "cluster": "B32", "domain": "niceincontact.com", "acdDomain": "nice-incontact.com", "uhDomain": "nice-incontact.com", "ui_endpoint": "https://na1.nice-incontact.com", "auth_endpoint": "https://na1.nice-incontact.com", "api_endpoint": "https://api-na1.niceincontact.com", "tenantId": "11eb0358-724b-3970-97e5-0242ac110003" }
- Extract the "area" and "domain" fields from the reply.
- Construct a base URI in the form of: https://api-{area}.{domain}.
-
POST /lists/call-lists 를 사용하여 통화 목록 매핑을 생성합니다.
이 API는 {listId}과(와) 식별된 통화 목록을 생성합니다. 각 호출은 소스 열 이름의 데이터 매핑을 CXone 필드에 업데이트합니다. 일반적으로 데이터의 열 헤더가 변경되는 경우에만 이렇게 합니다. 이 API의 경우 값을 쿼리 매개 변수로 정의한 다음 JSON 본문에 각각 fieldName과(와) fieldValue(으)로 구성된 destinationMappings 쌍의 배열을 제공해야 합니다. 이는 아래 4단계에서 업로드한 데이터를 매핑하는 데 사용됩니다.
온라인 도움말에서 여기에서 CXone에 의해 정의된 필드 이름을 찾을 수 있습니다. 필드 값은 CXone 필드에 매핑할 소스 데이터의 열 이름입니다.
POST의 예: https://api-{area}.{domain}/incontactapi/services/v27.0/lists/call-lists?{listname}&externalIdColumn={fieldValue}에 JSON 본문을 포함합니다. 예상 반환값은 응답 본문이 포함된 200 코드입니다.
{ "listId": 0 }
- 3단계에서 생성된 listId(으)로 POST /lists/call-lists/{listId}/upload 를 사용하여 호출 목록 데이터를 업로드합니다. listId은(는) API 호출 경로에 지정되며 실제 호출 목록 데이터는 요청 본문에서 제공됩니다.
한 가지 중요한 세부 사항은 파일 형식입니다. listFile 매개 변수는 호출 목록 데이터를 base64로 인코딩한 파일입니다.
또한 요청 본문의 일부로 "startSkill" 플래그를 "true"에 설정하여 업로드 완료 시 다이얼러 스킬을 시작하도록 선택할 수 있습니다.
POST의 예: https://api-{area}.{domain}/incontactapi/services/v27.0/lists/call-lists/{listId}/upload입니다.
활성 통화 중에 정글 컨택 센터는 CRM에서 고객 데이터를 가져와서 상담원 애플리케이션에 표시합니다. Studio에서는 일단 컨택에서 계좌 번호와 같은 기본적인 식별 정보를 수집합니다. 그러면 스크립트는 CRM에
이들의 솔루션은 Studio 및 CRM 사이에 존재하는 미들웨어를 구축하는 것입니다. API는 원하는 고객 세부사항을 구문 분석하는 미들웨어에 JSON을 반환합니다. 그다음에는 그 세부사항을 Studio에 전달합니다. 또한 Jungle은 32KB 데이터 한도 역시 유지할 수 있습니다.
푸시 vs 폴링
일반적으로는 푸시 기반 아키텍처가 선호됩니다. 폴링을 통해 어떤 일이 일어나기를 기다리는 것은 본질적으로 리소스를 소모하는 반면, 데이터를 푸시하는 것은 온디맨드 방식이므로 필요 없을 때는 리소스를 소모하지 않습니다. 데이터를 푸시하면 일반적으로 더 작은 데이터 덩어리를 처리할 수 있습니다. 데이터 푸시는 종종 하나의 활성 컨택과 같은 실시간 필요에 의해 수행됩니다. 폴링은 통합에 자주 사용되며 세분화하거나 세그먼트화할 수 없습니다.
예를 들어 전화 통화를 대기 상태로 둘 때 상담원의 UI를 업데이트하고 싶은 경우가 있습니다. 스크립트에서 /get-next-event API를 사용하여 상담원 클라이언트의 보류 이벤트를 수신(또는 폴링)하는 경우 스레드가 지속적으로 차단됩니다. 대신 서버 리소스의 지속적인 사용을 피하기 위해 단일 인스턴스에서 데이터를 푸시하려고 합니다. CRM 연동처럼 유사한 경우, 요청이 반환될 때까지 기다리는 대신 데이터를 푸시하고 스레드를 확보하는 API 호출을 수행하십시오. 그러면 신호 API를 사용하면 에서 데이터를 스크립트로 돌려보냅니다. API 호출을 통해 해당 요청이 완료되었는지 확인하고 완료된 경우 데이터를 전송할 수도 있습니다.
대량의 데이터 처리
전체 컨택 센터의 기록 데이터처럼 대규모 데이터세트를 관리하려면 CXone API
스크립트에서 대용량 데이터 집합을 피하는 예시
다음은 Studio 스크립트에서 대용량 데이터 집합을 사용하지 않을 수 있는 일반적인 시나리오의 예시입니다. 또한 위의 예시를 참조하여 너무 많은 고객 데이터를 CRM에서 Studio(으)로 전송하지 않도록 할 수도 있습니다.
-
필드별로 API 응답 필터링하기:
일부 API는 반환되는 정보를 필터링하는 기능을 제공합니다. 예를 들어 케이스에 대한 정보 반환을 CRM에 요청하는 경우, 일부 CRM API를 사용하면 반환하려는 정보 필드를 정확히 지정할 수 있습니다. 사용 중인 API에서 이 기능을 제공하는 경우 필요한 정보만 작업하여 대용량 데이터세트를 피할 수 있습니다. 공급업체의 API에 이 기능이 없는 경우 공급업체와 협력하여 옵션을 추가하거나 미들웨어를 구축할 수 있습니다. 미들웨어는 Studio 전에 데이터를 수신하여 불필요한 사항을 필터링한 다음 데이터를 Studio에 반환할 수 있습니다.
-
시간별로 API 응답 필터링하기:
API를 통해 시간별로 필터링할 수 있는 경우, 이 기능을 사용하여 데이터 양을 최소화하십시오. 하루 또는 일주일 분량의 데이터만 필요한 경우에는 해당 시간 범위 내의 데이터만 포함하도록 응답을 필터링해야 합니다.
-
개별 컨택에 대한 데이터 필터링:
Studio은(는) 데이터 관리 도구가 아니라 컨택 관리 도구입니다. Studio 및 Studio 작업의 기능을 통해 주로 개별 컨택에 초점을 맞춘 데이터로 작업할 수 있습니다. IVR을 통해 정보를 수집하거나 한 번에 하나의 레코드 또는 사례에 대해 CRM 데이터를 가져오는 등의 기술을 사용하여 개별 컨택별 특정 데이터를 유지할 수 있습니다.
데이터 저장소
데이터 저장 옵션은 많습니다. Snowflake 계정이 있는 경우에는 Studio을(를) 사용하여 CXone의 컨택 센터 데이터를 Snowflake로 옮길 수 있습니다. NICE은(는) 24개월 동안 데이터를 저장하며, Snowflake에서 데이터를 검색할 수 있습니다. 또한 클라우드 스토리지 서비스을(를) 사용하여 통화 녹음이나 채팅 내용 등의 파일을 저장하거나 내 서버로 옮길 수도 있습니다. 자세한 내용은 CXone 지원 담당자에게 문의하십시오.
예상치 못한 비용
일반적으로 너무 많은 API 호출 등으로 인해 추가 비용이 발생하지는 않습니다. 하지만 특정 데이터를 저장하는 방식에 따라 비용이 발생할 수 있습니다. 다음은 부적절한 데이터 저장으로 인해 예상치 않은 청구 요금이 발생한 사례입니다.
-
많은 스크립트 변수를 생성하고 해당 파일을 정리하는 프로세스를 포함하지 않고 모든 컨택에 대해 텍스트 파일에 저장합니다.
-
나중에 사용할 수 있도록 IVR 선택 경로 정보를 파일에 저장합니다. 향후 보고 목적으로 이 정보를 사용하고 싶을 수도 있습니다.
-
API 결과를 저장하면 새 결과가 추가될 때마다 파일 크기가 계속 확장됩니다. 시간이 지남에 따라 파일 크기가 커지면 저장소 비용이 발생합니다.
-
CXone 클라우드 저장 장치에 파일 저장. 클라우드 저장 장치을(를) 사용하는 경우 저장소 관련 매개 변수를 알고 있어야 합니다. 클라우드 저장 장치에 관한 도움말 콘텐츠를 참조하거나 지원 담당자에게 문의할 수 있습니다.
Studio의 API 호출
API를 사용하면 데이터를 효율적이고 효과적으로 작업할 수 있습니다. 아래 나열된 작업을 통해 Studio에서 API 호출을 수행할 수 있습니다. 다음 목록에서는 다양한 작업을 사용할 때의 기술적 차이점을 설명합니다.
-
SNIPPET: 스크립트에 사용자 정의 코드를 추가할 수 있습니다. 이 작업을 사용하여 API 호출, 페이로드 준비, 동적 데이터 개체 구문 분석 등을 수행할 수 있습니다. 이 작업으로 API를 호출할 때는 응답 속도에 주의하십시오. 이 작업은 스레드가 활성화되어 있는 내내 스레드를 활용합니다. 응답이 느리면, 즉 스레드가 계속 차단되면, 서버 성능에 부정적인 영향을 미칠 수 있습니다. 예를 들어 모든 스레드가 한꺼번에 사용되면 발신자에게 데드 에어가 들릴 수 있습니다.
-
REST API: REST API 호출을 수행할 수 있으며 서버 리소스를 덜 사용합니다. 가능할 때마다 이 작업을 사용하여 API 호출을 수행해야 하지만, 특히 JSON을 허용합니다. API가 JSON을 반환하지 않는 경우 대신 SNIPPET 작업을 사용해야 할 수 있습니다. SNIPPET은(는) 작업에 따라 페이로드 준비와 같은 작업을 수행할 수 있으므로 이 작업을 SNIPPET과(와) 함께 사용해야 할 수도 있습니다.
-
ConnectAuth: Integration Hub에서 생성된 커넥터를 인증합니다. Integration Hub은(는) CXone에서 타사 플랫폼으로 통합을 구축, 관리, 실행하는 중앙 집중화된 소스니다. 이 작업은 스레드를 차단하지 않습니다.
-
ConnectRequest: 인증된 아후 Integration Hub 요청을 트리거합니다. 이 작업은 스레드를 차단하지 않습니다.
기타 데이터 관련 Studio 작업
Studio에는 다른 스크립트에서 데이터에 액세스할 수 있도록 데이터베이스 테이블에서 소량의 데이터를 임시로 저장하고 검색하는 몇 가지 작업이 있습니다. 이러한 작업은 필드 또는 값의 목록처럼 작동합니다. 여러 값을 저장하거나 다른 스크립트에서 추가로 필요한 값을 저장하는 데 사용합니다. 전체 작업 목록은 PUTVALUE, GETVALUE, REMVALUE, GETLIST, CLEARLIST입니다.
이들 작업은 Studio 작업의 집합을 통해서만 액세스할 수 있는 고유한 데이터 유형을 사용합니다. 이 데이터는 다른 방법으로는 액세스할 수 없습니다. 권한이 없는 사용자는 이 데이터베이스를 얻고 사용할 수 없습니다.
값은 PUTVALUE 작업의 TTL hrs(수명 시간) 속성에 구성된 대로 제한된 시간 동안 데이터베이스 테이블에 나열됩니다. 기본값은 24시간이지만 1시간에서 168시간(7일)까지 설정할 수 있습니다. REMVALUE 작업을 사용하여 TTL 시간 전에 데이터를 삭제할 수 있습니다. 이렇게 하면 스크립트 내의 데이터를 완벽하게 제어할 수 있습니다. 더 이상 사용하지 않을 때는 값을 삭제하고 TTL을 기본 24시간으로 두는 것이 가장 좋습니다.
참고:
- 다른 스크립트/컨택에서 여러 변수에 액세스해야 하는 경우 일반적으로 데이터베이스가 최고의 솔루션입니다.
- 비영구적 공개 변수는 해당 변수를 설정하는 스크립트의 수명 동안 다른 스크립트/컨택에서 공유할 수 있습니다. 이 변수는 한번 릴리즈되면 자동으로 정리됩니다.
- 이러한 작업의 '목록'에서는 1,000개 항목으로 제한됩니다. 단일 항목 또는 데이터 조각에도 5KB 제한이 있습니다.