หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Note
บทความนี้อธิบายคุณสมบัติที่ใช้ในเอเจนต์หรือการไหลของเอเจนต์ที่ขับเคลื่อนโดยฮาร์เนสมาตรฐาน
บทความนี้ให้คําแนะนําทีละขั้นตอนเกี่ยวกับวิธีการสร้างและเชื่อมต่อผู้ช่วยเสมือนของ ServiceNow กับตัวแทน Copilot Studio และเลื่อนระดับไปยัง ServiceNow Live Agent ใช้การรวมนี้เพื่อใช้ประโยชน์จากความสามารถของทั้งสองแพลตฟอร์มและใช้คําตอบที่สร้างสรรค์เพื่อปรับปรุงประสบการณ์ตัวแทนของคุณ
Note
สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดดู กำหนดค่าการส่งต่อไปยังศูนย์การมีส่วนร่วมทั่วไป Copilot Studio มีเครื่องมือสำหรับคุณในการรวมโซลูชันเอเจนต์ที่เป็นมนุษย์ เช่น ServiceNow
ขั้นตอนต่อไปนี้เป็นเพียงคำแนะนำและคุณต้องมีทีมพัฒนาซอฟต์แวร์เพื่อดำเนินการ ขั้นตอนนี้มีไว้สําหรับผู้เชี่ยวชาญด้าน IT นักพัฒนา หรือผู้ติดตั้งระบบที่มีประสบการณ์ ซึ่งมีความเข้าใจอย่างถ่องถ้วนเกี่ยวกับเครื่องมือนักพัฒนา โปรแกรมอรรถประโยชน์ และสภาพแวดล้อมการพัฒนาแบบรวม (IDEs)
Overview
การรวมระหว่าง Copilot Studio และ ServiceNow ต้องการขั้นตอนการกําหนดค่าระดับสูงต่อไปนี้:
สร้าง Azure Function เป็นแบบรีเลย์ไปยัง DirectLine
กําหนดค่า Bot Interconnect ใน ServiceNow
จับคู่หัวข้อระหว่าง ServiceNow Virtual Agent และ Copilot Studio
ขยายการใช้งาน DirectLinePrimaryBotIntegrationInboundTransformer
กําหนดค่าการแฮนด์ออฟใน Copilot Studio
Prerequisites
ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีข้อกําหนดเบื้องต้นดังต่อไปนี้:
- บัญชี ServiceNow ที่ใช้งานโดยมีตัวแทนเสมือนของ ServiceNow และ ServiceNow Bot Interconnect เปิดใช้งานอยู่ (จําเป็นต้องมี ServiceNow Yokohama หรือใหม่กว่า)
- บริษัทตัวแทน Copilot Studio ที่กําหนดค่าด้วย
no authentication(รูปแบบนี้ใช้การรับรองความถูกต้องจากเซิร์ฟเวอร์กับเซิร์ฟเวอร์ด้วยข้อมูลลับของ Direct Line) - ผู้ดูแลระบบเข้าถึง ServiceNow
สร้าง Azure Function เป็นแบบรีเลย์ไปยัง DirectLine
ฟังก์ชัน Azure ทําหน้าที่เป็นรีเลย์ทําให้ ServiceNow Bot Interconnect เรียกใช้กิจกรรม (เช่น ข้อความและเหตุการณ์) จากการสนทนาอย่างต่อเนื่องกับตัวแทน Copilot Studio
สําคัญ
เวลารอเริ่มต้นสําหรับ Azure Function คือ 2,000 ms (2 วินาที) ซึ่งอาจสั้นเกินไปเมื่อใช้ orchestration ที่สร้างใน Copilot Studio ถ้าข้อความไม่เข้ามาในตัวแทนเสมือนใน ServiceNow ให้พิจารณาเพิ่มเวลารอ
คําขอตัวอย่างที่ส่งโดย ServiceNow Bot Interconnect
GET /api/relayToDirectLine HTTP/1.1
Host: your-function-app.azurewebsites.net
Authorization: Bearer YOUR_DIRECT_LINE_SECRET_HERE
ConversationId: abc123def456-conversation-id
Watermark: 5
WaitTime: 3000
การตอบสนองตัวอย่างจาก Azure Function
{
"activities": [
{
"type": "message",
"id": "0000001",
"timestamp": "2025-07-13T13:46:43.6095506Z",
"text": "Hello, I'm a Copilot Studio Agent.",
"from": {
"id": "bot-id",
"name": "Copilot Studio Agent",
"role": "bot"
},
"conversation": {
"id": "wwjmISGzmd3FzMEAgotiJ-us"
}
},
{
"type": "message",
"id": "0000002",
"timestamp": "2025-07-13T13:46:45.0000000Z",
"text": "speak to a live agent",
"from": {
"id": "user-id",
"name": "User",
"role": "user"
},
"conversation": {
"id": "wwjmISGzmd3FzMEAgotiJ-us"
}
},
{
"type": "event",
"id": "0000006",
"timestamp": "2025-07-13T13:46:51.2854808Z",
"name": "handoff.initiate",
"value": {
"va_LastPhrase": "speak to a live agent",
"va_Topics": ["Escalate"]
}
}
],
"watermark": "10"
}
การสร้างและการปรับใช้ฟังก์ชัน
คุณสามารถสร้างและปรับใช้ v3 Azure Function ที่อธิบายไว้ในเอกสารประกอบ ServiceNow หรือ V4 Azure Function ที่พร้อมใช้งานในที่เก็บ Copilot Studio GitHub
ตัวเลือกที่ 1: ปรับใช้ v3 Azure Function
หากต้องการสร้างและปรับใช้ v3 Azure Function ให้ทําตามขั้นตอนที่ระบุไว้ในเอกสาร ServiceNow:
สร้างฟังก์ชัน JavaScript ใน Microsoft Azure โดยใช้ Visual Studio Code
ปรับใช้ฟังก์ชันกับ Azure และเรียกใช้ URL ฟังก์ชันสําหรับใช้ใน ServiceNow Bot Interconnect
ตัวเลือกที่ 2: ปรับใช้ v4 Azure Function
อีกวิธีหนึ่งคือ คุณสามารถใช้ Azure Function v4 ที่มีอยู่ในที่เก็บ Copilot Studio GitHub ได้:
ลอกแบบที่เก็บจากตัวอย่าง Copilot Studio ฟังก์ชัน จะอยู่ภายใต้
CopilotStudioSamples/contact-center/servicenow/DirectLineAzureFunctionทําตามคําแนะนําใน สร้างฟังก์ชัน JavaScript ใน Azure โดยใช้ Visual Studio Code
บนหน้า ภาพรวมของ แอปฟังก์ชัน ให้คัดลอก URL ของฟังก์ชัน
กําหนดค่า Bot Interconnect ใน ServiceNow
หัวข้อแผนที่ระหว่าง ServiceNow Virtual Agent และ Copilot Studio
- หากต้องการเรียกใช้หัวข้อ Copilot Studio ให้สร้างหัวข้อ Virtual Agent Bot Interconnect Shell
ขยาย DirectLinePrimaryBotIntegrationInboundTransformer
คุณสมบัติในตัวDirectLinePrimaryBotIntegrationInboundTransformerไม่สามารถแยกวิเคราะห์เหตุการณ์ของ Copilot Studio handoff.initiate เมื่อการสนทนาจำเป็นต้องส่งให้กับเอเจนต์สด
ฟังก์ชัน shouldConnectToAgent ใน DirectLinePrimaryBotIntegrationInboundTransformer ส่งกลับ false เสมอ:
shouldConnectToAgent: function(response) {
return false;
}
หากต้องการจัดการเหตุการณ์การแฮนด์ออฟอย่างถูกต้อง ให้สร้างตัวแปลงแบบกําหนดเองที่ขยายตัวแปลงเริ่มต้นและตรวจหา handoff.initiate เหตุการณ์
shouldConnectToAgent: function() {
var response = this._response || {};
var activities = response.activities || [];
var handoffDetected = activities.some(function(activity) {
return activity.type === "event" && activity.name === "handoff.initiate";
});
if (handoffDetected) {
return true;
}
return false;
}
สร้างตัวแปลงแบบกําหนดเอง
ใน ServiceNow สลับไปยังขอบเขตแอปพลิเคชันการเชื่อมต่อระหว่างบอท
เลือกไอคอนลูกโลกที่มุมบนขวา
เลือก Bot Interconnect จากรายการแอปพลิเคชัน
สร้างสคริปต์อินคลูดใหม่
ไปที่System Definition>Script Includes
เลือก ใหม่
กำหนดการตั้งค่าต่อไปนี้:
-
ชื่อ:
CustomDirectLineInboundTransformer -
ชื่อ API:
sn_va_bot_ic.CustomDirectLineInboundTransformer(สร้างโดยอัตโนมัติ) - ใบสมัคร: Bot Interconnect (เลือกอัตโนมัติ)
- สามารถเข้าถึงได้จาก: ขอบเขตของแอปพลิเคชันนี้เท่านั้น
- ใช้งานอยู่: ✓ (ถูกเลือก)
แทนที่เนื้อหาสคริปต์เริ่มต้นด้วยรหัสตัวแปลงแบบกําหนดเองจากที่เก็บตัวอย่าง Copilot Studio
เลือกส่งเพื่อบันทึกสคริปต์รวม
อัปเดตการกําหนดค่าการเชื่อมต่อระหว่างบอท
ไปที่ Workflow Studio
ใน ServiceNow ไปที่ Workflow Studio
ภายใต้การดําเนินการค้นหา Direct Line Primary Bot Integration Inbound Transformer
เปลี่ยนการดําเนินการของตัวแปลง
เปิดการดําเนินการ Direct Line Primary Bot Integration Inbound Transformer
ในตัวแก้ไขสคริปต์ ให้แสดงข้อคิดเห็นเกี่ยวกับตัวแปลงเริ่มต้นและแทนที่ด้วยการเรียกไปยังตัวแปลงแบบกําหนดเองของคุณ
(function execute(inputs, outputs) { var clientVariables = JSON.parse(inputs['client_variables']); var response = JSON.parse(inputs['response']); //set client variables response.clientVariables = clientVariables; //var transformedResponse = new sn_va_bot_ic.DirectLinePrimaryBotIntegrationInboundTransformer(response).transformResponse(); var transformedResponse = new sn_va_bot_ic.CustomDirectLineInboundTransformer(response).transformResponse(); outputs['transformed_response'] = transformedResponse; })(inputs, outputs);บันทึกการเปลี่ยนแปลงไปยังการดําเนินการและเผยแพร่
กําหนดค่าการแฮนด์ออฟ
หากต้องการเปิดใช้งานการแฮนด์ออฟให้กับ ServiceNow Live Agent ให้เพิ่มโหนด การสนทนาการถ่ายโอน ไปยังหัวข้อ การเลื่อนระดับ ของเจ้าหน้าที่ของคุณ
ใน Copilot Studio ให้เปิดเจ้าหน้าที่ของคุณและไปที่ หัวข้อ>ระบบ>เลื่อนระดับ.
เลือก + (เพิ่มโหนด) >การจัดการหัวข้อ>การโอนการสนทนา.
บันทึกหัวข้อของคุณและเผยแพร่ตัวแทนของคุณ
โหนดโอนการสนทนาจะส่งเหตุการณ์ handoff.initiate ที่ตัวแปลงแบบกำหนดเองของ ServiceNow ตรวจพบและดำเนินการ
ตัวอย่างหัวข้อการเลื่อนระดับ YAML
คุณยังสามารถนําเข้าการกําหนดค่า YAML ต่อไปนี้สําหรับหัวข้อ Escalate ที่สมบูรณ์ด้วยความสามารถในการถ่ายโอน:
kind: AdaptiveDialog
startBehavior: CancelOtherTopics
beginDialog:
kind: OnEscalate
id: main
intent:
displayName: Escalate
includeInOnSelectIntent: false
triggerQueries:
- Talk to agent
- Talk to a person
- Talk to someone
- Call back
- Call customer service
- Call me please
- Call support
- Call technical support
- Can an agent call me
- Can I call
- Can I get in touch with someone else
- Can I get real agent support
- Can I get transferred to a person to call
- Can I have a call in number Or can I be called
- Can I have a representative call me
- Can I schedule a call
- Can I speak to a representative
- Can I talk to a human
- Can I talk to a human assistant
- Can someone call me
- Chat with a human
- Chat with a representative
- Chat with agent
- Chat with someone please
- Connect me to a live agent
- Connect me to a person
- Could some one contact me by phone
- Customer agent
- Customer representative
- Customer service
- I need a manager to contact me
- I need customer service
- I need help from a person
- I need to speak with a live agent
- I need to talk to a specialist please
- I want to talk to customer service
- I want to proceed with live support
- I want to speak with a consultant
- I want to speak with a live tech
- I would like to speak with an associate
- I would like to talk to a technician
- Talk with tech support member
actions:
- kind: TransferConversationV2
id: transferConversationV2_3JXrI7
transferType:
kind: TransferToAgent
messageToAgent:
context:
kind: AutomaticTransferContext
Troubleshooting
ถ้าคุณพบข้อผิดพลาดในวิดเจ็ตแชทตัวแทนเสมือนของ ServiceNow ให้ทําตามขั้นตอนการแก้ไขปัญหาเหล่านี้:
ตรวจสอบรายการบันทึกของ Azure Function
ตรวจสอบว่า Azure Function ของคุณทํางานอย่างถูกต้องและไม่ส่งกลับข้อผิดพลาด
ดูบันทึกแบบเรียลไทม์โดยใช้บันทึกการสตรีมฟังก์ชัน Azure
ตรวจสอบ Application Insights สําหรับข้อมูลเทเลเมทรีและข้อมูลข้อผิดพลาดโดยละเอียด
เปิดใช้งานการดีบัก ServiceNow
ใช้เครื่องมือการดีบักที่มีอยู่ภายในของ ServiceNow เพื่อติดตามโฟลว์การดําเนินการ:
เปิดใช้งาน ตัวติดตามสคริปต์ ใน ServiceNow
ทําซ้ําการดําเนินการที่ทําให้เกิดข้อผิดพลาด
ตรวจทานล็อกการติดตามเพื่อระบุตําแหน่งที่เกิดปัญหาขึ้น
การเรียกใช้ Monitor Copilot Studio
ตรวจสอบให้แน่ใจว่าตัวแทน Copilot Studio ของคุณถูกเรียกใช้อย่างถูกต้อง:
เชื่อมต่อตัวแทน Copilot Studio ของคุณกับ Application Insights
ตรวจสอบการวัดและส่งข้อมูลทางไกลเพื่อยืนยันว่าตัวแทนได้รับคําขอจาก ServiceNow
ตรวจสอบหาข้อผิดพลาดหรือลักษณะการทํางานที่ไม่คาดคิดในการดําเนินการของตัวแทน
ปัญหาและวิธีแก้ไขทั่วไป
- การส่งต่อไม่ได้ทริกเกอร์: ตรวจสอบว่าตัวแปลงแบบกำหนดเองกำลังทำงานอยู่ และโหนดโอนการสนทนาถูกกำหนดค่าอย่างถูกต้อง
- ข้อผิดพลาดการรับรองความถูกต้อง: ตรวจสอบให้แน่ใจว่ามีการกําหนดค่าข้อมูลลับของสายโดยตรงอย่างถูกต้องใน ServiceNow โดยเฉพาะลิงก์เรกคอร์ดข้อมูลประจําตัวใน ServiceNow ด้วยเรกคอร์ดการเชื่อมต่อ
- ฟังก์ชันหมดเวลา: ตรวจสอบว่า Azure Function หมดเวลาหรือไม่ และเพิ่มการตั้งค่าการหมดเวลาถ้าจําเป็น