Skip to main content

Runtime Events

Studio supports a wide variety of events, both standard and custom, that allows you keep track of runtime usage data.

Event Keys

NameKeyDescriptionType
App IDappIdApplication IDstring
Session IDsessionIdUnique ID that persists throughout an entire sessionstring
User IDuserIdUnique ID that is specific to the user and persists across sessionsstring
TypetypeType of event, a category for organizing events."REQUEST", "ERROR", "AnalyticsEvent"
NamenameA subcategory of type.string
PayloadpayloadThe details of the eventstring, boolean, object, number or undefined

REQUEST Type Events

LAUNCH_REQUEST

A LAUNCH_REQUEST is used to document if a new session has started.

Example Event

{
"appId": "{{appId}}",
"channel": "postman",
"type": "REQUEST",
"name": "LAUNCH_REQUEST",
"platform": "postman",
"selectedHandler": "LaunchRequest",
"sessionId": "session-test-{{$randomUUID}}",
"userId": "user-test-{{$randomUUID}}"
}

AnalyticsEvents Type Events

REQUEST_RESPONSE

A REQUEST_RESPONSE event is used to document both the request from the user and the response back from the application. The payloadload is a stringified object that contains the request, response, and optional tag.

import {
Request,
Response
} from "stentor-models";

let payload: { request: Request, response: Response, tag?: string };

Example Event

{
"events": [
{
"appId": "{{appId}}",
"channel": "my-channel",
"type": "AnalyticsEvent",
"name": "REQUEST_RESPONSE",
"platform": "my-platform",
"selectedHandler": "LaunchRequest",
"sessionId": "session-test-{{$randomUUID}}",
"userId": "user-test-{{$randomUUID}}",
"payload": {
"request": {
"type": "INTENT_REQUEST",
"intentId": "HelpIntent",
"rawQuery": "i need help",
"sessionId": "session-test-{{$randomUUID}}",
"userId": "user-test-{{$randomUUID}}",
"matchConfidence": 1
},
"response": {
"outputSpeech": {
"displayText": "Here is what I found...",
"ssml": "<speak>Here is what I found...</speak>"
},
"displays": [
{
"type": "LIST",
"title": "Results",
"items": [
{
"title": "Title 1",
"token": "token-one",
"description": "Description 1"
}
]
}
]
}
}
}
]
}

Events API

You can PUT your own events to the API by using the following format:

PUT https://{{url}}/cms/apps/events

Body

{
"events": [
{
"appId": "{{appId}}",
"channel": "my-channel",
"type": "REQUEST",
"name": "LAUNCH_REQUEST",
"platform": "my-platform",
"selectedHandler": "LaunchRequest",
"sessionId": "session-test-{{$randomUUID}}",
"userId": "user-test-{{$randomUUID}}"
}
]
}