แชร์ผ่าน


ส่งต่อให้ ServiceNow

เอกสารนี้ให้คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการสร้างและเชื่อมต่อ ServiceNow Virtual Assistant กับเอเจนต์ Copilot Studio และเลื่อนระดับเป็นตัวแทนสนทนาสด ServiceNow การรวมนี้ช่วยให้คุณสามารถใช้ความสามารถของทั้งสองแพลตฟอร์มและคําตอบที่สร้างสรรค์เพื่อปรับปรุงประสบการณ์ตัวแทนของคุณ

หมายเหตุ

สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดดู กำหนดค่าการส่งต่อไปยังศูนย์การมีส่วนร่วมทั่วไป Copilot Studio มีเครื่องมือสำหรับคุณในการรวมโซลูชันเอเจนต์ที่เป็นมนุษย์ เช่น ServiceNow

ขั้นตอนต่อไปนี้เป็นเพียงคำแนะนำและคุณต้องมีทีมพัฒนาซอฟต์แวร์เพื่อดำเนินการ กระบวนการนี้มีไว้สําหรับผู้เชี่ยวชาญด้าน IT นักพัฒนา หรือผู้ติดตั้งระบบที่มีประสบการณ์ ซึ่งมีความเข้าใจอย่างถ่องถ้วนเกี่ยวกับเครื่องมือนักพัฒนา โปรแกรมอรรถประโยชน์ และสภาพแวดล้อมการพัฒนาแบบรวม (IDEs)

ภาพรวม

การรวมระหว่าง Copilot Studio และ ServiceNow ต้องการขั้นตอนการกําหนดค่าระดับสูงต่อไปนี้:

  1. สร้าง Azure Function เป็นแบบรีเลย์ไปยัง DirectLine

  2. กําหนดค่า Bot Interconnect ใน ServiceNow

  3. จับคู่หัวข้อระหว่าง ServiceNow Virtual Agent และ Copilot Studio

  4. ขยายการใช้งาน DirectLinePrimaryBotIntegrationInboundTransformer

  5. กําหนดค่าการแฮนด์ออฟใน 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:

  1. สร้างฟังก์ชัน JavaScript ใน Microsoft Azure โดยใช้ Visual Studio Code

  2. ปรับใช้ฟังก์ชันกับ Azure และเรียกใช้ URL ฟังก์ชันสําหรับใช้ใน ServiceNow Bot Interconnect

ตัวเลือกที่ 2: ปรับใช้ v4 Azure Function

อีกวิธีหนึ่งคือ คุณสามารถใช้ Azure Function v4 ที่มีอยู่ในที่เก็บ Copilot Studio GitHub ได้:

  1. ลอกแบบที่เก็บจากตัวอย่าง Copilot Studio ฟังก์ชัน จะอยู่ภายใต้CopilotStudioSamples/IntegrateWithEngagementHub/ServiceNow/DirectLineAzureFunction

  2. ทําตามคําแนะนําใน สร้างฟังก์ชัน JavaScript ใน Azure โดยใช้ Visual Studio Code

  3. บนหน้า ภาพรวมของ แอปฟังก์ชัน ให้คัดลอก URL ของฟังก์ชัน

กําหนดค่า Bot Interconnect ใน ServiceNow

  1. รับข้อมูลลับ Direct Line ของเจ้าหน้าที่ของคุณ

  2. เพิ่มคีย์ลับ Direct Line ไปยังอินสแตนซ์ Virtual Agent Bot Interconnect ของคุณ

หัวข้อแผนที่ระหว่าง ServiceNow Virtual Agent และ Copilot Studio

  1. หากต้องการเรียกใช้หัวข้อ 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;
    }

สร้างตัวแปลงแบบกําหนดเอง

  1. ใน ServiceNow สลับไปยังขอบเขตแอปพลิเคชันการเชื่อมต่อระหว่างบอท

    1. เลือกไอคอนลูกโลกที่มุมบนขวา

    2. เลือก Bot Interconnect จากรายการแอปพลิเคชัน

  2. สร้างสคริปต์อินคลูดใหม่

    1. ให้ไปที่ การกำหนดค่าระบบ>การรวมสคริปต์

    2. เลือก ใหม่

    3. กำหนดการตั้งค่าต่อไปนี้:

    • ชื่อ: CustomDirectLineInboundTransformer
    • ชื่อ API: sn_va_bot_ic.CustomDirectLineInboundTransformer (สร้างโดยอัตโนมัติ)
    • ใบสมัคร: Bot Interconnect (เลือกอัตโนมัติ)
    • สามารถเข้าถึงได้จาก: ขอบเขตของแอปพลิเคชันนี้เท่านั้น
    • ใช้งานอยู่: ✓ (ถูกเลือก)
  3. แทนที่เนื้อหาสคริปต์เริ่มต้นด้วยรหัสตัวแปลงแบบกําหนดเองจากที่เก็บตัวอย่าง Copilot Studio

  4. หากต้องการบันทึกสคริปต์รวม ให้เลือกส่ง

อัปเดตการกําหนดค่าการเชื่อมต่อระหว่างบอท

  1. นําทางไปยัง Workflow Studio

    1. ใน ServiceNow นําทางไปยัง Workflow Studio

    2. ภายใต้การดําเนินการ ค้นหา Direct Line Primary Bot Integration Inbound Transformer

  2. ปรับเปลี่ยนการดําเนินการของตัวแปลง

    1. เปิดการดําเนินการ Direct Line Primary Bot Integration Inbound Transformer

    2. ในตัวแก้ไขสคริปต์ ให้แสดงข้อคิดเห็นเกี่ยวกับตัวแปลงเริ่มต้นและแทนที่ด้วยการเรียกไปยังตัวแปลงแบบกําหนดเองของคุณ

    (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);
    
  3. บันทึกการเปลี่ยนแปลงไปยังการดําเนินการและเผยแพร่

กําหนดค่าการแฮนด์ออฟ

หากต้องการเปิดใช้งานการแฮนด์ออฟให้กับ ServiceNow Live Agent ให้เพิ่มโหนด การสนทนาการถ่ายโอน ไปยังหัวข้อ การเลื่อนระดับ ของเจ้าหน้าที่ของคุณ

  1. ใน Copilot Studio ให้เปิดตัวแทนของคุณ และนําทางไปยัง หัวข้อ>ระบบ>เลื่อนระดับ

  2. เลือก + (เพิ่มโหนด) >การจัดการหัวข้อ>การโอนการสนทนา.

  3. บันทึกหัวข้อของคุณและเผยแพร่ตัวแทนของคุณ

โหนด การสนทนาการโอนย้าย จะปล่อย 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

  1. ตรวจสอบว่า Azure Function ของคุณทํางานอย่างถูกต้องและไม่ได้ส่งกลับข้อผิดพลาด

  2. ดูบันทึกแบบเรียลไทม์โดยใช้บันทึกการสตรีมฟังก์ชัน Azure

  3. ตรวจสอบ Application Insights สําหรับข้อมูลเทเลเมทรีและข้อมูลข้อผิดพลาดโดยละเอียด

เปิดใช้งานการดีบัก ServiceNow

ใช้เครื่องมือการดีบักที่มีอยู่ภายในของ ServiceNow เพื่อติดตามโฟลว์การดําเนินการ:

  1. เปิดใช้งาน ตัวติดตามสคริปต์ ใน ServiceNow

  2. ทําซ้ําการดําเนินการที่ทําให้เกิดข้อผิดพลาด

  3. ตรวจทานล็อกการติดตามเพื่อระบุตําแหน่งที่เกิดปัญหา

การเรียกใช้ Monitor Copilot Studio

ตรวจสอบให้แน่ใจว่าตัวแทน Copilot Studio ของคุณถูกเรียกใช้อย่างเหมาะสม:

  1. เชื่อมต่อตัวแทน Copilot Studio ของคุณกับ Application Insights

  2. ตรวจสอบการวัดและส่งข้อมูลทางไกลเพื่อยืนยันว่าตัวแทนได้รับคําขอจาก ServiceNow

  3. ตรวจสอบหาข้อผิดพลาดหรือลักษณะการทํางานที่ไม่คาดคิดในการดําเนินการของตัวแทน

ปัญหาและวิธีแก้ไขทั่วไป

  • ไม่ทำงาน: โปรดตรวจสอบว่าตัวแปลงแบบกำหนดเองเปิดใช้งานแล้วและมีการกำหนดค่าโหนดการสนทนาการถ่ายโอนข้อมูลอย่างเหมาะสม
  • ข้อผิดพลาดการรับรองความถูกต้อง: ตรวจสอบให้แน่ใจว่ามีการกําหนดค่าข้อมูลลับของสายโดยตรงอย่างถูกต้องใน ServiceNow โดยเฉพาะ ระเบียนข้อมูลประจําตัวใน ServiceNow จําเป็นต้องเชื่อมโยงกับระเบียนการเชื่อมต่อ
  • ฟังก์ชันหมดเวลา: ตรวจสอบว่า Azure Function หมดเวลาหรือไม่ และเพิ่มการตั้งค่าการหมดเวลาถ้าจําเป็น