@botonic/plugin-hubtype-analytics 0.27.2 → 0.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +91 -42
- package/lib/cjs/event-models/ht-event-feedback-knowledgebase.d.ts +14 -0
- package/lib/cjs/event-models/ht-event-feedback-knowledgebase.js +22 -0
- package/lib/cjs/event-models/ht-event-feedback-knowledgebase.js.map +1 -0
- package/lib/cjs/event-models/ht-event-feedback.d.ts +4 -4
- package/lib/cjs/event-models/ht-event-feedback.js +2 -2
- package/lib/cjs/event-models/ht-event-feedback.js.map +1 -1
- package/lib/cjs/event-models/index.d.ts +1 -0
- package/lib/cjs/event-models/index.js +3 -1
- package/lib/cjs/event-models/index.js.map +1 -1
- package/lib/cjs/index.d.ts +3 -1
- package/lib/cjs/index.js +5 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types.d.ts +17 -6
- package/lib/cjs/types.js +1 -0
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/utils.js +2 -0
- package/lib/cjs/utils.js.map +1 -1
- package/lib/esm/event-models/ht-event-feedback-knowledgebase.d.ts +14 -0
- package/lib/esm/event-models/ht-event-feedback-knowledgebase.js +18 -0
- package/lib/esm/event-models/ht-event-feedback-knowledgebase.js.map +1 -0
- package/lib/esm/event-models/ht-event-feedback.d.ts +4 -4
- package/lib/esm/event-models/ht-event-feedback.js +2 -2
- package/lib/esm/event-models/ht-event-feedback.js.map +1 -1
- package/lib/esm/event-models/index.d.ts +1 -0
- package/lib/esm/event-models/index.js +1 -0
- package/lib/esm/event-models/index.js.map +1 -1
- package/lib/esm/index.d.ts +3 -1
- package/lib/esm/index.js +5 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types.d.ts +17 -6
- package/lib/esm/types.js +1 -0
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/utils.js +3 -1
- package/lib/esm/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/event-models/ht-event-feedback-knowledgebase.ts +33 -0
- package/src/event-models/ht-event-feedback.ts +6 -6
- package/src/event-models/index.ts +1 -0
- package/src/index.ts +7 -2
- package/src/types.ts +18 -5
- package/src/utils.ts +4 -0
package/README.md
CHANGED
|
@@ -30,59 +30,108 @@ By default if you do not define these functions it will use the language defined
|
|
|
30
30
|
]
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
## Plugin Options
|
|
34
|
+
|
|
35
|
+
- **`getLaguange`**: getLaguange(request) function to define the language when it is not in request.session.user.extra_data.language
|
|
36
|
+
- **`getCountry`**: getCountry(request) function to define the country when it is not in request.session.user.extra_data.country
|
|
37
|
+
|
|
33
38
|
## Use
|
|
34
39
|
|
|
35
|
-
|
|
40
|
+
All events can be used in bot actions.
|
|
41
|
+
The following events can also be used from the frontend (webchat and webviews): EventFeedback, EventWebview, EventCustom
|
|
36
42
|
|
|
37
|
-
-
|
|
43
|
+
- To track the content displayed in a bot that is made with Flow Builder you can import the `trackFlowContent` function of the `@botonic/plugin-flow-builder`.
|
|
38
44
|
|
|
39
|
-
|
|
40
|
-
const hubtypeAnalyticsPlugin = request.plugins.hubtypeAnalytics
|
|
41
|
-
const eventProps = {
|
|
42
|
-
action: FeedbackAction.case,
|
|
43
|
-
data: {
|
|
44
|
-
possibleOptions: ['*', '**', '***', '****', '*****'],
|
|
45
|
-
possibleValues: [1, 2, 3, 4, 5],
|
|
46
|
-
option: '**',
|
|
47
|
-
value: 2,
|
|
48
|
-
}
|
|
49
|
-
}
|
|
45
|
+
e.g. WelcomeAction that display start contents
|
|
50
46
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
console.log(response)
|
|
54
|
-
} catch(error) {
|
|
55
|
-
console.error(error)
|
|
56
|
-
}
|
|
47
|
+
```typescript
|
|
48
|
+
import { trackFlowContent } from '@botonic/plugin-flow-builder'
|
|
57
49
|
|
|
50
|
+
export class WelcomeAction extends FlowBuilderMultichannelAction {
|
|
51
|
+
static contextType = RequestContext
|
|
52
|
+
static async botonicInit(
|
|
53
|
+
request: BotRequest
|
|
54
|
+
): Promise<FlowBuilderActionProps> {
|
|
55
|
+
const flowBuilder = request.plugins.flowBuilder
|
|
56
|
+
const contents = await flowBuilder.getStartContents('es-ES')
|
|
57
|
+
trackFlowContent(request, contents)
|
|
58
|
+
return { contents }
|
|
59
|
+
}
|
|
60
|
+
}
|
|
58
61
|
```
|
|
59
62
|
|
|
60
|
-
-
|
|
61
|
-
flowThreadId -> This value is managed by the plugin-flow-builder, stored in the session and updated every time the content connected to the conversation start is displayed
|
|
63
|
+
- To track a handoff, you can use an instance of `HandOffBuilder` from `@botonic/core` `handoffBuilder.withBotEvent()` so thaht the backend will create the event after the handoff has been done correctly.
|
|
62
64
|
|
|
65
|
+
```typescript
|
|
66
|
+
const handOffBuilder = new HandOffBuilder(request.session)
|
|
67
|
+
handOffBuilder.withQueue(this.queue.id)
|
|
68
|
+
handOffBuilder.withBotEvent({
|
|
69
|
+
language: request.session.user.extra_data.language,
|
|
70
|
+
country: request.session.user.extra_data.country,
|
|
71
|
+
})
|
|
72
|
+
await handOffBuilder.handOff()
|
|
63
73
|
```
|
|
64
|
-
const hubtypeAnalyticsPlugin = request.plugins.hubtypeAnalytics
|
|
65
|
-
const eventProps = {
|
|
66
|
-
action: FlowAction.flowNode,
|
|
67
|
-
data: {
|
|
68
|
-
flowThreadId: request.session.flow_thread_id,
|
|
69
|
-
flowId: '8d527e7d-ea6d-5422-b810-5b4c8be7657b',
|
|
70
|
-
flowName: 'Main',
|
|
71
|
-
flowNodeId: 'WELCOME_MSG',
|
|
72
|
-
flowNodeContentId: '607205c9-6814-45ba-9aeb-2dd08d0cb529',
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
try {
|
|
77
|
-
const response = await hubtypeAnalyticsPlugin.trackEvent(request, event)
|
|
78
|
-
console.log(response)
|
|
79
|
-
} catch(error) {
|
|
80
|
-
console.error(error)
|
|
81
|
-
}
|
|
82
74
|
|
|
75
|
+
- To track a feedback given by the user after a handoff. If you add a free comment this field is only stored in hubtype DB and no other service will be used to store this sensitive data.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
const hubtypeAnalyticsPlugin = request.plugins.hubtypeAnalytics
|
|
79
|
+
const event = {
|
|
80
|
+
action: FeedbackAction.case,
|
|
81
|
+
data: {
|
|
82
|
+
feedbackTargetId: request.session.case_id,
|
|
83
|
+
feedbackGroupId: uuid(),
|
|
84
|
+
possibleOptions: ['*', '**', '***', '****', '*****'],
|
|
85
|
+
possibleValues: [1, 2, 3, 4, 5],
|
|
86
|
+
option: '**',
|
|
87
|
+
value: 2,
|
|
88
|
+
comment: 'free comment writen by the user',
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
try {
|
|
93
|
+
const response = await hubtypeAnalyticsPlugin.trackEvent(request, event)
|
|
94
|
+
console.log(response)
|
|
95
|
+
} catch (error) {
|
|
96
|
+
console.error(error)
|
|
97
|
+
}
|
|
83
98
|
```
|
|
84
99
|
|
|
85
|
-
|
|
100
|
+
- To track an event from a webview. In a webview you don't have the plugins initialised, we have to create an instance of `BotonicPluginHubtypeAnalytics`
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
const hubtypeAnalytics = new BotonicPluginHubtypeAnalytics()
|
|
104
|
+
const event = {
|
|
105
|
+
action: EventAction.WebviewStep,
|
|
106
|
+
webviewThreadId,
|
|
107
|
+
webviewName,
|
|
108
|
+
webviewStepName,
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
try {
|
|
112
|
+
const response = await hubtypeAnalyticsPlugin.trackEvent(request, event)
|
|
113
|
+
console.log(response)
|
|
114
|
+
} catch (error) {
|
|
115
|
+
console.error(error)
|
|
116
|
+
}
|
|
117
|
+
```
|
|
86
118
|
|
|
87
|
-
-
|
|
88
|
-
|
|
119
|
+
- Finally, custom events can also be created. In a custom event you can track whatever you want but it is preferable not to use them too much.
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
const hubtypeAnalytics = new BotonicPluginHubtypeAnalytics()
|
|
123
|
+
const event = {
|
|
124
|
+
action: EventAction.Custom,
|
|
125
|
+
customFields: {
|
|
126
|
+
paymentType: 'paypal',
|
|
127
|
+
bagsAdded: 3,
|
|
128
|
+
},
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
try {
|
|
132
|
+
const response = await hubtypeAnalyticsPlugin.trackEvent(request, event)
|
|
133
|
+
console.log(response)
|
|
134
|
+
} catch (error) {
|
|
135
|
+
console.error(error)
|
|
136
|
+
}
|
|
137
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventAction, EventFeedbackKnowledgebase, RequestData } from '../types';
|
|
2
|
+
import { HtEvent } from './ht-event';
|
|
3
|
+
export declare class HtEventFeedbackKnowledgebase extends HtEvent {
|
|
4
|
+
action: EventAction.FeedbackKnowledgebase;
|
|
5
|
+
knowledgebase_inference_id: string;
|
|
6
|
+
feedback_target_id: string;
|
|
7
|
+
feedback_group_id: string;
|
|
8
|
+
possible_options: string[];
|
|
9
|
+
possible_values?: number[];
|
|
10
|
+
option: string;
|
|
11
|
+
value?: number;
|
|
12
|
+
comment?: string;
|
|
13
|
+
constructor(event: EventFeedbackKnowledgebase, requestData: RequestData);
|
|
14
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HtEventFeedbackKnowledgebase = void 0;
|
|
4
|
+
const types_1 = require("../types");
|
|
5
|
+
const ht_event_1 = require("./ht-event");
|
|
6
|
+
class HtEventFeedbackKnowledgebase extends ht_event_1.HtEvent {
|
|
7
|
+
constructor(event, requestData) {
|
|
8
|
+
super(event, requestData);
|
|
9
|
+
this.type = types_1.EventType.WebEvent;
|
|
10
|
+
this.action = event.action;
|
|
11
|
+
this.knowledgebase_inference_id = event.knowledgebaseInferenceId;
|
|
12
|
+
this.feedback_target_id = event.feedbackTargetId;
|
|
13
|
+
this.feedback_group_id = event.feedbackGroupId;
|
|
14
|
+
this.possible_options = event.possibleOptions;
|
|
15
|
+
this.possible_values = event.possibleValues;
|
|
16
|
+
this.option = event.option;
|
|
17
|
+
this.value = event.value;
|
|
18
|
+
this.comment = event.comment;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.HtEventFeedbackKnowledgebase = HtEventFeedbackKnowledgebase;
|
|
22
|
+
//# sourceMappingURL=ht-event-feedback-knowledgebase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ht-event-feedback-knowledgebase.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-feedback-knowledgebase.ts"],"names":[],"mappings":";;;AAAA,oCAKiB;AACjB,yCAAoC;AAEpC,MAAa,4BAA6B,SAAQ,kBAAO;IAWvD,YAAY,KAAiC,EAAE,WAAwB;QACrE,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,iBAAS,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC,wBAAwB,CAAA;QAChE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAA;QAChD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC7C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC9B,CAAC;CACF;AAxBD,oEAwBC"}
|
|
@@ -2,12 +2,12 @@ import { EventAction, EventFeedback, RequestData } from '../types';
|
|
|
2
2
|
import { HtEvent } from './ht-event';
|
|
3
3
|
export declare class HtEventFeedback extends HtEvent {
|
|
4
4
|
action: EventAction.FeedbackCase | EventAction.FeedbackConversation | EventAction.FeedbackMessage | EventAction.FeedbackWebview;
|
|
5
|
-
feedback_target_id
|
|
6
|
-
feedback_group_id
|
|
5
|
+
feedback_target_id: string;
|
|
6
|
+
feedback_group_id: string;
|
|
7
7
|
possible_options: string[];
|
|
8
|
-
possible_values
|
|
8
|
+
possible_values?: number[];
|
|
9
9
|
option: string;
|
|
10
|
-
value
|
|
10
|
+
value?: number;
|
|
11
11
|
comment?: string;
|
|
12
12
|
constructor(event: EventFeedback, requestData: RequestData);
|
|
13
13
|
}
|
|
@@ -8,8 +8,8 @@ class HtEventFeedback extends ht_event_1.HtEvent {
|
|
|
8
8
|
super(event, requestData);
|
|
9
9
|
this.type = types_1.EventType.WebEvent;
|
|
10
10
|
this.action = event.action;
|
|
11
|
-
this.feedback_target_id = event.feedbackTargetId;
|
|
12
|
-
this.feedback_group_id = event.feedbackGroupId;
|
|
11
|
+
this.feedback_target_id = event.feedbackTargetId;
|
|
12
|
+
this.feedback_group_id = event.feedbackGroupId;
|
|
13
13
|
this.possible_options = event.possibleOptions;
|
|
14
14
|
this.possible_values = event.possibleValues;
|
|
15
15
|
this.option = event.option;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ht-event-feedback.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-feedback.ts"],"names":[],"mappings":";;;AAAA,oCAA6E;AAC7E,yCAAoC;AAEpC,MAAa,eAAgB,SAAQ,kBAAO;IAc1C,YAAY,KAAoB,EAAE,WAAwB;QACxD,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,iBAAS,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAA
|
|
1
|
+
{"version":3,"file":"ht-event-feedback.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-feedback.ts"],"names":[],"mappings":";;;AAAA,oCAA6E;AAC7E,yCAAoC;AAEpC,MAAa,eAAgB,SAAQ,kBAAO;IAc1C,YAAY,KAAoB,EAAE,WAAwB;QACxD,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,iBAAS,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAA;QAChD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC7C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC9B,CAAC;CACF;AA1BD,0CA0BC"}
|
|
@@ -2,6 +2,7 @@ export { HtEvent } from './ht-event';
|
|
|
2
2
|
export { HtEventCustom } from './ht-event-custom';
|
|
3
3
|
export { HtEventFallback } from './ht-event-fallback';
|
|
4
4
|
export { HtEventFeedback } from './ht-event-feedback';
|
|
5
|
+
export { HtEventFeedbackKnowledgebase } from './ht-event-feedback-knowledgebase';
|
|
5
6
|
export { HtEventFlow } from './ht-event-flow';
|
|
6
7
|
export { HtEventHandoff } from './ht-event-handoff';
|
|
7
8
|
export { HtEventHandoffOption } from './ht-event-handoff-option';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HtEventWebview = exports.HtEventKnowledgeBase = exports.HtEventKeyword = exports.HtEventIntentSmart = exports.HtEventIntent = exports.HtEventHandoffOption = exports.HtEventHandoff = exports.HtEventFlow = exports.HtEventFeedback = exports.HtEventFallback = exports.HtEventCustom = exports.HtEvent = void 0;
|
|
3
|
+
exports.HtEventWebview = exports.HtEventKnowledgeBase = exports.HtEventKeyword = exports.HtEventIntentSmart = exports.HtEventIntent = exports.HtEventHandoffOption = exports.HtEventHandoff = exports.HtEventFlow = exports.HtEventFeedbackKnowledgebase = exports.HtEventFeedback = exports.HtEventFallback = exports.HtEventCustom = exports.HtEvent = void 0;
|
|
4
4
|
var ht_event_1 = require("./ht-event");
|
|
5
5
|
Object.defineProperty(exports, "HtEvent", { enumerable: true, get: function () { return ht_event_1.HtEvent; } });
|
|
6
6
|
var ht_event_custom_1 = require("./ht-event-custom");
|
|
@@ -9,6 +9,8 @@ var ht_event_fallback_1 = require("./ht-event-fallback");
|
|
|
9
9
|
Object.defineProperty(exports, "HtEventFallback", { enumerable: true, get: function () { return ht_event_fallback_1.HtEventFallback; } });
|
|
10
10
|
var ht_event_feedback_1 = require("./ht-event-feedback");
|
|
11
11
|
Object.defineProperty(exports, "HtEventFeedback", { enumerable: true, get: function () { return ht_event_feedback_1.HtEventFeedback; } });
|
|
12
|
+
var ht_event_feedback_knowledgebase_1 = require("./ht-event-feedback-knowledgebase");
|
|
13
|
+
Object.defineProperty(exports, "HtEventFeedbackKnowledgebase", { enumerable: true, get: function () { return ht_event_feedback_knowledgebase_1.HtEventFeedbackKnowledgebase; } });
|
|
12
14
|
var ht_event_flow_1 = require("./ht-event-flow");
|
|
13
15
|
Object.defineProperty(exports, "HtEventFlow", { enumerable: true, get: function () { return ht_event_flow_1.HtEventFlow; } });
|
|
14
16
|
var ht_event_handoff_1 = require("./ht-event-handoff");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-models/index.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAA3B,mGAAA,OAAO,OAAA;AAChB,qDAAiD;AAAxC,gHAAA,aAAa,OAAA;AACtB,yDAAqD;AAA5C,oHAAA,eAAe,OAAA;AACxB,yDAAqD;AAA5C,oHAAA,eAAe,OAAA;AACxB,iDAA6C;AAApC,4GAAA,WAAW,OAAA;AACpB,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,qEAAgE;AAAvD,+HAAA,oBAAoB,OAAA;AAC7B,qDAAiD;AAAxC,gHAAA,aAAa,OAAA;AACtB,iEAA4D;AAAnD,2HAAA,kBAAkB,OAAA;AAC3B,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,qEAAgE;AAAvD,+HAAA,oBAAoB,OAAA;AAC7B,uDAAmD;AAA1C,kHAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-models/index.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAA3B,mGAAA,OAAO,OAAA;AAChB,qDAAiD;AAAxC,gHAAA,aAAa,OAAA;AACtB,yDAAqD;AAA5C,oHAAA,eAAe,OAAA;AACxB,yDAAqD;AAA5C,oHAAA,eAAe,OAAA;AACxB,qFAAgF;AAAvE,+IAAA,4BAA4B,OAAA;AACrC,iDAA6C;AAApC,4GAAA,WAAW,OAAA;AACpB,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,qEAAgE;AAAvD,+HAAA,oBAAoB,OAAA;AAC7B,qDAAiD;AAAxC,gHAAA,aAAa,OAAA;AACtB,iEAA4D;AAAnD,2HAAA,kBAAkB,OAAA;AAC3B,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,qEAAgE;AAAvD,+HAAA,oBAAoB,OAAA;AAC7B,uDAAmD;AAA1C,kHAAA,cAAc,OAAA"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -12,7 +12,9 @@ export default class BotonicPluginHubtypeAnalytics implements Plugin {
|
|
|
12
12
|
post(): void;
|
|
13
13
|
getUrl(request: BotRequest, eventType: EventType): string;
|
|
14
14
|
getRequestData(request: BotRequest): RequestData;
|
|
15
|
-
trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<
|
|
15
|
+
trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<{
|
|
16
|
+
data: string;
|
|
17
|
+
} | import("axios").AxiosResponse<any, any>>;
|
|
16
18
|
private sendEvent;
|
|
17
19
|
}
|
|
18
20
|
export * from './types';
|
package/lib/cjs/index.js
CHANGED
|
@@ -33,6 +33,11 @@ class BotonicPluginHubtypeAnalytics {
|
|
|
33
33
|
}
|
|
34
34
|
trackEvent(request, htEventProps) {
|
|
35
35
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
if (request.session.is_test_integration) {
|
|
37
|
+
return Promise.resolve({
|
|
38
|
+
data: 'Event not sent because it is a test integration',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
36
41
|
const requestData = this.getRequestData(request);
|
|
37
42
|
const event = (0, utils_1.createHtEvent)(requestData, htEventProps);
|
|
38
43
|
return this.sendEvent(request, event);
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,0DAAyC;AAGzC,mCAA8D;AAC9D,mCAAuC;AAOvC,SAAS,kBAAkB,CAAC,OAAmB;IAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAA;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAmB;IAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAA;AAChD,CAAC;AAED,MAAqB,6BAA6B;IAIhD,YAAY,OAAiC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;QACvE,IAAI,CAAC,WAAW,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,kBAAkB,CAAA;QAC7D,IAAI,CAAC,UAAU,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,KAAI,iBAAiB,CAAA;IAC5D,CAAC;IAED,IAAI;QACF,OAAM;IACR,CAAC;IAED,MAAM,CAAC,OAAmB,EAAE,SAAoB;QAC9C,MAAM,QAAQ,GACZ,SAAS,KAAK,iBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;QACpC,OAAO,GAAG,IAAI,CAAC,OAAO,oCAAoC,KAAK,IAAI,QAAQ,GAAG,CAAA;IAChF,CAAC;IAED,cAAc,CAAC,OAAmB;QAChC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;SAChC,CAAA;IACH,CAAC;IAEK,UAAU,CAAC,OAAmB,EAAE,YAA0B;;YAC9D,IAAI,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBACvC,OAAO,OAAO,CAAC,OAAO,CAAC;oBACrB,IAAI,EAAE,iDAAiD;iBACxD,CAAC,CAAA;aACH;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,IAAA,qBAAa,EAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YACtD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACvC,CAAC;KAAA;IAEO,SAAS,CAAC,OAAmB,EAAE,KAAc;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAA;QAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,iBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAE1E,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;CACF;AAhDD,gDAgDC;AAED,kDAAuB;AACvB,kDAAuB"}
|
package/lib/cjs/types.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare enum EventAction {
|
|
|
6
6
|
FeedbackCase = "feedback_case",
|
|
7
7
|
FeedbackMessage = "feedback_message",
|
|
8
8
|
FeedbackConversation = "feedback_conversation",
|
|
9
|
+
FeedbackKnowledgebase = "feedback_knowledgebase",
|
|
9
10
|
FeedbackWebview = "feedback_webview",
|
|
10
11
|
FlowNode = "flow_node",
|
|
11
12
|
HandoffOption = "handoff_option",
|
|
@@ -25,13 +26,23 @@ export interface HtBaseEventProps {
|
|
|
25
26
|
}
|
|
26
27
|
export interface EventFeedback extends HtBaseEventProps {
|
|
27
28
|
action: EventAction.FeedbackCase | EventAction.FeedbackConversation | EventAction.FeedbackMessage | EventAction.FeedbackWebview;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
feedbackGroupId?: string;
|
|
29
|
+
feedbackTargetId: string;
|
|
30
|
+
feedbackGroupId: string;
|
|
31
31
|
possibleOptions: string[];
|
|
32
|
-
possibleValues
|
|
32
|
+
possibleValues?: number[];
|
|
33
33
|
option: string;
|
|
34
|
-
value
|
|
34
|
+
value?: number;
|
|
35
|
+
comment?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface EventFeedbackKnowledgebase extends HtBaseEventProps {
|
|
38
|
+
action: EventAction.FeedbackKnowledgebase;
|
|
39
|
+
knowledgebaseInferenceId: string;
|
|
40
|
+
feedbackTargetId: string;
|
|
41
|
+
feedbackGroupId: string;
|
|
42
|
+
possibleOptions: string[];
|
|
43
|
+
possibleValues?: number[];
|
|
44
|
+
option: string;
|
|
45
|
+
value?: number;
|
|
35
46
|
comment?: string;
|
|
36
47
|
}
|
|
37
48
|
export interface EventFlow extends HtBaseEventProps {
|
|
@@ -114,7 +125,7 @@ export interface EventCustom extends HtBaseEventProps {
|
|
|
114
125
|
customFields?: Record<string, any>;
|
|
115
126
|
customSensitiveFields?: Record<string, any>;
|
|
116
127
|
}
|
|
117
|
-
export type HtEventProps = EventFeedback | EventFlow | EventHandoff | EventHandoffOption | EventIntent | EventKeyword | EventIntentSmart | EventKnowledgeBase | EventFallback | EventWebview | EventCustom;
|
|
128
|
+
export type HtEventProps = EventFeedback | EventFeedbackKnowledgebase | EventFlow | EventHandoff | EventHandoffOption | EventIntent | EventKeyword | EventIntentSmart | EventKnowledgeBase | EventFallback | EventWebview | EventCustom;
|
|
118
129
|
export interface RequestData {
|
|
119
130
|
language: string;
|
|
120
131
|
country: string;
|
package/lib/cjs/types.js
CHANGED
|
@@ -11,6 +11,7 @@ var EventAction;
|
|
|
11
11
|
EventAction["FeedbackCase"] = "feedback_case";
|
|
12
12
|
EventAction["FeedbackMessage"] = "feedback_message";
|
|
13
13
|
EventAction["FeedbackConversation"] = "feedback_conversation";
|
|
14
|
+
EventAction["FeedbackKnowledgebase"] = "feedback_knowledgebase";
|
|
14
15
|
EventAction["FeedbackWebview"] = "feedback_webview";
|
|
15
16
|
EventAction["FlowNode"] = "flow_node";
|
|
16
17
|
EventAction["HandoffOption"] = "handoff_option";
|
package/lib/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,kCAAqB,CAAA;AACvB,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,kCAAqB,CAAA;AACvB,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB;AAED,IAAY,WAkBX;AAlBD,WAAY,WAAW;IACrB,6CAA8B,CAAA;IAC9B,mDAAoC,CAAA;IACpC,6DAA8C,CAAA;IAC9C,+DAAgD,CAAA;IAChD,mDAAoC,CAAA;IACpC,qCAAsB,CAAA;IACtB,+CAAgC,CAAA;IAChC,iDAAkC,CAAA;IAClC,2CAA4B,CAAA;IAC5B,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,+CAAgC,CAAA;IAChC,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;IACrB,2CAA4B,CAAA;IAC5B,yCAA0B,CAAA;IAC1B,gCAAiB,CAAA;AACnB,CAAC,EAlBW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAkBtB;AAiGD,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,0DAA+B,CAAA;AACjC,CAAC,EAHW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAGlC"}
|
package/lib/cjs/utils.js
CHANGED
|
@@ -10,6 +10,8 @@ function createHtEvent(requestData, htEventProps) {
|
|
|
10
10
|
case types_1.EventAction.FeedbackMessage:
|
|
11
11
|
case types_1.EventAction.FeedbackWebview:
|
|
12
12
|
return new event_models_1.HtEventFeedback(htEventProps, requestData);
|
|
13
|
+
case types_1.EventAction.FeedbackKnowledgebase:
|
|
14
|
+
return new event_models_1.HtEventFeedbackKnowledgebase(htEventProps, requestData);
|
|
13
15
|
case types_1.EventAction.FlowNode:
|
|
14
16
|
return new event_models_1.HtEventFlow(htEventProps, requestData);
|
|
15
17
|
case types_1.EventAction.HandoffOption:
|
package/lib/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,iDAcuB;AACvB,mCAAgE;AAEhE,SAAgB,aAAa,CAC3B,WAAwB,EACxB,YAA0B;IAE1B,QAAQ,YAAY,CAAC,MAAM,EAAE;QAC3B,KAAK,mBAAW,CAAC,YAAY,CAAC;QAC9B,KAAK,mBAAW,CAAC,oBAAoB,CAAC;QACtC,KAAK,mBAAW,CAAC,eAAe,CAAC;QACjC,KAAK,mBAAW,CAAC,eAAe;YAC9B,OAAO,IAAI,8BAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEvD,KAAK,mBAAW,CAAC,qBAAqB;YACpC,OAAO,IAAI,2CAA4B,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEpE,KAAK,mBAAW,CAAC,QAAQ;YACvB,OAAO,IAAI,0BAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEnD,KAAK,mBAAW,CAAC,aAAa;YAC5B,OAAO,IAAI,mCAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5D,KAAK,mBAAW,CAAC,cAAc,CAAC;QAChC,KAAK,mBAAW,CAAC,WAAW;YAC1B,OAAO,IAAI,6BAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,mBAAW,CAAC,MAAM;YACrB,OAAO,IAAI,4BAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD,KAAK,mBAAW,CAAC,OAAO;YACtB,OAAO,IAAI,6BAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,mBAAW,CAAC,WAAW;YAC1B,OAAO,IAAI,iCAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE1D,KAAK,mBAAW,CAAC,aAAa;YAC5B,OAAO,IAAI,mCAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5D,KAAK,mBAAW,CAAC,QAAQ;YACvB,OAAO,IAAI,8BAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEvD,KAAK,mBAAW,CAAC,WAAW,CAAC;QAC7B,KAAK,mBAAW,CAAC,UAAU;YACzB,OAAO,IAAI,6BAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,mBAAW,CAAC,MAAM;YACrB,OAAO,IAAI,4BAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD;YACE,OAAO,IAAI,sBAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;KAChD;AACH,CAAC;AAjDD,sCAiDC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventAction, EventFeedbackKnowledgebase, RequestData } from '../types';
|
|
2
|
+
import { HtEvent } from './ht-event';
|
|
3
|
+
export declare class HtEventFeedbackKnowledgebase extends HtEvent {
|
|
4
|
+
action: EventAction.FeedbackKnowledgebase;
|
|
5
|
+
knowledgebase_inference_id: string;
|
|
6
|
+
feedback_target_id: string;
|
|
7
|
+
feedback_group_id: string;
|
|
8
|
+
possible_options: string[];
|
|
9
|
+
possible_values?: number[];
|
|
10
|
+
option: string;
|
|
11
|
+
value?: number;
|
|
12
|
+
comment?: string;
|
|
13
|
+
constructor(event: EventFeedbackKnowledgebase, requestData: RequestData);
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventType, } from '../types';
|
|
2
|
+
import { HtEvent } from './ht-event';
|
|
3
|
+
export class HtEventFeedbackKnowledgebase extends HtEvent {
|
|
4
|
+
constructor(event, requestData) {
|
|
5
|
+
super(event, requestData);
|
|
6
|
+
this.type = EventType.WebEvent;
|
|
7
|
+
this.action = event.action;
|
|
8
|
+
this.knowledgebase_inference_id = event.knowledgebaseInferenceId;
|
|
9
|
+
this.feedback_target_id = event.feedbackTargetId;
|
|
10
|
+
this.feedback_group_id = event.feedbackGroupId;
|
|
11
|
+
this.possible_options = event.possibleOptions;
|
|
12
|
+
this.possible_values = event.possibleValues;
|
|
13
|
+
this.option = event.option;
|
|
14
|
+
this.value = event.value;
|
|
15
|
+
this.comment = event.comment;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ht-event-feedback-knowledgebase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ht-event-feedback-knowledgebase.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-feedback-knowledgebase.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,GAEV,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,4BAA6B,SAAQ,OAAO;IAWvD,YAAY,KAAiC,EAAE,WAAwB;QACrE,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC,wBAAwB,CAAA;QAChE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAA;QAChD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC7C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC9B,CAAC;CACF"}
|
|
@@ -2,12 +2,12 @@ import { EventAction, EventFeedback, RequestData } from '../types';
|
|
|
2
2
|
import { HtEvent } from './ht-event';
|
|
3
3
|
export declare class HtEventFeedback extends HtEvent {
|
|
4
4
|
action: EventAction.FeedbackCase | EventAction.FeedbackConversation | EventAction.FeedbackMessage | EventAction.FeedbackWebview;
|
|
5
|
-
feedback_target_id
|
|
6
|
-
feedback_group_id
|
|
5
|
+
feedback_target_id: string;
|
|
6
|
+
feedback_group_id: string;
|
|
7
7
|
possible_options: string[];
|
|
8
|
-
possible_values
|
|
8
|
+
possible_values?: number[];
|
|
9
9
|
option: string;
|
|
10
|
-
value
|
|
10
|
+
value?: number;
|
|
11
11
|
comment?: string;
|
|
12
12
|
constructor(event: EventFeedback, requestData: RequestData);
|
|
13
13
|
}
|
|
@@ -5,8 +5,8 @@ export class HtEventFeedback extends HtEvent {
|
|
|
5
5
|
super(event, requestData);
|
|
6
6
|
this.type = EventType.WebEvent;
|
|
7
7
|
this.action = event.action;
|
|
8
|
-
this.feedback_target_id = event.feedbackTargetId;
|
|
9
|
-
this.feedback_group_id = event.feedbackGroupId;
|
|
8
|
+
this.feedback_target_id = event.feedbackTargetId;
|
|
9
|
+
this.feedback_group_id = event.feedbackGroupId;
|
|
10
10
|
this.possible_options = event.possibleOptions;
|
|
11
11
|
this.possible_values = event.possibleValues;
|
|
12
12
|
this.option = event.option;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ht-event-feedback.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,SAAS,EAAe,MAAM,UAAU,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAc1C,YAAY,KAAoB,EAAE,WAAwB;QACxD,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAA
|
|
1
|
+
{"version":3,"file":"ht-event-feedback.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,SAAS,EAAe,MAAM,UAAU,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAc1C,YAAY,KAAoB,EAAE,WAAwB;QACxD,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAA;QAChD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC7C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC9B,CAAC;CACF"}
|
|
@@ -2,6 +2,7 @@ export { HtEvent } from './ht-event';
|
|
|
2
2
|
export { HtEventCustom } from './ht-event-custom';
|
|
3
3
|
export { HtEventFallback } from './ht-event-fallback';
|
|
4
4
|
export { HtEventFeedback } from './ht-event-feedback';
|
|
5
|
+
export { HtEventFeedbackKnowledgebase } from './ht-event-feedback-knowledgebase';
|
|
5
6
|
export { HtEventFlow } from './ht-event-flow';
|
|
6
7
|
export { HtEventHandoff } from './ht-event-handoff';
|
|
7
8
|
export { HtEventHandoffOption } from './ht-event-handoff-option';
|
|
@@ -2,6 +2,7 @@ export { HtEvent } from './ht-event';
|
|
|
2
2
|
export { HtEventCustom } from './ht-event-custom';
|
|
3
3
|
export { HtEventFallback } from './ht-event-fallback';
|
|
4
4
|
export { HtEventFeedback } from './ht-event-feedback';
|
|
5
|
+
export { HtEventFeedbackKnowledgebase } from './ht-event-feedback-knowledgebase';
|
|
5
6
|
export { HtEventFlow } from './ht-event-flow';
|
|
6
7
|
export { HtEventHandoff } from './ht-event-handoff';
|
|
7
8
|
export { HtEventHandoffOption } from './ht-event-handoff-option';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -13,7 +13,9 @@ export default class BotonicPluginHubtypeAnalytics implements Plugin {
|
|
|
13
13
|
post(): void;
|
|
14
14
|
getUrl(request: BotRequest, eventType: EventType): string;
|
|
15
15
|
getRequestData(request: BotRequest): RequestData;
|
|
16
|
-
trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<
|
|
16
|
+
trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<{
|
|
17
|
+
data: string;
|
|
18
|
+
} | axios.AxiosResponse<any, any>>;
|
|
17
19
|
private sendEvent;
|
|
18
20
|
}
|
|
19
21
|
export * from './types';
|
package/lib/esm/index.js
CHANGED
|
@@ -31,6 +31,11 @@ export default class BotonicPluginHubtypeAnalytics {
|
|
|
31
31
|
}
|
|
32
32
|
trackEvent(request, htEventProps) {
|
|
33
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
if (request.session.is_test_integration) {
|
|
35
|
+
return Promise.resolve({
|
|
36
|
+
data: 'Event not sent because it is a test integration',
|
|
37
|
+
});
|
|
38
|
+
}
|
|
34
39
|
const requestData = this.getRequestData(request);
|
|
35
40
|
const event = createHtEvent(requestData, htEventProps);
|
|
36
41
|
return this.sendEvent(request, event);
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAGzC,OAAO,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAOvC,SAAS,kBAAkB,CAAC,OAAmB;IAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAA;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAmB;IAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAIhD,YAAY,OAAiC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAA;QACvE,IAAI,CAAC,WAAW,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,kBAAkB,CAAA;QAC7D,IAAI,CAAC,UAAU,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,KAAI,iBAAiB,CAAA;IAC5D,CAAC;IAED,IAAI;QACF,OAAM;IACR,CAAC;IAED,MAAM,CAAC,OAAmB,EAAE,SAAoB;QAC9C,MAAM,QAAQ,GACZ,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;QACpC,OAAO,GAAG,IAAI,CAAC,OAAO,oCAAoC,KAAK,IAAI,QAAQ,GAAG,CAAA;IAChF,CAAC;IAED,cAAc,CAAC,OAAmB;QAChC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;SAChC,CAAA;IACH,CAAC;IAEK,UAAU,CAAC,OAAmB,EAAE,YAA0B;;YAC9D,IAAI,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBACvC,OAAO,OAAO,CAAC,OAAO,CAAC;oBACrB,IAAI,EAAE,iDAAiD;iBACxD,CAAC,CAAA;aACH;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YACtD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACvC,CAAC;KAAA;IAEO,SAAS,CAAC,OAAmB,EAAE,KAAc;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAA;QAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAE1E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;CACF;AAED,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare enum EventAction {
|
|
|
6
6
|
FeedbackCase = "feedback_case",
|
|
7
7
|
FeedbackMessage = "feedback_message",
|
|
8
8
|
FeedbackConversation = "feedback_conversation",
|
|
9
|
+
FeedbackKnowledgebase = "feedback_knowledgebase",
|
|
9
10
|
FeedbackWebview = "feedback_webview",
|
|
10
11
|
FlowNode = "flow_node",
|
|
11
12
|
HandoffOption = "handoff_option",
|
|
@@ -25,13 +26,23 @@ export interface HtBaseEventProps {
|
|
|
25
26
|
}
|
|
26
27
|
export interface EventFeedback extends HtBaseEventProps {
|
|
27
28
|
action: EventAction.FeedbackCase | EventAction.FeedbackConversation | EventAction.FeedbackMessage | EventAction.FeedbackWebview;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
feedbackGroupId?: string;
|
|
29
|
+
feedbackTargetId: string;
|
|
30
|
+
feedbackGroupId: string;
|
|
31
31
|
possibleOptions: string[];
|
|
32
|
-
possibleValues
|
|
32
|
+
possibleValues?: number[];
|
|
33
33
|
option: string;
|
|
34
|
-
value
|
|
34
|
+
value?: number;
|
|
35
|
+
comment?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface EventFeedbackKnowledgebase extends HtBaseEventProps {
|
|
38
|
+
action: EventAction.FeedbackKnowledgebase;
|
|
39
|
+
knowledgebaseInferenceId: string;
|
|
40
|
+
feedbackTargetId: string;
|
|
41
|
+
feedbackGroupId: string;
|
|
42
|
+
possibleOptions: string[];
|
|
43
|
+
possibleValues?: number[];
|
|
44
|
+
option: string;
|
|
45
|
+
value?: number;
|
|
35
46
|
comment?: string;
|
|
36
47
|
}
|
|
37
48
|
export interface EventFlow extends HtBaseEventProps {
|
|
@@ -114,7 +125,7 @@ export interface EventCustom extends HtBaseEventProps {
|
|
|
114
125
|
customFields?: Record<string, any>;
|
|
115
126
|
customSensitiveFields?: Record<string, any>;
|
|
116
127
|
}
|
|
117
|
-
export type HtEventProps = EventFeedback | EventFlow | EventHandoff | EventHandoffOption | EventIntent | EventKeyword | EventIntentSmart | EventKnowledgeBase | EventFallback | EventWebview | EventCustom;
|
|
128
|
+
export type HtEventProps = EventFeedback | EventFeedbackKnowledgebase | EventFlow | EventHandoff | EventHandoffOption | EventIntent | EventKeyword | EventIntentSmart | EventKnowledgeBase | EventFallback | EventWebview | EventCustom;
|
|
118
129
|
export interface RequestData {
|
|
119
130
|
language: string;
|
|
120
131
|
country: string;
|
package/lib/esm/types.js
CHANGED
|
@@ -8,6 +8,7 @@ export var EventAction;
|
|
|
8
8
|
EventAction["FeedbackCase"] = "feedback_case";
|
|
9
9
|
EventAction["FeedbackMessage"] = "feedback_message";
|
|
10
10
|
EventAction["FeedbackConversation"] = "feedback_conversation";
|
|
11
|
+
EventAction["FeedbackKnowledgebase"] = "feedback_knowledgebase";
|
|
11
12
|
EventAction["FeedbackWebview"] = "feedback_webview";
|
|
12
13
|
EventAction["FlowNode"] = "flow_node";
|
|
13
14
|
EventAction["HandoffOption"] = "handoff_option";
|
package/lib/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,kCAAqB,CAAA;AACvB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,kCAAqB,CAAA;AACvB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,CAAN,IAAY,WAkBX;AAlBD,WAAY,WAAW;IACrB,6CAA8B,CAAA;IAC9B,mDAAoC,CAAA;IACpC,6DAA8C,CAAA;IAC9C,+DAAgD,CAAA;IAChD,mDAAoC,CAAA;IACpC,qCAAsB,CAAA;IACtB,+CAAgC,CAAA;IAChC,iDAAkC,CAAA;IAClC,2CAA4B,CAAA;IAC5B,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,+CAAgC,CAAA;IAChC,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;IACrB,2CAA4B,CAAA;IAC5B,yCAA0B,CAAA;IAC1B,gCAAiB,CAAA;AACnB,CAAC,EAlBW,WAAW,KAAX,WAAW,QAkBtB;AAiGD,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,0DAA+B,CAAA;AACjC,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC"}
|
package/lib/esm/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HtEvent, HtEventCustom, HtEventFallback, HtEventFeedback, HtEventFlow, HtEventHandoff, HtEventHandoffOption, HtEventIntent, HtEventIntentSmart, HtEventKeyword, HtEventKnowledgeBase, HtEventWebview, } from './event-models';
|
|
1
|
+
import { HtEvent, HtEventCustom, HtEventFallback, HtEventFeedback, HtEventFeedbackKnowledgebase, HtEventFlow, HtEventHandoff, HtEventHandoffOption, HtEventIntent, HtEventIntentSmart, HtEventKeyword, HtEventKnowledgeBase, HtEventWebview, } from './event-models';
|
|
2
2
|
import { EventAction } from './types';
|
|
3
3
|
export function createHtEvent(requestData, htEventProps) {
|
|
4
4
|
switch (htEventProps.action) {
|
|
@@ -7,6 +7,8 @@ export function createHtEvent(requestData, htEventProps) {
|
|
|
7
7
|
case EventAction.FeedbackMessage:
|
|
8
8
|
case EventAction.FeedbackWebview:
|
|
9
9
|
return new HtEventFeedback(htEventProps, requestData);
|
|
10
|
+
case EventAction.FeedbackKnowledgebase:
|
|
11
|
+
return new HtEventFeedbackKnowledgebase(htEventProps, requestData);
|
|
10
12
|
case EventAction.FlowNode:
|
|
11
13
|
return new HtEventFlow(htEventProps, requestData);
|
|
12
14
|
case EventAction.HandoffOption:
|
package/lib/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,aAAa,EACb,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAA;AAEhE,MAAM,UAAU,aAAa,CAC3B,WAAwB,EACxB,YAA0B;IAE1B,QAAQ,YAAY,CAAC,MAAM,EAAE;QAC3B,KAAK,WAAW,CAAC,YAAY,CAAC;QAC9B,KAAK,WAAW,CAAC,oBAAoB,CAAC;QACtC,KAAK,WAAW,CAAC,eAAe,CAAC;QACjC,KAAK,WAAW,CAAC,eAAe;YAC9B,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEvD,KAAK,WAAW,CAAC,QAAQ;YACvB,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEnD,KAAK,WAAW,CAAC,aAAa;YAC5B,OAAO,IAAI,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5D,KAAK,WAAW,CAAC,cAAc,CAAC;QAChC,KAAK,WAAW,CAAC,WAAW;YAC1B,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,WAAW;YAC1B,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE1D,KAAK,WAAW,CAAC,aAAa;YAC5B,OAAO,IAAI,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5D,KAAK,WAAW,CAAC,QAAQ;YACvB,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEvD,KAAK,WAAW,CAAC,WAAW,CAAC;QAC7B,KAAK,WAAW,CAAC,UAAU;YACzB,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD;YACE,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;KAChD;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,aAAa,EACb,eAAe,EACf,eAAe,EACf,4BAA4B,EAC5B,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAA;AAEhE,MAAM,UAAU,aAAa,CAC3B,WAAwB,EACxB,YAA0B;IAE1B,QAAQ,YAAY,CAAC,MAAM,EAAE;QAC3B,KAAK,WAAW,CAAC,YAAY,CAAC;QAC9B,KAAK,WAAW,CAAC,oBAAoB,CAAC;QACtC,KAAK,WAAW,CAAC,eAAe,CAAC;QACjC,KAAK,WAAW,CAAC,eAAe;YAC9B,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEvD,KAAK,WAAW,CAAC,qBAAqB;YACpC,OAAO,IAAI,4BAA4B,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEpE,KAAK,WAAW,CAAC,QAAQ;YACvB,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEnD,KAAK,WAAW,CAAC,aAAa;YAC5B,OAAO,IAAI,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5D,KAAK,WAAW,CAAC,cAAc,CAAC;QAChC,KAAK,WAAW,CAAC,WAAW;YAC1B,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,WAAW;YAC1B,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE1D,KAAK,WAAW,CAAC,aAAa;YAC5B,OAAO,IAAI,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5D,KAAK,WAAW,CAAC,QAAQ;YACvB,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEvD,KAAK,WAAW,CAAC,WAAW,CAAC;QAC7B,KAAK,WAAW,CAAC,UAAU;YACzB,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD;YACE,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;KAChD;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-hubtype-analytics",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.1",
|
|
4
4
|
"description": "Plugin for tracking in the Hubtype backend to see the results in the Hubtype Dashbord",
|
|
5
5
|
"main": "./lib/cjs/index.js",
|
|
6
6
|
"module": "./lib/esm/index.js",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@babel/runtime": "^7.21.0",
|
|
17
|
-
"@botonic/core": "^0.
|
|
18
|
-
"axios": "^1.
|
|
17
|
+
"@botonic/core": "^0.28.1",
|
|
18
|
+
"axios": "^1.7.2"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/node": "^20.11.17",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EventAction,
|
|
3
|
+
EventFeedbackKnowledgebase,
|
|
4
|
+
EventType,
|
|
5
|
+
RequestData,
|
|
6
|
+
} from '../types'
|
|
7
|
+
import { HtEvent } from './ht-event'
|
|
8
|
+
|
|
9
|
+
export class HtEventFeedbackKnowledgebase extends HtEvent {
|
|
10
|
+
action: EventAction.FeedbackKnowledgebase
|
|
11
|
+
knowledgebase_inference_id: string
|
|
12
|
+
feedback_target_id: string
|
|
13
|
+
feedback_group_id: string
|
|
14
|
+
possible_options: string[]
|
|
15
|
+
possible_values?: number[]
|
|
16
|
+
option: string
|
|
17
|
+
value?: number
|
|
18
|
+
comment?: string
|
|
19
|
+
|
|
20
|
+
constructor(event: EventFeedbackKnowledgebase, requestData: RequestData) {
|
|
21
|
+
super(event, requestData)
|
|
22
|
+
this.type = EventType.WebEvent
|
|
23
|
+
this.action = event.action
|
|
24
|
+
this.knowledgebase_inference_id = event.knowledgebaseInferenceId
|
|
25
|
+
this.feedback_target_id = event.feedbackTargetId
|
|
26
|
+
this.feedback_group_id = event.feedbackGroupId
|
|
27
|
+
this.possible_options = event.possibleOptions
|
|
28
|
+
this.possible_values = event.possibleValues
|
|
29
|
+
this.option = event.option
|
|
30
|
+
this.value = event.value
|
|
31
|
+
this.comment = event.comment
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -7,20 +7,20 @@ export class HtEventFeedback extends HtEvent {
|
|
|
7
7
|
| EventAction.FeedbackConversation
|
|
8
8
|
| EventAction.FeedbackMessage
|
|
9
9
|
| EventAction.FeedbackWebview
|
|
10
|
-
feedback_target_id
|
|
11
|
-
feedback_group_id
|
|
10
|
+
feedback_target_id: string
|
|
11
|
+
feedback_group_id: string
|
|
12
12
|
possible_options: string[]
|
|
13
|
-
possible_values
|
|
13
|
+
possible_values?: number[]
|
|
14
14
|
option: string
|
|
15
|
-
value
|
|
15
|
+
value?: number
|
|
16
16
|
comment?: string
|
|
17
17
|
|
|
18
18
|
constructor(event: EventFeedback, requestData: RequestData) {
|
|
19
19
|
super(event, requestData)
|
|
20
20
|
this.type = EventType.WebEvent
|
|
21
21
|
this.action = event.action
|
|
22
|
-
this.feedback_target_id = event.feedbackTargetId
|
|
23
|
-
this.feedback_group_id = event.feedbackGroupId
|
|
22
|
+
this.feedback_target_id = event.feedbackTargetId
|
|
23
|
+
this.feedback_group_id = event.feedbackGroupId
|
|
24
24
|
this.possible_options = event.possibleOptions
|
|
25
25
|
this.possible_values = event.possibleValues
|
|
26
26
|
this.option = event.option
|
|
@@ -2,6 +2,7 @@ export { HtEvent } from './ht-event'
|
|
|
2
2
|
export { HtEventCustom } from './ht-event-custom'
|
|
3
3
|
export { HtEventFallback } from './ht-event-fallback'
|
|
4
4
|
export { HtEventFeedback } from './ht-event-feedback'
|
|
5
|
+
export { HtEventFeedbackKnowledgebase } from './ht-event-feedback-knowledgebase'
|
|
5
6
|
export { HtEventFlow } from './ht-event-flow'
|
|
6
7
|
export { HtEventHandoff } from './ht-event-handoff'
|
|
7
8
|
export { HtEventHandoffOption } from './ht-event-handoff-option'
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BotRequest, Plugin } from '@botonic/core'
|
|
2
|
-
import axios from 'axios'
|
|
2
|
+
import axios, { AxiosError } from 'axios'
|
|
3
3
|
|
|
4
4
|
import { HtEvent } from './event-models'
|
|
5
5
|
import { EventType, HtEventProps, RequestData } from './types'
|
|
@@ -48,9 +48,14 @@ export default class BotonicPluginHubtypeAnalytics implements Plugin {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
async trackEvent(request: BotRequest, htEventProps: HtEventProps) {
|
|
51
|
+
if (request.session.is_test_integration) {
|
|
52
|
+
return Promise.resolve({
|
|
53
|
+
data: 'Event not sent because it is a test integration',
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
|
|
51
57
|
const requestData = this.getRequestData(request)
|
|
52
58
|
const event = createHtEvent(requestData, htEventProps)
|
|
53
|
-
|
|
54
59
|
return this.sendEvent(request, event)
|
|
55
60
|
}
|
|
56
61
|
|
package/src/types.ts
CHANGED
|
@@ -7,6 +7,7 @@ export enum EventAction {
|
|
|
7
7
|
FeedbackCase = 'feedback_case',
|
|
8
8
|
FeedbackMessage = 'feedback_message',
|
|
9
9
|
FeedbackConversation = 'feedback_conversation',
|
|
10
|
+
FeedbackKnowledgebase = 'feedback_knowledgebase',
|
|
10
11
|
FeedbackWebview = 'feedback_webview',
|
|
11
12
|
FlowNode = 'flow_node',
|
|
12
13
|
HandoffOption = 'handoff_option',
|
|
@@ -32,13 +33,24 @@ export interface EventFeedback extends HtBaseEventProps {
|
|
|
32
33
|
| EventAction.FeedbackConversation
|
|
33
34
|
| EventAction.FeedbackMessage
|
|
34
35
|
| EventAction.FeedbackWebview
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
feedbackGroupId?: string
|
|
36
|
+
feedbackTargetId: string
|
|
37
|
+
feedbackGroupId: string
|
|
38
38
|
possibleOptions: string[]
|
|
39
|
-
possibleValues
|
|
39
|
+
possibleValues?: number[]
|
|
40
40
|
option: string
|
|
41
|
-
value
|
|
41
|
+
value?: number
|
|
42
|
+
comment?: string
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface EventFeedbackKnowledgebase extends HtBaseEventProps {
|
|
46
|
+
action: EventAction.FeedbackKnowledgebase
|
|
47
|
+
knowledgebaseInferenceId: string
|
|
48
|
+
feedbackTargetId: string
|
|
49
|
+
feedbackGroupId: string
|
|
50
|
+
possibleOptions: string[]
|
|
51
|
+
possibleValues?: number[]
|
|
52
|
+
option: string
|
|
53
|
+
value?: number
|
|
42
54
|
comment?: string
|
|
43
55
|
}
|
|
44
56
|
|
|
@@ -135,6 +147,7 @@ export interface EventCustom extends HtBaseEventProps {
|
|
|
135
147
|
|
|
136
148
|
export type HtEventProps =
|
|
137
149
|
| EventFeedback
|
|
150
|
+
| EventFeedbackKnowledgebase
|
|
138
151
|
| EventFlow
|
|
139
152
|
| EventHandoff
|
|
140
153
|
| EventHandoffOption
|
package/src/utils.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
HtEventCustom,
|
|
4
4
|
HtEventFallback,
|
|
5
5
|
HtEventFeedback,
|
|
6
|
+
HtEventFeedbackKnowledgebase,
|
|
6
7
|
HtEventFlow,
|
|
7
8
|
HtEventHandoff,
|
|
8
9
|
HtEventHandoffOption,
|
|
@@ -25,6 +26,9 @@ export function createHtEvent(
|
|
|
25
26
|
case EventAction.FeedbackWebview:
|
|
26
27
|
return new HtEventFeedback(htEventProps, requestData)
|
|
27
28
|
|
|
29
|
+
case EventAction.FeedbackKnowledgebase:
|
|
30
|
+
return new HtEventFeedbackKnowledgebase(htEventProps, requestData)
|
|
31
|
+
|
|
28
32
|
case EventAction.FlowNode:
|
|
29
33
|
return new HtEventFlow(htEventProps, requestData)
|
|
30
34
|
|