इसके माध्यम से साझा किया गया


Dynamics 365 के साथ Twilio Flex को एकीकृत करें वार्तालाप इंटेलिजेंस (पूर्वावलोकन)

[यह आलेख रिलीज़-पूर्व दस्तावेज़ है और परिवर्तन के अधीन है.]

यह एकीकरण आपके विक्रेताओं को Dynamics 365 से Twilio Flex कॉल करने और प्राप्त करने और कॉल के दौरान वास्तविक समय में ट्रांस्क्रिप्शन प्राप्त करने और कॉल के बाद AI-जनरेटेड कॉल इनसाइट्स प्राप्त करने की सुविधा देता है।

महत्त्वपूर्ण

  • यह एक पूर्वावलोकन सुविधा है.
  • पूर्वावलोकन सुविधाएँ उत्पादन में उपयोग के लिए नहीं होती हैं और इनकी कार्यक्षमता प्रतिबंधित हो सकती हैं. ये सुविधाएं उपयोग की अनुपूरक शर्तों के अधीन हैं और आधिकारिक रिलीज से पहले उपलब्ध हैं ताकि ग्राहक शीघ्र पहुंच प्राप्त कर सकें और प्रतिक्रिया दे सकें।

पूर्वावश्यकताएँ

  • एक ट्विलियो खाता

  • ट्विलियो फ्लेक्स खाता - फ्लेक्स खाता कैसे सेट अप करें, इस बारे में अधिक जानकारी के लिए यह लिंक देखें

  • Microsoft Dynamics 365 Sales परिवेश Sales Premium या Sales Enterprise लाइसेंस के साथ, सिस्टम व्यवस्थापक विशेषाधिकारों के साथ

  • वार्तालाप इंटेलिजेंस स्थापित और सेट अप करें – अधिक जानें

  • Dynamics 365 चैनल एकीकरण ढांचा 1.0 स्थापित. और अधिक जानें

  • एक स्थानीय नोड JS वातावरण स्थापित करें

  • create-flex-plugin एप्लिकेशन

चरण 1: Twilio Flex को चैनल प्रदाता के रूप में कॉन्फ़िगर करें

Dynamics 365 चैनल एकीकरण ढांचा में, Twilio Flex के लिए एक चैनल प्रदाता बनाएँ। उदाहरण के तौर पर नीचे दिया गया स्क्रीनशॉट देखें:

चैनल प्रदाता के रूप में जोड़े गए ट्विलियो का स्क्रीनशॉट।

निम्नलिखित मान दर्ज करें::

  • चैनल यूआरएल:https://flex.twilio.com/agent-desktop

  • आउटबाउंड संचार सक्षम करें: हां

  • API संस्करण: 1.0

  • चैनल क्रम: 1

  • विश्वसनीय डोमेन:https://flex.twilio.com/

  • चैनल के लिए एकीकृत इंटरफ़ेस ऐप्स चुनें: विक्रय हब (या कोई अन्य ऐप जिसके लिए आप एकीकरण सक्षम करना चाहते हैं)

  • चैनल के लिए सुरक्षा भूमिकाएँ चुनें: वे भूमिकाएँ जोड़ें जो Twilio Flex का उपयोग करेंगी. उदाहरण के लिए, विक्रयकर्ता, विक्रय प्रबंधक, इत्यादि on.To Dynamics 365 के अंदर Twilio Flex को iframe के रूप में एम्बेड करते हैं, Dynamics 365 संगठन URL को अनुमत URL सूची में जोड़ते हैं. अधिक जानकारी के लिए यह लेख देखें।

चरण 2: SIPREC कनेक्टर स्थापित करें और कॉल को Dynamics 365 पर रूट करें

  1. SIPREC कनेक्टर ऐड-ऑन स्थापित करें.

  2. Twilio व्यवस्थापन केंद्र सेटिंग्स खोलें और इसे मीडिया को Dynamics 365 रिकॉर्डर में फ़ॉर्क करने के लिए कॉन्फ़िगर करें जैसा कि निम्न स्क्रीनशॉट में दिखाया गया है:

    ट्विलियो व्यवस्थापन केंद्र सेटिंग्स का स्क्रीनशॉट.

    निम्नलिखित क्षेत्रों पर ध्यान देना महत्वपूर्ण है:

    • विशिष्ट नाम: एक नाम निर्दिष्ट करें और उसे नोट कर लें। आपको अगले चरणों में इसका उपयोग करना होगा

    • सत्र रिकॉर्डिंग सर्वर: Dynamics 365 मीडिया रिकॉर्डिंग सर्वर URL निर्दिष्ट करें. समर्थित रिकॉर्डर और क्षेत्रों की सूची के लिए, देखें समर्थित रिकॉर्डर एंडपॉइंट और क्षेत्र.

      • यदि आप मीडिया को निकटतम रिकॉर्डर पर भेजना चाहते हैं, तो निम्न URL का उपयोग करें: sip:SRS@media.recording.dynamics.com:5061;secure=true

      • क्रेडेंशियल फ़ील्ड खाली रह सकते हैं. प्रमाणीकरण Twilio और Dynamics के बीच TLS सेटअप पर प्रमाणपत्र के साथ किया जाता है।

चरण 3: मीडिया को Dynamics 365 पर फ़ॉर्क करने के लिए कॉल फ़्लो कॉन्फ़िगर करें

  1. कंसोल में स्टूडियो फ़्लो अनुभाग पर जाएँ और वॉयस IVR फ़्लो का चयन करें।

  2. दाईं ओर, विज़ेट लाइब्रेरी में वॉयस अनुभाग के अंतर्गत, फ़ॉर्क स्ट्रीम विज़ेट जोड़ें:

    फोर्क स्ट्रीम विज़ेट का स्क्रीनशॉट.

  3. अब, पहले से परिभाषित SIPREC कनेक्टर का उपयोग करके स्ट्रीम को फोर्क करने के लिए विज़ेट को कॉन्फ़िगर करें:

    फोर्क स्ट्रीम विज़ेट कॉन्फ़िगरेशन का स्क्रीनशॉट.

  4. निम्न मान दर्ज करें:

    -स्ट्रीम क्रिया: प्रारंभ

    • स्ट्रीम प्रकार: Siprec
    • कनेक्टर नाम: वह नाम जो आपने SIPREC कनेक्टर को दिया है. हमारे उदाहरण में, यह SipRec1 है।
    • ट्रैक: दोनों ट्रैक
    • स्ट्रीम पैरामीटर:
      • भूमिका: इनबाउंड (हमारे उदाहरण में, हम इनकमिंग कॉल रिकॉर्ड करने जा रहे हैं)

      • कॉलर प्रदर्शन नाम: {{trigger.call.From}}

      • कॉल प्राप्तकर्ता का प्रदर्शन नाम: {{trigger.call.To}}

  5. ट्रांज़िशन टैब में, फ़ॉर्क स्ट्रीम को एजेंट को कॉल भेजे जाने से पहले कॉन्फ़िगर करें:

    ट्विलियो ट्रांजिशन टैब का स्क्रीनशॉट.

  6. प्रवाह को सहेजें और प्रकाशित करें.

चरण 4: Twilio फ़ोन नंबर कॉन्फ़िगर करें

आपको अपने नए बनाए गए स्टूडियो फ़्लो पर एक ट्विलियो फ़ोन नंबर इंगित करना होगा.

  1. ट्विलियो फ़ोन नंबर कंसोल से अपना कोई नंबर चुनें - या नया नंबर खरीदें।

  2. फ़ोन नंबर का चयन करके उसे खोलें, फिर पृष्ठ पर वॉयस अनुभाग तक स्क्रॉल करें।

  3. उस प्रवाह का चयन करें जिसे आपने पहले कॉल आता है फ़ील्ड में परिभाषित किया था जैसा कि निम्न स्क्रीनशॉट में दिखाया गया है:

    ट्विलियो कॉल का स्क्रीनशॉट फ़ील्ड में आता है।

चरण 5: एकीकरण के लिए Dynamics 365 को कॉन्फ़िगर करें

आइए Twilio को कॉल प्रदाता के रूप में सेट करें और एक रिकॉर्डिंग नीति कॉन्फ़िगर करें ताकि यह परिभाषित किया जा सके कि कौन कॉल रिकॉर्ड कर सकता है, और वार्तालाप अंतर्दृष्टि के लिए उपयोग की जाने वाली अन्य जानकारी।

  1. विक्रय हब ऐप में, परिवर्तन क्षेत्र पर जाएँ और Sales Insights सेटिंग्स का चयन करें.

  2. वार्तालाप इंटेलिजेंस चुनें.

    वार्तालाप इंटेलिजेंस सेटिंग पेज का स्क्रीनशॉट

  3. कॉल प्रदाता अनुभाग में Twilio का चयन करें और Twilio खाता SID निर्दिष्ट करें.

  4. परिवर्तनों को सहेजें.

  5. Twilio कॉल प्रदाता का उपयोग करके रिकॉर्डिंग नीति कॉन्फ़िगर करें.

    1. रिकॉर्डिंग नीति बनाएँ चुनें और नीति कॉन्फ़िगर करें. अधिक जानें.

    2. बनाएँ चुनें और फिर सेटिंग्स प्रकाशित करें.

चरण 6: वास्तविक समय के अनुभव को एकीकृत करने के लिए फ्लेक्स प्लगइन तैयार करें

फ्लेक्स एक रिएक्ट प्रोजेक्ट है और आपके द्वारा UI में किए गए अनुकूलन प्लगइन घटकों के रूप में बनाए जाते हैं।

नोड वातावरण तैयार करना और खाली फ्लेक्स प्लगइन स्थापित करना इस दस्तावेज़ के दायरे से बाहर है। अपना पहला फ्लेक्स प्लगइन बनाने के चरण-दर-चरण ट्यूटोरियल के लिए Twilio के दस्तावेज़ का संदर्भ लें।

एक नया प्लगइन बनाएं जो Dynamics के लिए आपके अनुकूलन कोड को जोड़ने के लिए तैयार हो।

इस बिंदु पर, आपकी प्लगइन JS फ़ाइल इस तरह दिखाई देगी:

प्लगइन.js फ़ाइल का स्क्रीनशॉट.

अपने प्लगइन में Microsoft CIF क्लाइंट लाइब्रेरी जोड़ें। फ्लेक्स लॉन्च होने पर क्लाइंट लाइब्रेरी को एसिंक्रोनस रूप से लोड किया जाना चाहिए, इसलिए फ्लेक्स इनिट फ़ंक्शन में निम्नलिखित कोड जोड़ें।

import React from 'react';
import \* as Flex from '@twilio/flex-ui';
import { FlexPlugin } from '@twilio/flex-plugin';
import reducers, { namespace } from './states';
const PLUGIN\_NAME = 'SamplePlugin';
export interface CallStartedEvent {
  callId: string;
  startTime: Date;
  isIncomingCall: boolean;
  contactNumber: string;
  contactName: string;
}

export interface CallEndedEvent {
  callId: string;
  callDurationInSeconds: number;
  callTerminationReason: string; // \['success', 'error'\]
  callEndTime: Date;
  isCallStarted: boolean;
}

export default class SamplePlugin extends FlexPlugin {
  constructor() {
    super(PLUGIN\_NAME);
  }
  /\*\*
   \* This code is run when your plugin is being started
   \* Use this to modify any UI components or attach to the actions framework
   \*
   \* @param flex { typeof Flex }
   \* @param manager { Flex.Manager }
   \*/
  async init(flex: typeof Flex, manager: Flex.Manager): Promise<void> {
    this.registerReducers(manager);
    this.loadCIF();
    flex.Actions.addListener('afterAcceptTask', (payload) => {
      const callStartedEvent : CallStartedEvent = {
        callId: payload.task.\_task.attributes.call\_sid,
        startTime: new Date(),
        isIncomingCall: true,
        contactName: payload.task.\_task.attributes.caller,
        contactNumber: payload.task.\_task.attributes.caller
      };
      // @ts-ignore
      Microsoft.CIFramework.raiseEvent('WIDGET\_CALL\_STARTED', callStartedEvent);
    });

    flex.Actions.addListener('afterCompleteTask', (payload) => {
      // @ts-ignore
      Microsoft.CIFramework.raiseEvent('WIDGET\_CALL\_ENDED', {
        callId: payload.task.\_task.attributes.call\_sid,
        callTerminationReason: 'success',
        callEndTime: new Date(),
        isCallStarted: true
      });
      const callEndedEvent : CallEndedEvent = {
        callId: payload.task.\_task.attributes.call\_sid,
        callEndTime: new Date(),
        callTerminationReason: 'success',
        isCallStarted: true
      };
 

      // @ts-ignore
      Microsoft.CIFramework.raiseEvent('WIDGET\_CALL\_ENDED', callEndedEvent);
    });

    const options: Flex.ContentFragmentProps = { sortOrder: -1 };
    flex.AgentDesktopView.Panel1.Content.add(<div key="SamplePlugin-component" >Hello Partner!</div>, options);
  }

  loadCIF = () => {
    const script = document.createElement("script");
    script.src = \`${window.location.ancestorOrigins\[0\]}/webresources/Widget/msdyn\_ciLibrary.js\`;
    script.setAttribute('data-crmurl', window.location.ancestorOrigins\[0\]);
    script.setAttribute('data-cifid', 'CIFMainLibrary');
    document.body.appendChild(script);
  }

  /\*\*

   \* Registers the plugin reducers
   \*
   \* @param manager { Flex.Manager }
   \*/
  private registerReducers(manager: Flex.Manager) {
    if (!manager.store.addReducer) {
      // eslint-disable-next-line
      console.error(\`You need FlexUI > 1.9.0 to use built-in redux; you are currently on ${Flex.VERSION}\`);
      return;
    }
    manager.store.addReducer(namespace, reducers);
  }
}

प्लगइन प्रकाशित करें.
अब हमारे पास एक फ्लेक्स प्लगइन है जो परीक्षण के लिए तैयार है!

चरण 7: Dynamics 365 वार्तालाप इंटेलिजेंस और Flex एकीकरण का परीक्षण करें

विक्रय हब ऐप में लॉग इन करें, कॉल आइकन चुनें। आपको दाएँ फलक में Twilio Flex सन्निहित दिखाई देगा।

विक्रय हब ऐप में एम्बेडेड ट्विलियो डायलर का स्क्रीनशॉट।

सुनिश्चित करें कि आपने अपनी स्थिति को Twilio में उपलब्ध के रूप में सेट किया है और उस Twilio फ़ोन नंबर पर कॉल करें जिसे आपने चरण 4 में सेट किया है: एक Twilio फ़ोन नंबर कॉन्फ़िगर करें.

एम्बेडेड डायलर पर कॉल अधिसूचना का स्क्रीनशॉट

एक बार जब आप कॉल का उत्तर देते हैं और रिकॉर्डिंग शुरू करते हैं, तो वास्तविक समय प्रतिलेखन देखने के लिए ट्रांसक्रिप्ट टैब पर जाएं और फिर कॉल समाप्त होने के बाद कॉल का सारांश पृष्ठ में कॉल इनसाइट्स देखें।

भी देखें

कॉल का सारांश पेज देखें और समझें