연동 안내서

플럿 CS를 전화 ARS·콜봇, 콜센터, 사내 전산과 잇는 방법이에요. 모두 HTTPS와 JSON으로 주고받아요. 설정은 콘솔의 «연동» 화면에서 해요.

연결 대상방식방향
전화 ARS · 콜봇답변 API — 고객의 말을 글로 보내면 읽어 줄 답을 받아요ARS → 플럿 CS
콜센터통화 기록 등록, 대화 조회·답변, 웹훅양방향
사내 전산조회 연동 — AI가 전산의 조회 주소를 불러요
지식 등록, 웹훅
양방향

인증

콘솔 «연동 → API 키»에서 키를 만들어요. 키 원문은 만들 때 한 번만 보여요. 모든 요청에 아래 헤더를 붙여요.

Authorization: Bearer pcs_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

키 하나당 분당 120회까지 부를 수 있어요. 넘으면 429를 돌려줘요. 오류 응답은 {"ok": false, "error": "코드", "message": "설명"} 꼴이에요.

전화 ARS · 콜봇 — 답변 API

ARS나 콜봇이 고객의 말을 글로 바꾼 뒤(음성 인식) 이 주소로 보내면, 등록한 지식과 전산 조회를 근거로 전화로 읽어 줄 답을 돌려줘요. 같은 통화의 요청은 같은 session_id로 보내야 앞의 대화를 이어서 이해해요.

POST/api/v1/answer

값필수설명
session_id예통화를 구분하는 값. ARS의 통화 ID를 그대로 쓰면 돼요. 80자 이내
text예고객이 한 말. 1,000자 이내
caller발신 전화번호. 전산 조회에 전화번호가 필요할 때 AI가 이 값을 써요
channelphone(기본) · chat · email · kakao · sms · api. phone이면 답을 말로 읽기 좋게 짧게 써요. 이메일·카카오 채널·문자는 고객사 시스템이 받은 글을 이 API로 넘기는 방식이에요(플럿 CS가 직접 수신하지는 않아요)
curl -X POST https://cs.teamplut.com/api/v1/answer \
  -H "Authorization: Bearer $PLUTCS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"session_id":"call-20261008-0001","caller":"01012345678","text":"토요일에도 영업하나요"}'

응답

{
  "ok": true,
  "conversation_id": 1284,
  "answer": "네, 토요일은 오전 열 시부터 오후 세 시까지 영업해요.",
  "handoff": false,
  "transfer_to": null
}
값설명
answer고객에게 읽어 줄 문장. 이미 상담원이 맡은 대화이면 null일 수 있어요
handofftrue이면 AI가 답할 수 없는 문의예요. answer를 읽어 준 뒤 상담원에게 연결해 주세요
categoryAI가 분류한 문의 유형(주문배송·교환환불·결제·예약·계정·요금·이용방법·영업정보·불만·제휴·채용·기타)
transfer_tohandoff가 true일 때, 콘솔에 등록한 «상담원 연결 전화번호». 등록하지 않았으면 null

ARS 흐름 예시

음성 인식 장치가 없는 ARS는 그로스 이상 요금제에서 도입 시 함께 구축해요.

콜센터 — 통화 기록 등록

상담원이 받은 통화가 끝나면 요약과 대화 내용을 올려요. 상담함에 «전화» 기록으로 남아 채팅 문의와 한곳에서 볼 수 있어요.

POST/api/v1/calls

{
  "call_id": "pbx-88213",
  "caller": "01012345678",
  "customer_name": "김하늘",
  "agent_name": "박상담",
  "summary": "배송지 변경 요청, 출고 전이라 변경 처리함",
  "transcript": [
    {"role": "customer", "text": "어제 주문한 거 주소를 바꾸고 싶어요"},
    {"role": "agent", "text": "주문번호 확인해 드릴게요"}
  ]
}

summary와 transcript 중 하나는 있어야 해요. 응답은 {"ok": true, "conversation_id": 1290}.

대화 조회 · 상담원 답변

콜센터 프로그램이나 전산 화면에서 플럿 CS의 문의를 직접 보고 답할 때 써요.

GET/api/v1/conversations?status=human&limit=50

status는 ai(AI 응대 중) · human(상담원 답변 필요) · closed(종료). 빼면 전부 줘요.

GET/api/v1/conversations/{id}

대화 한 건과 메시지 전체. 메시지의 role은 user(고객) · ai · agent(상담원) · system(안내)예요.

POST/api/v1/conversations/{id}/reply

{"text": "출고 전이라 주소를 바꿔 드렸어요.", "agent_name": "박상담"}

채팅 문의에 상담원 답변을 보내요. 고객의 대화창에 바로 보여요.

POST/api/v1/conversations/{id}/close

사내 전산 — 조회 연동

주문·배송·예약·계약 상태처럼 고객마다 다른 내용을 AI가 전산에서 확인하고 답하게 해요. 콘솔 «연동 → 전산 조회 연동»에 조회 주소를 등록하면, AI가 필요할 때 플럿 CS 서버에서 그 주소를 불러요.

항목설명
이름 · 설명AI가 설명을 보고 언제 이 조회를 쓸지 판단해요. «주문번호로 배송 상태와 도착 예정일을 확인한다»처럼 구체적으로 적어 주세요
주소https://로 시작. {order_no}처럼 중괄호로 값이 들어갈 자리를 표시해요
필요한 값최대 6개. 고객이 아직 말하지 않은 값은 AI가 먼저 물어봐요
인증 헤더전산이 요구하는 헤더 한 개(예: Authorization). 값은 암호화해서 보관해요

예: 주소를 https://erp.example.com/api/orders/{order_no}로 등록하고 고객이 «A-20391 어디쯤 왔어요?»라고 물으면, 플럿 CS가 아래처럼 불러요.

GET https://erp.example.com/api/orders/A-20391
Accept: application/json
Authorization: Bearer (등록한 값)

전산은 조회 결과를 JSON이나 글로 돌려주면 돼요. 형식은 자유예요. AI는 응답의 앞 3,000자를 읽고 그 안에 있는 내용만 안내해요.

{"order_no": "A-20391", "status": "배송중", "courier": "CJ대한통운", "eta": "2026-10-10"}

지켜 주세요

사내 전산 — 지식 등록

전산이나 홈페이지 관리 화면에 있는 안내문이 바뀔 때 자동으로 지식에 반영해요. ref가 같으면 덮어써요.

PUT/api/v1/knowledge/{ref}

{"title": "10월 배송 안내", "body": "10월 9일은 공휴일이라 출고가 없어요. …"}

DELETE/api/v1/knowledge/{ref}

홈페이지 전체를 한 번에 넣으려면 콘솔 «지식 → 자동 회사 지식 수집»에 주소를 넣으면 돼요. 수집기는 PlutCS-KB/1.0 이름으로 접속하고 robots.txt 를 지켜요.

웹훅

콘솔 «연동 → 웹훅»에 받을 주소를 등록하면, 아래 일이 생길 때 플럿 CS가 그 주소로 POST를 보내요. 콜센터 시스템에 콜백 건을 만들거나 전산에 상담 이력을 남길 때 써요.

이벤트언제data
conversation.handoffAI가 상담원에게 넘겼을 때conversation_id, channel, session_id, question, contact
conversation.contact고객이 연락처를 남겼을 때conversation_id, contact, name
conversation.closed상담이 종료됐을 때conversation_id, channel, session_id
ping콘솔에서 «시험 전송»을 눌렀을 때message
POST https://erp.example.com/hooks/plutcs
Content-Type: application/json
X-PlutCS-Event: conversation.handoff
X-PlutCS-Signature: sha256=3f1c…

{"event":"conversation.handoff","workspace":"w1a2b3…","created":"2026-10-08T05:12:44.120Z",
 "data":{"conversation_id":1284,"channel":"phone","session_id":"call-20261008-0001","question":"위약금이 얼마예요","contact":"01012345678"}}

서명 확인

요청 본문(받은 그대로의 바이트)을 콘솔에 보이는 «서명 비밀값»으로 HMAC-SHA256 한 값이 X-PlutCS-Signature의 sha256= 뒤 값과 같은지 확인해 주세요.

// Node.js
const crypto = require('crypto');
function verify(rawBody, header, secret) {
  const mine = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return header.length === mine.length && crypto.timingSafeEqual(Buffer.from(header), Buffer.from(mine));
}

5초 안에 2xx로 답해 주세요. 실패해도 다시 보내지 않으니, 놓치면 안 되는 건은 대화 조회로 status=human을 주기적으로 확인해 주세요. 최근 전송 결과는 콘솔에서 볼 수 있어요.

웹 채팅 위젯

콘솔 «설정 → 위젯 설치»의 코드를 홈페이지 </body> 바로 앞에 넣어요. 버튼 없이 직접 열고 닫으려면 PlutCS.open() · PlutCS.close()를 불러요.

<script src="https://cs.teamplut.com/w.js" data-key="워크스페이스 키" async></script>

도움이 필요하면

연동 개발은 도입 범위에 들어 있어요. 조회 주소가 없는 전산, 음성 인식이 없는 ARS도 도입 상담에서 방법을 같이 정해요. 도입 상담 신청 · 070-5276-7256 (평일 10:00~18:00)