Chatbot -funktioner

Juha Hänninen
2025-10-23T13:53:47Z

Introduktion till ITSM-funktioner

Chatbot låter chatbotar skapa och redigera ESM-data, och möjliggör även mer komplex logik med anpassad konfiguration.

Funktioner används av chattrobotarna i Efecte Chat för att skapa ärenden och datakort för chattsessioner i ESM, samt uppdatera dem. Funktioner kan ha värden som alltid är desamma beroende på ESM-konfigurationen, till exempel kan du ange för vilken mall datakort skapas. Det finns dock också möjlighet att ange värden för ESM-datakort "on the fly", när funktionen anropas. Detta gör att samma funktion kan användas på olika sätt, till exempel för att skapa incidenter med en kategori i ett scenario och använda en annan kategori i ett annat scenario.

Funktioner i befintliga miljöer uppdateras inte automatiskt när ändringar eller nya funktioner introduceras. Att införa ändringar i funktioner i redan befintliga miljöer kräver att professionella tjänster involveras.

Efecte Chat för tjänstehantering innehåller för närvarande följande funktioner:

1. SkapaTicket

Beskrivning

Huvudsyftet med den här funktionen är att skapa ett ärende på ESM-sidan. Du kan använda den här funktionen när som helst i scenariot, det är upp till dig om du vill skapa ett ärende i början av användarens konversation med chatboten [1] eller bara i slutet. För att lägga till den här funktionen i ett scenario, lägg till ett nytt block i scenarioredigeraren, välj Funktionsblock och välj sedan lämpligt block från listan. En ytterligare meny visas på höger sida [2], där du måste ange ämnet för ärendet som skickas till ESM och ID:t för nästa block som funktionen ska gå till efter att uppgiften är slutförd. Mer information om att skapa scenarier finns i uid .

Funktionsinställningar

För att funktionen ska fungera korrekt, gå till fliken Funktioner, välj sedan lämplig funktion från listan och klicka på knappen Redigera. De viktigaste inställningarna finns i fältet Konfigurationsobjekt [1], där du ska ändra variablerna i enlighet med ESM-inställningarna.

" API _URL" - justera URL:en med följande detaljer

miljö-URL, t.ex. ”https://newenvironment.efectecloud.com” - ersätt INTE hela URL:en med endast miljö-URL:en!

korrekt ESM-mappkod, t.ex. ”incident_management”

Den fullständiga inställningen för API _URL ska alltid se ut så här:

" API _URL": "https://newenvironment.efectecloud.com/api/itsm/dataCardImport.ws?folderCode=incident_management&createEmptyReferences=true&includeIDs=true",

"resHistoryPath" - detta är sökvägen till konversationshistoriken, gör inga ändringar i det här fältet!

"ticketURL" - här bör du också ange rätt adress för din miljö från ESM, som ovan i API _URL, utan att ändra resten av URL:en.

"auth" - auktoriseringskod, skapad baserat på inloggningsuppgifter. Denna kommer att tillhandahållas av vår support. Vid eventuella ändringar av inloggningsuppgifter, vänligen kontakta supporten för att uppdatera koden.

Notera

Kom ihåg att se till att du har angett URL:en korrekt

Kontrollera om din folderCode i ESM-inställningarna är incident_management. Om den är annorlunda kan du ändra mappnamnet i API _URL till rätt namn. Standardmappen ska vara som visas i exemplet.

Se till att du angav adressen korrekt i ticketURL:en

Se till att auktoriseringskoden är strukturerad som i exemplet ovan ”Grundläggande ……….”

2. UppdateraTicket

Beskrivning:

Funktionens huvuduppgift är att tillämpa ändringar på ett befintligt ärende. Vi kan använda den här funktionen i slutet av scenariot för att ändra statusen för en given förfrågan, t.ex. om användaren, efter att ha gått igenom scenariot, löser sitt problem, kan vi automatiskt ändra statusen för en sådan förfrågan från "ny" till "löst" eller en annan beroende på affärskrav.

Vi kan också ändra statusen för det skapade ärendet efter ett misslyckat försök att ansluta till agenten.

Observera att funktionen UpdateTicket endast fungerar tillsammans med funktionen CreateTicket.

Med hjälp av den här funktionen kan du ändra statusen för ett befintligt ärende eller avbryta ett tidigare skapat ärende.

Scenariot för att använda UpdateTicket-funktionen kan se ut så här:

1. Funktionen CreateTicket - här, i början av scenariot, skapar vi automatiskt ett ärende i ESM, tillsammans med titeln (som anges i beskrivningen av CreateTicket)

2. Pro - vi kan lägga till flera grenar beroende på hur problemet löses och dess komplexitet. I slutet av scenariot vill vi veta vad resultatet blir, så det är nödvändigt att förbereda en sammanfattande fråga. Resultatet kommer att användas för att bestämma nästa steg.

3. Scenario efter att ha valt ”Nej, jag har fortfarande problem” – om problemet kvarstår kan vi visa ytterligare steg, t.ex. avbryta ärendet eller kontakta agenten.

4. Avbryt detta ärende - för att avbryta ärendet bör du bädda in funktionen "UpdateTicket" här och lägga till attributinställningar: typ och adress för nästa block som funktionen kommer att gå till efter att uppgiften är slutförd.

5. Uppdatera ärendet – vi kan också lägga till ytterligare information i ett befintligt ärende, t.ex. om det inte finns några tillgängliga agenter för tillfället och vi vill beskriva vårt problem kan vi också använda funktionen UpdateTicket för att skicka information med en beskrivning av problemet.

{
  "type": "Cancel",
  "nextChild": "statement-c4678291"
}

6. Om problemet har lösts och vår användare väljer "ja", kan vi med samma "UpdateTicket"-funktion automatiskt ändra statusen för vår biljett till "löst". I det här fallet behöver du i inställningarna bara ange adressen till nästa block som du vill gå till.

För att funktionen ska fungera korrekt måste följande parametrar anges i funktionsinställningarna:

Funktionsinställningar:

I likhet med inställningarna för funktionen "CreateTicket" som beskrivs ovan i den första punkten, behöver du här också ange API _URL för din ESM-miljö och auktorisering. Dessa data ska vara desamma som i funktionen "CreateTicket". Den enda ändringen är i attributet "mainScriptId", här ska du ange ID:t för vårt huvudmenyblock (du hittar det i URL:en genom att redigera berättelsen ♻️ Huvudmeny).

{
  "API_URL": "https://example.env.from.esm.com/api/itsm/dataCardImport.ws?folderCode=incident_management&updateDataCards=true&createDataCards=false",
 "auth": "Basic XXXXXXXXaaaa1122233bbbcccdddeeefffXXXXXXXX",
 "mainScriptId": 45177
}

Supported parameters:
{
"type": "Cancel",
"type": "Description"
}

3. SkapaTicketFromForm

Beskrivning:

Funktionen CreateTicketFromForm används för att skapa ett ärende i ESM baserat på ett formulär som användaren fyllt i. För att underlätta processen att skicka ärenden har vi skapat ett formulär i vår Chatbot som innehåller två fält "Ämne" och "Beskrivning". Baserat på dessa data och din information kan vi skapa ett ärende i ESM. Ärenden som skapats på detta sätt kan inte redigeras från Chatbot , men om användaren ansluter till agenten via livechatten kommer alla dennes aktuella ärenden som skapats med Chatbot att synas i agent.widget-fönstret.

1. För att kunna använda den här funktionen måste vi definiera vårt formulär i det första steget. Som standard är två attribut "Ämne" och "Beskrivning" inställda, dessa variabler skickas till ESM (det är möjligt att utöka den här funktionen med nya variabler, för detta ändamål kontakta PS Team InteliWISE).

2. Skript för avbokning av formulär. Ansvarar för att visa meddelandet om avbokning av formulär och möjliga nästa steg, i det här fallet knappen "Tillbaka till menyn".

3. Funktionen ”CreateTicketFromForm” – baserat på data från formuläret och användardata skapas ett ärende automatiskt. Efter att ett ärende har skapats får användaren automatiskt ett meddelande med incidentnumret. Denna funktion kräver inte att några ytterligare parametrar definieras.

Funktionsinställningar:

I likhet med inställningarna för de tidigare funktionerna, bör du här också ange lämplig API _URL, ticket_URL, auth och ange ID:t för skriptet "MainMenu".

{
 "API_URL": "https://example.env.from.esm.com/api/itsm/dataCardImport.ws?folderCode=incident_management&createEmptyReferences=true&includeIDs=true",
 "resHistoryPath": "https://rail-webfront.app.inteliwi.se/channels/history?channelUid=",
 "ticketURL": "https://example.url.from.esm.com/itsm/EfecteFrameset.do#/workspace/datacard/view/",
 "auth": "Basic XXXXXXXXaaaa1122233bbbcccdddeeefffXXXXXXXX",
 "mainScriptId": 45177
}

4. Skapa chattsession

Beskrivning:

Huvuduppgiften för denna funktion är att skapa ett datakort som ansvarar för att samla in information om användarens konversationshistorik med Chatbot och agenter. Baserat på informationen som skickas av denna funktion kan agenten kontrollera historiken över konversationer med en given användare. Vi kan också använda den insamlade datan för olika typer av analyser och förberedelser av rapporter om användningen av en given funktion. Blocket med funktionen ska infogas i livechattscenariot enligt bilden nedan.

1. Funktionsskriptet ”CreateChatSession”

2. Öppna en anslutning med Agent

Funktionsinställningar:

I likhet med de andra funktionerna, i fältet "Config object" ska du ange lämpliga värden API _URL och auth.

{
 "API_URL": "https://example.env.from.esm.com/api/itsm/dataCardImport.ws?folderCode=chat_sessions",
 "resHistoryPath": "https://rail-webfront.app.inteliwi.se/channels/history?channelUid=",
 "auth": "Basic XXXXXXXXaaa111222333dddfffggXXXXXXXX"
}

ITAM-funktioner (QR-kod):

1. Begäran omEsmData

Baserat på funktionerna i Efecte-plattformen, levererade i R1_23, kan vi skicka olika variabler i URL:en. Med hjälp av denna funktion i plattformen kan vi enkelt lägga till det attribut vi väljer till adressen för klientens miljö (länk till ESS). Sedan, med hjälp av all data från custom_data, kan vi förbereda en begäran till ESM-plattformen om att skicka detaljerad information relaterad till användaren eller något attribut som lagras på datakortet på ESM.

2. SkapaIncident

Funktionen beskrivs i ITSM-funktioner.

Ett exempel på en httpBody-variabel från funktionen createIncident som innehåller valda attribut:

const httpBody = `<entityset>
<entity>

<group code="\${efecteChat.integration.ticket.folderCode}"/>
<attribute code="\${efecteChat.integration.deviceIncident.subject.attributeCode}">
<value>${subject}</value>
</attribute>
<attribute code="\${efecteChat.integration.deviceIncident.description.attributeCode}">
<value>${description}</value>
</attribute>
<attribute code="\${efecteChat.integration.deviceIncident.customer.attributeCode}">
<value>${customData.clientData.externalId}</value>
</attribute>
<attribute code="\${efecteChat.integration.deviceIncident.contactType.attributeCode}">
<value code="\${efecteChat.integration.deviceIncident.contactType.chatbot.valueCode}">ignored</value>
</attribute>
<attribute code="\${efecteChat.integration.deviceIncident.affectedDevice.attributeCode}">
<value>${vars.efecteID}</value>
</attribute>
</entity>

3. SkapaFörfrågan

Med hjälp av funktionen kan vi skapa olika förfrågningar från standardincidenter och serviceförfrågningar till våra egna anpassade förfrågningar. Funktionen createRequest är ett sådant exempel. Genom att endast ändra variabeln httpBody inuti funktionen kan vi skicka en given typ av förfrågan.

Ett exempel på en httpBody-variabel från crateRequest-funktionen som innehåller valda attribut:

const httpBody = `<entityset>
<entity>

<group code="\${efecteChat.integration.ticket.folderCode}"/>
<attribute code="\${efecteChat.integration.ticket.customer.attributeCode}">
<value>${customData.clientData.externalId}</value>
</attribute>
<attribute code="\${efecteChat.integration.ticket.contactType.attributeCode}">
<value code="\${efecteChat.integration.ticket.contactType.chatbot.valueCode}">ignored</value>
</attribute>
<attribute code="\${efecteChat.integration.ticket.chatSessionId.attributeCode}">
<value>${request.body.sessionId}</value>
</attribute>
<attribute code="\${efecteChat.integration.ticket.subject.attributeCode}">
<value>${params.scriptNode.functionParams.subject}</value>
</attribute>
</entity>

4. SkickaEsmDataMessage

Med hjälp av data som samlas in av funktionen requestEsmData kan vi dynamiskt generera ett meddelande som innehåller data från ESM (information om användaren, en given enhet eller annan data som laddats ner från data_card). Vi kan också generera knappar i Chatbot som kan länka till valfri plats (artiklar i ESM:s kunskapsbas, data som laddats ner från uid eller externa länkar).

Kom ihåg att alla funktioner som beskrivs här måste konfigureras i enlighet med instruktionerna som beskrivs i avsnittet ITSM-funktioner -> createTicket.

Användningsområdena för ovanstående funktioner är mycket breda, för enkel användning har vi beskrivit ett av projekten med hjälp av de beskrivna funktionerna.

Ett exempel på hur man använder den här funktionen är ett projekt som förberetts för en av våra kunder för att känna igen en enhet med hjälp av en QR-kod som placeras på en given enhet. Efter att ha skannat QR-koden loggar användaren in på ESS. Användaren omdirigeras automatiskt till Chatbot , där de kan hitta all nödvändig information om enheten. I nästa steg kan användaren rapportera en incident eller skicka en serviceförfrågan relaterad till den igenkända enheten. All nödvändig data, såsom användare och berörd enhet, läggs automatiskt till som ärendeattribut. Agenten som hanterar ärendet har all nödvändig information på en gång.

Effie AI-chatt

GPT_RequestEsmData:

Beskrivning:

Effie AI-chattintegrationen med ChatGPT innebär att ytterligare data från ESM person_data_card skickas tillsammans med konversationshistoriken. Den data vi vill skicka måste inkluderas i funktionen som attribut. Sedan analyserar modellen den presenterade frågan och baserat på konversationens sammanhang och den skickade informationen kan den ge ett korrekt svar. Denna integration utökar modellens möjligheter. Funktionen tillåter också att endast slutanvändarens fråga skickas och ett svar genereras baserat på den, utan ytterligare data. En sådan metod begränsar modellens möjligheter, men i det här fallet överförs ingen ESM-data.

Vad inkluderar:

1. deklaration av en funktion som skapar en klass med metoder som parsar xml till json och tilldelar den till XMLParser-variabeln

2. deklaration av en funktion som analyserar data mottagen från ESM till ett användarobjekt - parseUserData(data)

3. deklaration av en funktion som analyserar data mottagen från ESM till en array av användarens 5 senaste incidenter

4. deklaration av enum-typer: MessageButtonType och PostbackType

5. skapande av variabler: preparedAnswer (extraherad från request.body.params), parser (en instans av XMLParser-klassen med ett attribut {ignoreAttributes: false}), externalID

6. extrahering av objektet där 'type'-nyckeln har värdet 'CUSTOM_DATA' genom att skicka en begäran till adressen "https://rail-webfront.app.inteliwi.se/channels/history?channelUid=" + uid (params.channelUid). När vi tar emot ovanstående objekt extraheras värdet för 'externalId'-nyckeln (customData.clientData.externalId) från det och tilldelas variabeln externalID. Om den inte hittar en sådan nyckel returnerar den information om att den inte känner igen den och visar knappen 'Tillbaka'.

7. extraktion av användardata från ESM genom att skicka en begäran till adressen ".../api/itsm/search.ws?query=SELECT DISTINCT $first_name$,$workstations:workstation_model$, $mobile_devices:mobile_device_model$ FROM entity WHERE entity.template.code = 'person' AND $email$ =" + externalID, sedan analyserar vi den mottagna xml-datan med funktionen parseUserData

8. utvinning av data om användarens incidenter genom att skicka en begäran till adressen ".../api/itsm/search.ws?query=SELECT $subject$, $status$, $description$, $created$, $updated$ FROM entity WHERE entity.template.code = 'incident' AND $customer_email$ ="," + externalID + 'ORDER BY $updated$ DESC', sedan analyserar vi den mottagna xml-datan med funktionen parseUserIncidents

9. I success-objektet skickar vi ett customData-objekt med värdet { user } och kör nästa block i scenariot.