본문으로 건너뛰기
KeuralDocs
개발자

챗봇

조직 웹사이트에 Keural 챗봇 버튼을 설치 코드로 넣습니다.

조직 웹사이트에 Keural 챗봇을 넣습니다. 방문자가 화면 구석의 버튼을 누르면 챗봇 창이 열립니다. 관리 화면에서 만든 설치 코드를 웹사이트에 붙여 넣어 설치합니다.

챗봇 만들기

  1. 조직 소유자·관리자가 조직 관리 → 챗봇 관리에서 챗봇 추가를 누릅니다.
  2. 챗봇 이름과 기본 도메인(예: https://example.com)을 입력해 등록합니다.
  3. 챗봇을 열어 세 탭을 설정합니다.
탭설정
토큰·설치코드토큰 확인, 설치 코드(HTML · Next.js) 복사
챗봇 UI 설정버튼 이미지(PNG·JPG·GIF·WebP)와 표시 여부, 챗봇명, 헤더 노출·확장·색상, 버튼 색상, 버튼 위치(왼쪽·오른쪽)와 가로·세로 오프셋. 미리보기로 확인
고급 설정챗봇을 띄울 페이지 주소(허용 도메인, 최대 5개)
  1. 설치 코드를 웹사이트에 붙여 넣습니다.

설치 코드

토큰·설치코드 탭에서 HTML용 또는 Next.js용 코드를 복사합니다. 코드는 두 부분으로 구성됩니다.

  • 로더: Keural 함수를 만들고, 페이지 로드가 끝나면 챗봇 스크립트(/plugin/keural-widget@1.0.1.js)를 비동기로 불러옵니다. 스크립트 로드 전에 호출한 명령은 대기열에 쌓였다가 순서대로 실행됩니다.
  • 시작 명령: Keural('boot', { token: '…' }). 토큰은 wgt_로 시작합니다.

스크립트 버전은 주소에 고정되어 있습니다. 새 버전이 나오면 설치 코드를 다시 복사해 교체합니다. 같은 페이지에 설치 코드를 두 번 넣으면 두 번째 코드는 무시되고 콘솔에 오류가 기록됩니다.

<script id="keural-one-script">
  /* 토큰·설치코드 탭에서 복사한 코드 */
</script>

Next.js에서는 next/script의 <Script id="keural-one-script" strategy="afterInteractive">로 넣습니다. 모든 페이지에 표시하려면 루트 레이아웃에 넣습니다.

시작 옵션

boot에 넣은 값은 관리 화면 설정보다 우선합니다. 페이지별로 모양을 바꿀 때 씁니다.

Keural('boot', {
  token: 'wgt_…',
  theme: 'system',
  header: { enabled: true, extended: true, draggable: true, title: '고객 지원', color: '#495BD8' },
  button: { visible: true, iconUrl: 'https://example.com/icon.png', color: '#495BD8', position: 'right', offsetX: 30, offsetY: 30 },
});
옵션값화면 설정 이름
token필수. 설치 코드의 토큰—
themelight · dark · system—
header.enabled헤더 표시헤더 노출
header.extended헤더에 크게 보기 버튼 표시헤더 확장
header.draggable헤더를 끌어 창 이동(기본 true)—
header.title헤더 제목챗봇명
header.color헤더 색헤더 색상
button.visible버튼 표시버튼 표시
button.iconUrl버튼 이미지 주소버튼 이미지
button.color버튼 색버튼 색상
button.positionleft · right버튼 위치
button.offsetX · button.offsetY화면 가장자리에서 떨어진 거리(px)X 오프셋 · Y 오프셋

새로 만든 챗봇의 기본값은 헤더 노출·확장 켬, 헤더·버튼 색 #495BD8, 오른쪽, 오프셋 30px, 테마 system입니다.

페이지 제어

호출동작
Keural('open') · Keural.open()챗봇 창을 엽니다.
Keural('close') · Keural.close()닫습니다.
Keural('toggle') · Keural.toggle()열려 있으면 닫고, 닫혀 있으면 엽니다.
Keural('reload') · Keural.reload()챗봇 창을 새로 불러옵니다.
Keural('badge', n) · Keural.badge(n)버튼에 숫자 배지를 표시합니다.
Keural.isLoaded()스크립트를 다 불러왔으면 true
Keural.onOpen(cb) · Keural.onClose(cb)창이 열리거나 닫힐 때 cb를 부릅니다.

Keural.open() 같은 메서드는 스크립트 로드 후에만 동작합니다. 페이지 로드 직후 호출할 때는 Keural('open')처럼 함수 형태로 호출하면 순서대로 실행됩니다.

<button onclick="Keural('open')">상담하기</button>

기본 버튼을 숨기고(button.visible: false) 페이지의 버튼으로 열 수도 있습니다.

화면 크기

챗봇 창은 390×800px이며, 화면 너비가 480px 이하면 전체 화면으로 열립니다. 헤더의 크게 보기 버튼으로 창을 키웁니다.

표시 도메인

  • 챗봇은 기본 도메인과 호스트가 같은 페이지에서 열립니다. 호스트는 포트까지 비교하며 대소문자는 구분하지 않습니다. www.가 붙은 주소와 하위 도메인은 다른 호스트입니다. 개발 서버에서 시험하려면 그 주소를 기본 도메인으로 하는 챗봇을 따로 만듭니다.
  • 기본 도메인은 만든 뒤 바꿀 수 없습니다. 바꾸려면 챗봇을 새로 만듭니다.
  • 고급 설정의 허용 도메인을 비우면 기본 도메인의 모든 페이지에서 열립니다. 허용 도메인을 넣으면 그 주소로 시작하는 페이지에서만 열립니다. https://example.com/help처럼 경로까지 입력하면 그 아래 페이지로 범위가 좁혀집니다. 허용 도메인은 http:// 또는 https://로 시작하며 최대 5개입니다.
  • 설치 코드의 토큰은 페이지에 노출됩니다. 챗봇에는 공개해도 되는 내용만 연결합니다.

보안 정책(CSP)

사이트에 Content-Security-Policy를 적용했으면 다음을 허용합니다. 주소는 keural.ai 기준입니다.

지시어허용할 것
script-srchttps://keural.ai, 설치 코드의 인라인 스크립트('unsafe-inline' 또는 해시·nonce)
connect-srchttps://api.keural.ai
frame-srchttps://keural.ai
style-src'unsafe-inline' 또는 nonce(챗봇이 스타일을 페이지에 넣습니다)
img-src버튼 이미지 주소, https://keural.ai, https://api.keural.ai

이 페이지의 내용