@botonic/plugin-hubtype-analytics 0.27.2 → 0.28.0

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.
Files changed (42) hide show
  1. package/README.md +91 -42
  2. package/lib/cjs/event-models/ht-event-feedback-knowledgebase.d.ts +14 -0
  3. package/lib/cjs/event-models/ht-event-feedback-knowledgebase.js +22 -0
  4. package/lib/cjs/event-models/ht-event-feedback-knowledgebase.js.map +1 -0
  5. package/lib/cjs/event-models/ht-event-feedback.d.ts +4 -4
  6. package/lib/cjs/event-models/ht-event-feedback.js +2 -2
  7. package/lib/cjs/event-models/ht-event-feedback.js.map +1 -1
  8. package/lib/cjs/event-models/index.d.ts +1 -0
  9. package/lib/cjs/event-models/index.js +3 -1
  10. package/lib/cjs/event-models/index.js.map +1 -1
  11. package/lib/cjs/index.d.ts +2 -1
  12. package/lib/cjs/index.js +3 -0
  13. package/lib/cjs/index.js.map +1 -1
  14. package/lib/cjs/types.d.ts +17 -6
  15. package/lib/cjs/types.js +1 -0
  16. package/lib/cjs/types.js.map +1 -1
  17. package/lib/cjs/utils.js +2 -0
  18. package/lib/cjs/utils.js.map +1 -1
  19. package/lib/esm/event-models/ht-event-feedback-knowledgebase.d.ts +14 -0
  20. package/lib/esm/event-models/ht-event-feedback-knowledgebase.js +18 -0
  21. package/lib/esm/event-models/ht-event-feedback-knowledgebase.js.map +1 -0
  22. package/lib/esm/event-models/ht-event-feedback.d.ts +4 -4
  23. package/lib/esm/event-models/ht-event-feedback.js +2 -2
  24. package/lib/esm/event-models/ht-event-feedback.js.map +1 -1
  25. package/lib/esm/event-models/index.d.ts +1 -0
  26. package/lib/esm/event-models/index.js +1 -0
  27. package/lib/esm/event-models/index.js.map +1 -1
  28. package/lib/esm/index.d.ts +1 -1
  29. package/lib/esm/index.js +3 -0
  30. package/lib/esm/index.js.map +1 -1
  31. package/lib/esm/types.d.ts +17 -6
  32. package/lib/esm/types.js +1 -0
  33. package/lib/esm/types.js.map +1 -1
  34. package/lib/esm/utils.js +3 -1
  35. package/lib/esm/utils.js.map +1 -1
  36. package/package.json +3 -3
  37. package/src/event-models/ht-event-feedback-knowledgebase.ts +33 -0
  38. package/src/event-models/ht-event-feedback.ts +6 -6
  39. package/src/event-models/index.ts +1 -0
  40. package/src/index.ts +5 -2
  41. package/src/types.ts +18 -5
  42. 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
- You can use it in your actions.
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
- - For example an event to save a feedback given by the user:
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
- try {
52
- const response = await hubtypeAnalyticsPlugin.trackEvent(request, event)
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
- - For example an event to check that a flow content has been displayed in the bot:
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
- ## Plugin Options
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
- - **`getLaguange`**: getLaguange(request) function to define the language when it is not in request.session.user.extra_data.language
88
- - **`getCountry`**: getCountry(request) function to define the country when it is not in request.session.user.extra_data.country
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?: string;
6
- feedback_group_id?: string;
5
+ feedback_target_id: string;
6
+ feedback_group_id: string;
7
7
  possible_options: string[];
8
- possible_values: number[];
8
+ possible_values?: number[];
9
9
  option: string;
10
- value: number;
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; // ?? case_id, message_id, conversation_id ???, webview_name
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,CAAC,4DAA4D;QAC7G,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA,CAAC,KAAK;QACpD,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"}
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"}
@@ -1,4 +1,5 @@
1
1
  import { BotRequest, Plugin } from '@botonic/core';
2
+ import { AxiosResponse } from 'axios';
2
3
  import { EventType, HtEventProps, RequestData } from './types';
3
4
  export interface HubtypeAnalyticsOptions {
4
5
  getLanguage?: (request: BotRequest) => string;
@@ -12,7 +13,7 @@ export default class BotonicPluginHubtypeAnalytics implements Plugin {
12
13
  post(): void;
13
14
  getUrl(request: BotRequest, eventType: EventType): string;
14
15
  getRequestData(request: BotRequest): RequestData;
15
- trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<import("axios").AxiosResponse<any, any>>;
16
+ trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<void | AxiosResponse<any, any>>;
16
17
  private sendEvent;
17
18
  }
18
19
  export * from './types';
package/lib/cjs/index.js CHANGED
@@ -33,6 +33,9 @@ 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
+ }
36
39
  const requestData = this.getRequestData(request);
37
40
  const event = (0, utils_1.createHtEvent)(requestData, htEventProps);
38
41
  return this.sendEvent(request, event);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,0DAAyB;AAGzB,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,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,IAAA,qBAAa,EAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YAEtD,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;AA3CD,gDA2CC;AAED,kDAAuB;AACvB,kDAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,0DAA4C;AAG5C,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,EAAE,CAAA;aACzB;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;AA9CD,gDA8CC;AAED,kDAAuB;AACvB,kDAAuB"}
@@ -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
- messageGeneratedBy?: string;
29
- feedbackTargetId?: string;
30
- feedbackGroupId?: string;
29
+ feedbackTargetId: string;
30
+ feedbackGroupId: string;
31
31
  possibleOptions: string[];
32
- possibleValues: number[];
32
+ possibleValues?: number[];
33
33
  option: string;
34
- value: number;
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";
@@ -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,WAiBX;AAjBD,WAAY,WAAW;IACrB,6CAA8B,CAAA;IAC9B,mDAAoC,CAAA;IACpC,6DAA8C,CAAA;IAC9C,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,EAjBW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAiBtB;AAsFD,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,0DAA+B,CAAA;AACjC,CAAC,EAHW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAGlC"}
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:
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,iDAauB;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,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;AA9CD,sCA8CC"}
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?: string;
6
- feedback_group_id?: string;
5
+ feedback_target_id: string;
6
+ feedback_group_id: string;
7
7
  possible_options: string[];
8
- possible_values: number[];
8
+ possible_values?: number[];
9
9
  option: string;
10
- value: number;
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; // ?? case_id, message_id, conversation_id ???, webview_name
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,CAAC,4DAA4D;QAC7G,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA,CAAC,KAAK;QACpD,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"}
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"}
@@ -13,7 +13,7 @@ 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<axios.AxiosResponse<any, any>>;
16
+ trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<void | axios.AxiosResponse<any, any>>;
17
17
  private sendEvent;
18
18
  }
19
19
  export * from './types';
package/lib/esm/index.js CHANGED
@@ -31,6 +31,9 @@ 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
+ }
34
37
  const requestData = this.getRequestData(request);
35
38
  const event = createHtEvent(requestData, htEventProps);
36
39
  return this.sendEvent(request, event);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,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,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YAEtD,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAG5C,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,EAAE,CAAA;aACzB;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"}
@@ -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
- messageGeneratedBy?: string;
29
- feedbackTargetId?: string;
30
- feedbackGroupId?: string;
29
+ feedbackTargetId: string;
30
+ feedbackGroupId: string;
31
31
  possibleOptions: string[];
32
- possibleValues: number[];
32
+ possibleValues?: number[];
33
33
  option: string;
34
- value: number;
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";
@@ -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,WAiBX;AAjBD,WAAY,WAAW;IACrB,6CAA8B,CAAA;IAC9B,mDAAoC,CAAA;IACpC,6DAA8C,CAAA;IAC9C,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,EAjBW,WAAW,KAAX,WAAW,QAiBtB;AAsFD,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,0DAA+B,CAAA;AACjC,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC"}
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:
@@ -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.27.2",
3
+ "version": "0.28.0",
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.27.0",
18
- "axios": "^1.6.8"
17
+ "@botonic/core": "^0.28.0",
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?: string
11
- feedback_group_id?: string
10
+ feedback_target_id: string
11
+ feedback_group_id: string
12
12
  possible_options: string[]
13
- possible_values: number[]
13
+ possible_values?: number[]
14
14
  option: string
15
- value: number
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 // ?? case_id, message_id, conversation_id ???, webview_name
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, { AxiosResponse } from 'axios'
3
3
 
4
4
  import { HtEvent } from './event-models'
5
5
  import { EventType, HtEventProps, RequestData } from './types'
@@ -48,9 +48,12 @@ 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
+ }
54
+
51
55
  const requestData = this.getRequestData(request)
52
56
  const event = createHtEvent(requestData, htEventProps)
53
-
54
57
  return this.sendEvent(request, event)
55
58
  }
56
59
 
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
- messageGeneratedBy?: string
36
- feedbackTargetId?: string
37
- feedbackGroupId?: string
36
+ feedbackTargetId: string
37
+ feedbackGroupId: string
38
38
  possibleOptions: string[]
39
- possibleValues: number[]
39
+ possibleValues?: number[]
40
40
  option: string
41
- value: number
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