Jaa


Twilio Flexin integrointi Dynamics 365 -keskusteluanalytiikan kanssa (esiversio)

[Tämä artikkeli sisältää julkaisua edeltävää materiaalia ja voi muuttua.]

Tämän integroinnin avulla myyjäsi voivat soittaa ja vastaanottaa Twilio Flex -puheluita Dynamics 365:stä sekä tarkastella reaaliaikaisia transkripitoita puhelun aikana ja tekoälyn tuottamaa puheluanalyttiikkaa puhelun jälkeen.

Tärkeää

  • Tämä on esiversiotoiminto.
  • Esiversiotoimintoja ei ole tarkoitettu tuotantokäyttöön, ja niiden toiminnot voivat olla rajoitettuja. Näihin toimintoihin sovelletaan lisäkäyttöehtoja ja ne ovat käytettävissä ennen virallista julkaisua, jotta asiakkaat voivat käyttää niitä aikaisessa vaiheessa ja antaa palautetta.

Edellytykset

  • Twilio-tili

  • Twilio Flex -tili – katso lisätietoja Flex-tilin määrittämisestä tästä linkistä

  • Microsoft Dynamics 365 Sales -ympäristö sekä Sales Premium- tai Sales Enterprise -käyttöoikeus ja järjestelmänvalvojat käyttöoikeudet

  • Keskustelyanalytiikka asennettuna ja määritettynä – Lisätietoja

  • Dynamics 365 -kanavan integrointikehys 1.0 asennettuna. Lisätietoja

  • Paikallisen Node JS -ympäristön määrittäminen

  • create-flex-plugin-sovellus

Vaihe 1: Määritä Twilio Flex kanavantarjoajaksi

Luo Twilio Flexille kanavantarjoaja Dynamics 365 -kanavan integrointikehyksessä. Katso esimerkki alla olevasta näyttökuvasta:

Näyttökuva kanavantarjoajaksi lisätystä Twiliosta.

Syötä seuraavat arvot::

  • Kanavan URL-osoite:https://flex.twilio.com/agent-desktop

  • Ota lähtevä tietoliikenne käyttöön: Kyllä

  • Ohjelmointirajapinnan versio: 1.0

  • Kanavan järjestysnumero: 1

  • Luotettu verkkotunnus:https://flex.twilio.com/

  • Valitse kanavan Unified Interface -sovellukset: Myyntikeskus (tai mikä tahansa muu sovellus, jolle haluat ottaa integraation käyttöön)

  • Valitse kanavan käyttöoikeusroolit: Lisää roolit, jotka tulevat käyttämään Twilio Flexiä. Voit esimerkiksi lisätä Myyjä- ja Myyntipäällikkö-roolit jne. Jos haluat upottaa Twilio Flexin iframe-kehyksenä Dynamics 365:een, lisää Dynamics 365 -organisaation URL-osoite sallittujen URL-osoitteiden luetteloon. Lisätietoja on tässä artikkelissa.

Vaihe 2: Asenna SIPREC-yhdistin ja reititä puhelut Dynamics 365:een

  1. Asenna SIPREC-yhdistimen lisäosa.

  2. Avaa Twilio-hallintakeskuksen asetukset ja määritä se haaroittamaan media Dynamics 365 -tallentimeen seuraavan näyttökuvan osoittamalla tavalla:

    Näyttökuva Twilio-hallintakeskuksen asetuksista.

    Seuraavat kentät on tärkeää huomioida:

    • Unique name: Määritä nimi ja pane se muistiin. Tarvitset sitä seuraavissa vaiheissa

    • Session Recording Server: Määritä Dynamics 365 -mediatallentimen palvelimen URL-osoite. Katso tuettujen tallentimien ja alueiden luettelo kohdasta Tuetut tallentimien päätepisteet ja alueet.

      • Jos haluat haaroittaa median lähimpään tallentimeen, käytä seuraavaa URL-osoitetta: sip:SRS@media.recording.dynamics.com:5061;secure=true

      • Tunnistetietokentät voivat jäädä tyhjiksi. Todennus tapahtuu TLS-määritysten varmenteella Twilion ja Dynamicsin välillä.

Vaihe 3: Määritä puheluiden työnkulku haaroittamaan media Dynamics 365:een

  1. Siirry konsolin Studio Flows -osioon ja valitse Voice IVR -työnkulku.

  2. Lisää Fork Stream -pienoissovellus oikeanpuoleisesta pienoissovellusten kirjaston Voice-osiosta:

    Näyttökuva Fork Stream -pienoissovelluksesta.

  3. Määritä nyt pienoissovellus haaroittamaan viestivirta käyttämällä aiemmin määrittämääsi SIPREC-yhdistintä:

    Näyttökuva Fork Stream -pienoissovelluksen kokoonpanosta.

  4. Syötä seuraavat arvot:

    - Stream Action: Start

    • Stream Type: Siprec
    • Connector Name: SIPREC-yhdistimelle antamasi nimi. Tässä esimerkissä se on SipRec1.
    • Tracks: Both Tracks
    • Stream parameters:
      • Role: inbound (tässä esimerkissä nauhoitamme saapuvia puheluita)

      • CallerDisplayName: {{trigger.call.From}}

      • CalleeDisplayName: {{trigger.call.To}}

  5. Määritä Transitions-välilehdessä Fork Stream tapahtumaan ennen kuin puhelu lähetetään asiakaspalvelijalle:

    Näyttökuva Twilion Transition-välilehdestä.

  6. Tallenna ja julkaise työnkulku.

Vaihe 4: Määritä Twilio-puhelinnumero

Sinun täytyy määrittää Twilio-puhelinnumero osoittamaan juuri luomaasi Studio Flow -työnkulkuun.

  1. Valitse omistamasi numero – tai osta uusi numero – Twilion Phone Numbers -konsolista.

  2. Avaa puhelinnumero valitsemalla se ja siirry sitten alas sivun Voice-osioon .

  3. Valitse aiemmin luomasi työnkulku Call Comes In -kentissä seuraavassa näyttökuvassa kuvatulla tavalla:

    Näyttökuva Twilion Call Comes in -kentistä.

Vaihe 5: Dynamics 365:n määrittäminen integrointia varten

Nyt määritämme Twilion puhelupalveluntarjoajaksi ja määritämme tallennuskäytännön, joka määrittää, kuka voi nauhoittaa puheluita, sekä muita keskusteluanalytiikassa käytettäviä tietoja.

  1. Siirry Myyntikeskus-sovelluksen Vaihda aluetta -osioon ja valitse Sales Insightsin asetukset.

  2. Valitse Keskusteluanalytiikka.

    Näyttökuva Ḱeskusteluanalytiikan asetukset -sivusta

  3. Valitse Puhelupalvelun tarjoajat -osiosta Twilio ja määritä Twilio-tilin SID.

  4. Tallenna muutokset.

  5. Määritä tallennuskäytäntö käyttämällä Twilio-puhelupalvelua.

    1. Valitse Luo tallennuskäytäntö ja määritä käytäntö. Lisätietoja.

    2. Valitse Luo ja julkaise asetukset.

Vaihe 6: Valmistele Flex-laajennus reaaliaikaisen käyttökokemuksen integrointia varten

Flex on React-projekti, ja käyttöliittymään tekemäsi mukautukset luodaan laajennuskomponentteina.

Tässä dokumentaatiossa ei käsitellä Node-ympäristön valmistelemista tai tyhjän Flex-laajennuksen määrittämistä. Katso yksinkertaiset ohjeet ensimmäisen Flex-laajennuksesi luomiseen Twilion dokumentaatiosta.

Luo uusi laajennus, jolla voit lisätä mukautuskoodiasi Dynamicsia varten.

JS-laajennustiedostosi tulisi näyttää tässä vaiheessa tältä:

Näyttökuva plugin.js-tiedostosta.

Lisää Microsoft CIF Client -kirjasto laajennukseesi. Asiakaskirjasto täytyy ladata asynkronisesti, kun Flex käynnistyy, joten lisää Flexin init-funktioon seuraava koodi.

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);
  }
}

Julkaise laajennus.
Nyt sinulla on Flex-laajennus, joka on valmiina testaukseen!

Vaihe 7: Testaa Dynamics 365 -keskusteluanalytiikkaa ja Flex-integraatiota

Kirjaudu Myyntikeskus-sovellukseen ja valitse Puhelu-kuvake . Näet Twilio Flexin upotettuna oikeanpuoleiseen ruutuun.

Näyttökuva upotetusta Twilio-numeronvalitsimesta Myyntikeskus-sovelluksessa.

Varmista, että olet määrittänyt Twiliossa tilaksesi Saatavilla, ja soita Twilio-puhelinnumeroon, jonka määritit kohdassa Vaihe 4: Määritä Twilio-puhelinnumero.

Näyttökuva puhelun ilmoituksesta upotetussa numeronvalitsimessa

Kun vastaat puheluun ja aloitat nauhoittamisen, siirry Transkriptio-välilehteen nähdäksesi reaaliaikaisen transkriptin. Puhelun päätyttyä voit tarkastella puheluanalytiikkaa Puhelun yhteenveto -sivulla.

Puheluiden yhteenvetosivun tarkasteleminen ja ymmärtäminen