정보 작업은 챗봇이 사용자를 위해 데이터를 조회하거나 보고서를 가져와 사용하기 쉬운 결과나 확장된 데이터에 대한 결과 링크를 반환하는 데 사용됩니다. 사용자는 봇이 정보를 전달하는 데 필요한 특정 매개 변수 또는 필터를 식별하여(결과의 수량) 수신자가 스캔, 처리 및 재사용하기 쉬운 방식으로 정보를 전달할 수 있게 합니다. 예를 들어, 최종 사용자에게 검색 결과와 해당 검색 항목의 자세한 목록을 볼 수 있고 쇼핑 카트에 항목을 추가할 수 있는 링크를 제공하는 쇼핑 봇이 있다고 가정해 보겠습니다. 검색 결과를 자세히 볼 수 있는 링크와 함께 검색 결과를 표시하는 정보 작업을 정의한 다음 링크를 클릭하면 최종 사용자가 쇼핑 카트에 추가할 수 있는 항목을 보여 주는 웹 페이지를 표시할 수 있습니다. 다음 그림에는 릴레이 봇에 몇 가지 작업이 정의되어 있으며 그 중 하나는 검색 결과에 항목 보기 링크를 표시하는 정보 작업입니다. 사용자가 항목 보기를 클릭하면 다음 그림과 같이 자세한 제품 정보와 선택 가능한 결과가 포함된 정보 보고서가 새 탭에 표시되어 항목을 장바구니에 추가할 수 있습니다.
봇 빌더에서 봇 응답에 대해 다음과 같이 보고서 유형을 정의할 수 있습니다.
-
- 테이블 보고서 – 보고서는 가변 너비 열이 있는 테이블 형식으로 표시됩니다.
- 고정 열 테이블 보고서 – 보고서는 고정 너비 열이 있는 테이블 형식으로 표시됩니다.
- 카드 레이아웃 보고서 – 보고서는 카드 목록 또는 이미지를 포함한 가변 형식 데이터가 있는 텍스트 상자로 표시됩니다.
- 조치가 있는 카드 레이아웃 보고서 – 보고서는 카드 목록 또는 이미지를 포함한 가변 형식 데이터가 있는 텍스트 상자와 장바구니에 추가와 같은 조치 작업을 보고서에 연결하는 옵션으로 표시됩니다.
- 그룹별 카드 레이아웃 보고서 – 보고서는 카드 목록, 날짜, 크기 또는 위치와 같은 매개 변수 키로 그룹화할 수 있는 가변 형식 데이터가 있는 텍스트 상자로 표시됩니다. 카드 보고서에는 이미지와 장바구니에 추가와 같은 조치 작업을 보고서에 연결하는 옵션이 포함되어 있습니다.
- 조치가 있는 쇼핑 카트 레이아웃 보고서 – 보고서는 장바구니 옵션 목록 또는 이미지를 포함한 가변 형식 데이터가 있는 텍스트 상자와 장바구니에 추가와 같은 조치 작업을 보고서에 연결하는 옵션으로 표시됩니다.
- 날씨 정보 보고서 – 보고서는 날짜, 요일 또는 예측 기간별로 날씨 정보의 연속 데이터 문자열을 표시하도록 특별히 설계되었습니다.
다른 예시:
- 계정 요약 제공
- 로열티 보상 포인트 표시
- 개인 정보 조회
- 미지불 항목의 요약 보기 가져오기
- 재고 목록 가져오기
- 팀 상태 정보 가져오기
- 중요 정보 업데이트
프로세스
정보 작업을 정의하기 위해 완료해야 하는 단계는 네 가지 기본 단계로 구성됩니다.
1단계: 일반 설정
첫 번째 단계는 작업 이름, 연결 모드, 설명과 NLP 무시 단어, 검색 키워드, 오류 메시지, 작업 확인 메시지, 매핑 제한 및 Kore.ai 봇 스토어 설정 등 기타 고급 설정과 같은 작업이 최종 사용자에게 표시되는 방식을 정의하는 것입니다. 정보 작업에 대한 일반 설정을 설정하려면 다음 단계를 따르세요.
- 정보 작업을 생성하려는 봇을 엽니다.
- 봇의 측면 탐색 패널 위로 마우스를 가져간 다음 봇 작업을 클릭합니다.
- 봇 작업 페이지에서 정보 작업 탭으로 마우스를 이동하고 + 아이콘을 클릭합니다.
- 작업의 이름을 입력합니다. 이는 표시 이름으로도 사용됩니다. 봇 스토어는 작업의 표시 이름을 사용합니다. 필요한 경우 표시 이름을 변경할 수 있습니다. 정보 생성 작업 대화 상자가 열립니다.
- 작업에 필요한 다음 세부 정보를 입력한 다음 생성 및 진행을 클릭합니다.
필드 이름 설명 작업 이름 애플리케이션 및 최종 사용자 채널의 모든 곳에 표시되는 작업의 이름입니다. 표시 이름 Kore.ai Bot 마켓플레이스에 표시되는 작업의 이름입니다. 변경하지 않는 경우 작업 이름과 동일합니다. 연결 유형 정보 작업의 연결 유형은 항상 웹 서비스입니다. 웹 서비스는 폴링할 때 최종 사용자 로그인 자격 증명을 사용하여 Kore.ai로 데이터를 전송합니다. 이 설정은 정보 작업에서 읽기 전용입니다. 연결 모드 작업을 위한 웹 서비스형 통신 프로토콜 연결 유형입니다. 웹 서비스는 Kore.ai가 폴링할 때 최종 사용자 로그인 자격 증명을 사용하여 Kore.ai로 데이터를 전송합니다. - REST – 이 작업은 프로토콜에 독립적인 REST API 연결을 사용하여 메시지를 교환하고 웹 서비스의 CRUD 작업을 처리합니다.
- SOAP – 이 작업은 메시지 교환을 위해 XML 프로토콜을 기반의 SOAP API 연결을 사용합니다.
긴 설명 정보 작업에 대한 긴 설명입니다.
고급 설정
작업의 고급 설정을 설정하려면 섹션을 확장하고 관련 세부 정보를 입력합니다.
필드 이름 | 설명 |
---|---|
확인 메시지 끄기 | NLP 사용 시 작업 실행 확인을 사용하지 않으려면 예를 선택합니다. |
조치 작업 전용 매핑 | 다른 작업에서 흐름이 매핑된 경우에만 이 조치 작업을 최종 사용자에게 표시하려면 선택합니다. 예를 선택하는 경우 정보 작업에 대한 최종 사용자 검색에서 정보 작업이 표시되지 않습니다. |
검색 키워드 | 최종 사용자가 Kore.ai 봇 스토어에서 이 작업을 찾는 데 사용할 수 있는 검색어를 하나 이상 지정합니다. |
작업 데모 링크 | www.youtube.com를 입력하여 봇 스토어에 표시된 작업 옆에 있는 작업 데모 아이콘을 표시합니다. 다음 그림은 작업 데모 링크로 정의된 봇 작업을 보여줍니다. ![]() |
WSDL 파일 액세스를 위한 권한 부여는 필수입니다(SOAP 요청에만 적용함) | SOAP 요청에 대한 WSDL에 액세스하기 위해 웹 서비스 권한 부여가 필요한 경우 인증을 사용하려면 예를 선택합니다. API 요청에 대해 정의한 인증을 WSDL에 액세스하는 데 사용하려면 예를 선택합니다. 이 설정은 작업 연결 모드가 SOAP로 설정된 경우에만 사용할 수 있습니다. |
선택적 필드 얻기 | 최종 사용자가 사용 가능한 선택적 매개 변수 중 하나 이상을 선택하고 입력하도록 요청하려면 예를 선택합니다. |
무시 단어 | 작업 이름에 무시할 단어를 하나 이상 입력한 다음 각 단어 뒤에 Enter 키를 누릅니다. 무시할 단어 목록은 봇 플랫폼이 사용자 입력을 해석하기 전에 처리됩니다. 즉, 많은 작업에 적용되지만 어떤 작업을 식별하는 데는 도움이 되지 않는 단어를 필터링하여 봇은 사용자 입력에 빠르게 반응하고 올바른 작업을 제공할 수 있습니다. 예: 사용자는 오늘의 일기예보를 확인하고 싶습니다를 입력할 수 있습니다. 사용자에게 올바른 작업을 반환하려면 봇 플랫폼 인터프리터는 날씨, 예보 및 오늘의 세 단어만 인식하면 됩니다. 나머지 단어는 무시할 수 있습니다. Kore.ai 봇 인터프리터는 일반적인 무시 단어를 이미 정의하고 있으므로 나, 너, 원하다, 얻다 등과 같은 단어는 무시 단어로 정의할 필요가 없습니다. 봇이 많은 작업 또는 모든 작업에서 동일한 단어(예: 회사 이름)를 사용하는 경우 회사 이름을 무시 단어로 추가할 수 있습니다. |
오류 메시지 | 봇에 대한 사용자 정의 HTTP 상태 코드 및 오류 메시지를 편집 또는 추가합니다. 자세한 내용은 사용자 정의 오류 메시지를 참조하세요. |
2단계: 인증 설정
작업에 필요한 경우 기본 권한 부여, OAuth 또는 API 키와 같은 인증을 정의해야 합니다. 봇 조치 작업에 따라 조치 작업을 시작하기 위해 사용자를 인증하는 방법을 정의해야 할 수 있습니다. 예를 들어, 트위터는 일반적으로 로그인 사용자 이름과 암호로 최종 사용자가 인증해야 하는 웹 서비스를 사용하여 조치 작업을 수행할 수 있으므로 조치 작업을 실행하기 전에 Kore.ai가 최종 사용자 계정에 액세스하여 데이터에 액세스할 수 있도록 허용합니다. 권한 부여 프로필을 정의하거나 기존 프로필을 사용할 수 있습니다. 작업 수준이나 봇 수준에서 생성하는 것에 관계없이 모든 봇 작업에서 모든 권한 부여 프로필을 사용할 수 있습니다.
- API 요청 탭에서 권한 부여 정의를 시작하려면 권한 부여 섹션에서 확장
아이콘을 클릭합니다.
- 이 작업에 필요한 인증을 이미 정의한 경우 권한 부여 공급자 드롭다운 목록에서 선택할 수 있습니다.
- 작업에 인증이 필요하지 않은 경우 권한 부여 공급자로 없음을 선택할 수 있습니다.
- 새 권한 부여 공급자를 정의하려면 새로 만들기를 클릭하여 새 권한 부여 메커니즘 대화 상자를 표시합니다.
- 대화 상자의 권한 부여 유형 드롭다운 목록에서 봇이 사용하는 권한 부여 유형을 선택합니다. 다음 권한 부여 유형 중 하나를 선택할 수 있습니다.
- 기본 인증 – 사용자 이름 및 암호 정보를 수집하는 표준 프로토콜입니다. Kore.ai는 기본 인증과 함께 SSL 암호화를 사용하여 최종 사용자 정보를 보호합니다. 설정 세부 정보를 보려면 아래 링크를 클릭하세요. "Setting
- OAuth v2 password grant type – 비표준 웹 서비스 권한 부여 유형의 사용자 정의 권한 부여 유형을 정의합니다. 설정 세부 정보를 보려면 아래 링크를 클릭하세요. "Setting
- OAuth v2 클라이언트 자격 증명 –
- OAuth v1 – 최종 사용자가 로그온 자격 증명을 Kore.ai에 공개하지 않고도 웹 애플리케이션 또는 웹 서비스는 API를 사용하여 보호된 리소스에 액세스할 수 있습니다. 설정 세부 정보를 보려면 아래 링크를 클릭하세요. "Setting
- OAuth v2 – 웹 애플리케이션 및 웹 서비스의 특정 권한 부여 흐름에 중점을 둔 최신 버전의 OAuth 프로토콜입니다. 설정 세부 정보를 보려면 아래 링크를 클릭하세요. "Setting
- API 키 – 웹 애플리케이션 또는 웹 서비스가 생성하거나 제공하는 식별 및 권한 부여 토큰으로서 수신 애플리케이션 요청을 식별하고 경우에 따라 보안 액세스에 필요한 인증을 제공하는 데 사용합니다. 설정 세부 정보를 보려면 아래 링크를 클릭하세요. "Setting
3단계: API 요청
작업에 필요한 경우 최종 사용자가 작업을 완료하기 위해 선택할 수 있는 동적 드롭다운 선택 항목을 제공하는 등의 요청 개체를 정의할 수 있습니다. 정보 작업 API 요청 탭에서 API 매개 변수, 선택적 API 작업 이니셜라이저, API 요청 전처리기 또는 API 요청 후처리기 및 API 요청을 정의할 수 있습니다. 또한 API 요청 페이로드에서 예상되는 응답 샘플을 추가해야 합니다.
WSDL URL과 커넥터를 구성하려면 SOAP를 사용하여 정보 작업 요청을 설정할 수도 있습니다.

- 권한 부여 – 조치 작업에 필요한 경우 API에 액세스하기 위해 권한 부여를 정의해야 합니다. 예를 들어, 기본 권한 부여, OAuth 또는 API 키를 사용합니다. 자세한 내용은 아래 권한 부여 설정 섹션을 참조하세요.
- 매개 변수 – API 요청을 처리하는 데 사용되는 하나 이상의 매개 변수를 정의합니다. 예: 사용자 프롬프트의 입력, 선택 항목에서 최종 사용자가 선택한 항목, URL 등. 자세한 내용은 아래 조치 작업에 대한 매개 변수 정의하기를 참조하세요.
- 이니셜라이저(옵션) – 웹 서비스가 코드를 실행할 때 또는 세션 변수가 설정될 때, API 요청이 실행되기 전에 사용자 컨텍스트 세부 정보를 수정할 때 작업 인스턴스를 생성하기 전에 실행할 사용자 정의 JavaScript를 지정하거나 세션 변수를 설정합니다. 자세한 내용은 아래 이니셜라이저 정의하기를 참조하세요.
- 요청 – 봇에 대한 URL과 경로를 사용하여 웹 서비스에 API 호출을 수행해 조치 작업을 시작하고 웹 서비스에서 봇 플랫폼으로 데이터 페이로드 전달을 시작하는 데 사용되는 요청 체인을 정의합니다. 요청 체인은 전처리기, API 요청 및 후처리기로 구성됩니다. 자세한 내용은 아래 요청 체인 정의하기를 참조하세요.
- 응답 샘플 – 조치 작업 페이로드에서 수신할 것으로 예상되는 키/값 쌍을 정의합니다. 입력한 키는 봇 사용자에게 표시할 데이터를 처리하기 위해 드롭다운 선택 항목으로 사용할 수 있습니다. 자세한 내용은 아래 응답 샘플 추가를 참조하세요.
- 매개 변수 섹션을 클릭한 다음 추가를 클릭합니다. 작업 매개 변수 설정 대화 상자가 열립니다.
- 선택에 따라 다음 표에 설명된 대로 관련 필드 값을 입력합니다.
필드 이름 설명 작업 매개 변수 유형 다음 중 하나를 지정합니다. - 페이로드 매개 변수 – 이 필드 유형을 사용하여 POST, PUT, GET, DELETE 등 HTTP 메소드의 페이로드 데이터를 나타냅니다. 예:
{ "taskId":"{payloadfield2}", "message":"{payloadfield1}" }
- 쿼리 매개 변수 – 이 필드는 URL 경로 또는 URL 내의 쿼리의 일부로 사용됩니다. 예:
http://app.asana.com/api/workspaces/{queryfield1}/project/{queryfield2}?userId={queryfield3}
매개 변수 이름 사용자에게 표시되는 작업 입력 필드의 제목입니다. 예: 계정 선택 프롬프트 메시지 매개 변수 이름 아래에 표시되는 도움말 설명입니다. 예: 어떤 계정에 액세스하시겠습니까? 매개 변수 키 수집하려는 최종 사용자 입력 값을 나타내는 키입니다. 예: accountType. 엔티티 유형 입력 매개 변수가 엔티티와 연결되며 다음 중에서 엔티티 유형을 선택할 수 있습니다. - 첨부
- 도시
- 국가
- 회사
- 통화
- 날짜
- 이메일
- 레이블
- 위치
- 메시지
- 이름
- 숫자
- 퍼센트
- 전화번호
- 문자열
엔티티 유형에 대한 자세한 내용은 여기를 클릭하세요. 선택한 엔티티 유형에 따라 나머지 매개 변수가 설정되어 동일하게 수정할 수 있습니다.
매개 변수 유형 키 값에 할당할 요청 개체의 사용자 입력 수집을 위해 최종 사용자 인터페이스에 표시되는 작업 입력 필드의 유형을 지정합니다. 기본 설정은 텍스트 상자이지만 다음 중 하나에 맞게 사용자 정의할 수 있습니다. - 날짜 – 작업을 계정에 설정할 때 최종 사용자가 정의할 날짜 형식 구문을 선택할 수 있는 형식 필드를 표시합니다. 날짜 형식 선택 드롭다운 목록에서 다음 중 하나를 선택합니다.
- dd-MM-YYYY – 예: 16-05-1999
- MM-dd-YYYY – 예: 05-16-1999
- dd-MM-YY – 예: 16-05-99
- YYYY-MM-dd – 예: 1999-05-16
- URL – 올바른 URL 구문을 위한 필드 유효성 검사를 포함하여 최종 사용자가 URL을 입력할 수 있는 텍스트 상자를 표시합니다. 플레이스 홀더 필드에 텍스트 상자에 표시되는 도움말 힌트를 입력합니다. 예: 여기에 웹 사이트의 URL 입력.
- 텍스트 상자 – 최종 사용자가 작업 입력 필드로 텍스트를 입력하기 위한 텍스트 상자를 표시합니다. 일반적으로 몇 단어입니다. 플레이스 홀더 필드에 텍스트 상자에 표시되는 도움말 힌트를 입력합니다. 예: 여기에 웹 사이트의 URL 입력.
- 정적 드롭다운 – 최종 사용자에 대한 드롭다운 선택 목록을 표시합니다. 옵션 추가를 클릭하여 다음 매개 변수를 사용하여 최종 사용자에게 표시할 항목 목록을 추가합니다.
- 옵션 이름 – 최종 사용자에게 표시되는 옵션의 이름입니다.
- 옵션 값 – 애플리케이션에 반환된 옵션 이름을 나타내는 값입니다.
- 기본값 – 하나 이상의 옵션이 정의된 경우 옵션의 기본값을 선택합니다.
- 검색 가능 – 최종 사용자가 이 필드에 텍스트를 입력할 때 동적 검색 및 표시를 사용함으로 설정하거나 일치 항목이 없는 경우 자유 양식 입력을 허용하려면 선택합니다.
저장을 클릭합니다. 추가 항목을 추가하려면 옵션 추가를 다시 클릭합니다. 옵션의 조치 열에서 옵션을 편집하거나 삭제합니다.
- 동적 드롭다운 – 봇의 URL 응답에 따라 실행 시 동적으로 채워진 드롭다운 목록을 표시합니다. 예: JIRA 작업 알림용 프로젝트 목록. 동적으로 채워진 드롭다운에 대해 다음 속성을 정의합니다.
- 엔드포인트 URL – 봇 엔드포인트 URL(예: https://app.asana.com/api/1.0/workspaces.
- 엔드포인트 콘텐츠 유형 – 지정된 엔드포인트 URL에서 예상되는 컨텐츠 유형입니다. 다음 중 하나입니다. JSON, RSS, XML, URL Encoded JSON, CCV, Text 또는 Twitter 인코딩된 JSON.
- 엔드포인트 메소드 – 다음 중 하나입니다.
- GET – 작업 필드의 HTTP 요청 GET 메소드를 지정합니다.
- POST – 작업 필드의 HTTP 요청 POST 메소드를 지정합니다.
- 응답 경로 – 원하는 드롭다운 목록 값이 포함된 응답의 경로입니다. 예: data.
- 라벨 키 – 드롭다운 옵션의 라벨 키입니다. 예: name.
- 옵션 값 키 – 드롭다운 옵션의 값의 키입니다. 예: id.
- 페이로드 필드 추가 – 동적 드롭다운에 대한 옵션으로 응답 페이로드에서 하나 이상의 필드를 추가하려면 클릭합니다. 각 페이로드 필드에서 페이로드 필드 키 및 페이로드 필드 값을 입력한 다음 저장을 클릭합니다. 조치 열에서 페이로드 필드를 편집하거나 삭제합니다.
- 검색 가능 – 최종 사용자가 이 필드에 텍스트를 입력할 때 동적 검색 및 표시를 사용함으로 설정하거나 일치 항목이 없는 경우 자유 양식 입력을 허용하려면 선택합니다.
- 텍스트 영역 – 최종 사용자가 작업 입력으로 텍스트를 입력하기 위한 텍스트 영역을 표시합니다. 일반적으로 몇 문장입니다. 플레이스 홀더 필드에서 텍스트 영역 내부에 표시되는 도움말 힌트를 입력합니다.
- 타입 어헤드 – 작업에 정의된 URL 응답에 따라 사용자가 검색 결과와 일치하는 3개 이상의 문자를 입력할 때 실행 시 동적으로 채워진 드롭다운 선택 목록을 최종 사용자에게 표시합니다. 예: JIRA 작업 알림 메시지의 프로젝트 목록. 동적으로 채워진 드롭다운에 대해 다음 속성을 정의합니다.
- 엔드포인트 URL – 봇 엔드포인트 URL(예: https://app.asana.com/api/1.0/workspaces.
- 엔드포인트 콘텐츠 유형 – 지정된 엔드포인트 URL에서 예상되는 컨텐츠 유형입니다. 다음 중 하나입니다. JSON, RSS, XML, URL Encoded JSON, CCV, Text, Twitter Encoded JSON, Multipart/Form-data 또는 Multipart/Related.
- 엔드포인트 메소드 – 다음 중 하나입니다.
- GET – 작업 필드의 HTTP 요청 GET 메소드를 지정합니다.
- POST – 작업 필드의 HTTP 요청 POST 메소드를 지정합니다.
- 응답 경로 – 원하는 드롭다운 목록 값이 포함된 응답의 경로입니다. 예: data.
- 라벨 키 – 드롭다운 옵션의 라벨 키입니다. 예: name.
- 옵션 값 키 – 드롭다운 옵션의 값의 키입니다. 예: id.
- 페이로드 필드 추가 – 타입 어헤드 필드에 대한 옵션으로 응답 페이로드에서 하나 이상의 필드를 추가하려면 클릭합니다. 각 타입 어헤드 옵션에서 페이로드 필드 키 및 페이로드 필드 값을 입력한 다음 저장을 클릭합니다. 조치 열에서 페이로드 필드를 편집하거나 삭제합니다.
- 편집 가능 – 타입 어헤드 검색 결과가 일치하지 않을 때 사용자가 필드에서 텍스트를 자유롭게 입력할 수 있습니다.
- 이메일 – 최종 사용자가 이메일 주소를 입력할 수 있는 텍스트 상자를 표시합니다. 플레이스 홀더 필드에서 텍스트 상자 내부에 최종 사용자에게 표시되는 도움말 힌트를 입력합니다.
- 날짜 및 시간 – 최종 사용자가 시간과 함께 날짜를 입력할 수 있는 텍스트 상자를 표시합니다. 형식 필드에서 날짜 텍스트 상자에 최종 사용자에게 표시할 예상되는 날짜 또는 시간 형식을 입력합니다. 날짜 형식 선택 드롭다운 목록에서 시간 형식의 날짜를 선택합니다.
- 시간대 – 운영 체제 설정에 따른 시간대 드롭다운 목록을 표시합니다.
- 위치 – 최종 사용자가 지리적 위치를 입력할 수 있는 텍스트 상자를 표시합니다. 예: Orlando, FL 또는 32801.
- 중첩된 양식 – 상위 입력 필드 아래에 중첩된 형식으로 최종 사용자 입력 필드를 표시합니다. 중첩된 양식 입력 필드에 대해 다음 필드를 지정합니다.
- 배열 요소 유형 – 상위 입력 양식 요소의 데이터 유형을 선택합니다.
- 중첩 양식 필드 추가 – 하나 이상의 중첩된 양식 필드를 추가하려면 클릭합니다.
- 파일 업로드 – 검색할 최종 사용자 컨트롤을 표시하고 업로드할 파일을 선택합니다. 클릭되면 파일 업로드 페이로드 키를 입력합니다. 파일 업로드 페이로드 키가 정의된 경우 파일 업로드 페이로드 필드 값 드롭다운 목록에서 다음 유형 중 하나를 선택합니다.
- 파일 이름
- 파일 크기
- 파일 콘텐츠 유형
데이터 유형 다음 사용자 입력 유형 중 하나를 선택합니다. - 문자열 – 사용자는 연속된 숫자, 문자 또는 특수 문자를 입력할 수 있습니다.
- 숫자 – 사용자는 숫자를 입력할 수 있습니다. 특수 문자는 허용되지 않습니다.
- 불리언 – 사용자는 true 또는 false의 부울 값을 입력할 수 있습니다.
- 이메일 – 사용자는 유효한 이메일 주소를 입력할 수 있습니다.
- 개체 – 봇의 데이터는 JSON 개체로 수신할 수 있습니다. 예: 다음과 같이 정의된 위치 세부 정보: "location" : { "lat" : 17.4374614, "lng" : 78.4482878 } 요청 체인 또는 작업 요청에서 속성을 location.lat 및 location.lng로 참조할 수 있습니다.
- Array – 사용자는 쉼표로 구분된 값 목록을 봇에 전달할 수 있습니다. 예: 구글 캘린더에서 데이터가 있는 여러 참석자는 다음과 같이 전달할 수 있습니다. "attendees": ["user1", "user2", "user3"]선택되면 사용자 입력 배열의 유형을 다음 중 하나로 지정합니다.
- 문자열
- 숫자
- 불리언
- 이메일
- 배열
- 날짜
- 날짜 – 사용자는 전체 날짜를 입력하거나 날짜 선택기에서 날짜를 선택할 수 있습니다.
필수 최종 사용자가 이 설정을 정의하여 작업 설정 구성을 저장하려는 경우 선택합니다. - 페이로드 매개 변수 – 이 필드 유형을 사용하여 POST, PUT, GET, DELETE 등 HTTP 메소드의 페이로드 데이터를 나타냅니다. 예:
- 고급 설정 탭을 클릭하여 작업 필드의 추가 옵션 설정을 정의합니다.
필드 이름 | 설명 |
---|---|
가시성 | 작업 입력 필드를 최종 사용자에게 표시할지 숨길지 여부를 지정합니다. 가시성 필드는 사용자 정의로 설정할 수도 있으며 데이터는 사용자로부터 캡처되지만 쿼리 매개 변수 또는 페이로드 필드로 사용되지 않습니다. 예: JIRA 봇을 사용하는 경우 아래와 같이 @mention 태그를 사용하여 티켓에 의견을 게시합니다. "@Mike, 이 문제를 살펴보세요"'의견 게시'를 위한 JIRA API는 다음과 같이 하나의 쿼리 필드와 하나의 페이로드 필드가 필요합니다.
가시성 필드를 사용자 정의로 설정하면 페이로드 필드 또는 쿼리 필드로 사용하지 않고 |
키 전치 해제 | Kore.ai의 키 전치를 비활성화하려면 선택하세요. 기본적으로 Kore.ai는 키/값 쌍을 전치합니다. 예: Kore.ai는 "parameter":"value"를 "parameter:{value:"actualValue"}로 전치합니다. 선택되면 키는 전치되지 않습니다. |
세션에서 가져오기 | 이 필드의 사용자 입력 값을 세션 변수로 저장하려면 선택합니다. 선택되면 세션의 필드 값 필드가 표시됩니다. 기존 변수를 선택하거나 새 세션 변수 추가를 선택하여 새 변수를 정의합니다. 새 세션 변수를 생성하려면 변수의 범위를 선택하고 변수를 저장할 키를 정의해야 합니다. 범위 필드에서 다음 중 하나를 선택합니다.
|
작업 이니셜라이저 정의
작업 이니셜라이저를 설정하려면 이니셜라이저 탭을 클릭하세요. 필요한 코드를 작성할 수 있는 JavaScript 편집기가 열립니다. JavaScript 편집기에서 다음과 같이 키 및 범위를 정의합니다.
- EnterpriseContext – 엔터프라이즈 내 모든 봇과 사용자가 사용할 수 있는 키-값 쌍입니다. 예: GitHub 봇의 경우 사용자는 하나 이상의 엔터프라이즈 저장소에 액세스해야 합니다. 이니셜라이저에서 다음 JavaScript 코드를 사용하여 저장소 데이터를 Gitrepository (엔터프라이즈 컨텍스트)로 유지할 수 있습니다.
var userRepository = { "title": _labels_[repository], "value": repository }; EnterpriseContext.put('Gitrepository', userRepository, 200000);
- BotContext – 특정 봇의 모든 사용자가 사용할 수 있는 키-값 쌍입니다. 예: 사용자의 위치에 따라 세션에서 금융 거래를 위한 기본 통화를 설정할 수 있습니다. 이니셜라이저에서 다음 JavaScript 코드를 사용하여 기본 통화 데이터를 currency (봇 컨텍스트)로 유지할 수 있습니다.
var defaultCurrency = { TODO 위치 기반 통화에 대한 JavaScript를 사용자 정의 } BotContext.put('currency', defaultCurrency, 200000);
- UserContext – 사용자의 모든 봇이 사용할 수 있는 키-값 쌍입니다. 이 키는 읽기 전용이며 시스템에서 다음과 같은 사용자 데이터로 제공됩니다.
- _id – Kore.ai 사용자 ID입니다.
- emailId – userId에 연결된 이메일 주소입니다.
- lastName – 사용자의 성입니다.
- firstName – 사용자의 이름입니다.
- profImage – 사용자의 이미지 또는 아바타 파일 이름입니다.
- profColour – 사용자의 계정 색상입니다.
- activationStatus – 사용자의 계정 상태입니다.
- title – 정의된 경우 사용자의 직함입니다.
- orgId – 정의된 경우 사용자 계정의 조직 ID입니다.
- UserSession – 엔터프라이즈 내 모든 봇의 특정 사용자가 사용할 수 있는 키-값 쌍을 정의합니다. 예: 상거래, 운송 및 가정 배달 서비스를 위한 사용자 집 주소와 같이 사용자 위치를 저장하여 모든 봇이 사용할 수 있도록 해야 합니다. 이니셜라이저에서 다음 JavaScript 코드를 사용하여 기본 위치 데이터를 HomeLocation (사용자 세션)으로 유지할 수 있습니다.
var location = { "title": labels[location], "value": { "latitude": location.latitude, "longitude": request.location.longitude } }; UserSession.put('HomeLocation', location, '20000');
- BotUserSession – 같은 특정 사용자의 입력을 기반으로 특정 봇이 사용 가능한 키-값 쌍을 정의합니다. 예: 하나 이상의 봇 작업에 대해 사용자 위치를 유지해야 합니다. 여행 봇의 경우 같은 집 주소와 목적지 주소를 기준으로 항공편과 호텔을 예약할 수 있습니다. 이니셜라이저에서 다음 JavaScript 코드를 사용하여 기본 집 및 목적지 데이터를 HomeLocation (봇 사용자 세션) 및 DestinationLocation (봇 사용자 세션)으로 유지할 수 있습니다.
var homelocation = { "title": labels[request.sourceLocation], "value": { "latitude": request.sourceLocation.latitude, "longitude": request.sourceLocation.longitude } }; BotUserSession.put('HomeLocation', homelocation, '20000'); var destlocation = { "title": labels[request.destLocation], "value": { "latitude": request.destLocation.latitude, "longitude": request.destLocation.longitude } }; BotUserSession.put('DestinationLocation', destlocation, '20000’);
GET 및 PUT 구문
다음 코드 예시에서는 각 컨텍스트 유형에 따라 키-값 쌍을 GET 또는 PUT하는 구문을 보여줍니다.
"EnterpriseContext" : { "get" : function(key){...},//지정된 키 획득 key "put" : function(key, value, ttl){...} //특정 ttl에 대한 값을 키에 입력합니다. ttl은 분 단위입니다. }, "BotContext" : { "get" : function(key){...},//지정된 키 획득 key "put" : function(key, value, ttl){...} //특정 ttl에 대한 값을 키에 입력합니다. ttl은 분 단위입니다. }, "UserContext" : { "get" : function(key){...},//지정된 키 획득 }, "UserSession" : { "get" : function(key){...},//지정된 키 획득 key "put" : function(key, value, ttl){...} //특정 ttl에 대한 값을 키에 입력합니다. ttl은 분 단위입니다. }, "BotUserSession" : { "get" : function(key){...},//지정된 키 획득 key "put" : function(key, value, ttl){...} //특정 ttl에 대한 값을 키에 입력합니다. ttl은 분 단위입니다. }
예:
BotContext.put("topicSessionVariable","music",2000); UserSession.put("firstName","Mary",20000); UserContext.get("firstName");
예외 구문
인증 실패와 같은 작업 설정 전에 오류를 캡처하도록 사용자 정의 오류 메시지를 정의할 수도 있습니다. 예외가 캡처된 경우 작업 설정이 중지됩니다. 다음 구문을 사용하여 예외를 발생시킵니다.
{ "exceptions": { "message": " 오류 메시지" } }
예,
var ex ={}; var exceptions={}; exceptions.message ='유효한 권한 없이 계속 할 수 없습니다'; ex.exceptions = exceptions; print(JSON.stringify(ex)); //출력은 필수입니다.
이니셜라이저 섹션에서는 세션 키 또는 기타 세션 값을 설정할 수 있지만 값을 설정하거나 액세스할 수는 없습니다. 예,
var name = UserContext.get("firstName")+UserContext.get("lastName"); UserSession.put("fullName") = name;
앞의 코드 예시에서는 작업의 고급 설정 섹션에서 세션에서 가져오기 필드로 정의된 작업 매개 변수를 사용하여 세션에 값을 입력합니다. 키는 사용자 정의된 UserSession
컨텍스트 변수에 대해 fullName
으로 정의됩니다.
작업 이니셜라이저 예시
다음 코드는 API 요청에서 변수를 미리 채우는 사용자 ID 및 이메일 데이터를 얻기 위한 작업 이니셜라이저의 예입니다.
var x = UserContext.get("identities"); var isEmailFound = false; for (var i = 0; i < x.length; i++) { if (x[i].type === "mapped") { var identity = x[i].val var arr = identity.split("/"); var pattern = /^cs/i; var result = arr[0].match(pattern); if (result) { isEmailFound = true; UserSession.put("rtmEmail", arr[1], '20000'); } } } if (!isEmailFound) { for (var j = 0; j < x.length; j++) { if (x[j].type === "email") { UserSession.put("rtmEmail", x[j].val, '20000'); } } }
API 요청
모든 작업에 대해 작업을 시작하려면 웹 서비스 호출을 위한 API 요청을 정의해야 합니다. 각 작업을 위해 최소한 하나의 API 요청은 필요합니다. 각 API 요청에 대해 웹 서비스에서 데이터 페이로드 전달을 시작하려면 하나 이상의 요청 URL 및 경로를 추가해야 합니다.
API 요청 설정하기
- API 요청 탭에서 요청 탭을 확장한 다음 API 추가를 클릭합니다.
- 다음 절차에 설명된 대로 API 추가 대회 상자에 필드 값을 지정합니다.
- 이름 필드에 API 요청의 이름을 입력합니다. 예: 내 API 요청.
- 메소드 드롭다운 목록에서 작업에 사용되는 HTTP 메소드를 입력합니다. 다음 중 하나입니다.
- POST – HTML 양식을 사용하여 고객 정보, 파일 업로드 등 서버에 데이터를 전송하는 데 사용됩니다.
- PUT – 대상 리소스의 내용을 전송된 내용으로 대체합니다.
- PATCH – 기존 대상 리소스의 내용에 전송된 내용을 추가합니다.
- DELETE – 기존 대상 리소스의 내용을 삭제합니다.
- GET – 기존 대상 리소스의 내용을 반환합니다.
- URL 필드에서 프로세스에 대한 봇 작업 응답의 URL(예: http://koremessenger.com/postURL)을 지정합니다. 다음 예시와 같이 URL에서 세션 변수를 사용할 수도 있습니다.
https://mySite.crm.ondemand.com/sap/c4c/odata/v1/c4codata/ServiceRequestCollection?$filter=ID eq '{id}' and ReporterEmail eq '{userEmail}'&$expand=ServiceRequestHistoricalVersion,ServiceRequestDescription
참고 사항: 일부 URL에서는 끝과 시작 매개 변수에 전용 Kore.ai 매개 변수 값을 사용할 수 있습니다. Kore.ai 매개 변수 값에 대한 자세한 내용은 봇 추가하기의 봇 관련 설명서를 참조하세요. - 커넥터를 사용한 액세스 필드에서 Kore.ai 커넥터 에이전트를 사용하여 Kore.ai 봇의 액세스를 활성화하려면 예를 선택합니다. 이 옵션은 Kore.ai 커넥터 에이전트가 엔터프라이즈 온프레미스 네트워크에서 설정되어 사용함으로 설정한 경우에만 표시됩니다. 자세한 내용은 Kore.ai 커넥터 사용을 참조하세요.
- 헤더 탭의 콘텐츠 유형 필드에서 샘플 응답 데이터에 대해 지원되는 다음 데이터 유형 중 하나를 선택합니다.
- JSON – JavaScript Object Notation은 사람이 읽을 수 있는 텍스트를 사용하여 데이터 개체를 속성-값 쌍으로 전송하는 개방형 표준 포맷입니다. JSON을 사용하여 Kore.ai 서버와 봇 웹 애플리케이션 간에 데이터를 전송할 수 있습니다.
- RSS – Rich Site Summary 또는 Really Simple Syndication은 블로그 항목, 뉴스 헤드라인, 음성 및 동영상과 같이 자주 업데이트 되는 정보를 게시하는 데 사용되는 표준화된 형식 집합입니다.
- XML – Extensible Markup Language는 사람이 읽을 수 있고 기계가 읽을 수 있는 형식으로 문서를 인코딩하기 위한 규칙 집합을 정의한 마크업 언어입니다. 웹 서비스는 종종 XML 스키마를 사용하여 XML 데이터를 처리합니다.
- URL 인코딩된 JSON – 예약된 문자에 대해 JSON 인코딩을 사용한 URL입니다.
- CSV – 쉼표로 구분된 값 목록입니다.
- Text – 텍스트 기반 키-값 쌍입니다.
- Twitter 인코딩된 JSON – 예약된 문자에 대해 JSON 인코딩을 사용한 Twitter의 URL입니다.
- Multipart/Form-data – 사용자가 양식에서 파일을 업로드할 수 있도록 하는 경우 HTTP POST 요청 메소드를 통해 파일을 전송하는 인코딩 유형입니다.
- Multipart/Related – 같은 정보를 다른 본문 파트에 다른 형태로 표시할 때 사용됩니다. 본문 파트는 복잡도가 높은 순으로 정렬됩니다.
- Oracle ADF – Oracle Application Development Framework용 입니다.
- 권한 부여 헤더 섹션에서 키를 선택하거나 선택 취소하여 다음 그림과 같이 헤더의 키를 사용하거나 비활성화합니다.
- 다음 그림과 같이 매개 변수 탭에서 헤더에 포함할 권한 부여 매개 변수 또는 매개 변수를 선택하거나 선택 취소합니다.
- 저장을 클릭하여 저장하고 API 요청 설정을 닫습니다.
처리기
처리기를 사용하면 JavaScript를 사용하여 웹 서비스에 API 요청 전, 요청 중, 요청 후 사용자 세션에서 수집된 데이터를 수정할 수 있습니다. API 요청 전 처리기를 정의하고 배치하는 경우 전처리기입니다. 전처리기를 사용하면 API 요청이 수행되기 전 세션 변수에서 입력 매개 변수와 값을 관리할 수 있습니다.. 처리기가 API 요청 후 순차적으로 배치된 경우 후처리기입니다. 후처리기를 사용하여 API 요청에서 페이로드 응답 키에 액세스할 수 있습니다. 키에 액세스하려면 다음 후처리기 유형 중 하나를 사용하세요.
- Resolve: 두 번째 요청에 대한 입력으로 하나의 페이로드 응답의 결과를 사용합니다.
- Spread – 페이로드에서 데이터 배열을 분리합니다.
- Extract – 여러 개체가 있는 페이로드의 특정 개체의 경로를 지정합니다.
- Assign – 페이로드 응답의 변수 이름을 지정합니다.
전처리기
세션 변수 및 매개 변수를 사용하여 API 요청을 실행하기 전에 전처리기를 사용해 요청 매개 변수를 관리할 수 있습니다. 전처리기를 정의할 때 처리 유형을 사용자 정의로 설정한 다음 표시되는 JavaScript 편집기에 코드를 입력해야 합니다. 전처리기는 사용자 정의 유형만 될 수 있습니다.
전처리기 추가하기
- API 요청 페이지에서 요청 탭을 확장한 다음 처리기 추가를 클릭합니다.
- 이름 필드에 처리기의 이름을 입력합니다.
- 처리 유형 드롭다운 목록에서 전처리기에 대해 사용자 정의를 선택합니다.
- 다음 구문을 사용하여 필요에 따라 요청 매개 변수를 수정하기 위한 코드를 추가합니다.
{ "fields": { "payloadFields": { // 페이로드 필드에 대한 값 설정 "key1": "value1", // 페이로드 필드는 경고 작업에 적용할 수 없습니다. "key2": "value2".... }, "headerFields": { // 헤더 필드에 대한 값 설정 "key1": "value1", "key2": "value2".... }, "pathFields": { // 경로 필드 또는 쿼리 필드에 대한 값을 설정합니다. "key1": "value1", "key2": "value2".... } } }
예: 다음 코드 조각을 사용하여 API 개체의 경로 필드 또는 쿼리 필드를 설정할 수 있습니다.
var fields= {}; var pathFields = {}; pathFields.fullName = UserContext.get("firstName")+UserContext.get("lastName") fields.pathFields = pathFields; var finalObject = {}; finalObject.fields = fields; print(JSON.stringify(finalObject));
이전 코드에서
firstName
및lastName
이 세션 변수로John
및Smith
로 각각 저장된 경우 전처리기의 JSON 응답 페이로드는 다음과 같습니다.{ fields: { "pathFields": { "key": "fullName", "value": "John Smith" } } }
다음 전처리기 예시에서는 실제 API 요청 호출 전에 변수를 세션 변수로 설정합니다.
var fields = {}; var pathFields = {}; var UserEmailID = UserSession.get("rtmEmail"); pathFields.userEmail = UserEmailID; fields.pathFields = pathFields; var finalObject = {}; finalObject.fields = fields; print(JSON.stringify(finalObject));
- 저장을 클릭하여 저장하고 처리기 추가 대화 상자를 닫습니다.
후처리기 추가하기
Kore.ai 후처리기를 사용하여 웹 서비스에서 원하는 데이터 페이로드를 가져오려면 하나 이상의 API 요청이 필요합니다.
사용자 정의 후처리기 정의
사용자 정의 후처리기를 생성하려는 경우 다음 구문을 사용하여 이전 API 요청의 응답 키에 액세스할 수 있습니다"
payload[0].{ key }
JSON 구문
{ "payload": { "key1" : "value1", "key2" : "value2" } }
예
var final = {}; var data = payload[0]; //이전 API 개체의 응답을 액세스 data.title[0] = '키의 새 값을 여기에 입력'; final.payload = data; // API 개체의 응답을 업데이트 print(JSON.stringify(final)); // 이 단계는 필수입니다
사용자 정의 처리기의 경우 이전 코드와 같이 최종 응답을 출력해야 합니다. 그렇지 않으면 빈 응답이 반환됩니다. 다음 구문을 사용합니다.
print(JSON.stringify( <<object>> ));
표준 후처리기 설정
표준 후처리기를 추가하려면 다음 단계를 따릅니다.
- API 요청 탭에서 요청 탭을 확장한 다음 처리기 추가를 클릭합니다.
- 또한 Kore.ai는 후처리기를 위한 사용자 정의 코드를 생성하는 대신 사용할 수 있는 일련의 표준 후처리기를 제공합니다. 처리 유형 필드에서 다음 네 가지 표준 처리기 유형 중 하나를 선택합니다.
- Resolve: 두 번째 요청에 대한 입력으로 하나의 페이로드 응답의 결과를 사용합니다. 예: 처리기 추가를 클릭하고 처리기의 이름을 입력하고 처리 유형을 resolve로 설정하고 키를 변수의 이름으로 설정한 다음 첫 번째 API 요청의 변수를 사용하여 Post URL을 정의합니다. 예: https://app.asana.com/api/1.0/projects/{project_id}는 페이로드 응답에서 다음과 같이 id 필드를 반환합니다.
... "id":80468818418144, <br/> "created_at":"2016-01-14T05:34:35.848Z", "modified_at":"2016-01-20T04:29:52.505Z", "owner":{ "id":73114591129714, "name":"jaganmohan.evuri" }, ...
그 이후 다음과 같이 변수 입력으로 사용됩니다 Post URL: https://app.asana.com/api/1.0/projects/{id}/tasks?opt_fields=completed,modified_at 페이로드 응답에서 예상되는 HTML 콘텐츠 유형 및 HTML 요청 메소드를 지정해야 합니다. 자세한 내용은 작업에서 세션 변수 및 컨텍스트 변수 사용하기를 참조하세요.
- Spread: 분리해야 하는 데이터 배열이 포함된 페이로드입니다. 예: 처리기 추가를 클릭하고 처리기의 이름을 입력하고 키 필드를 데이터로 설정하고 처리 유형을 spread로 설정하여 다음 코드 예제에서
data
요소의 내용을 캡처하여 배열의 각 항목을 추출합니다.{ "attribution": null, "tags": [], "type": "image", "location": null, "comments": { "count": 51, "data": [{ "created_time": "1453900980", "text": "43rd", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171728804843572377" }, { "created_time": "1453901222", "text": "44th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171730841379491107" }, { "created_time": "1453901997", "text": "45th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171737339782450909" }, { "created_time": "1453902304", "text": "46th and 47th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171739915923967873" }, { "created_time": "1453902638", "text": "48th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171742713994497101" }, { "created_time": "1453964684", "text": "49th", "from": { "username": "venkataphani.ailavarapu", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2679234818", "full_name": "Phani" }, "id": "1172263199715314941" }, { "created_time": "1453964710", "text": "50th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1172263415747136776" }, { "created_time": "1453964717", "text": "51st", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1172263474056350986" }] ...
- Extract: 여러 개체가 포함된 페이로드의 경우 특정 개체에 대한 경로를 지정할 수 있습니다. 예: 처리기 추가를 클릭하고 처리기의 이름을 입력하고 키 필드를
data
로 설정한 다음 처리 유형을 extract로 설정하여 다음 페이로드 응답에서 개체 데이터를 사용합니다.{ "user": { "full_name": "Kore.ai Hyd", "id": "2056218675", "profile_picture": "https://instagramimages-a.akamaihd.net/profiles/anonymousUser.jpg", "username": "kore_hyd" }, ... }, "likes": { "data": [{ "full_name": "kstream002", "id": "2100724876", "profile_picture": "https://instagramimages-a.akamaihd.net/profiles/anonymousUser.jpg", "username": "kstream002" } }, ... }
- Assign: Assign 처리기를 사용하여 필요한 경우 페이로드 응답의 변수 이름을 지정할 수 있습니다. 예: 페이로드에 페이로드 응답 데이터의 키가 포함되지 않은 경우. 예: 처리 유형을 assign으로 설정한 다음 출력 변수 필드에서 세 개의 개체 배열로 구성된 다음 페이로드의 출력 변수를 정의할 수 있습니다.
[ { "Cost": "$0.00", "Desc1": "계좌 개설 후 처음 3개월 간 500달러를 구매 시 150달러의 보너스. ", "Desc2": "무제한 캐시백을 얻기 구매 시마다 1.5%의 무제한 캐시백 얻기 자동입니다. 언제든지 원하는 금액의 캐시백으로 상환하세요. ", "Keywords": "주말 외식,온라인,식료품,연료,리워드,리베이트,365,여기저기", "OfferName": "Freedom Unlimited", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://www.psdgraphics.com/file/credit-card.jpg", "id": "5b5195e264bbd800" }, { "Cost": "$95.00", "Desc1": "처음 60일 간 잔액을 이체할 때 잔액 송금 수수료는 0입니다.", "Desc2": "재무 건전성을 높이세요 잔액 송금을 위한 소개 수수료를 얻고 이자를 절약하고 매월 무료 신용 점수를 받으세요.", "Keywords": "권한,리베이트,건강,웰니스,그레이트 이스턴,보험,정책,할부,분할,현금 유동성", "OfferName": "Premium Plus", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://i.imgur.com/rMOXYql.jpg", "id": "5caf2155873f89c8" }, { "Cost": "$10.00", "Desc1": "처음 60일 간 잔액을 이체할 때 잔액 송금 수수료는 0입니다.", "Desc2": "재무 건전성을 높이세요 잔액 송금을 위한 소개 수수료를 얻고 이자를 절약하고 매월 무료 신용 점수를 받으세요.", "Keywords": "권한,리베이트,건강,웰니스,그레이트 이스턴,보험,정책,할부,분할,현금 유동성", "OfferName": "Frequent Flyer", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://www.moneychoice.org/wp-content/uploads/sites/26/2016/01/credit-card-calculator-image.png.jpeg", "id": "c0b05bc3062658ee" } ]
출력 변수 필드에서 배열을 나타낼 변수를
offers
로 지정합니다. UX 미리 보기 기능을 사용한 경우 Kore.ai의 응답은 다음과 같습니다.{ "response": { "offers": [ { "Cost": "$0.00", "Desc1": "계좌 개설 후 처음 3개월 간 500달러를 구매 시 150달러의 보너스. ", "Desc2": "무제한 캐시백을 얻기 구매 시마다 1.5%의 무제한 캐시백 얻기 자동입니다. 언제든지 원하는 금액의 캐시백으로 상환하세요. ", "Keywords": "주말 외식,온라인,식료품,연료,리워드,리베이트,365,여기저기", "OfferName": "Freedom Unlimited", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://www.psdgraphics.com/file/credit-card.jpg", "id": "5b5195e264bbd800" }, { "Cost": "$95.00", "Desc1": "처음 60일 간 잔액을 이체할 때 잔액 송금 수수료는 0입니다.", "Desc2": "재무 건전성을 높이세요 잔액 송금을 위한 소개 수수료를 얻고 이자를 절약하고 매월 무료 신용 점수를 받으세요.", "Keywords": "권한,리베이트,건강,웰니스,그레이트 이스턴,보험,정책,할부,분할,현금 유동성", "OfferName": "Premium Plus", "OfferType": “CreditCard", "Status": "1", "imageURL": "http://vignette3.wikia.nocookie.net/objectmayhem/images/5/52/Credit_card.png/revision/latest?cb=20130629150408", "id": "5caf2155873f89c8" } ] } }
출력 변수를
offers
로 설정하면 봇 빌더에서 변수를 다음과 같은 작업 응답 개체에서response.offers
로 사용할 수 있습니다.print(JSON.stringify(response)); var data = response.offers for (i = 0; i < data.length; i++) { print('<a href="' + data[i].imageURL + '" target="_blank">' + data[i].OfferName + '</a><br>'); print(data[i].Desc1) print('<br>'); print('<br>'); print('비용: ' + data[i].Cost) print('<br>'); if (i < data.length - 1) { print('<br>'); print('<br>'); } }
- Resolve: 두 번째 요청에 대한 입력으로 하나의 페이로드 응답의 결과를 사용합니다. 예: 처리기 추가를 클릭하고 처리기의 이름을 입력하고 처리 유형을 resolve로 설정하고 키를 변수의 이름으로 설정한 다음 첫 번째 API 요청의 변수를 사용하여 Post URL을 정의합니다. 예: https://app.asana.com/api/1.0/projects/{project_id}는 페이로드 응답에서 다음과 같이 id 필드를 반환합니다.
- 추가를 클릭하여 API 요청을 저장한 다음 다른 요청을 생성하거나 추가 및 종료를 클릭하여 API 요청을 저장하고 대화 상자를 닫습니다.
여러 API 요청의 경우 전체 데이터 응답을 얻는 데 필요한 요청을 순차적으로 순서를 정렬해야 합니다. 예: 작업 영역 목록, 프로젝트 목록, 마지막으로 사용자 목록을 요청해야 합니다. 위로 이동 아이콘과 아래로 이동
아이콘을 사용하여 API 요청을 재정렬합니다.
샘플 응답 추가하기

- 권한 부여 – 조치 작업에 필요한 경우 기본 권한 부여, OAuth 또는 API 키를 사용하여 API에 액세스하기 위해 인증을 정의해야 합니다. 자세한 내용은 API 요청 탭 – 권한 부여 설정을 참조하세요.
- WSDL URL – WSDL 데이터를 포함하는 URL을 정의합니다. URL이 검색되면 WSDL 기반으로 사용 가능한 작업 목록에서 선택한 다음 사용자 입력 필드를 사용자 정의할 수 있습니다. 자세한 내용은 WSDL URL 정의를 참조하세요.
- 커넥터를 사용한 액세스 – 봇 플랫폼이 온프레미스에 설치되고 Kore.ai 커넥터 에이전트 사용 여부를 지정하세요. 자세한 내용은 커넥터를 사용한 액세스를 참조하세요.
- 응답 샘플 – 조치 작업 페이로드에서 수신할 것으로 예상되는 키-값 쌍을 정의합니다. 입력한 키 값은 최종 사용자에게 표시할 데이터를 처리하기 위해 드롭다운 선택 항목으로 사용할 수 있습니다. 자세한 내용은 조치 작업에 대한 응답 샘플 추가하기를 참조하세요.
- API 요청 탭에서 WSDL URL 섹션을 확장합니다
- SOAP 요청에 대한 요청 작업 설정을 시작하려면 WSDL URL 필드에 SOAP WSDL을 위한 URL을 입력합니다.
- WSDL 설명 얻기를 클릭합니다. WSDL에 정의된 사용 가능한 연산자 목록이 열립니다.
- 작업에 사용하려는 SOAP 요청을 위해 선택을 클릭합니다. Kore.ai는 사용자 입력에 필요한 경우 하나 이상의 조치 작업 필드를 자동으로 채웁니다.
SOAP 조치 작업 필드 사용자 정의
WSDL에서 하나 이상의 사용 가능한 작업을 선택한 후 Kore.ai에서 제공하는 기본 입력 필드를 사용자 정의할 수 있습니다. 기본 조치 작업 필드를 사용자 정의하려면 다음 단계를 따르세요.
- 사용자 정의할 조치 작업 필드에 대해 편집을 클릭합니다. 조치 작업 필드 설정 대화 상자가 열립니다.
- 작업에 대한 입력 수집을 위해 최종 사용자 필드를 정의하려면 다음 표의 설명에 따라 조치 작업 필드 설정 대화 상자에 매개 변수의 값을 지정합니다.
필드 이름 설명 필드 제목 최종 사용자 인터페이스에 표시되는 작업 입력 필드의 제목입니다. 예: 국가. 도움말 힌트 작업을 설명하는 제목이 설정된 작업 아래에 표시된 도움말 텍스트입니다. 예: 날씨를 확인하려는 국가 이름을 입력하세요. 필드 키 수집하려는 최종 사용자 입력 값을 나타내는 읽기 전용 키입니다. 예: 국가. 필드 유형 키 값에 할당할 요청 개체의 사용자 입력 수집을 위해 최종 사용자 인터페이스에 표시되는 작업 입력 필드의 유형을 지정합니다. 기본 설정은 텍스트 상자이지만 다음 중 하나에 맞게 사용자 정의할 수 있습니다. - 날짜 – 작업을 계정에 설정할 때 최종 사용자가 정의할 날짜 형식 구문을 선택할 수 있는 형식 필드를 표시합니다. 날짜 형식 선택 드롭다운 목록에서 다음 중 하나를 선택합니다.
- dd-MM-YYYY – 예: 16-05-1999
- MM-dd-YYYY – 예: 05-16-1999
- dd-MM-YY – 예: 16-05-99
- YYYY-MM-dd – 예: 1999-05-16
- URL – 올바른 URL 구문을 위한 필드 유효성 검사를 포함하여 최종 사용자가 URL을 입력할 수 있는 텍스트 상자를 표시합니다. 플레이스 홀더 필드에 텍스트 상자에 표시되는 도움말 힌트를 입력합니다. 예: 여기에 웹 사이트의 URL 입력.
- 텍스트 상자 – 최종 사용자가 작업 입력 필드로 텍스트를 입력하기 위한 텍스트 상자를 표시합니다. 일반적으로 몇 단어입니다. 플레이스 홀더 필드에 텍스트 상자에 표시되는 도움말 힌트를 입력합니다. 예: 여기에 웹 사이트의 URL 입력.
- 정적 드롭다운 – 최종 사용자에 대한 드롭다운 선택 목록을 표시합니다. 옵션 추가를 클릭하여 다음 매개 변수를 사용하여 최종 사용자에게 표시할 항목 목록을 추가합니다.
- 옵션 이름 – 최종 사용자에게 표시되는 옵션의 이름입니다.
- 옵션 값 – 애플리케이션에 반환된 옵션 이름을 나타내는 값입니다.
- 기본값 – 하나 이상의 옵션이 정의된 경우 옵션의 기본값을 선택합니다.
- 검색 가능 – 최종 사용자가 이 필드에 텍스트를 입력할 때 동적 검색 및 표시를 사용함으로 설정하거나 일치 항목이 없는 경우 자유 양식 입력을 허용하려면 선택합니다.
저장을 클릭합니다. 추가 항목을 추가하려면 옵션 추가를 다시 클릭합니다. 옵션의 조치 열에서 옵션을 편집하거나 삭제합니다.
- 동적 드롭다운 – 봇의 URL 응답에 따라 실행 시 동적으로 채워진 드롭다운 목록을 표시합니다. 예: JIRA 작업 알림용 프로젝트 목록. 동적으로 채워진 드롭다운에 대해 다음 속성을 정의합니다.
- 엔드포인트 URL – 봇 엔드포인트 URL(예: https://app.asana.com/api/1.0/workspaces.
- 엔드포인트 콘텐츠 유형 – 지정된 엔드포인트 URL에서 예상되는 컨텐츠 유형입니다. 다음 중 하나입니다. JSON, RSS, XML, URL Encoded JSON, CCV, Text 또는 Twitter 인코딩된 JSON.
- 엔드포인트 메소드 – 다음 중 하나입니다.
- GET – 작업 필드의 HTTP 요청 GET 메소드를 지정합니다.
- POST – 작업 필드의 HTTP 요청 POST 메소드를 지정합니다.
- 응답 경로 – 원하는 드롭다운 목록 값이 포함된 응답의 경로입니다. 예: data.
- 라벨 키 – 드롭다운 옵션의 라벨 키입니다. 예: name.
- 옵션 값 키 – 드롭다운 옵션의 값의 키입니다. 예: id.
- 페이로드 필드 추가 – 동적 드롭다운에 대한 옵션으로 응답 페이로드에서 하나 이상의 필드를 추가하려면 클릭합니다. 각 페이로드 필드에서 페이로드 필드 키 및 페이로드 필드 값을 입력한 다음 저장을 클릭합니다. 조치 열에서 페이로드 필드를 편집하거나 삭제합니다.
- 검색 가능 – 최종 사용자가 이 필드에 텍스트를 입력할 때 동적 검색 및 표시를 사용함으로 설정하거나 일치 항목이 없는 경우 자유 양식 입력을 허용하려면 선택합니다.
- 텍스트 영역 – 최종 사용자가 작업 입력으로 텍스트를 입력하기 위한 텍스트 영역을 표시합니다. 일반적으로 몇 문장입니다. 플레이스 홀더 필드에서 텍스트 영역 내부에 표시되는 도움말 힌트를 입력합니다.
- 타입 어헤드 – 작업에 정의된 URL 응답에 따라 사용자가 검색 결과와 일치하는 3개 이상의 문자를 입력할 때 실행 시 동적으로 채워진 드롭다운 선택 목록을 최종 사용자에게 표시합니다. 예: JIRA 작업 알림 메시지의 프로젝트 목록. 동적으로 채워진 드롭다운에 대해 다음 속성을 정의합니다.
- 엔드포인트 URL – 봇 엔드포인트 URL(예: https://app.asana.com/api/1.0/workspaces.
- 엔드포인트 콘텐츠 유형 – 지정된 엔드포인트 URL에서 예상되는 컨텐츠 유형입니다. 다음 중 하나입니다. JSON, RSS, XML, URL Encoded JSON, CCV, Text, Twitter Encoded JSON, Multipart/Form-data 또는 Multipart/Related.
- 엔드포인트 메소드 – 다음 중 하나입니다.
- GET – 작업 필드의 HTTP 요청 GET 메소드를 지정합니다.
- POST – 작업 필드의 HTTP 요청 POST 메소드를 지정합니다.
- 응답 경로 – 원하는 드롭다운 목록 값이 포함된 응답의 경로입니다. 예: data.
- 라벨 키 – 드롭다운 옵션의 라벨 키입니다. 예: name.
- 옵션 값 키 – 드롭다운 옵션의 값의 키입니다. 예: id.
- 페이로드 필드 추가 – 타입 어헤드 필드에 대한 옵션으로 응답 페이로드에서 하나 이상의 필드를 추가하려면 클릭합니다. 각 타입 어헤드 옵션에서 페이로드 필드 키 및 페이로드 필드 값을 입력한 다음 저장을 클릭합니다. 조치 열에서 페이로드 필드를 편집하거나 삭제합니다.
- 편집 가능 – 타입 어헤드 검색 결과가 일치하지 않을 때 사용자가 필드에서 텍스트를 자유롭게 입력할 수 있습니다.
- 이메일 – 최종 사용자가 이메일 주소를 입력할 수 있는 텍스트 상자를 표시합니다. 플레이스 홀더 필드에서 텍스트 상자 내부에 최종 사용자에게 표시되는 도움말 힌트를 입력합니다.
- 날짜 및 시간 – 최종 사용자가 시간과 함께 날짜를 입력할 수 있는 텍스트 상자를 표시합니다. 형식 필드에서 날짜 텍스트 상자에 최종 사용자에게 표시할 예상되는 날짜 또는 시간 형식을 입력합니다. 날짜 형식 선택 드롭다운 목록에서 시간 형식의 날짜를 선택합니다.
- 시간대 – 운영 체제 설정에 따른 시간대 드롭다운 목록을 표시합니다.
- 위치 – 최종 사용자가 지리적 위치를 입력할 수 있는 텍스트 상자를 표시합니다. 예: Orlando, FL 또는 32801.
- 중첩된 양식 – 상위 입력 필드 아래에 중첩된 형식으로 최종 사용자 입력 필드를 표시합니다. 중첩된 양식 입력 필드에 대해 다음 필드를 지정합니다.
- 배열 요소 유형 – 상위 입력 양식 요소의 데이터 유형을 선택합니다.
- 중첩 양식 필드 추가 – 하나 이상의 중첩된 양식 필드를 추가하려면 클릭합니다.
- 파일 업로드 – 검색할 최종 사용자 컨트롤을 표시하고 업로드할 파일을 선택합니다. 클릭되면 파일 업로드 페이로드 키를 입력합니다. 파일 업로드 페이로드 키가 정의된 경우 파일 업로드 페이로드 필드 값 드롭다운 목록에서 다음 유형 중 하나를 선택합니다.
- 파일 이름
- 파일 크기
- 파일 콘텐츠 유형
데이터 유형 다음 사용자 입력 유형 중 하나를 선택합니다. - 문자열 – 사용자는 연속된 숫자, 문자 또는 특수 문자를 입력할 수 있습니다.
- 숫자 – 사용자는 숫자를 입력할 수 있습니다. 특수 문자는 허용되지 않습니다.
- 불리언 – 사용자는 true 또는 false의 부울 값을 입력할 수 있습니다.
- 이메일 – 사용자는 유효한 이메일 주소를 입력할 수 있습니다.
- 개체 – 봇의 데이터는 JSON 개체로 수신할 수 있습니다. 예: 다음과 같이 정의된 위치 세부 정보: "location" : { "lat" : 17.4374614, "lng" : 78.4482878 } 요청 체인 또는 작업 요청에서 속성을 location.lat 및 location.lng로 참조할 수 있습니다.
- Array – 사용자는 쉼표로 구분된 값 목록을 봇에 전달할 수 있습니다. 예: 구글 캘린더에서 데이터가 있는 여러 참석자는 다음과 같이 전달할 수 있습니다. "attendees": ["user1", "user2", "user3"]선택되면 사용자 입력 배열의 유형을 다음 중 하나로 지정합니다.
- 문자열
- 숫자
- 불리언
- 이메일
- 배열
- 날짜
- 날짜 – 사용자는 전체 날짜를 입력하거나 날짜 선택기에서 날짜를 선택할 수 있습니다.
플레이스 홀더 사용자가 필드를 정의하는 데 도움이 되는 입력 텍스트 상자 아래에 표시되는 텍스트입니다. 이 필드는 일부 필드 유형의 경우에만 표시됩니다. 가시성 작업 입력 필드를 최종 사용자에게 표시할지 숨길지 여부를 지정합니다. 가시성 필드는 사용자 정의 필드로 설정할 수도 있으며 데이터는 사용자로부터 캡처되지만 쿼리 매개 변수 또는 페이로드 필드로 사용되지 않습니다. 예: JIRA 봇을 사용하는 경우 아래와 같이 @mention 태그를 사용하여 티켓에 의견을 게시합니다. "@Mike, 이 문제를 살펴보세요" 의견 게시를 위한JIRA API는 다음과 같이 하나의 쿼리 필드와 하나의 페이로드 필드가 필요합니다. - 발급 ID
- 의견
가시성 필드를 사용자 정의로 설정하면 페이로드 필드 또는 쿼리 필드로 사용하지 않고
comment
필드 값에 추가할 데이터를 가져오기 위해 JIRA API를 사용하여@Mike
로 언급된 사용자의 사용자 정보를 캡처할 수 있습니다. 기본 가시성 필드 설정은 Visible입니다.필수 최종 사용자가 이 설정을 정의하여 작업 설정 구성을 저장하려는 경우 선택합니다. 키 전치 해제 Kore.ai의 키 전치를 비활성화하려면 선택하세요. 기본적으로 Kore.ai는 키/값 쌍을 전치합니다. 예: Kore.ai는 "parameter":"value"
를"parameter:{value:"actualValue"}
로 전치합니다. 선택되면 키는 Kore.ai에 의해 전치되지 않고 수신된 대로 응답에 전달됩니다. - 날짜 – 작업을 계정에 설정할 때 최종 사용자가 정의할 날짜 형식 구문을 선택할 수 있는 형식 필드를 표시합니다. 날짜 형식 선택 드롭다운 목록에서 다음 중 하나를 선택합니다.
- 추가 및 계속을 클릭하여 작업 필드를 저장하고 다른 조치 작업 필드를 생성합니다. 추가 및 종료를 클릭하여 조치 작업 필드를 저장한 다음 대화 상자를 닫습니다.
- API 요청 탭에서 커넥터를 사용한 액세스 섹션을 확장합니다.
- 커넥터를 사용한 액세스 필드에서 Kore.ai 커넥터 에이전트를 사용하여 Kore.ai 봇의 액세스를 활성화하려면 예를 선택합니다. 이 옵션은 Kore.ai 커넥터 에이전트가 엔터프라이즈 온프레미스 네트워크에서 설정되어 사용함으로 설정한 경우에만 표시됩니다. 자세한 내용은 Kore.ai 커넥터 사용을 참조하세요.
샘플 응답 추가하기
4단계: 봇 응답 정의
봇 응답은 최종 사용자에게 작업의 상태나 완료를 알리는 메시지를 제공합니다. 작업의 봇 응답 탭에서 API 요청 페이로드에서 최종 사용자에게 표시할 메시지를 정의할 수 있습니다. 모든 채널에 대한 기본 응답을 정의하고 선택적으로 채널별 메시지를 정의할 수 있습니다. 봇 경고 작업 일반 탭 설정을 작성하고 경고 작업 API 요청 체인을 설정한 후 경고 작업 결과를 최종 사용자에게 표시하는 방법을 정의할 준비가 됩니다. 이 섹션에서는 경고 작업 응답 설정 방법을 설명합니다. 경고 작업에 대한 응답 개체를 정의하기 위한 섹션이 두 가지 있습니다.
- 보고서 템플릿 정의 – 일부 작업의 경우 표, 연락처 카드와 같은 템플릿을 사용한 페이로드 응답 또는 날씨 보고서와 같은 특정 메시지 유형을 위한 형식이 지정된 페이로드 응답을 표시할 수 있는 링크로 보고서 데이터를 최종 사용자에게 표시해야 합니다.
참고 사항: 이 섹션은 webhook 경고 작업, 조치 작업 또는 RSS 경고 작업에 사용되지 않습니다.
"Configuring
작업에 링크를 추가하여 추가 정보 또는 보고서를 제공하려면 최종 사용자 애플리케이션에서 보고서에 대해 표시할 링크 및 정보를 표, 날씨 보고서 또는 연락처 카드로 정의할 수 있습니다. 봇 응답 탭에서 작업의 보고서 템플릿 정의를 시작하려면 다음 그림과 같이 (옵션) 보고서 템플릿 정의 섹션에서 확장 아이콘을 클릭합니다.작업의 보고서 링크를 활성화하려면 이전 그림과 같이 예를 클릭하여 보고서 템플릿 정의 섹션을 표시합니다. 링크를 작업 응답 메시지에 추가할 때 봇의 최종 사용자는 링크를 선택하고 SalesForce 봇에서 마감된 판매 기회에 대한 테이블 값 등 자세한 세부 정보를 얻을 수 있습니다. 다음 매개 변수를 정의하여 최종 사용자가 초기 작업 응답 메시지에 대한 추가 정보 보고서를 요청할 수 있도록 작업 응답 메시지에서 링크를 생성합니다.
- 링크 제목 – 작업 게시물에서 최종 사용자에게 표시할 링크 텍스트입니다. 예: 쇼핑 카트 보기.
- 헤더 – 보고서가 최종 사용자에게 표시될 때 보이는 제목입니다. 예: 쇼핑 카트에 품목이 있습니다.
- 세부 정보 – 보고서의 콘텐츠를 설명하는 헤더 바로 아래에 표시되는 최종 사용자 도움말 정보입니다. 예: 쇼핑 카트 검토 후 주문할 준비가 되면 계속을 클릭하세요.
- 템플릿 – 작업 응답에서 데이터를 표시하는 다음 형식 템플릿 중 하나를 선택합니다. 각 유형에 대해 열 이름, 키 매핑, 데이터 유형 및 템플릿별 옵션을 정의합니다.
- 테이블 – 데이터는 열이 정의된 테이블 형식으로 표시됩니다. 테이블 템플릿의 각 매핑은 정렬 가능 여부, 이미지로 표시 및 링크로 표시로 설정됩니다. 자세한 내용은 테이블 보고서 정의하기를 참조하세요.
- 고정 열 테이블 – 데이터는 하나 이상의 열이 고정된 테이블 형식으로 표시됩니다. 고정 열 테이블 템플릿의 각 매핑은 정렬 가능 여부, 고정된 열, 이미지로 표시 및 링크로 표시로 설정됩니다. 자세한 내용은 고정 열 테이블 보고서 정의하기를 참조하세요.
- 카드 레이아웃 – 데이터는 연락처 카드 형식으로 표시됩니다. 카드 레이아웃 템플릿의 각 매핑은 정렬 가능 여부, 이미지로 표시 및 링크로 표시로 설정됩니다. 자세한 내용은 카드 레이아웃 보고서 정의하기를 참조하세요.
- 날씨 정보 – 날씨 서비스 응답 페이로드의 날짜를 정의할 수 있습니다. 날씨 정보 템플릿의 각 매핑은 정렬 가능 여부, 이미지로 표시 및 링크로 표시로 설정됩니다. 자세한 내용은 날씨 정보 보고서 정의하기를 참조하세요.
- 조치가 있는 카드 레이아웃 – 각 항목에 대해 매핑된 작업 링크가 있는 항목 목록을 표시합니다. 자세한 내용은 조치가 있는 카드 레이아웃 보고서 정의를 참조하세요.
- 그룹별 카드 레이아웃 – 특정 필드로 그룹화된 항목 목록을 표시합니다. 자세한 내용은 카드 레이아웃 그룹별 보고서 정의를 참조하세요.
- 조치가 있는 쇼핑 카트 레이아웃 – 각 항목에 대해 매핑된 작업 링크가 있는 항목 목록을 표시합니다. 자세한 내용은 조치가 있는 쇼핑 카트 레이아웃 보고서 정의를 참조하세요.
- 메시지 정의 – 이 섹션에서는 webhook에서 제공하는 페이로드에 따라 알림이 표시될 때 최종 사용자에게 표시되는 데이터의 룩 앤드 필을 정의합니다. "Defining작업을 위한 두 가지 유형의 봇 응답을 정의할 수 있습니다.
- 모든 채널의 기본값: API 요청 및 정의된 처리기의 페이로드 응답에 따라 모든 채널의 기본 제목과 메시지 응답을 작성합니다. 자신만의 입력, Kore.ai 시스템에서 파생된 변수 키 집합, 사용자 정의 변수, 응답 샘플과 함께 응답 개체에서 데이터 혼합을 생성할 수 있습니다. 메시지는 일반적으로 요청 개체 데이터에서 ID 번호 또는 제목과 같은 변수를 하나 이상 포함하는 올바른 형식의 HTML 메시지로 표시됩니다.
- 채널별 응답: 또한 미리 정의된 메시지 템플릿을 선택된 채널에 적용하고 특정 채널(예: Facebook Messenger, Skype, SMS 또는 웹/모바일 SDK)을 위한 봇 응답 메시지를 사용자 정의할 수 있습니다.
메시지 정의 편집기 기능
조치 작업의 편집기를 열려면 봇 응답 > 메시지 정의로 이동합니다. 메시지 정의 편집기는 다음 기능을 제공하는 세 개의 탭을 사용합니다.
- 표준 텍스트: 기본 편집기 컨트롤 및 HTML 마크업 및 변수 키를 사용하여 응답을 정의하고 형식을 지정합니다. 텍스트를 입력한 다음 굵게, 기울임꼴, 머리글 스타일, 하이퍼링크, 순서 있는 목록 및 순서 없는 목록의 버튼을 사용하고 라인을 삽입하여 형식을 지정합니다.
- 자바스크립트: 사용자 정의 코드를 추가하여 최종 사용자 작업 응답 메시지를 처리하고, 변수를 선언하고, 변수 키를 사용하고, 타사 애플리케이션과 상호 작용할 수 있습니다.
- 미리 보기: 봇 사용자가 확인할 수 있는 마크업으로 렌더링된 출력 메시지의 샘플을 봅니다.
변수 키 추가하기
변수 키를 추가하려면 다음 단계를 따르세요.
- 표준 텍스트 또는 JavaScript 모드를 사용하여 변수 키를 추가하려면 변수를 추가하려는 위치에 커서를 놓고 변수 키를 클릭합니다.
- 요청/응답 키 대화 상자에서 삽입하려는 변수가 포함된 키 노드 유형을 확장합니다.
- 추가하려는 변수(예:
response.data.id
)를 선택한 다음 확인을 클릭합니다.
표준 키
표준 키는 재사용 가능한 데이터를 위한 다음 Kore.ai 변수 플레이스 홀더입니다.
- _labels _: GUID 대신 친숙한 레이블을 반환합니다. 예: 웹 서비스 API에서 사용자 데이터를 요청할 때 반환되는 프로젝트 또는 워크스페이스의 ID는 GUID입니다.
_labels_
키를 사용하여 GUID 대신 최종 사용자에게 GUID의 친숙한 이름을 알려줄 수 있습니다. Kore.ai에서 드롭다운 컨트롤은_labels_
키의 응답을 다음과 같이 저장합니다. 예:{ "_labels_": { "15379386734832": "roadlabs.com", "26377329985341": "Test Project", "workspace": "roadlabs.com", "project": "Test Project" }, "_fields_": { "workspace": "15379386734832", "project": "26377329985341" } }
응답에
_labels_
키를 사용하는 방법:print('<a href="https://app.asana.com/0/' + workspace.id + '+_labels_[workspace.id]);
- _tenant_ – 정의된 경우 엔터프라이즈에 대한 테넌트를 반환합니다. 예: JIRA는 https://koreteam.atlassian.net/browse/BBF-3265에서 koreteam과 같은 URL에 대한 테넌트가 필요합니다.
_tenant_
키를 사용하여 다음과 같은 작업 응답에서 링크를 작성할 수 있습니다.var title = request.fields.issuetype.name + ' <a href ="https://' + _tenant_ + '/browse/' + response.key + '" target = "_blank">' + request.fields.summary + '</a>이(가) 생성되었습니다.';
- _fields_ – 페이로드 응답의 일부가 아닌, 사용자가 제공한 작업 필드 입력을 반환하는 데 사용됩니다. 예: JIRA 작업에서 최종 사용자에게 워크스페이스 이름을 입력하라는 메시지가 표시됩니다.
_fields_
키를 사용하여 최종 사용자 입력을 다음과 같이 저장할 수 있습니다._fields_["workspace"]
- _last_run – 웹 서비스 풀의 UTC 날짜 타임스탬프를 ISO 8601 형식을 사용하여 반환하는 데 사용됩니다. 예: 2016-03-05T12:44:38+00:00. 예: 웹 서비스 요청이 페이로드 응답에서 모든 활동을 반환하는 경우
_last_run
키를 사용하여 다음 값의 앞 또는 뒤에 표시되는 결과를 필터링할 수 있습니다._last_run
세션 키
세션 키는 단일 세션 인스턴스와 관련된 사용자 데이터의 Kore.ai 변수 플레이스 홀더입니다.
- UserContext.get("_id") – Kore.ai 사용자 ID입니다.
- UserContext.get("emailId") – 사용자 ID와 연결된 이메일 주소입니다..
- UserContext.get("lastName") – 사용자의 성입니다.
- UserContext.get("firstName") – 사용자의 이름입니다.
- UserContext.get("profImage") – 사용자의 이미지 또는 아바타 파일 이름입니다.
- UserContext.get("profColor") – 사용자의 계정 색상입니다.
- UserContext.get("activationStatus") – 사용자의 계정 상태입니다.
- UserContext.get("jTitle") – 정의된 경우 사용자의 직함입니다.
- UserContext.get("orgId") – 정의된 경우 사용자 계정의 조직 ID입니다.
- UserContext.get("customData") – 개발자가 정의한 사용자 정의 키입니다.
- UserContext.get("identities") – 정의된 경우 대체 사용자 ID입니다.
봇 작업을 정의하는 방법과 해당 작업에 사용 가능한 키 컨텍스트에 따라 추가 세션키를 사용할 수 있습니다. 세션 키 및 컨텍스트 키에 대한 자세한 내용은 작업에서 세션 변수 및 컨텍스트 변수 사용하기를 참조하세요.
응답 키
응답 키는 API 응답 탭에서 응답 샘플 텍스트에서 직접 구문 분석됩니다. 응답 키는 정의된 응답 샘플에 따라 달라집니다.
다음 목록은 Asana 작업에 사용 가능한 응답 키의 예입니다.
request.data.workspace request.data.projects request.data.name request.data.notes labels.498346170860 labels.30887755353556 labels["data.workspace"] labels["data.projects"] _tenant_ response.data.id response.data.created_at response.data.modified_at response.data.name response.data.notes response.data.completed response.data.assignee_status response.data.completed_at response.data.due_on response.data.due_at response.data.workspace.id response.data.workspace.name response.data.num_hearts response.data.parent response.data.followers[0].id response.data.followers[0].name response.data.hearted response.data.assignee response.data.projects[0].id response.data.projects[0].name response.data.memberships[0].project.id response.data.memberships[0].project.name response.data.memberships[0].section
보고서 키
보고서 키는 보고서 템플릿 정의 및 봇 응답에서 사용자가 클릭할 수 있는 메시지에 추가 정보 링크를 표시하는 데 사용할 수 있는 Kore.ai 변수 플레이스 홀더입니다.
- reportInfo.reportLink – 이 작업에 대한 보고서 템플릿 정의 섹션에 정의된 링크입니다.
- reportInfo.reportTitle– 이 작업에 대한 보고서 템플릿 정의에 정의된 제목입니다.
응답 미리 보기
메시지 편집기에서 미리 보기를 클릭하여 다음 옵션 중 하나를 사용하여 응답 미리 보기를 생성합니다.
- 테스트 및 미리 보기 – 봇의 작업 설정 페이지를 열고 작업 설정을 정의하고, 인증한 다음 타사 웹 서비스(예: Asana)를 통해 생성된 응답의 미리 보기를 표시합니다.
- 샘플 응답으로 미리 보기 – 작업의 API 요청 탭의 응답 샘플 섹션에 정의된 키-값 쌍으로 제공된 샘플 데이터를 사용하여 미리 보기를 생성합니다.
사용자 정의 JavaScript 응답 예시
다음 예시에서는 작업 응답 메시지가 전송될 때 출력 메시지를 최종 사용자에게 표시하는 게시물 제목 및 게시물 설명 섹션을 정의하기 위해 JavaScript를 사용한 응답 개체를 표시합니다. 다음 예시에서 desc로 레이블이 표시된 변수는 JSON 응답에 캡션 값이 정의되어 있는 경우에만 표시됩니다.
var desc = (caption !== "undefined" ? caption : "")
다음 예시에서는 작업 제목을 사용하여 클릭 가능한 URL이 작업 응답 메시지에 표시됩니다.
var tasklink = '' + title + '';
이 마지막 예시에서 링크 변수는 유형, 동영상 또는 사진에 따라 다릅니다. 유형에 따라 적절한 링크가 표시됩니다.
var link = ""; switch (type) { case "video": var video = (typeof(video_url) != "undefined") ? video_url : permalink_url; link = '<video controls><source src ="' + video + '" type="video/mp4"></video>'; break; case "photo": link = '<img src="' + image_permalink + '"></img>'; break; }
사용자 정의 JavaScript를 생성하여 작업의 페이로드 응답에 따라 JavaScript 탭에서 작업별 요구 사항을 처리할 수 있습니다.
채널별 봇 응답
작업 응답 메시지는 응답 메시지가 표시되는 채널에 따라 다를 수 있습니다. 예: Kore.ai 메신저 클라이언트, 이메일 또는 텍스트 메시지. 기본적으로 모든 채널의 기본값으로 설정된 응답 메시지는 모든 채널에 전송됩니다. 그러나 기본 응답 대신 해당 채널의 최종 사용자에게 표시할 20개 이상의 채널에 특정 응답을 정의할 수 있습니다.
- 특정 채널을 위한 응답 메시지를 정의하려면 + 채널 추가를 클릭하여 채널 선택 드롭다운 목록을 표시합니다.
- 채널(예: Kore.ai)을 선택한 다음 JavaScript 탭에서 해당 채널에 대한 응답을 설정합니다.
각 채널에는 하나의 응답만 정의할 수 있습니다. 다음 JavaScript 예시에서는 Kore.ai 기본 형식 지정 템플릿을 채널별로 재정의하는 방법을 보여 줍니다.
참고 사항: 다음 키를 사용하여 기본값을 반환합니다. response.message – 기본 메시지를 문자열로 반환합니다. response.message.choices – 옵션 선택 또는 확인 메시지 유형을 배열로 반환합니다.
- Slack 채널 재정의 예시
var message = {}; var attachments = []; var attachment = { 'text': "API 실행 중 예외가 발생했습니다", 'color': '#FFCC00', 'attachment_type': 'default' }; attachments.push(attachment); message.attachments = attachments; print(JSON.stringify(message));
- FaceBook 채널 재정의 예시
var message = { text: response.message }; var buttons = []; for (var i = 0; i < response.choices.length; i++) { var choiceItem = response.choices[i]; if (choiceItem.length > 20) { choiceItem = choiceItem.substring( 0, 18) + '..'; } var element = { content_type: 'text', title: choiceItem, payload: choiceItem }; buttons.push(element); } message.quick_replies = buttons; print(JSON.stringify(message));
- 이메일 채널 재정의 예시
var message = {}; var text = response.message + ' <br> '; for (var i = 0; i < response.choices.length; i++) { text = text.concat( '<u> + response.choices[i] + ' < /u> <br>'); } message.text = text; print(JSON.stringify(message));
- SMS 채널 재정의 예시
var message = {}; var indexArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ]; var text = response.message + '\\n'; for (var i = 0; i < response.choices .length; i++) { text = text.concat(indexArray[i] + ') ' + response.choices[ i] + '\\n'); } message.text = text; print(JSON.stringify(message));