Integrarea Centrului de contact Webex cu ServiceNow (versiunea 1 — Legacy)

list-menuFeedback?
Când integrați Webex Contact Center cu consola ServiceNow CRM, puteți lansa Webex Contact Center Desktop din ServiceNow.

Cerințe preliminare

Dimensiunea minimă acceptată pentru interfața softphone este de 500px. Orice valoare mai mică de 500px poate duce la probleme de afișare sau funcționalitate.

Înainte de a integra Centrul de contact Webex cu consola ServiceNow CRM, asigurați-vă că aveți următoarele:

Urmați una dintre cele două metode de mai jos:

  • Pentru instanțele dezvoltatorilor, vă recomandăm să urmați pașii din ghidul de instanțe pentru dezvoltatori.
  • Dacă dețineți o instanță cu licență de întreprindere, urmați instrucțiunile pentru instanțele cu licență de întreprindere.

Nu recomandăm amestecarea aplicației licențiate de întreprindere cu instanțe sandbox pentru dezvoltatori.

Canalele digitale, cum ar fi chat-ul și e-mailul, nu sunt acceptate cu conectorii CRM. Acest lucru se aplică tuturor integrărilor CRM care utilizează acești conectori. Vă rugăm să planificați fluxurile de lucru pentru implementarea și implicarea clienților în consecință.

Următoarele secțiuni descriu pașii pentru instalarea conectorului ServiceNow pentru instanțele dezvoltatorilor.

1

Conectați-vă la contul portalului pentru dezvoltatori ServiceNow și deschideți consola de administrare.

2

Din zona Instanța mea din meniul C ont, faceți clic pe Începeți construirea.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

În instanța dvs. de dezvoltator, din câmpul Navigator filtru din stânga sus a ferestrei, navigați la Plugin-uri.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Căutați pluginul Openframe care are titlul Open frame. Este posibil să fie nevoie să parcurgeți lista.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Faceți clic pe Instal are pentru a instala pluginul Openframe.

6

În caseta de dialog Activare plugin, faceți clic pe Activare.

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

Când activarea pluginului este finalizată, faceți clic pe Închidere și reîncărcați formul arul în caseta de dialog Activare plugin.

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

Pentru a verifica activarea pluginului, din câmp ul Navigator filtru din stânga sus a ferestrei, navigați la OpenFrame.

9

Faceți clic pe Configurații și asigurați-vă că pluginul OpenFrame apare în lista Configurări OpenFrame.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

Descărcați cel mai recent fișier XML Set de actualizare a sistemului disponibil pe repo github la această locație: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Nume fișier: Web Excc-ServiceNow-Update-Setv (X) .xml

Github repo screenshot for Webex Contact Center CRM integrations – ServiceNow.

2

În instanța ServiceNow, din câmpul Navigator de filtrare din partea stângă sus a ferestrei, navigați la Seturi de actualizare sistem > Actualizare seturi pentru com it.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘Update set’ and ‘Update Sets to Commit’ option highlighted.

3

Faceți clic pe link ul Import set de actualizare din XML.

ServiceNow developer instance on the Update Sets results page with ‘Related Links: Import Update Set from XML’ highlighted.

4

Faceți clic pe Alegeți fișierul, selectați fișierul XML Set de actualizare sistem, apoi faceți clic pe Încăr care.

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

Setul de actualizare apare în lista Seturi de actualizare pre luate și se află în starea Încărcat.
5

Din lista Seturi de actualizări preluate, faceți clic pe numele fișierului set de actualizare (link) pentru a deschide Setul de actualizări.

ServiceNow developer portal retrieved update sets list for an updated file.

6

În partea dreaptă sus a ferestrei, faceți clic pe Previzualizare set de actualizare pentru a verifica setul de actualizare pentru probleme.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Preview Update Set’ button highlighted.

7

Faceți clic pe În chidere în caseta de dialog Actualizare set de previzualizare după finalizarea previzualizării.

ServiceNow developer portal with the update set preview success notification.

8

Faceți clic pe Commiteți setul de actualizare.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Commit Update Set’ button highlighted.

9

Faceţi clic pe În chidere în caseta de dialog Update Set Commit după finalizarea validării setului de actualiz ări.

ServiceNow developer portal with the update set commit success notification.

1

În câmpul Navigator filtru din partea stângă sus a ferestrei, tasta sys_properties.listți și apăsați enter.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

În pagina Proprietăți sistem, sortați proprietățile după data actualizată. Asigurați-vă că puteți vedea următoarele proprietăți ale Centrului de contact Webex:

ServiceNow developer instance system properties page.

3

Faceți clic agentdesktop_urlpentru a deschide agentdesktop_url pagina Proprietate sistem.

4

În câmpul Valo are, introduceți adresa URL pentru desktopul Centrului de contact Webex în funcție de regiunea de operare.

ServiceNow developer instance system property details for agentdesktop_url.

5

Faceți clic pe Actu alizare pentru a salva modificările.

6

(Opțional) Pentru a schimba numele tabelului Activitate, editați proprietățile webexccactivit ytable după cum este necesar.

În pagina Proprietăți sistem, faceți clic pe webex ccactivitytable.

Modificați câmpul Valo are după cum este necesar.

ServiceNow developer instance system property details for webexactivitytable.

7

(Opțional) Adăugați grupuri de utilizatori în următoarele moduri:

  1. În câmpul Navigator filtru din partea stângă sus a ferestrei, navigați la Grupuri sub Securitate sistem.

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. Creați un grup de utilizatori nou sau utilizați unul existent.

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. Faceți clic pe Edit are.

  4. Căutați sn_openframe_usersub Colecție și mutați-l în grupul dvs. de utilizatori.

    ServiceNow developer instance group edit members page showing a search for a collection.

    ServiceNow developer instance group edit members page showing a collection moved into the roles list.

  5. Faceți clic pe Sal vare.

  6. Adăugați utilizatorul ca membru al grupului.

    ServiceNow developer instance group page with user roles assigned.

1

Din câmpul Navigator de filtr are, navigați la OpenFrame > Configurații.

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Faceți clic pe Nou.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

Introduceţi următoarele proprietăţi pentru adresa URL:

  • Nume: Desktop pentru centrul de contact Webex

  • Titlu: Centrul de contact Webex

  • Lățime: 550 (recomandat)

  • Înălț ime: 600 (Recomandat)

4

În dreapta câmpului URL, faceți clic pe butonul B locare și adăugați agentdesktop.doca adresă URL. (Faceți acest pas pentru a indica configurația către pagina UI)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(Opțional) Selectați Grupul (grupurile) Utilizator/ Agent (e) pentru a atribui configurația.

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

Faceți clic pe Trimit eți. Adresa URL apare ca un link.

ServiceNow developer instance OpenFrame Configurations – New Record page showing the URL link that appears after submitting the user group selections.

7

Înainte de a încerca să utilizați telefonul OpenFrame, asigurați-vă că încărcați fișierul JSON personalizat ServiceNow Layout Desktop în Centrul de contact Webex. Management Portal Pentru mai multe informații, consultați Configurarea aspectului desktop ServiceNow în Centrul de contact Webex.

1

Descărcați aspectul Desktop pentru ServiceNow de la https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

Actualizați proprietățile din fișierul Aspect desktop, dacă este necesar.

3

Accesați Centrul Management Portal de contact Webex.

4

Din bara de Management Portal navigare, selectaţi A provizionare > Asp ect desktop.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

Faceți clic pe Aspect nou și introduceți detaliile pentru aspectul desktop.

6

Încărcați fișierul JSON Layout Desktop ServiceNow.

7

Faceți clic pe Salvare pentru a salva configurația.

Acum puteți porni desktopul Centrului de contact Webex în consola ServiceNow.

8

Din câmpul Navigator filtru, navigați la Spațiul de lucru operațiuni de service.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

Următoarele secțiuni descriu pașii pentru instalarea conectorului ServiceNow pentru instanțele de întreprindere licențiate.

1

Conectați-vă la contul portalului pentru dezvoltatori ServiceNow și deschideți consola de administrare.

2

Din zona Instanța mea din meniul C ont, faceți clic pe Începeți construirea.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

În instanța dvs. de dezvoltator, din câmpul Navigator filtru din stânga sus a ferestrei, navigați la Plugin-uri.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Căutați pluginul Openframe care are titlul Open frame. Este posibil să fie nevoie să parcurgeți lista.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Faceți clic pe Instal are pentru a instala pluginul Openframe.

6

În caseta de dialog Activare plugin, faceți clic pe Activare.

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

Când activarea pluginului este finalizată, faceți clic pe Închidere și reîncărcați formul arul în caseta de dialog Activare plugin.

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

Pentru a verifica activarea pluginului, din câmp ul Navigator filtru din stânga sus a ferestrei, navigați la OpenFrame.

9

Faceți clic pe Configurații și asigurați-vă că pluginul OpenFrame apare în lista Configurări OpenFrame.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

În câmpul Navigator filtru din partea stângă sus a ferestrei, introduceți sys_properties.list.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

În pagina Proprietăți sistem, sortați proprietățile după data actualizată. Asigurați-vă că puteți vedea următoarele proprietăți ale Centrului de contact Webex:

ServiceNow developer instance system properties page results.

3

Faceți clic agentdesktop_urlpentru a deschide agentdesktop_url pagina Proprietate sistem.

4

În câmpul Valo are, introduceți adresa URL pentru desktopul Centrului de contact Webex în funcție de regiunea de operare.

ServiceNow developer instance system property details page for agentdesktop_url.

5

Faceți clic pe Actu alizare pentru a salva modificările.

6

(Opţional) Pentru a modifica numele tabelului Activitate, editaţi proprietăţile x_caci_webexcc.webexccactiv itytable după cum este necesar.

  1. În pagina Proprietăți sistem, faceți clic pe x_caci_webexcc.webexccactivitytable.

    ServiceNow developer instance system properties page results for x_caci_webexcc.webexccactivitytable.

  2. Modificați câmpul Valo are după cum este necesar.

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

(Opțional) Adăugați grupuri de utilizatori în următoarele moduri:

  1. În câmpul Navigator filtru din partea stângă sus a ferestrei, navigați la Grupuri sub Securitate sistem.

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

  2. Faceți clic pe Edit are și adăugați următoarele roluri:

    • sn_openframe_user

    • x_caci_webexcc.agent

    • agent_workspace_user

    • x_caci_webexcc. webexcc_imp_activity_user

    • x_caci_webexcc. webex_contact_center

    SeviceNow developer instance group page for webexccagentsgroup with rolls added.

1

Din câmpul Navigator de filtr are, navigați la OpenFrame > Configurații.

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Faceți clic pe Nou.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

Introduceţi următoarele proprietăţi pentru adresa URL:

  • Nume: Desktop pentru centrul de contact Webex

  • Titlu: Centrul de contact Webex

  • Lățime: 550 (recomandat)

  • Înălț ime: 600 (Recomandat)

4

În dreapta câmpului URL, faceți clic pe butonul B locare și adăugați x_caci_webexcc_agentdesktop.doca adresă URL. (Faceți acest pas pentru a indica configurația către pagina UI)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(Opțional) Selectați Grupul (grupurile) Utilizator/ Agent (e) pentru a atribui configurația.

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

Faceți clic pe Trimit eți. Adresa URL apare ca un link.

ServiceNow developer instance OpenFrame Configurations – New Record with URL added.

7

Din câmpul Navigator filtru, navigați la Spațiul de lucru operațiuni de service.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

8

(Opțional) În lista Grup de utilizatori, mutați grupurile de utilizatori care pot accesa desktopul Centrului de contact Webex de la Dis poni bil la Selectat.

9

Înainte de a încerca să utilizați telefonul OpenFrame, asigurați-vă că încărcați fișierul JSON personalizat ServiceNow Layout Desktop în Centrul de contact Webex. Management Portal Pentru mai multe informații, consultați Configurarea aspectului desktop ServiceNow în Centrul de contact Webex.

1

Descărcați aspectul Desktop pentru ServiceNow de la https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

Actualizați proprietățile din fișierul Aspect desktop, dacă este necesar.

3

Accesați Centrul Management Portal de contact Webex.

4

Din bara de Management Portal navigare, selectaţi A provizionare > Asp ect desktop.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

Faceți clic pe Aspect nou și introduceți detaliile pentru aspectul desktop.

6

Încărcați fișierul JSON Layout Desktop ServiceNow.

7

Faceți clic pe Salvare pentru a salva configurația.

Acum puteți porni desktopul Centrului de contact Webex în consola ServiceNow.

8

Din câmpul Navigator filtru, navigați la Spațiul de lucru operațiuni de service.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

1

Din câmpul navigator Filtru, navigați la Incidente > Deschideți incidentul.

2

Faceți clic dreapta pe câmpul apelant și faceți clic pe Configurare dic ționar.

ServiceNow developer instance Incidents window with the Configure Directory option highlighted.

3

Adăugați atribute “ref_contributions=show_phone,separate prin virgulă.

ServiceNow developer instance call incident window for a Directory Entry.

Acum puteți începe să utilizați desktopul Centrului de contact Webex în consola ServiceNow.

4

Din câmpul Navigator filtru, navigați la Spațiul de lucru operațiuni de service.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

  • Acceptăm conectarea Agent Desktop utilizând numai conectorii WebRTC pentru Salesforce (SFDC) și Microsoft Dynamics (MS Dynamics).
  • În prezent, această caracteristică este aplicabilă numai agenților.

Agent Desktopîn consola ServiceNow

Înainte de a efectua apeluri exterioare, asiguraţi-vă că faceţi următoarele:

  • Creați punctul de intrare extern și configurați o strategie de punct de intrare externă.

  • Activați ANI outdial pentru profilul agentului.

  • Setați ANI externă la o mapare număr de apelare la punct de intrare.

Pentru mai multe informații, consultați capitolul A provizionare din Ghi dul de Cisco Webex Contact Center configurare și administrare.

Din câmpul Navigator filtru, navigați la Spațiul de lucru operațiuni de service.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

Pentru informații despre cum să utilizați Desktop, consultați fila Agent din ajutorul Centrului de contact Webex.

Prezentare generală

Acest articol acoperă mai multe moduri de a personaliza regulile de afaceri pentru conectorul ServiceNow CRM. Acesta detaliază modul în care puteți personaliza cazurile de utilizare pe baza regulilor de afaceri specifice ServiceNow.

Clientul trebuie să gestioneze singur aceste cazuri de utilizare pe ServiceNow. Configurația este specifică ServiceNow și nu software-ului sau expertizei Webex Contact Center.

Aceasta este o documentație de referință pentru a ajuta la modificarea regulilor de afaceri. Dezvoltatorii ServiceNow vor crea și gestiona regulile de afaceri și vor oferi asistență.

Cisco furnizează doar documentație de probă.

Următoarele secțiuni oferă detalii despre cum să configurați, să activați și să gestionați widgetul Acțiuni pentru instanțele dezvoltatorului și întreprinderii.

Realizarea setului de actualizare pentru widgetul Acțiuni

Pentru instanțele de întreprindere licențiate, instalați cea mai recentă aplicație Webex Contact Center din magazinul ServiceNow.

Pentru a configura widgetul Acțiuni pentru instanțele dezvoltatorului, descărcați cel mai recent fișier XML System Update Set disponibil pe repo-ul github la această locație: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Numele fișierului este webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Pentru a comite setul de actualizare pentru widgetul Acțiuni, consultați pașii 2 până la 9 din Commit erea setului de actualizări.

Activați widgetul Acțiuni

Utilizați proprietatea isWidgetDisplayEnabled pentru a activa widgetul Acțiuni. Nu trebuie să modificați valoarea acestei proprietăți în secțiunea fără cap a aspectului desktop personalizat. Proprietatea este întotdeauna setată la false în secțiunea fără cap a aspectului desktop personalizat. Ar trebui să actualizați valoarea proprietății numai în secțiunea panou a aspectului desktop personalizat.

După ce activați widgetul Acțiuni în aspectul desktop personalizat, puteți efectua următoarele acțiuni:

  • Gestionarea înregistrărilor de activitate — Faceţi clic pe Vizualizare/Editare înregistrare de activitate pentru a vizualiza lista înregistrărilor de activitate asociate apelantului.
  • Asociați obiecte CRM — faceți clic pe Asociați la înregistrări de activitate pentru a adăuga obiecte CRM, cum ar fi tipul de apel (de intrare sau de ieșire), obiectul de apel, notele de apel și așa mai departe în înregistrarea de activitate.
  • Gestionați incidentele — faceți clic pe Creare incident. Se creează un nou incident cu detaliile apelantului prepopulate. Puteți face actualizările necesare incidentului. Puteți alege să modificați tipul înregistrării de la incident la caz, modul HR și așa mai departe în funcție de cerințele dvs. Pentru a modifica tipul de înregistrare, modificați valoarea proprietății TypeOfRecord în configurația widgetului Acțiuni. De exemplu:
    {
                  "comp": "md-tab-panel",
                  "attributes": { "slot": "panel", "class": "widget-pane" },
                  "children": [
                    {
                      "comp": "agentx-custom-desktop",
                      "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js",
                      "properties": {
                        "isWidgetDisplayEnabled": true,
                        "typeOfRecord" : "Create Incident" 
                      },
                      "wrapper": {
                        "title": "SNOW Actions !",
                        "maximizeAreaName": "app-maximize-area"
                      }
                    }
                  ]
                }
  • Adăugați note de apel live — Puteți capta informații suplimentare despre apel în zona de text și puteți încheia apelul. Puteți vedea aceste note adăugate ca note de apel în înregistrarea activității.

Modificarea codului pe ServiceNow

Scriptul include modificări
  1. Accesați navigatorul de filtrare și căutați scripturi incluse.

    Selectați Script Inclu de sub UI de sistem.

  2. Filtrați numele și căutați PropUtils.

  3. Schimbați metoda UserGetSysID în Script.

    Curent:

    UserGetSysId : function () {
    var opened_for;
    var user = new GlideRecord("sys_user");
    user.addQuery(this.getParameter('field'),this.getParameter('value'));
    user.query();
    if (user.next())
    opened_for=user.sys_id;
    var grInt = new GlideRecord('interaction');
    grInt.initialize();
    grInt.assigned_to= gs.getUserID();
    grInt.type= 'phone';
    grInt.opened_for= opened_for;
    var sysid=grInt.insert();
    return sysid;
    },

    Noul cod de probă pentru incident:

    UserGetSysId : function () {
                var opened_for;
    
            //Incident related changes
                 var sysidlist = {};
                var user = new GlideRecordSecure("sys_user");
                  user.addQuery(this.getParameter('field'),this.getParameter('value'));
                  user.query();
                  if(user.next()) {
                     opened_for=user.sys_id;//return user.sys_id;
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', opened_for);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        sysidlist.incsysid=inc.getUniqueValue();
                                   }else{
                                        inc.initialize();
                                        inc.caller_id=opened_for;
                                        inc.contact_type='phone';
                                        inc.short_description='Call Received From '+ this.getParameter('value');
                                        sysidlist.incsysid=inc.insert();
                                    }
                  } 
                var grInt = new GlideRecordSecure('interaction');
                    grInt.initialize(); 
                    grInt.assigned_to= gs.getUserID(); 
                    grInt.type= 'phone'; 
                    grInt.opened_for= opened_for; 
                var sysid=grInt.insert();
                sysidlist.sysid=sysid;
                
                return JSON.stringify(sysidlist);
            },

Modificarea metodei pe paginile UI
  1. Accesați navigatorul de filtrare și căutați UI page.

    Selec tați pagini UI sub UI de sistem.

  2. Filtrați numele și căutați agentdesktop.

  3. Schimbați funcția screenpop în scriptul Client.

    Funcția curentă:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
    
    
    
    if(callerani===callSessionInfo.phoneNumber){
    callerani=stripPrefixes(callerani);
    }
    var gaout = new GlideAjax('propUtils');
    gaout.addParam('sysparm_name', 'UserGetSysId');
    gaout.addParam('field', 'phone');
    gaout.addParam('value', callerani);
    gaout.getXMLWait();
    
    
    var sysid = gaout.getAnswer();
      
    openFrameAPI.openServiceNowForm({
    entity: 'interaction',
    query: 'sys_id='+sysid
    });

    Exemplu de cod pentru incident:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
       
    
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.getXMLWait();
    
    // For Incident-related change
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8'  
           });
        }
       
    }

Dacă informațiile apelantului există în CRM și există deja un nou incident deschis cu acest contact, aplicația deschide incidentul în curs

Dacă informațiile apelantului nu există în CRM, aplicația deschide un nou incident

Dacă informațiile apelantului există în CRM, aplicația deschide un nou incident cu detalii precompletate

Prezentare generală

Acest caz de utilizare detaliază procesul de adăugare a unei coloane suplimentare în tabelul ServiceNow - webexcc_imp_activity și crearea sn_openframe_phone_log la instalarea conectorului Webex CC pentru ServiceNow CRM.

În mod implicit, tabelul conține anumite câmpuri și valori de sistem ieșite din cutie.

Puteți crea mai multe variabile specifice afacerii (variabile CAD) în interiorul designerului de flux WebExCC și puteți adăuga variabilele CAD în jurnalul de activitate după apeluri ServiceNow, precum și să le persistați în datele tabelului de activități post-apel.

Aceasta este doar o documentație de referință - și arată cum se face acest lucru pentru o variabilă CAD de probă numită Nume client care stochează numele clientului în IVR și postează acest lucru la ServiceNow.

Este de așteptat ca dezvoltatorii partenerului+customer serviceNow să configureze și să gestioneze această configurație, deoarece este o personalizare a conectorului existent.

Cisco oferă doar tehnicile privind personalizarea și extinderea conectorului.

Începând cu acest articol, echipa Cisco a validat suportul pentru adăugarea variabilei CAD în Jurnalul de activitate și tabelul de activități folosind tehnica descrisă mai jos:

Adăugați coloana la activitatea WebExCC IMP

  1. Editați tabelul în versiunea pentru dezvoltatori a ServiceNow.

    ServiceNow developer instance WebexCC IMP activity table.

  2. Accesați navigatorul de filtrare și căutați studio.

    ServiceNow developer instance filter navigator on the All tab with ‘studio’ entered in the filter.

    Selectați Centrul de contact Webex

    Studio app for ServiceNow with the Select Application window open.

    sau

    Studio app for ServiceNow with the Select Application window open and ‘Select Store App to Customize’ selected.

    Studio app for ServiceNow with the ‘Select Store App to Customize’ window open and ‘Webex Contact Center’ selected.

    Studio app for ServiceNow with Webex Contact Center application file details.

  3. Selectați tabelul Activ itate WebExCC IMP

    Studio app for ServiceNow WebexCC IMP Activity table.

  4. Adăugați o coloană nouă, de exemplu, CustomerName

    Studio app for ServiceNow WebexCC IMP Activity table new column example.

    Studio app for ServiceNow WebexCC IMP Activity table new column example with new column added.

Adăugați coloana în jurnalul telefonului

  1. Editați tabelul jurnalului de telefon.

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

  2. Adăugați o coloană nouă, de exemplu, CustomerName.

    ServiceNow developer instance phone log table new column examples.

    ServiceNow developer instance phone log table new column example with new column added.

Harta de transformare a activității WebExCC

Studio app for ServiceNow WebexCC Activity Transform Map.

Adăugați o coloană nouă, de exemplu, maparea câm pului CustomerName.

Studio app for ServiceNow WebexCC Activity Transform Map new column example for CustomerName field mapping.

Studio app for ServiceNow WebexCC Activity Transform Map new column example with CustomeName selected in the Target field.

Personalizați coloanele listei

Studio app for ServiceNow WebexCC Activity Transform Map with popup window to personalized list columns. Choice action option is highlighted in the Selected column.

După cum recomandă Service Now, schimbați acțiunea Opțiune de la creare la ignorare.

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column, showing the dropdown to choose ‘ignore’ or ‘create.’

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column and ‘ignore’ highlighted for the customer name source field.

Configurați lista jurnalelor de telefon

Studio app for ServiceNow configuring phone log list with CustomerName highlighted in the Selected column.

Mergi la Script Include

Adăugați o singură linie webexcc. u_customername=ActInfo.CustomerName la PropUtils.

ServiceNow developer instance filter navigator search for ‘script includes.’

ServiceNow developer instance Script Includes page.

Exemplu de script

Vezi linia: webexcc. u_customername=ActInfo.Customer Name; cu un comentariu de susținere.

var propUtils = Class.create();
propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
         getWebexccProp : function () {
           var webexccprop = {};
           webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
           webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url');
          // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
           return  JSON.stringify(webexccprop);
      
        },
        UserGetSysId : function () {
            var opened_for;
            var user = new GlideRecord("sys_user");
              user.addQuery(this.getParameter('field'),this.getParameter('value'));
              user.query();
              if (user.next())
                 opened_for=user.sys_id;//return user.sys_id;
//            else
//               return null;
            var grInt = new GlideRecord('interaction');
                grInt.initialize();
                grInt.assigned_to= gs.getUserID();
                grInt.type= 'phone';
                grInt.opened_for= opened_for;
            var sysid=grInt.insert();
            return sysid;
        },
        setWebexcctable : function () {
            var sys_id=0;
             
            var actInfo = JSON.parse(this.getParameter('actInfo'));
            var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
            webexcc.addQuery("callobject", actInfo.CallObject);
            webexcc.query();
            if(!webexcc.next()) {
                webexcc.ani = actInfo.ani;
                webexcc.dnis =actInfo.dnis;
                webexcc.queuename =actInfo.queuename;
                webexcc.wrapuptime =actInfo.wrapuptime;
                webexcc.callduration =actInfo.CallDurationInSeconds;
                webexcc.ringingtime =actInfo.ringingtime;
                webexcc.activitydate =actInfo.ActivityDate;
                webexcc.callobject =actInfo.CallObject;
                webexcc.calltype =actInfo.CallType;
                webexcc.calldisposition=actInfo.CallDisposition;
                 
                // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
                 
                sys_id=webexcc.insert();
 
                //Activities on Incident record;
                var actInfoString =this.getParameter('actInfo');
                var suser = new GlideRecordSecure("sys_user");
                    suser.addQuery("phone", this.getParameter('ani'));
                    suser.query();
                    if(suser.next()) {
                    var inc = new GlideRecordSecure('incident');
                            inc.addQuery('caller_id', suser.sys_id);
                            inc.orderByDesc('sys_created_on');
                            inc.query();
                                if (inc.next()) {
                                    var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); 
                                    inc.comments =jsonPretty;
                                inc.update();
     
                            }
                    }
            }  
            return sys_id;
       },
 
    type: 'propUtils'
});

Crearea unei variabile CAD în Flow designer

Webex Contact Center CAD variable flow designer with Add Flow Variable popup for CustomerName.

Adăugarea variabilei CAD la Layout Desktop

Exemplu

"CadName1:SnowField1,CadName2:SnowField2"
 CadName1 is CustomerName
 SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Example source code for adding the CAD variable to the Desktop Layout.

Capturi de ecran demo

Vizualizați variabila CAD nou adăugată în tabelul Activitate WebExCC.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘Customer Name’ in the Cisco WebexCC popup.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘CustomerName’ in the comments section under ‘Activity’ and ‘System Administrator.’

ServiceNow developer instance example of the newly added CAD variable in the WebexCC Activity table, showing the ‘CustomerName’ column.

Crearea variabilei CAD pentru Flow Designer

Urgența incidentului

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Impactul incidentului

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Actualizare script Service Now

Actualizări ale scriptului include

  1. Accesați navigatorul de filtrare și căutați script includes

    Selectați opțiunea Script Inclu de sub UI de sistem.

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. Filtrați numele cu propUtils.

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. Modificați metoda UserGetSysID în câmp ul Script.

    ServiceNow developer instance Script Includes – propUtils details page.

    Scriptul curent:

    UserGetSysId : function () {
    var opened_for;
    var user = new GlideRecord("sys_user");
    user.addQuery(this.getParameter('field'),this.getParameter('value'));
    user.query();
    if (user.next())
    opened_for=user.sys_id;
    var grInt = new GlideRecord('interaction');
    grInt.initialize();
    grInt.assigned_to= gs.getUserID();
    grInt.type= 'phone';
    grInt.opened_for= opened_for;
    var sysid=grInt.insert();
    return sysid;
    },

    Noul cod de probă pentru incident:

    UserGetSysId : function () {
                var opened_for;
                
                var sysidlist = {};
                var user = new GlideRecordSecure("sys_user");
                  user.addQuery(this.getParameter('field'),this.getParameter('value'));
                  user.query();
                  if(user.next()) {
                     opened_for=user.sys_id;//return user.sys_id;
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', opened_for);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        sysidlist.incsysid=inc.getUniqueValue();
                                   }else{
                                        inc.initialize();
                                        inc.caller_id=opened_for;
                                        inc.contact_type='phone';
                                        inc.urgency=this.getParameter('IncUrgency');
                                        inc.impact=this.getParameter('Impact');
                                        inc.short_description='Call Received From '+ this.getParameter('value');
                                        sysidlist.incsysid=inc.insert();
                                    }
                  } 
                var grInt = new GlideRecordSecure('interaction');
                    grInt.initialize(); 
                    grInt.assigned_to= gs.getUserID(); 
                    grInt.type= 'phone'; 
                    grInt.opened_for= opened_for; 
                var sysid=grInt.insert();
                sysidlist.sysid=sysid;
                
                return JSON.stringify(sysidlist);//sysid;
            },

O modificare a metodei pe paginile UI
  1. Accesați navigatorul de filtrare și căutați UI pages.

    Selectați opțiunea UI Pages sub UI de sistem.

    ServiceNow developer instance filter navigator search for ‘Ui page’

  2. Filtrați paginile UI cu Nume și căutați agentdesktop.

    ServiceNow developer instance UI Pages name filter to search ‘agentdesktop’

  3. Schimbați funcția screenpop în câmpul script.

    ServiceNow developer instance UI Page – agentdesktop details page.

    Funcția curentă:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
    
    
    if(callerani===callSessionInfo.phoneNumber){
    callerani=stripPrefixes(callerani);
    }
    var gaout = new GlideAjax('propUtils');
    gaout.addParam('sysparm_name', 'UserGetSysId');
    gaout.addParam('field', 'phone');
    gaout.addParam('value', callerani);
    gaout.getXMLWait();
    
    
    var sysid = gaout.getAnswer();
      
    openFrameAPI.openServiceNowForm({
    entity: 'interaction',
    query: 'sys_id='+sysid
    });
    
    }

    Exemplu de cod pentru incident:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
       
        var Impact=3;
        if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined)
        {
            Impact=callSessionInfo.callAssociatedData.Impact.value;
        }
        var IncUrgency=3;
        if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined)
        {
            IncUrgency=callSessionInfo.callAssociatedData.Urgency.value;
        }
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.addParam('IncUrgency', IncUrgency);
            gaout.addParam('Impact', Impact);
            gaout.getXMLWait();
          // var sysid = gaout.getAnswer();
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid  
           });
        }
        window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj));
       
    }

Dacă informațiile apelantului există în CRM și nu există niciun incident nou sau în curs de desfășurare, aplicația deschide un nou incident

ServiceNow example of an incident.

ServiceNow example of an interaction.

Schimbați codul de pe ServiceNow

Adăugarea de coloane noi în tabelul Activ itate WebExCC IMP

Deschiderea tabel ului Activitate WebExCC IMP

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

Adăugați o coloană nouă - InteractionsNumber

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘interactionnumber’ column added.

Adăugați o coloană nouă - IncidentNumber

ServiceNow developer instance WebexCC Activity TransformMap details page showing adding a new ‘incidentnumber’ column.

Faceți clic pe Actualizare.

ServiceNow developer instance WebexCC Activity TransformMap details page showing editing the max length for the IncidentNumber column.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘incidentnumber’ column added.

Adăugarea de coloane noi în tabelul Jurnal de telefon

Deschiderea tabel ului Jurnal de telefon

ServiceNow developer instance Phone Log table.

Adăugați o coloană nouă - InteractionsNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for InteractionsNumber.

ServiceNow Developer instance Phone Log table with InteractionsNumber column added.

Adăugați o coloană nouă - IncidentNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for IncidentNumber.

ServiceNow Developer instance Phone Log table with IncidentNumber column added.

Harta de transformare a activității WebExCC

Deschiderea hărții de transform are din navigatorul de filtrare

ServiceNow developer instance filter navigator search for ‘transform map’

ServiceNow developer instance Table Transform Maps showing WebexCC Activity TransformMap in results.

Faceți clic pe WebExCC Activity TransformMap

ServiceNow developer instance WebexCC Activity TransformMap.

Adăugați un nou - pentru Harta numerelor de interacțiune

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ entered into the ‘Target field’

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ added.

Adaugă un nou - pentru Harta numărului de incidente

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ entered into the ‘Target field’

Faceți clic pe Actu alizare.

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ added.

Modificări ale scriptului include

  1. Accesați navigatorul de filtrare și căutați „script include”.

    Selectați Script Inclu de sub UI de sistem.

    ServiceNow developer instance filter navigator with search for ‘script includes’

  2. Filtrați numele cu PropUtils.

    ServiceNow developer instance Script Includes with Name filter applied to search and  ‘propUtils’ entered into the search field.

  3. Schimbați metoda SetWeb ExccTable.

    ServiceNow developer instance Script includes - propUtils page

    Noul cod de probă pentru incident:

    setWebexcctable : function () {
                var sys_id=0;
                
                var actInfo = JSON.parse(this.getParameter('actInfo'));
                var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable'));
                webexcc.addQuery("u_callobject", actInfo.CallObject);
                webexcc.query();
                if(!webexcc.next()) {
                    
                    //Activities on Incident record;
                    //var actInfoString =this.getParameter('actInfo');
                    var incsysid=actInfo.incident_sys_id;
                    var interactionsysid=actInfo.interaction_sys_id;
                    var incnum="";
                    var intenum="";
                    delete actInfo['interaction_sys_id'];
                    delete actInfo['incident_sys_id'];
                    if( interactionsysid!= null && interactionsysid != undefined){
                        var inte = new GlideRecordSecure('interaction');
                        //inte.get('sys_id', interactionsysid );
                        
                        inte.addQuery('sys_id', interactionsysid );
                        inte.query();
                        if (inte.next()) {
                            intenum=inte.number;
                           // inte.setValue('state','Closed Complete');
                            inte.work_notes='Update State to closed.';
                            inte.update();
        
                        }
                    }
                    if( incsysid!= null && incsysid != undefined){
                        var inci = new GlideRecordSecure('incident');
                        inci.addQuery('sys_id', incsysid );
                        inci.query();
                        if (inci.next()) {
                            incnum=inci.number;
                            var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2);  
                            inci.comments =jsonPretty;
                            inci.update();
        
                        }
                    }else{
                      var suser = new GlideRecordSecure("sys_user");
                        suser.addQuery("phone", this.getParameter('ani'));
                        suser.query();
                        if(suser.next()) {
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', suser.sys_id);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        var jsonPretty = JSON.stringify(actInfo,null,2);  
                                        inc.comments =jsonPretty;
                                    inc.update();
        
                                }
                        } 
                    }
                   
                    
                    webexcc.u_ani = actInfo.ani;
                    webexcc.u_dnis =actInfo.dnis;
                    webexcc.u_queuename =actInfo.queuename;
                    webexcc.u_wrapuptime =actInfo.wrapuptime;
                    webexcc.u_callduration =actInfo.CallDurationInSeconds;
                    webexcc.u_ringingtime =actInfo.ringingtime;
                    webexcc.u_activitydate =actInfo.ActivityDate;
                    webexcc.u_callobject =actInfo.CallObject;
                    webexcc.u_calltype =actInfo.CallType;
                    webexcc.u_calldisposition=actInfo.CallDisposition;
                    webexcc.u_incidentnumber=incnum;
                    webexcc.u_interactionsnumber=intenum;
                    sys_id=webexcc.insert();
    
                    
                                
                }    
                return sys_id;
           },

Modificări ale metodei pe paginile UI

  1. Accesați navigatorul de filtrare și căutați pagini UI

    Selectați opțiunea UI Pages sub UI de sistem.

    ServiceNow developer instance filter navigator with search for ‘Ui page’

  2. Filtrați paginile UI cu Nume și căutați agentdesktop.

    ServiceNow developer instance UI Pages with Name filter applied to search.

  3. Schimbați funcția NowActivities și screenpop din script.

    ServiceNow developer instance UI Page – agentdesktop.

    Funcția curentă:

    function nowActivities(actInfo, ani) {
        
        var gaout = new GlideAjax('propUtils');
        gaout.addParam('sysparm_name', 'setWebexcctable');
        gaout.addParam('actInfo', JSON.stringify(actInfo));
        gaout.addParam('ani', stripPrefixes(ani));
        gaout.getXML(SetCCsysId);
    
    
    }

    Exemplu de cod pentru incident:

    function nowActivities(actInfo, ani) {
        var sysObjstr = window.localStorage.getItem("screenpopinteraction");
        if(sysObjstr != null && sysObjstr != undefined)
        {
            var sysObjjson=JSON.parse(sysObjstr);
            actInfo.interaction_sys_id=sysObjjson.sysid;
            actInfo.incident_sys_id=sysObjjson.incsysid;
        }
        var gaout = new GlideAjax('propUtils');
        gaout.addParam('sysparm_name', 'setWebexcctable');
        gaout.addParam('actInfo', JSON.stringify(actInfo));
        gaout.addParam('ani', stripPrefixes(ani));
        gaout.getXML(SetCCsysId);
    
    
    }
    
    function screenpop(callerani,callSessionInfo) {
       
    
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.getXMLWait();
          // var sysid = gaout.getAnswer();
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid  
           });
        }
        window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj));
            
       
    }
    
    

Rezultate după actualizare

ServiceNow developer instance Phone Logs page.

Următoarele personalizări se aplică versiunilor 1.0.5 și mai jos. Pentru personalizările pentru versiunile mai noi 1.0.7 și versiuni ulterioare, urmați pașii de mai sus.

Personalizare # 1 - Adăugați reguli de afaceri personalizate pentru cazurile de utilizare a fluxului de apeluri

Creați o nouă înregistrare de incident pentru fiecare apel

Pentru fiecare apel nou în conectorul WebExCC CRM din ServiceNow, creați o înregistrare nouă de incidente.

  1. Căutarea regulilor de afaceri în navigatorul de filtrare

    ServiceNow developer instance Business Rules page header.
  2. Faceți clic pe Nou.

    ServiceNow developer instance Business Rule – New Record.

    Cod de probă pentru referință:

    function customcti() {
                var url = null;
                var name = sysparm_caller_name;
                eid = sysparm_caller_id;
                var phone = sysparm_caller_phone;
                var taskID = sysparm_task_id;
                var fQuery = sysparm_query;
                if (fQuery == null)
                   fQuery = '';
                var view = sysparm_view;
                if (view == null || view == '')
                    view = "itil";
     
                var userID = null;
                if (eid != null && eid != '') {
                    userID = UserGetSysId("employee_number",eid);
                }
                if (userID == null && name != null && name != '') {
                    userID = UserGetSysId("name", name);                
                }
                if (userID == null && phone != null && phone != '') {
                    userID = UserGetSysId("phone", phone);
                }
     
                if (userID != null) {
                    if (fQuery.length > 0)
                        fQuery += "^";
                    fQuery += "caller_id=" + userID;
                }
                if (url == null) {
                    url = "incident.do?sys_id=-1";
                    if (fQuery != null)
                       url += "&sysparm_query=" + fQuery;
                }
                answer = url;
                return url;
    }
     
    function UserGetSysId(field, value) {
      var user = new GlideRecord("sys_user");
      user.addQuery(field, value);
      user.query();
      if (user.next())
         return user.sys_id;
      else
         return null;
    }

    Exemplu de configurare a regulii de afaceri

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. Activați Clientul apelabil

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

    Procesarea integrării telefoniei computerizate (CTI) pentru incident este marcată ca True.

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. Actualizați adresa URL screenpop cu regula CTI personalizată „cti.do? sysparm_cti_rule=Create sysparm_caller_phone Incident& =”

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.
Exemplu

sysparm_cti_rule=name unde „name” este numele unei funcții trebuie invocat pentru procesarea CTI, mai degrabă decât pentru utilizarea scriptului implicit.

Definiți funcția într-o sys_scriptintrare marcată client callable.

Dacă trebuie să inserați, să actualizați sau să ștergeți orice GlidereCord (e) în funcție, apelați o funcție separată care nu poate fi apelată client pentru a efectua actualizările.

Pentru a face un script apelabil pentru client, trebuie să bifați caseta de selectare client-callable din formularul care se afișează la afișarea intrării. sys_script

Caseta de selectare care poate fi apelată de client nu apare în mod implicit. Pentru a vizualiza, trebuie să modificați câmpurile care apar pe formular folosind pictograma roată și mecanismul găleată slush.

Referinţe

Personalizare # 2 - Adăugați variabila CAD în tabelul de activitate Webex Contact Center

Prezentare generală

Acest articol detaliază procesul de adăugare a unei coloane suplimentare la tabelul ServiceNow - webexcc_activity care este creat la instalarea conectorului Webex CC pentru ServiceNow CRM.

În mod implicit, tabelul conține câmpuri și valori de sistem ieșite din cutie.

Puteți crea mai multe variabile specifice afacerii (variabile CAD) în proiectantul de flux WebExCC și să adăugați acele variabile CAD în jurnalul de activitate după apeluri ServiceNow și să le persistați în datele tabelului de activități post- apel.

  • Aceasta este doar documentația de referință - și arată cum se face acest lucru pentru o variabilă CAD de probă numită Nume client care stochează numele clientului în IVR și îl postează pe ServiceNow.

  • Dezvoltatorii partenerului+customer serviceNow vor configura și gestiona această configurație, deoarece este o personalizare a conectorului existent.

  • Cisco va furniza doar tehnicile privind modul de personalizare și extindere a conectorului.

  • Începând cu acest articol, echipa Cisco a validat suportul pentru adăugarea variabilei CAD în Jurnalul de activitate și tabelul de activități folosind tehnica descrisă mai jos.

Adăugați coloană la activitatea WebExCC
  1. Editați tabelul în versiunea pentru dezvoltatori a ServiceNow.

    ServiceNow developer instance Table – WebexCC Activity page.
  2. Accesați Studio > Centrul de contact Webex.

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. Selectați Tab elul de activitate WebExCC.

    App Engine Studio WebexCC Activity table.
  4. De exemplu, CustomerName.

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

  5. Selectați Aspect listă pentru activitatea WebExCC.

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
Creați un script nou Include

Acest pas nu este necesar dacă utilizați setul de actualizare XML - Doar o linie este necesară pentru a fi adăugată "webexcc. u_customername=ActInfo.CustomerName "la PropUtils.

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

Exemplu de script

Vezi linia cu: webexcc. u_customername=ActInfo.Customer Name; cu un comentariu de susținere.

var propUtils2 = Class.create();
propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
         getWebexccProp : function () {
           var webexccprop = {};
           webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
           webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url');
           webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
           return  JSON.stringify(webexccprop);
      
        },
        setWebexcctable : function () {
            var sys_id=0;
             
            var actInfo = JSON.parse(this.getParameter('actInfo'));
            var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
            webexcc.addQuery("callobject", actInfo.CallObject);
            webexcc.query();
            if(!webexcc.next()) {
                webexcc.ani = actInfo.ani;
                webexcc.dnis =actInfo.dnis; 
                webexcc.queuename =actInfo.queuename;
                webexcc.wrapuptime =actInfo.wrapuptime;
                webexcc.callduration =actInfo.CallDurationInSeconds;
                webexcc.ringingtime =actInfo.ringingtime;
                webexcc.activitydate =actInfo.ActivityDate;
                webexcc.callobject =actInfo.CallObject;
                webexcc.calltype =actInfo.CallType;
                webexcc.calldisposition=actInfo.CallDisposition;
 
               // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
 
                sys_id=webexcc.insert();
  
                // Activities on Incident record;
                var actInfoString =this.getParameter('actInfo');
                var suser = new GlideRecordSecure("sys_user");
                    suser.addQuery("phone", this.getParameter('ani'));
                    suser.query();
                    if(suser.next()) {
                    var inc = new GlideRecordSecure('incident');
                            inc.addQuery('caller_id', suser.sys_id);
                            inc.orderByDesc('sys_created_on');
                            inc.query();
                                if (inc.next()) {
                                    var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2);  
                                    inc.comments =jsonPretty;
                                inc.update();
                                 }
                    } 
            }    
            return sys_id;
       },
 
    type: 'propUtils2'
});
Editați pagina UI cu un nou nume de scriptApp Engine Studio agentdesktop UI page with new script name.

Crearea unei variabile CAD în Flow designerWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

Adăugarea variabilei CAD la Layout DesktopWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

Capturi de ecran demo

Vizualizați variabila CAD nou adăugată în tabelul Activitate WebExCC.

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.

Conectorul CRM funcționează pe baza versiunii widgetului specificată în aspectul desktop JSON. Este extrem de important să vă asigurați că versiunea widgetului din Layout Desktop este actualizată.

Administratorii sunt așteptați să se asigure că toate aspectele desktop pentru acest conector CRM utilizează această versiune widget. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.

  • Ultima actualizare ServiceNow— ServiceNow_Desktop_0 .1.0_v5.0.3.json. Începând cu martie 2024, versiunea pachetului este 1.0.9
  • Ultima actualizare XML — WebExcc-ServiceNow-Update-SetV7-1-ActionsWidget.xml, iunie 2024

A fost util acest articol?
A fost util acest articol?