หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
เอกสารนี้ให้คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการสร้างและเชื่อมต่อ ServiceNow Virtual Assistant กับเอเจนต์ Copilot Studio และเลื่อนระดับเป็นตัวแทนสนทนาสด ServiceNow การรวมนี้ช่วยให้คุณสามารถใช้ความสามารถของทั้งสองแพลตฟอร์มและคําตอบที่สร้างสรรค์เพื่อปรับปรุงประสบการณ์ตัวแทนของคุณ
หมายเหตุ
สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดดู กำหนดค่าการส่งต่อไปยังศูนย์การมีส่วนร่วมทั่วไป Copilot Studio มีเครื่องมือสำหรับคุณในการรวมโซลูชันเอเจนต์ที่เป็นมนุษย์ เช่น ServiceNow
ขั้นตอนต่อไปนี้เป็นเพียงคำแนะนำและคุณต้องมีทีมพัฒนาซอฟต์แวร์เพื่อดำเนินการ กระบวนการนี้มีไว้สําหรับผู้เชี่ยวชาญด้าน IT นักพัฒนา หรือผู้ติดตั้งระบบที่มีประสบการณ์ ซึ่งมีความเข้าใจอย่างถ่องถ้วนเกี่ยวกับเครื่องมือนักพัฒนา โปรแกรมอรรถประโยชน์ และสภาพแวดล้อมการพัฒนาแบบรวม (IDEs)
ภาพรวม
การรวมระหว่าง Copilot Studio และ ServiceNow ต้องการขั้นตอนการกําหนดค่าระดับสูงต่อไปนี้:
สร้าง Azure Function เป็นแบบรีเลย์ไปยัง DirectLine
กําหนดค่า Bot Interconnect ใน ServiceNow
จับคู่หัวข้อระหว่าง ServiceNow Virtual Agent และ Copilot Studio
ขยายการใช้งาน DirectLinePrimaryBotIntegrationInboundTransformer
กําหนดค่าการแฮนด์ออฟใน Copilot Studio
ข้อกำหนดเบื้องต้น
ก่อนที่คุณจะเริ่มต้น ตรวจสอบว่าคุณมีคุณสมบัติตรงตามข้อกำหนดเบื้องต้นต่อไปนี้แล้ว:
- บัญชี ServiceNow ที่ใช้งานโดยมี ServiceNow Virtual Agent และ 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/IntegrateWithEngagementHub/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 จากรายการแอปพลิเคชัน
สร้างสคริปต์อินคลูดใหม่
ให้ไปที่ การกำหนดค่าระบบ>การรวมสคริปต์
เลือก ใหม่
กำหนดการตั้งค่าต่อไปนี้:
-
ชื่อ:
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 หมดเวลาหรือไม่ และเพิ่มการตั้งค่าการหมดเวลาถ้าจําเป็น