연동›음성 에이전트로 작업 예약하기
음성 에이전트로 작업 예약하기
ElevenLabs Agents, Vapi 또는 Retell의 AI 전화 에이전트가 발신자를 확인하고, 발신자가 아직 통화 중일 때 방문을 예약하게 하세요.
설치할 것은 없습니다. 세 플랫폼 모두 전화 통화용으로 만들어진 작고 빠른 도구 세트 — voice 프로필 — 로 Crisphive MCP 서버에 연결합니다.
연결하기 전에
- 모든 작업 유형에 기본 소요 시간을 지정하세요(설정 → 작업 유형). 에이전트는 수리에 얼마나 걸리는지 알 수 없습니다. 기본 작업 유형인 “General”에는 이미 소요 시간이 있으며, 에이전트가 유형을 지정하지 않으면 이것이 사용됩니다.
- API 키를 생성하세요 — 시험용은
chsk_test_…, 실제 통화용은chsk_live_…입니다.customers_view,customers_manage,job_view,job_create,job_manage만 있으면 됩니다.
에이전트 연결하기
Server URL: https://api.crisphive.com/mcp?profile=voice Header: Authorization: Bearer chsk_live_… (chsk_test_… for sandbox)
| 플랫폼 | 추가 위치 | 참고 |
|---|---|---|
| ElevenLabs Agents | MCP server integrations → Add Custom MCP Server에서 Authorization 헤더를 추가한 뒤, 서버를 에이전트에 연결하세요. | 도구 승인을 Fine-Grained(음성 도구 자동 승인) 또는 No Approval로 설정하세요 — “Always Ask”는 통화를 일시 중지시킵니다. MCP는 Zero Retention 또는 HIPAA 워크스페이스에서는 사용할 수 없습니다. |
| Vapi | Tools → Create Tool → MCP에서 만든 뒤, 어시스턴트에서 해당 도구를 선택하세요. | ?profile=voice를 유지하세요. Vapi는 서버가 제공하는 모든 도구를 가져옵니다. SSE가 아닌 기본 HTTP 전송 방식을 사용하세요. |
| Retell | Agent → MCPs → Add MCP(URL + 헤더)에서 추가한 뒤, 도구를 추가하세요. | 헤더 인증만 지원합니다. Retell은 실패한 도구 호출을 재시도하지 않습니다. |
음성 도구
| 도구 | 에이전트가 사용하는 시점 |
|---|---|
phone을 사용한 listCustomers | 모든 통화에서 가장 먼저: 발신자의 번호를 E.164 형식(+16135550142)으로 조회합니다. 정확히 일치해야 합니다. |
listJobTypes | 발신자가 설명한 내용을 작업 유형에 매핑합니다. |
bookAndConfirmJobRequest | 예약 — 한 번의 호출로 생성, 일정 지정, 확정까지 처리합니다. |
listJobRequestBookingWindows | 발신자가 어느 날이 비어 있는지 듣고 싶을 때. |
getJobRequest | 예약 내용을 다시 읽어 줄 때(“제 예약이 몇 시죠?”). |
시스템 프롬프트 템플릿
You are the booking assistant for [Business name], a [trade] company in [city]. Times are in [Business timezone]. On every call: 1. Look the caller up with listCustomers using their phone number in E.164 (+1 then 10 digits). If exactly one customer comes back, greet them by name and use its id. Never guess between several matches. 2. Ask what is wrong and pick the job type from listJobTypes. 3. Agree a start time. Send it as the business's local time, e.g. 2026-10-06T10:00:00, with no timezone offset. 4. Call bookAndConfirmJobRequest once, with an idempotency_key you generate for this call. If you retry, reuse the SAME key. 5. If confirmed is true, read back the date, time and short_code. If it is false, tell the caller the office will call to confirm a time. Never promise a time the tool did not confirm. Rules: - Only set sms_opt_in to true if the caller explicitly agrees to texts. - Never quote a price. - A new caller needs a full name and the service address.
잘 안 될 때 할 말
| 결과 | 의미 | 에이전트가 할 말 |
|---|---|---|
confirmed: true | 예약되고 일정이 잡혔습니다. | “화요일 오전 10시로 예약되었습니다. 예약 번호는 …입니다.” |
confirmed: false | 저장되었지만 그 시간에 가능한 사람이 없습니다. | “요청을 저장해 두었습니다 — 사무실에서 전화로 시간을 확정해 드릴 예정입니다.” |
data.means_locally가 포함된 400 JOB_REQUEST_INVALID_INPUT | 시간에 잘못된 시간대 오프셋이 포함되었습니다. | 아무 말도 하지 않습니다 — 같은 시간을 오프셋 없이 다시 보냅니다. |
400 PHONE_INVALID | 전화번호가 E.164 형식이 아닙니다. | 번호를 다시 물어봅니다. |
통화 중에 생성된 고객은 발신자가 동의하고 에이전트가
sms_opt_in: true를 보낸 경우에만 문자 메시지를 받으며, 그렇지 않으면 확인 메시지는 이메일로 전송됩니다. chsk_test_ 키로 테스트하고, 실제 운영 전에 자신의 비즈니스에서 예약 지연 시간을 측정하세요.