Podporované aktivity a události
Společné aktivity napříč kanály
- Text
- GetAvailableOperators
- GetAvailableGroups
- GetCallParams
- SetCallParams
- SendGuestOfflineEmail
- GetGuestIdentity
- Forward
- EndConversation
Specifické aktivity pro mluvii chat
- Typing
- DisableGuestInput
- EnableGuestInput
- GetHeroCards
- SendHeroCard
- ChatbotOpenFileUploadPrompt
- EnableGuestUpload
- DisableGuestUpload
- Adaptive Cards
- Buttons
Specifické aktivity pro Facebook
Události
Aktivity
Text
Pošle textovou zprávu s časovou stopou. Pro mluvii chat, Facebook a WhatsApp lze použít formátování textu - vzhledem k tomu, že různé kanály používají různé druhy formátování, zavedli jsme automatickou konverzi u nás v aplikaci a do mluvii stačí poslat vždy html elementy. Povolené jsou následující: strong, em a a.
Jednoduchá textová zpráva:
{
"sessionId": 1,
"type": "mluvii",
"timestamp": "2020-09-09T10:03:53.4976861+02:00",
"text": "Simple sample"
}
Formátovaná textová zpráva:
{
"sessionId": 1,
"type": "mluvii",
"timestamp": "2020-09-09T10:03:53.4976861+02:00",
"text": "<em>Italic part</em>, <strong>Bold part</strong>"
}
GetAvailableOperators
Získá seznam přihlášených operátorů. Vrací pouze operátory ze skupin definovaných v routingu, které splňují routingové podmínky.
Request JSON:
{
"sessionId": 1,
"activity": "GetAvailableOperators"
}
Odpověď Activity:
{
"sessionId": 1,
"activity": "GetAvailableOperatorsResponse",
"availableOperators": [
{
"displayName":"Katka",
"userId":1
},
{
"displayName":"Tomáš",
"userId":2
}
]
}
GetAvailableGroups
Získá seznam skupin operátorů. Vrací pouze skupiny definované v routingu, které splňují routingové podmínky.
Request JSON:
{
"sessionId": 1,
"activity": "GetAvailableGroups"
}
Odpověď Activity:
{
"sessionId": 1,
"activity": "GetAvailableGroupsResponse",
"availableGroups":[
{
"displayName":"Group one",
"groupId":1
},
{
"displayName":"Group two",
"groupId":2
}
]
}
GetCallParams
Získá CallParams spojené s aktivním sezením.
Request JSON:
{
"sessionId": 1,
"activity": "GetCallParams"
}
Odpověď Activity:
{
"sessionId": 1,
"activity": "GetCallParamsResponse",
"callParams": <dictionary>
}
SetCallParams
Nastaví CallParams k aktivnímu sezení.
Request JSON:
{
"sessionId": 1,
"activity": "SetCallParams",
"callParams": <dictionary>
}
Response Activity:
{
"sessionId": 1,
"activity": "SetCallParamsResponse",
"success": <boolean>,
"errorMessage": <string>
}
SendGuestOfflineEmail
Odešle email na adresu pro zprávy z offline formuláře. Offline formulář musí být nastaven na balíčku.
Request JSON:
{
"sessionId": 1,
"activity": "SendGuestOfflineEmail",
"subject": <string>,
"message": <string>,
"location": <string> (zdroj zprávy pro rozlišení, např: "Chatbot Mluviik")
}
GetGuestIdentity
Vratí všechny známé identifikátory uživatele.
Request JSON:
{
"sessionId": 1,
"activity": "GetGuestIdentity"
}
Odpověď Activity:
{
"sessionId": 1,
"activity": "GetGuestIdentityResponse",
"trackedGuestGuid": <Guid>, (unikátní identifikátor z cookie)
"phoneCallerId": <string>, (telefonní číslo)
"facebookPSID": <string>, (facebook identifikátor)
"facebookPageId": <string>, (facebook identifikátor)
"whatsAppContactId": <string>, (whatsapp identifikátor)
"vkContactId": <string>, (vk identifikátor)
}
Forward
Přesměruje interakci na živého operátora. Pokud není definován cílový operátor ani skupina, vybere se skupina automaticky podle nastavení routingového pravidla.
Request:
{
"sessionId": 1,
"activity": "Forward",
"operatorGroupId": <integer:optional>,
"userId": <integer:optional>
}
EndConversation
Ukončí sezení.
Request:
{
"sessionId": 1,
"activity": "EndConversation",
}
Typing
Zobrazí/skryje zda chatbot má "rozepsanou" zprávu.
Request:
{
"sessionId": 1,
"activity": "typing",
"show": true
}
DisableGuestInput
Zakáže uživateli psát do chatu.
Request:
{
"sessionId": 1,
"activity": "DisableGuestInput"
}
EnableGuestInput
Povolí uživateli psát do chatu.
Request:
{
"sessionId": 1,
"activity": "EnableGuestInput"
}
GetHeroCards
Vrátí existující Hero cards.
Request:
{
"activity": "GetHeroCards"
}
Response:
{
"activity": "GetHeroCardsResponse",
"heroCards": [
{
"displayName":"Hero card one",
"heroCardId":1
},
{
"displayName":"Hero card two",
"heroCardId":2
}
]
}
SendHeroCard
Posílá vybrany hero card do chatu klienta.
Request JSON:
{
"activity": "SendHeroCard",
"heroCardId": <integer:required>
}
Response Activity:
{
"activity": "SendHeroCardResponse",
"success": <boolean>,
"errorMessage": <string>
}
ChatbotOpenFileUploadPrompt
Otevře dialog, který umožní uživateli nahrát soubor.
Request JSON:
{
"sessionId": 1,
"activity": "ChatbotOpenFileUploadPrompt"
}
Odpověď Activity:
{
"activity": "ChatbotOpenFileUploadPromptResponse",
"fileUrl": <string>, (URL souboru nahraného uživatelem)
}
EnableGuestUpload
Povolit funkce, které umožňují nahrávání uživatelských souborů.
Request JSON:
{
"activity": "EnableGuestUpload"
}
Odpověď Activity:
{
"activity": "EnableGuestUploadResponse",
"success": <boolean>,
"errorMessage": <string>
}
DisableGuestUpload
Zakázat funkce, které umožňují nahrávání uživatelských souborů.
Request JSON:
{
"activity": "DisableGuestUpload"
}
Odpověď Activity:
{
"activity": "DisableGuestUploadResponse",
"success": <boolean>,
"errorMessage": <string>
}
Adaptive cards
Api podporuje formátování zpráv podle standardu https://adaptivecards.io.
Příklad použití adaptive card carousel:
{
"sessionId": 1,
"type": "message",
"timestamp": "2020-06-12T12:13:39.7593384+02:00",
"attachmentLayout": "carousel",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.hero",
"content": {
"title": "Street #1",
"subtitle": "1. Street Foo 254 Czechia",
"images": [
{
"url": "https://dev.virtualearth.net/REST/V1/Imagery/Map/Road?form=BTCTRL&mapArea=49.7463607788086,13.1083498001099,49.7932815551758,13.1951398849487&mapSize=500,280&pp=49.7616882324219,13.1491804122925;1;1&dpi=1&logo=always&key=ApBn8xoItlENbFx-rr1kzt_JakWdFTH24taCasYxQCgit15NtDeYrztO4chDtrg5"
}
],
"buttons": [
{
"type": "imBack",
"title": "Street Foo 254",
"value": 1
}
]
}
},
{
"contentType": "application/vnd.microsoft.card.hero",
"content": {
"title": "Street #2",
"subtitle": "1. Úlice, Plzeň, Czechia",
"images": [
{
"url": "https://dev.virtualearth.net/REST/V1/Imagery/Map/Road?form=BTCTRL&mapArea=49.7463607788086,13.1083498001099,49.7932815551758,13.1951398849487&mapSize=500,280&pp=49.7616882324219,13.1491804122925;1;1&dpi=1&logo=always&key=ApBn8xoItlENbFx-rr1kzt_JakWdFTH24taCasYxQCgit15NtDeYrztO4chDtrg5"
}
],
"buttons": [
{
"type": "imBack",
"title": "Úlice, Plzeň, Czechia",
"value": 1
}
]
}
},
{
"contentType": "application/vnd.microsoft.card.hero",
"content": {
"title": "Street #2 again",
"subtitle": "1. Úlice, Plzeň, Czechia",
"images": [
{
"url": "https://dev.virtualearth.net/REST/V1/Imagery/Map/Road?form=BTCTRL&mapArea=49.7463607788086,13.1083498001099,49.7932815551758,13.1951398849487&mapSize=500,280&pp=49.7616882324219,13.1491804122925;1;1&dpi=1&logo=always&key=ApBn8xoItlENbFx-rr1kzt_JakWdFTH24taCasYxQCgit15NtDeYrztO4chDtrg5"
}
],
"buttons": [
{
"type": "imBack",
"title": "Úlice, Plzeň, Czechia",
"value": 1
}
]
}
}
]
}
Buttons
Tlačítka lze poslat pomocí adaptive cards.
Request JSON:
{
"type": "message",
"timestamp": "2020-09-09T10:03:53.4976861+02:00",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.hero",
"content": {
"title": "Test buttons",
"buttons": [
{
"type": "imBack",
"title": "Title of first button",
"value": "Value of first button"
},
{
"type": "imBack",
"title": "Title of second button",
"value": "Value of second button"
}
]
}
}
]
}
Odpověď na vybrané tlačítko (Button 2) je pak aktivita typu Text v následujícím formátu:
{
"activity": "Text",
"timestamp": "2020-12-04T16:12:57.172",
"text": "Button 2",
"sessionId": 13,
"language": "cs",
"source": "Facebook"
}
Události
Příchozí zpráva
Když klient odešle textovou zprávu do chatu, na callback url přijde následující aktivita:
{
"sessionId": 1,
"activity": "Text",
"text": "Hello world"
}
Příchozí soubor
Pokud klient nahraje soubor pomocí sponky v inputu chatu, přijde na bota Activita v následujícím formátu.
{
"activity": "GuestFileUpload",
"fileUrl": <string>, (URL souboru nahraného uživatelem)
}