@botonic/plugin-hubtype-analytics 0.28.1 → 0.28.2-alpha.2

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 (57) hide show
  1. package/lib/cjs/event-models/ht-event-feedback-knowledgebase.d.ts +2 -1
  2. package/lib/cjs/event-models/ht-event-feedback-knowledgebase.js +2 -1
  3. package/lib/cjs/event-models/ht-event-feedback-knowledgebase.js.map +1 -1
  4. package/lib/cjs/event-models/ht-event-webview-end.d.ts +13 -0
  5. package/lib/cjs/event-models/ht-event-webview-end.js +21 -0
  6. package/lib/cjs/event-models/ht-event-webview-end.js.map +1 -0
  7. package/lib/cjs/event-models/ht-event-webview-step.d.ts +11 -0
  8. package/lib/cjs/event-models/{ht-event-webview.js → ht-event-webview-step.js} +6 -6
  9. package/lib/cjs/event-models/ht-event-webview-step.js.map +1 -0
  10. package/lib/cjs/event-models/ht-event.d.ts +2 -1
  11. package/lib/cjs/event-models/ht-event.js +13 -0
  12. package/lib/cjs/event-models/ht-event.js.map +1 -1
  13. package/lib/cjs/event-models/index.d.ts +2 -1
  14. package/lib/cjs/event-models/index.js +5 -3
  15. package/lib/cjs/event-models/index.js.map +1 -1
  16. package/lib/cjs/index.d.ts +8 -4
  17. package/lib/cjs/index.js +46 -16
  18. package/lib/cjs/index.js.map +1 -1
  19. package/lib/cjs/types.d.ts +16 -4
  20. package/lib/cjs/types.js.map +1 -1
  21. package/lib/cjs/utils.js +2 -1
  22. package/lib/cjs/utils.js.map +1 -1
  23. package/lib/esm/event-models/ht-event-feedback-knowledgebase.d.ts +2 -1
  24. package/lib/esm/event-models/ht-event-feedback-knowledgebase.js +2 -1
  25. package/lib/esm/event-models/ht-event-feedback-knowledgebase.js.map +1 -1
  26. package/lib/esm/event-models/ht-event-webview-end.d.ts +13 -0
  27. package/lib/esm/event-models/ht-event-webview-end.js +17 -0
  28. package/lib/esm/event-models/ht-event-webview-end.js.map +1 -0
  29. package/lib/esm/event-models/ht-event-webview-step.d.ts +11 -0
  30. package/lib/esm/event-models/{ht-event-webview.js → ht-event-webview-step.js} +4 -4
  31. package/lib/esm/event-models/ht-event-webview-step.js.map +1 -0
  32. package/lib/esm/event-models/ht-event.d.ts +2 -1
  33. package/lib/esm/event-models/ht-event.js +13 -0
  34. package/lib/esm/event-models/ht-event.js.map +1 -1
  35. package/lib/esm/event-models/index.d.ts +2 -1
  36. package/lib/esm/event-models/index.js +2 -1
  37. package/lib/esm/event-models/index.js.map +1 -1
  38. package/lib/esm/index.d.ts +8 -4
  39. package/lib/esm/index.js +46 -16
  40. package/lib/esm/index.js.map +1 -1
  41. package/lib/esm/types.d.ts +16 -4
  42. package/lib/esm/types.js.map +1 -1
  43. package/lib/esm/utils.js +3 -2
  44. package/lib/esm/utils.js.map +1 -1
  45. package/package.json +2 -2
  46. package/src/event-models/ht-event-feedback-knowledgebase.ts +4 -2
  47. package/src/event-models/{ht-event-webview.ts → ht-event-webview-end.ts} +10 -6
  48. package/src/event-models/ht-event-webview-step.ts +22 -0
  49. package/src/event-models/ht-event.ts +16 -1
  50. package/src/event-models/index.ts +2 -1
  51. package/src/index.ts +54 -21
  52. package/src/types.ts +18 -4
  53. package/src/utils.ts +5 -2
  54. package/lib/cjs/event-models/ht-event-webview.d.ts +0 -11
  55. package/lib/cjs/event-models/ht-event-webview.js.map +0 -1
  56. package/lib/esm/event-models/ht-event-webview.d.ts +0 -11
  57. package/lib/esm/event-models/ht-event-webview.js.map +0 -1
@@ -2,7 +2,8 @@ import { EventAction, EventFeedbackKnowledgebase, RequestData } from '../types';
2
2
  import { HtEvent } from './ht-event';
3
3
  export declare class HtEventFeedbackKnowledgebase extends HtEvent {
4
4
  action: EventAction.FeedbackKnowledgebase;
5
- knowledgebase_inference_id: string;
5
+ knowledge_base_inference_id: string;
6
+ feedback_target_bot_interaction_id: string;
6
7
  feedback_target_id: string;
7
8
  feedback_group_id: string;
8
9
  possible_options: string[];
@@ -8,7 +8,8 @@ class HtEventFeedbackKnowledgebase 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.knowledgebase_inference_id = event.knowledgebaseInferenceId;
11
+ this.knowledge_base_inference_id = event.knowledgebaseInferenceId;
12
+ this.feedback_target_bot_interaction_id = event.feedbackBotInteractionId;
12
13
  this.feedback_target_id = event.feedbackTargetId;
13
14
  this.feedback_group_id = event.feedbackGroupId;
14
15
  this.possible_options = event.possibleOptions;
@@ -1 +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"}
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;IAYvD,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,2BAA2B,GAAG,KAAK,CAAC,wBAAwB,CAAA;QACjE,IAAI,CAAC,kCAAkC,GAAG,KAAK,CAAC,wBAAwB,CAAA;QACxE,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,oEA0BC"}
@@ -0,0 +1,13 @@
1
+ import { EventAction, EventWebviewEnd, RequestData } from '../types';
2
+ import { HtEvent } from './ht-event';
3
+ export declare class HtEventWebviewEnd extends HtEvent {
4
+ action: EventAction.WebviewEnd;
5
+ flow_thread_id?: string;
6
+ webview_thread_id: string;
7
+ webview_name: string;
8
+ webview_end_step_name?: string;
9
+ webview_end_step_n?: number;
10
+ webview_end_fail_type?: string;
11
+ webview_end_fail_message?: string;
12
+ constructor(event: EventWebviewEnd, requestData: RequestData);
13
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HtEventWebviewEnd = void 0;
4
+ const types_1 = require("../types");
5
+ const ht_event_1 = require("./ht-event");
6
+ class HtEventWebviewEnd 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.flow_thread_id = event.flowThreadId;
12
+ this.webview_thread_id = event.webviewThreadId;
13
+ this.webview_name = event.webviewName;
14
+ this.webview_end_step_name = event.webviewStepName;
15
+ this.webview_end_step_n = event.webviewStepNumber;
16
+ this.webview_end_fail_type = event.webviewEndFailType;
17
+ this.webview_end_fail_message = event.webviewEndFailMessage;
18
+ }
19
+ }
20
+ exports.HtEventWebviewEnd = HtEventWebviewEnd;
21
+ //# sourceMappingURL=ht-event-webview-end.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ht-event-webview-end.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-webview-end.ts"],"names":[],"mappings":";;;AAAA,oCAA+E;AAC/E,yCAAoC;AAEpC,MAAa,iBAAkB,SAAQ,kBAAO;IAU5C,YAAY,KAAsB,EAAE,WAAwB;QAC1D,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,cAAc,GAAG,KAAK,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,eAAe,CAAA;QAClD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAA;QACjD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,kBAAkB,CAAA;QACrD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,qBAAqB,CAAA;IAC7D,CAAC;CACF;AAtBD,8CAsBC"}
@@ -0,0 +1,11 @@
1
+ import { EventAction, EventWebviewStep, RequestData } from '../types';
2
+ import { HtEvent } from './ht-event';
3
+ export declare class HtEventWebviewStep extends HtEvent {
4
+ action: EventAction.WebviewStep;
5
+ flow_thread_id?: string;
6
+ webview_thread_id: string;
7
+ webview_name: string;
8
+ webview_step_name?: string;
9
+ webview_step_n?: number;
10
+ constructor(event: EventWebviewStep, requestData: RequestData);
11
+ }
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HtEventWebview = void 0;
3
+ exports.HtEventWebviewStep = void 0;
4
4
  const types_1 = require("../types");
5
5
  const ht_event_1 = require("./ht-event");
6
- class HtEventWebview extends ht_event_1.HtEvent {
6
+ class HtEventWebviewStep extends ht_event_1.HtEvent {
7
7
  constructor(event, requestData) {
8
8
  super(event, requestData);
9
9
  this.type = types_1.EventType.WebEvent;
10
10
  this.action = event.action;
11
+ this.flow_thread_id = event.flowThreadId;
11
12
  this.webview_thread_id = event.webviewThreadId;
12
13
  this.webview_name = event.webviewName;
13
14
  this.webview_step_name = event.webviewStepName;
14
- this.webview_end_fail_type = event.webviewEndFailType;
15
- this.webview_end_fail_message = event.webviewEndFailMessage;
15
+ this.webview_step_n = event.webviewStepNumber;
16
16
  }
17
17
  }
18
- exports.HtEventWebview = HtEventWebview;
19
- //# sourceMappingURL=ht-event-webview.js.map
18
+ exports.HtEventWebviewStep = HtEventWebviewStep;
19
+ //# sourceMappingURL=ht-event-webview-step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ht-event-webview-step.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-webview-step.ts"],"names":[],"mappings":";;;AAAA,oCAAgF;AAChF,yCAAoC;AAEpC,MAAa,kBAAmB,SAAQ,kBAAO;IAQ7C,YAAY,KAAuB,EAAE,WAAwB;QAC3D,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,cAAc,GAAG,KAAK,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAA;IAC/C,CAAC;CACF;AAlBD,gDAkBC"}
@@ -1,6 +1,6 @@
1
1
  import { EventAction, EventType, HtEventProps, RequestData } from '../types';
2
2
  export declare class HtEvent {
3
- chat_id: string;
3
+ chat_id?: string;
4
4
  type: EventType;
5
5
  chat_language: string;
6
6
  chat_country?: string;
@@ -8,5 +8,6 @@ export declare class HtEvent {
8
8
  bot_version?: string;
9
9
  flow_version?: string;
10
10
  action: EventAction;
11
+ bot_interaction_id?: string;
11
12
  constructor(event: HtEventProps, requestData: RequestData);
12
13
  }
@@ -1,6 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HtEvent = void 0;
4
+ /* eslint-disable @typescript-eslint/naming-convention */
5
+ const types_1 = require("../types");
6
+ const excludedEvents = [
7
+ types_1.EventAction.FeedbackCase,
8
+ types_1.EventAction.FeedbackConversation,
9
+ types_1.EventAction.FeedbackKnowledgebase,
10
+ types_1.EventAction.FeedbackWebview,
11
+ types_1.EventAction.WebviewStep,
12
+ types_1.EventAction.WebviewEnd,
13
+ ];
4
14
  class HtEvent {
5
15
  constructor(event, requestData) {
6
16
  this.chat_id = requestData.userId;
@@ -8,6 +18,9 @@ class HtEvent {
8
18
  this.chat_country = requestData.country;
9
19
  this.format_version = 2;
10
20
  this.action = event.action;
21
+ if (!excludedEvents.includes(event.action)) {
22
+ this.bot_interaction_id = requestData.botInteractionId;
23
+ }
11
24
  }
12
25
  }
13
26
  exports.HtEvent = HtEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"ht-event.js","sourceRoot":"","sources":["../../../src/event-models/ht-event.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAUlB,YAAY,KAAmB,EAAE,WAAwB;QACvD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAA;QACjC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAA;QACvC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC5B,CAAC;CACF;AAjBD,0BAiBC"}
1
+ {"version":3,"file":"ht-event.js","sourceRoot":"","sources":["../../../src/event-models/ht-event.ts"],"names":[],"mappings":";;;AAAA,yDAAyD;AACzD,oCAA4E;AAE5E,MAAM,cAAc,GAAG;IACrB,mBAAW,CAAC,YAAY;IACxB,mBAAW,CAAC,oBAAoB;IAChC,mBAAW,CAAC,qBAAqB;IACjC,mBAAW,CAAC,eAAe;IAC3B,mBAAW,CAAC,WAAW;IACvB,mBAAW,CAAC,UAAU;CACvB,CAAA;AAED,MAAa,OAAO;IAWlB,YAAY,KAAmB,EAAE,WAAwB;QACvD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAA;QACjC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAA;QACvC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAE1B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC1C,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,gBAAgB,CAAA;SACvD;IACH,CAAC;CACF;AAtBD,0BAsBC"}
@@ -10,4 +10,5 @@ export { HtEventIntent } from './ht-event-intent';
10
10
  export { HtEventIntentSmart } from './ht-event-intent-smart';
11
11
  export { HtEventKeyword } from './ht-event-keyword';
12
12
  export { HtEventKnowledgeBase } from './ht-event-knowledge-base';
13
- export { HtEventWebview } from './ht-event-webview';
13
+ export { HtEventWebviewEnd } from './ht-event-webview-end';
14
+ export { HtEventWebviewStep } from './ht-event-webview-step';
@@ -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.HtEventFeedbackKnowledgebase = exports.HtEventFeedback = exports.HtEventFallback = exports.HtEventCustom = exports.HtEvent = void 0;
3
+ exports.HtEventWebviewStep = exports.HtEventWebviewEnd = 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");
@@ -25,6 +25,8 @@ var ht_event_keyword_1 = require("./ht-event-keyword");
25
25
  Object.defineProperty(exports, "HtEventKeyword", { enumerable: true, get: function () { return ht_event_keyword_1.HtEventKeyword; } });
26
26
  var ht_event_knowledge_base_1 = require("./ht-event-knowledge-base");
27
27
  Object.defineProperty(exports, "HtEventKnowledgeBase", { enumerable: true, get: function () { return ht_event_knowledge_base_1.HtEventKnowledgeBase; } });
28
- var ht_event_webview_1 = require("./ht-event-webview");
29
- Object.defineProperty(exports, "HtEventWebview", { enumerable: true, get: function () { return ht_event_webview_1.HtEventWebview; } });
28
+ var ht_event_webview_end_1 = require("./ht-event-webview-end");
29
+ Object.defineProperty(exports, "HtEventWebviewEnd", { enumerable: true, get: function () { return ht_event_webview_end_1.HtEventWebviewEnd; } });
30
+ var ht_event_webview_step_1 = require("./ht-event-webview-step");
31
+ Object.defineProperty(exports, "HtEventWebviewStep", { enumerable: true, get: function () { return ht_event_webview_step_1.HtEventWebviewStep; } });
30
32
  //# sourceMappingURL=index.js.map
@@ -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,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
+ {"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,+DAA0D;AAAjD,yHAAA,iBAAiB,OAAA;AAC1B,iEAA4D;AAAnD,2HAAA,kBAAkB,OAAA"}
@@ -1,21 +1,25 @@
1
1
  import { BotRequest, Plugin } from '@botonic/core';
2
- import { EventType, HtEventProps, RequestData } from './types';
2
+ import { HtEventProps, RequestData } from './types';
3
3
  export interface HubtypeAnalyticsOptions {
4
4
  getLanguage?: (request: BotRequest) => string;
5
5
  getCountry?: (request: BotRequest) => string;
6
6
  }
7
7
  export default class BotonicPluginHubtypeAnalytics implements Plugin {
8
- baseUrl: string;
8
+ eventsBaseUrl: string;
9
9
  getLanguage: (request: BotRequest) => string;
10
10
  getCountry: (request: BotRequest) => string;
11
11
  constructor(options?: HubtypeAnalyticsOptions);
12
12
  post(): void;
13
- getUrl(request: BotRequest, eventType: EventType): string;
14
- getRequestData(request: BotRequest): RequestData;
15
13
  trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<{
16
14
  data: string;
17
15
  } | import("axios").AxiosResponse<any, any>>;
16
+ getRequestData(request: BotRequest): RequestData;
17
+ private isLambdaEvent;
18
18
  private sendEvent;
19
+ private sendBotEvent;
20
+ private sendWebEvent;
21
+ private sendWebEventByBotId;
22
+ private sendWebEventByProviderId;
19
23
  }
20
24
  export * from './types';
21
25
  export * from './utils';
package/lib/cjs/index.js CHANGED
@@ -12,25 +12,14 @@ function getDefaultCountry(request) {
12
12
  }
13
13
  class BotonicPluginHubtypeAnalytics {
14
14
  constructor(options) {
15
- this.baseUrl = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
15
+ const hubtypeUrl = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
16
+ this.eventsBaseUrl = `${hubtypeUrl}/external/v2/conversational_apps/`;
16
17
  this.getLanguage = (options === null || options === void 0 ? void 0 : options.getLanguage) || getDefaultLanguage;
17
18
  this.getCountry = (options === null || options === void 0 ? void 0 : options.getCountry) || getDefaultCountry;
18
19
  }
19
20
  post() {
20
21
  return;
21
22
  }
22
- getUrl(request, eventType) {
23
- const endpoint = eventType === types_1.EventType.BotEvent ? 'bot_event' : 'web_event';
24
- const botId = request.session.bot.id;
25
- return `${this.baseUrl}/external/v2/conversational_apps/${botId}/${endpoint}/`;
26
- }
27
- getRequestData(request) {
28
- return {
29
- language: this.getLanguage(request),
30
- country: this.getCountry(request),
31
- userId: request.session.user.id,
32
- };
33
- }
34
23
  trackEvent(request, htEventProps) {
35
24
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
36
25
  if (request.session.is_test_integration) {
@@ -43,10 +32,51 @@ class BotonicPluginHubtypeAnalytics {
43
32
  return this.sendEvent(request, event);
44
33
  });
45
34
  }
35
+ getRequestData(request) {
36
+ var _a;
37
+ return {
38
+ language: this.getLanguage(request),
39
+ country: this.getCountry(request),
40
+ userId: this.isLambdaEvent(request) ? request.session.user.id : undefined,
41
+ botInteractionId: (_a = request.input) === null || _a === void 0 ? void 0 : _a.bot_interaction_id,
42
+ };
43
+ }
44
+ isLambdaEvent(request) {
45
+ var _a, _b;
46
+ return ((_b = (_a = request.session) === null || _a === void 0 ? void 0 : _a.bot) === null || _b === void 0 ? void 0 : _b.id) !== undefined;
47
+ }
46
48
  sendEvent(request, event) {
47
- const url = this.getUrl(request, event.type);
48
- const headers = { Authorization: `Bearer ${request.session._access_token}` };
49
- const config = event.type !== types_1.EventType.WebEvent ? { headers } : undefined;
49
+ if (event.type === types_1.EventType.BotEvent) {
50
+ return this.sendBotEvent(request, event);
51
+ }
52
+ return this.sendWebEvent(request, event);
53
+ }
54
+ sendBotEvent(request, event) {
55
+ const botId = request.session.bot.id;
56
+ const url = `${this.eventsBaseUrl}/${botId}/bot_event/`;
57
+ const config = {
58
+ headers: { Authorization: `Bearer ${request.session._access_token}` },
59
+ };
60
+ return axios_1.default.post(url, event, config);
61
+ }
62
+ sendWebEvent(request, event) {
63
+ if (this.isLambdaEvent(request)) {
64
+ return this.sendWebEventByBotId(request, event);
65
+ }
66
+ return this.sendWebEventByProviderId(request, event);
67
+ }
68
+ sendWebEventByBotId(request, event) {
69
+ const botId = request.session.bot.id;
70
+ const url = `${this.eventsBaseUrl}/${botId}/web_event/`;
71
+ return axios_1.default.post(url, event);
72
+ }
73
+ sendWebEventByProviderId(request, event) {
74
+ const url = `${this.eventsBaseUrl}/web_event/`;
75
+ const config = {
76
+ params: {
77
+ provider_id: request.session.user.id,
78
+ },
79
+ };
50
80
  return axios_1.default.post(url, event, config);
51
81
  }
52
82
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export interface EventFeedback extends HtBaseEventProps {
37
37
  export interface EventFeedbackKnowledgebase extends HtBaseEventProps {
38
38
  action: EventAction.FeedbackKnowledgebase;
39
39
  knowledgebaseInferenceId: string;
40
+ feedbackBotInteractionId: string;
40
41
  feedbackTargetId: string;
41
42
  feedbackGroupId: string;
42
43
  possibleOptions: string[];
@@ -112,11 +113,21 @@ export interface EventFallback extends HtBaseEventProps {
112
113
  fallbackOut: number;
113
114
  fallbackMessageId: string;
114
115
  }
115
- export interface EventWebview extends HtBaseEventProps {
116
- action: EventAction.WebviewStep | EventAction.WebviewEnd;
116
+ export interface EventWebviewStep extends HtBaseEventProps {
117
+ action: EventAction.WebviewStep;
118
+ flowThreadId?: string;
119
+ webviewThreadId: string;
120
+ webviewName: string;
121
+ webviewStepName: string;
122
+ webviewStepNumber?: number;
123
+ }
124
+ export interface EventWebviewEnd extends HtBaseEventProps {
125
+ action: EventAction.WebviewEnd;
126
+ flowThreadId?: string;
117
127
  webviewThreadId: string;
118
128
  webviewName: string;
119
129
  webviewStepName?: string;
130
+ webviewStepNumber?: number;
120
131
  webviewEndFailType?: string;
121
132
  webviewEndFailMessage?: string;
122
133
  }
@@ -125,9 +136,10 @@ export interface EventCustom extends HtBaseEventProps {
125
136
  customFields?: Record<string, any>;
126
137
  customSensitiveFields?: Record<string, any>;
127
138
  }
128
- export type HtEventProps = EventFeedback | EventFeedbackKnowledgebase | EventFlow | EventHandoff | EventHandoffOption | EventIntent | EventKeyword | EventIntentSmart | EventKnowledgeBase | EventFallback | EventWebview | EventCustom;
139
+ export type HtEventProps = EventFeedback | EventFeedbackKnowledgebase | EventFlow | EventHandoff | EventHandoffOption | EventIntent | EventKeyword | EventIntentSmart | EventKnowledgeBase | EventFallback | EventWebviewStep | EventWebviewEnd | EventCustom;
129
140
  export interface RequestData {
130
141
  language: string;
131
142
  country: string;
132
- userId: string;
143
+ userId?: string;
144
+ botInteractionId: string;
133
145
  }
@@ -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,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"}
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;AAkGD,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
@@ -30,8 +30,9 @@ function createHtEvent(requestData, htEventProps) {
30
30
  case types_1.EventAction.Fallback:
31
31
  return new event_models_1.HtEventFallback(htEventProps, requestData);
32
32
  case types_1.EventAction.WebviewStep:
33
+ return new event_models_1.HtEventWebviewStep(htEventProps, requestData);
33
34
  case types_1.EventAction.WebviewEnd:
34
- return new event_models_1.HtEventWebview(htEventProps, requestData);
35
+ return new event_models_1.HtEventWebviewEnd(htEventProps, requestData);
35
36
  case types_1.EventAction.Custom:
36
37
  return new event_models_1.HtEventCustom(htEventProps, requestData);
37
38
  default:
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,iDAeuB;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;YAC1B,OAAO,IAAI,iCAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE1D,KAAK,mBAAW,CAAC,UAAU;YACzB,OAAO,IAAI,gCAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEzD,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;AAnDD,sCAmDC"}
@@ -2,7 +2,8 @@ import { EventAction, EventFeedbackKnowledgebase, RequestData } from '../types';
2
2
  import { HtEvent } from './ht-event';
3
3
  export declare class HtEventFeedbackKnowledgebase extends HtEvent {
4
4
  action: EventAction.FeedbackKnowledgebase;
5
- knowledgebase_inference_id: string;
5
+ knowledge_base_inference_id: string;
6
+ feedback_target_bot_interaction_id: string;
6
7
  feedback_target_id: string;
7
8
  feedback_group_id: string;
8
9
  possible_options: string[];
@@ -5,7 +5,8 @@ export class HtEventFeedbackKnowledgebase extends HtEvent {
5
5
  super(event, requestData);
6
6
  this.type = EventType.WebEvent;
7
7
  this.action = event.action;
8
- this.knowledgebase_inference_id = event.knowledgebaseInferenceId;
8
+ this.knowledge_base_inference_id = event.knowledgebaseInferenceId;
9
+ this.feedback_target_bot_interaction_id = event.feedbackBotInteractionId;
9
10
  this.feedback_target_id = event.feedbackTargetId;
10
11
  this.feedback_group_id = event.feedbackGroupId;
11
12
  this.possible_options = event.possibleOptions;
@@ -1 +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"}
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;IAYvD,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,2BAA2B,GAAG,KAAK,CAAC,wBAAwB,CAAA;QACjE,IAAI,CAAC,kCAAkC,GAAG,KAAK,CAAC,wBAAwB,CAAA;QACxE,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"}
@@ -0,0 +1,13 @@
1
+ import { EventAction, EventWebviewEnd, RequestData } from '../types';
2
+ import { HtEvent } from './ht-event';
3
+ export declare class HtEventWebviewEnd extends HtEvent {
4
+ action: EventAction.WebviewEnd;
5
+ flow_thread_id?: string;
6
+ webview_thread_id: string;
7
+ webview_name: string;
8
+ webview_end_step_name?: string;
9
+ webview_end_step_n?: number;
10
+ webview_end_fail_type?: string;
11
+ webview_end_fail_message?: string;
12
+ constructor(event: EventWebviewEnd, requestData: RequestData);
13
+ }
@@ -0,0 +1,17 @@
1
+ import { EventType } from '../types';
2
+ import { HtEvent } from './ht-event';
3
+ export class HtEventWebviewEnd extends HtEvent {
4
+ constructor(event, requestData) {
5
+ super(event, requestData);
6
+ this.type = EventType.WebEvent;
7
+ this.action = event.action;
8
+ this.flow_thread_id = event.flowThreadId;
9
+ this.webview_thread_id = event.webviewThreadId;
10
+ this.webview_name = event.webviewName;
11
+ this.webview_end_step_name = event.webviewStepName;
12
+ this.webview_end_step_n = event.webviewStepNumber;
13
+ this.webview_end_fail_type = event.webviewEndFailType;
14
+ this.webview_end_fail_message = event.webviewEndFailMessage;
15
+ }
16
+ }
17
+ //# sourceMappingURL=ht-event-webview-end.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ht-event-webview-end.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-webview-end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAgC,MAAM,UAAU,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAU5C,YAAY,KAAsB,EAAE,WAAwB;QAC1D,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,cAAc,GAAG,KAAK,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,eAAe,CAAA;QAClD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAA;QACjD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,kBAAkB,CAAA;QACrD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,qBAAqB,CAAA;IAC7D,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { EventAction, EventWebviewStep, RequestData } from '../types';
2
+ import { HtEvent } from './ht-event';
3
+ export declare class HtEventWebviewStep extends HtEvent {
4
+ action: EventAction.WebviewStep;
5
+ flow_thread_id?: string;
6
+ webview_thread_id: string;
7
+ webview_name: string;
8
+ webview_step_name?: string;
9
+ webview_step_n?: number;
10
+ constructor(event: EventWebviewStep, requestData: RequestData);
11
+ }
@@ -1,15 +1,15 @@
1
1
  import { EventType } from '../types';
2
2
  import { HtEvent } from './ht-event';
3
- export class HtEventWebview extends HtEvent {
3
+ export class HtEventWebviewStep extends HtEvent {
4
4
  constructor(event, requestData) {
5
5
  super(event, requestData);
6
6
  this.type = EventType.WebEvent;
7
7
  this.action = event.action;
8
+ this.flow_thread_id = event.flowThreadId;
8
9
  this.webview_thread_id = event.webviewThreadId;
9
10
  this.webview_name = event.webviewName;
10
11
  this.webview_step_name = event.webviewStepName;
11
- this.webview_end_fail_type = event.webviewEndFailType;
12
- this.webview_end_fail_message = event.webviewEndFailMessage;
12
+ this.webview_step_n = event.webviewStepNumber;
13
13
  }
14
14
  }
15
- //# sourceMappingURL=ht-event-webview.js.map
15
+ //# sourceMappingURL=ht-event-webview-step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ht-event-webview-step.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-webview-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAiC,MAAM,UAAU,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,kBAAmB,SAAQ,OAAO;IAQ7C,YAAY,KAAuB,EAAE,WAAwB;QAC3D,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,cAAc,GAAG,KAAK,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAA;IAC/C,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { EventAction, EventType, HtEventProps, RequestData } from '../types';
2
2
  export declare class HtEvent {
3
- chat_id: string;
3
+ chat_id?: string;
4
4
  type: EventType;
5
5
  chat_language: string;
6
6
  chat_country?: string;
@@ -8,5 +8,6 @@ export declare class HtEvent {
8
8
  bot_version?: string;
9
9
  flow_version?: string;
10
10
  action: EventAction;
11
+ bot_interaction_id?: string;
11
12
  constructor(event: HtEventProps, requestData: RequestData);
12
13
  }
@@ -1,3 +1,13 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ import { EventAction } from '../types';
3
+ const excludedEvents = [
4
+ EventAction.FeedbackCase,
5
+ EventAction.FeedbackConversation,
6
+ EventAction.FeedbackKnowledgebase,
7
+ EventAction.FeedbackWebview,
8
+ EventAction.WebviewStep,
9
+ EventAction.WebviewEnd,
10
+ ];
1
11
  export class HtEvent {
2
12
  constructor(event, requestData) {
3
13
  this.chat_id = requestData.userId;
@@ -5,6 +15,9 @@ export class HtEvent {
5
15
  this.chat_country = requestData.country;
6
16
  this.format_version = 2;
7
17
  this.action = event.action;
18
+ if (!excludedEvents.includes(event.action)) {
19
+ this.bot_interaction_id = requestData.botInteractionId;
20
+ }
8
21
  }
9
22
  }
10
23
  //# sourceMappingURL=ht-event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ht-event.js","sourceRoot":"","sources":["../../../src/event-models/ht-event.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,OAAO;IAUlB,YAAY,KAAmB,EAAE,WAAwB;QACvD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAA;QACjC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAA;QACvC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"ht-event.js","sourceRoot":"","sources":["../../../src/event-models/ht-event.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAwC,MAAM,UAAU,CAAA;AAE5E,MAAM,cAAc,GAAG;IACrB,WAAW,CAAC,YAAY;IACxB,WAAW,CAAC,oBAAoB;IAChC,WAAW,CAAC,qBAAqB;IACjC,WAAW,CAAC,eAAe;IAC3B,WAAW,CAAC,WAAW;IACvB,WAAW,CAAC,UAAU;CACvB,CAAA;AAED,MAAM,OAAO,OAAO;IAWlB,YAAY,KAAmB,EAAE,WAAwB;QACvD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAA;QACjC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAA;QACvC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAE1B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC1C,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,gBAAgB,CAAA;SACvD;IACH,CAAC;CACF"}
@@ -10,4 +10,5 @@ export { HtEventIntent } from './ht-event-intent';
10
10
  export { HtEventIntentSmart } from './ht-event-intent-smart';
11
11
  export { HtEventKeyword } from './ht-event-keyword';
12
12
  export { HtEventKnowledgeBase } from './ht-event-knowledge-base';
13
- export { HtEventWebview } from './ht-event-webview';
13
+ export { HtEventWebviewEnd } from './ht-event-webview-end';
14
+ export { HtEventWebviewStep } from './ht-event-webview-step';
@@ -10,5 +10,6 @@ export { HtEventIntent } from './ht-event-intent';
10
10
  export { HtEventIntentSmart } from './ht-event-intent-smart';
11
11
  export { HtEventKeyword } from './ht-event-keyword';
12
12
  export { HtEventKnowledgeBase } from './ht-event-knowledge-base';
13
- export { HtEventWebview } from './ht-event-webview';
13
+ export { HtEventWebviewEnd } from './ht-event-webview-end';
14
+ export { HtEventWebviewStep } from './ht-event-webview-step';
14
15
  //# sourceMappingURL=index.js.map
@@ -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,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"}
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,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1,22 +1,26 @@
1
1
  import { BotRequest, Plugin } from '@botonic/core';
2
2
  import axios from 'axios';
3
- import { EventType, HtEventProps, RequestData } from './types';
3
+ import { HtEventProps, RequestData } from './types';
4
4
  export interface HubtypeAnalyticsOptions {
5
5
  getLanguage?: (request: BotRequest) => string;
6
6
  getCountry?: (request: BotRequest) => string;
7
7
  }
8
8
  export default class BotonicPluginHubtypeAnalytics implements Plugin {
9
- baseUrl: string;
9
+ eventsBaseUrl: string;
10
10
  getLanguage: (request: BotRequest) => string;
11
11
  getCountry: (request: BotRequest) => string;
12
12
  constructor(options?: HubtypeAnalyticsOptions);
13
13
  post(): void;
14
- getUrl(request: BotRequest, eventType: EventType): string;
15
- getRequestData(request: BotRequest): RequestData;
16
14
  trackEvent(request: BotRequest, htEventProps: HtEventProps): Promise<{
17
15
  data: string;
18
16
  } | axios.AxiosResponse<any, any>>;
17
+ getRequestData(request: BotRequest): RequestData;
18
+ private isLambdaEvent;
19
19
  private sendEvent;
20
+ private sendBotEvent;
21
+ private sendWebEvent;
22
+ private sendWebEventByBotId;
23
+ private sendWebEventByProviderId;
20
24
  }
21
25
  export * from './types';
22
26
  export * from './utils';
package/lib/esm/index.js CHANGED
@@ -10,25 +10,14 @@ function getDefaultCountry(request) {
10
10
  }
11
11
  export default class BotonicPluginHubtypeAnalytics {
12
12
  constructor(options) {
13
- this.baseUrl = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
13
+ const hubtypeUrl = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com';
14
+ this.eventsBaseUrl = `${hubtypeUrl}/external/v2/conversational_apps/`;
14
15
  this.getLanguage = (options === null || options === void 0 ? void 0 : options.getLanguage) || getDefaultLanguage;
15
16
  this.getCountry = (options === null || options === void 0 ? void 0 : options.getCountry) || getDefaultCountry;
16
17
  }
17
18
  post() {
18
19
  return;
19
20
  }
20
- getUrl(request, eventType) {
21
- const endpoint = eventType === EventType.BotEvent ? 'bot_event' : 'web_event';
22
- const botId = request.session.bot.id;
23
- return `${this.baseUrl}/external/v2/conversational_apps/${botId}/${endpoint}/`;
24
- }
25
- getRequestData(request) {
26
- return {
27
- language: this.getLanguage(request),
28
- country: this.getCountry(request),
29
- userId: request.session.user.id,
30
- };
31
- }
32
21
  trackEvent(request, htEventProps) {
33
22
  return __awaiter(this, void 0, void 0, function* () {
34
23
  if (request.session.is_test_integration) {
@@ -41,10 +30,51 @@ export default class BotonicPluginHubtypeAnalytics {
41
30
  return this.sendEvent(request, event);
42
31
  });
43
32
  }
33
+ getRequestData(request) {
34
+ var _a;
35
+ return {
36
+ language: this.getLanguage(request),
37
+ country: this.getCountry(request),
38
+ userId: this.isLambdaEvent(request) ? request.session.user.id : undefined,
39
+ botInteractionId: (_a = request.input) === null || _a === void 0 ? void 0 : _a.bot_interaction_id,
40
+ };
41
+ }
42
+ isLambdaEvent(request) {
43
+ var _a, _b;
44
+ return ((_b = (_a = request.session) === null || _a === void 0 ? void 0 : _a.bot) === null || _b === void 0 ? void 0 : _b.id) !== undefined;
45
+ }
44
46
  sendEvent(request, event) {
45
- const url = this.getUrl(request, event.type);
46
- const headers = { Authorization: `Bearer ${request.session._access_token}` };
47
- const config = event.type !== EventType.WebEvent ? { headers } : undefined;
47
+ if (event.type === EventType.BotEvent) {
48
+ return this.sendBotEvent(request, event);
49
+ }
50
+ return this.sendWebEvent(request, event);
51
+ }
52
+ sendBotEvent(request, event) {
53
+ const botId = request.session.bot.id;
54
+ const url = `${this.eventsBaseUrl}/${botId}/bot_event/`;
55
+ const config = {
56
+ headers: { Authorization: `Bearer ${request.session._access_token}` },
57
+ };
58
+ return axios.post(url, event, config);
59
+ }
60
+ sendWebEvent(request, event) {
61
+ if (this.isLambdaEvent(request)) {
62
+ return this.sendWebEventByBotId(request, event);
63
+ }
64
+ return this.sendWebEventByProviderId(request, event);
65
+ }
66
+ sendWebEventByBotId(request, event) {
67
+ const botId = request.session.bot.id;
68
+ const url = `${this.eventsBaseUrl}/${botId}/web_event/`;
69
+ return axios.post(url, event);
70
+ }
71
+ sendWebEventByProviderId(request, event) {
72
+ const url = `${this.eventsBaseUrl}/web_event/`;
73
+ const config = {
74
+ params: {
75
+ provider_id: request.session.user.id,
76
+ },
77
+ };
48
78
  return axios.post(url, event, config);
49
79
  }
50
80
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export interface EventFeedback extends HtBaseEventProps {
37
37
  export interface EventFeedbackKnowledgebase extends HtBaseEventProps {
38
38
  action: EventAction.FeedbackKnowledgebase;
39
39
  knowledgebaseInferenceId: string;
40
+ feedbackBotInteractionId: string;
40
41
  feedbackTargetId: string;
41
42
  feedbackGroupId: string;
42
43
  possibleOptions: string[];
@@ -112,11 +113,21 @@ export interface EventFallback extends HtBaseEventProps {
112
113
  fallbackOut: number;
113
114
  fallbackMessageId: string;
114
115
  }
115
- export interface EventWebview extends HtBaseEventProps {
116
- action: EventAction.WebviewStep | EventAction.WebviewEnd;
116
+ export interface EventWebviewStep extends HtBaseEventProps {
117
+ action: EventAction.WebviewStep;
118
+ flowThreadId?: string;
119
+ webviewThreadId: string;
120
+ webviewName: string;
121
+ webviewStepName: string;
122
+ webviewStepNumber?: number;
123
+ }
124
+ export interface EventWebviewEnd extends HtBaseEventProps {
125
+ action: EventAction.WebviewEnd;
126
+ flowThreadId?: string;
117
127
  webviewThreadId: string;
118
128
  webviewName: string;
119
129
  webviewStepName?: string;
130
+ webviewStepNumber?: number;
120
131
  webviewEndFailType?: string;
121
132
  webviewEndFailMessage?: string;
122
133
  }
@@ -125,9 +136,10 @@ export interface EventCustom extends HtBaseEventProps {
125
136
  customFields?: Record<string, any>;
126
137
  customSensitiveFields?: Record<string, any>;
127
138
  }
128
- export type HtEventProps = EventFeedback | EventFeedbackKnowledgebase | EventFlow | EventHandoff | EventHandoffOption | EventIntent | EventKeyword | EventIntentSmart | EventKnowledgeBase | EventFallback | EventWebview | EventCustom;
139
+ export type HtEventProps = EventFeedback | EventFeedbackKnowledgebase | EventFlow | EventHandoff | EventHandoffOption | EventIntent | EventKeyword | EventIntentSmart | EventKnowledgeBase | EventFallback | EventWebviewStep | EventWebviewEnd | EventCustom;
129
140
  export interface RequestData {
130
141
  language: string;
131
142
  country: string;
132
- userId: string;
143
+ userId?: string;
144
+ botInteractionId: string;
133
145
  }
@@ -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,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"}
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;AAkGD,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, HtEventFeedbackKnowledgebase, 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, HtEventWebviewEnd, HtEventWebviewStep, } from './event-models';
2
2
  import { EventAction } from './types';
3
3
  export function createHtEvent(requestData, htEventProps) {
4
4
  switch (htEventProps.action) {
@@ -27,8 +27,9 @@ export function createHtEvent(requestData, htEventProps) {
27
27
  case EventAction.Fallback:
28
28
  return new HtEventFallback(htEventProps, requestData);
29
29
  case EventAction.WebviewStep:
30
+ return new HtEventWebviewStep(htEventProps, requestData);
30
31
  case EventAction.WebviewEnd:
31
- return new HtEventWebview(htEventProps, requestData);
32
+ return new HtEventWebviewEnd(htEventProps, requestData);
32
33
  case EventAction.Custom:
33
34
  return new HtEventCustom(htEventProps, requestData);
34
35
  default:
@@ -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,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"}
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,iBAAiB,EACjB,kBAAkB,GACnB,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;YAC1B,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE1D,KAAK,WAAW,CAAC,UAAU;YACzB,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEzD,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.28.1",
3
+ "version": "0.28.2-alpha.2",
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,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@babel/runtime": "^7.21.0",
17
- "@botonic/core": "^0.28.1",
17
+ "@botonic/core": "0.28.2-alpha.1",
18
18
  "axios": "^1.7.2"
19
19
  },
20
20
  "devDependencies": {
@@ -8,7 +8,8 @@ import { HtEvent } from './ht-event'
8
8
 
9
9
  export class HtEventFeedbackKnowledgebase extends HtEvent {
10
10
  action: EventAction.FeedbackKnowledgebase
11
- knowledgebase_inference_id: string
11
+ knowledge_base_inference_id: string
12
+ feedback_target_bot_interaction_id: string
12
13
  feedback_target_id: string
13
14
  feedback_group_id: string
14
15
  possible_options: string[]
@@ -21,7 +22,8 @@ export class HtEventFeedbackKnowledgebase extends HtEvent {
21
22
  super(event, requestData)
22
23
  this.type = EventType.WebEvent
23
24
  this.action = event.action
24
- this.knowledgebase_inference_id = event.knowledgebaseInferenceId
25
+ this.knowledge_base_inference_id = event.knowledgebaseInferenceId
26
+ this.feedback_target_bot_interaction_id = event.feedbackBotInteractionId
25
27
  this.feedback_target_id = event.feedbackTargetId
26
28
  this.feedback_group_id = event.feedbackGroupId
27
29
  this.possible_options = event.possibleOptions
@@ -1,21 +1,25 @@
1
- import { EventAction, EventType, EventWebview, RequestData } from '../types'
1
+ import { EventAction, EventType, EventWebviewEnd, RequestData } from '../types'
2
2
  import { HtEvent } from './ht-event'
3
3
 
4
- export class HtEventWebview extends HtEvent {
5
- action: EventAction.WebviewStep | EventAction.WebviewEnd
4
+ export class HtEventWebviewEnd extends HtEvent {
5
+ action: EventAction.WebviewEnd
6
+ flow_thread_id?: string
6
7
  webview_thread_id: string
7
8
  webview_name: string
8
- webview_step_name?: string
9
+ webview_end_step_name?: string
10
+ webview_end_step_n?: number
9
11
  webview_end_fail_type?: string
10
12
  webview_end_fail_message?: string
11
13
 
12
- constructor(event: EventWebview, requestData: RequestData) {
14
+ constructor(event: EventWebviewEnd, requestData: RequestData) {
13
15
  super(event, requestData)
14
16
  this.type = EventType.WebEvent
15
17
  this.action = event.action
18
+ this.flow_thread_id = event.flowThreadId
16
19
  this.webview_thread_id = event.webviewThreadId
17
20
  this.webview_name = event.webviewName
18
- this.webview_step_name = event.webviewStepName
21
+ this.webview_end_step_name = event.webviewStepName
22
+ this.webview_end_step_n = event.webviewStepNumber
19
23
  this.webview_end_fail_type = event.webviewEndFailType
20
24
  this.webview_end_fail_message = event.webviewEndFailMessage
21
25
  }
@@ -0,0 +1,22 @@
1
+ import { EventAction, EventType, EventWebviewStep, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ export class HtEventWebviewStep extends HtEvent {
5
+ action: EventAction.WebviewStep
6
+ flow_thread_id?: string
7
+ webview_thread_id: string
8
+ webview_name: string
9
+ webview_step_name?: string
10
+ webview_step_n?: number
11
+
12
+ constructor(event: EventWebviewStep, requestData: RequestData) {
13
+ super(event, requestData)
14
+ this.type = EventType.WebEvent
15
+ this.action = event.action
16
+ this.flow_thread_id = event.flowThreadId
17
+ this.webview_thread_id = event.webviewThreadId
18
+ this.webview_name = event.webviewName
19
+ this.webview_step_name = event.webviewStepName
20
+ this.webview_step_n = event.webviewStepNumber
21
+ }
22
+ }
@@ -1,7 +1,17 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
1
2
  import { EventAction, EventType, HtEventProps, RequestData } from '../types'
2
3
 
4
+ const excludedEvents = [
5
+ EventAction.FeedbackCase,
6
+ EventAction.FeedbackConversation,
7
+ EventAction.FeedbackKnowledgebase,
8
+ EventAction.FeedbackWebview,
9
+ EventAction.WebviewStep,
10
+ EventAction.WebviewEnd,
11
+ ]
12
+
3
13
  export class HtEvent {
4
- chat_id: string
14
+ chat_id?: string
5
15
  type: EventType
6
16
  chat_language: string
7
17
  chat_country?: string
@@ -9,6 +19,7 @@ export class HtEvent {
9
19
  bot_version?: string
10
20
  flow_version?: string
11
21
  action: EventAction
22
+ bot_interaction_id?: string
12
23
 
13
24
  constructor(event: HtEventProps, requestData: RequestData) {
14
25
  this.chat_id = requestData.userId
@@ -16,5 +27,9 @@ export class HtEvent {
16
27
  this.chat_country = requestData.country
17
28
  this.format_version = 2
18
29
  this.action = event.action
30
+
31
+ if (!excludedEvents.includes(event.action)) {
32
+ this.bot_interaction_id = requestData.botInteractionId
33
+ }
19
34
  }
20
35
  }
@@ -10,4 +10,5 @@ export { HtEventIntent } from './ht-event-intent'
10
10
  export { HtEventIntentSmart } from './ht-event-intent-smart'
11
11
  export { HtEventKeyword } from './ht-event-keyword'
12
12
  export { HtEventKnowledgeBase } from './ht-event-knowledge-base'
13
- export { HtEventWebview } from './ht-event-webview'
13
+ export { HtEventWebviewEnd } from './ht-event-webview-end'
14
+ export { HtEventWebviewStep } from './ht-event-webview-step'
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { BotRequest, Plugin } from '@botonic/core'
2
- import axios, { AxiosError } from 'axios'
2
+ import axios from 'axios'
3
+ import { send } from 'process'
3
4
 
4
5
  import { HtEvent } from './event-models'
5
6
  import { EventType, HtEventProps, RequestData } from './types'
@@ -19,11 +20,12 @@ function getDefaultCountry(request: BotRequest): string {
19
20
  }
20
21
 
21
22
  export default class BotonicPluginHubtypeAnalytics implements Plugin {
22
- baseUrl: string
23
+ eventsBaseUrl: string
23
24
  getLanguage: (request: BotRequest) => string
24
25
  getCountry: (request: BotRequest) => string
25
26
  constructor(options?: HubtypeAnalyticsOptions) {
26
- this.baseUrl = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com'
27
+ const hubtypeUrl = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com'
28
+ this.eventsBaseUrl = `${hubtypeUrl}/external/v2/conversational_apps/`
27
29
  this.getLanguage = options?.getLanguage || getDefaultLanguage
28
30
  this.getCountry = options?.getCountry || getDefaultCountry
29
31
  }
@@ -32,21 +34,6 @@ export default class BotonicPluginHubtypeAnalytics implements Plugin {
32
34
  return
33
35
  }
34
36
 
35
- getUrl(request: BotRequest, eventType: EventType) {
36
- const endpoint =
37
- eventType === EventType.BotEvent ? 'bot_event' : 'web_event'
38
- const botId = request.session.bot.id
39
- return `${this.baseUrl}/external/v2/conversational_apps/${botId}/${endpoint}/`
40
- }
41
-
42
- getRequestData(request: BotRequest): RequestData {
43
- return {
44
- language: this.getLanguage(request),
45
- country: this.getCountry(request),
46
- userId: request.session.user.id,
47
- }
48
- }
49
-
50
37
  async trackEvent(request: BotRequest, htEventProps: HtEventProps) {
51
38
  if (request.session.is_test_integration) {
52
39
  return Promise.resolve({
@@ -59,11 +46,57 @@ export default class BotonicPluginHubtypeAnalytics implements Plugin {
59
46
  return this.sendEvent(request, event)
60
47
  }
61
48
 
49
+ getRequestData(request: BotRequest): RequestData {
50
+ return {
51
+ language: this.getLanguage(request),
52
+ country: this.getCountry(request),
53
+ userId: this.isLambdaEvent(request) ? request.session.user.id : undefined,
54
+ botInteractionId: request.input?.bot_interaction_id,
55
+ }
56
+ }
57
+
58
+ private isLambdaEvent(request: BotRequest): boolean {
59
+ return request.session?.bot?.id !== undefined
60
+ }
61
+
62
62
  private sendEvent(request: BotRequest, event: HtEvent) {
63
- const url = this.getUrl(request, event.type)
64
- const headers = { Authorization: `Bearer ${request.session._access_token}` }
65
- const config = event.type !== EventType.WebEvent ? { headers } : undefined
63
+ if (event.type === EventType.BotEvent) {
64
+ return this.sendBotEvent(request, event)
65
+ }
66
+
67
+ return this.sendWebEvent(request, event)
68
+ }
69
+
70
+ private sendBotEvent(request: BotRequest, event: HtEvent) {
71
+ const botId = request.session.bot.id
72
+ const url = `${this.eventsBaseUrl}/${botId}/bot_event/`
73
+ const config = {
74
+ headers: { Authorization: `Bearer ${request.session._access_token}` },
75
+ }
76
+ return axios.post(url, event, config)
77
+ }
66
78
 
79
+ private sendWebEvent(request: BotRequest, event: HtEvent) {
80
+ if (this.isLambdaEvent(request)) {
81
+ return this.sendWebEventByBotId(request, event)
82
+ }
83
+
84
+ return this.sendWebEventByProviderId(request, event)
85
+ }
86
+
87
+ private sendWebEventByBotId(request: BotRequest, event: HtEvent) {
88
+ const botId = request.session.bot.id
89
+ const url = `${this.eventsBaseUrl}/${botId}/web_event/`
90
+ return axios.post(url, event)
91
+ }
92
+
93
+ private sendWebEventByProviderId(request: BotRequest, event: HtEvent) {
94
+ const url = `${this.eventsBaseUrl}/web_event/`
95
+ const config = {
96
+ params: {
97
+ provider_id: request.session.user.id,
98
+ },
99
+ }
67
100
  return axios.post(url, event, config)
68
101
  }
69
102
  }
package/src/types.ts CHANGED
@@ -45,6 +45,7 @@ export interface EventFeedback extends HtBaseEventProps {
45
45
  export interface EventFeedbackKnowledgebase extends HtBaseEventProps {
46
46
  action: EventAction.FeedbackKnowledgebase
47
47
  knowledgebaseInferenceId: string
48
+ feedbackBotInteractionId: string
48
49
  feedbackTargetId: string
49
50
  feedbackGroupId: string
50
51
  possibleOptions: string[]
@@ -130,11 +131,22 @@ export interface EventFallback extends HtBaseEventProps {
130
131
  fallbackMessageId: string
131
132
  }
132
133
 
133
- export interface EventWebview extends HtBaseEventProps {
134
- action: EventAction.WebviewStep | EventAction.WebviewEnd
134
+ export interface EventWebviewStep extends HtBaseEventProps {
135
+ action: EventAction.WebviewStep
136
+ flowThreadId?: string
137
+ webviewThreadId: string
138
+ webviewName: string
139
+ webviewStepName: string
140
+ webviewStepNumber?: number
141
+ }
142
+
143
+ export interface EventWebviewEnd extends HtBaseEventProps {
144
+ action: EventAction.WebviewEnd
145
+ flowThreadId?: string
135
146
  webviewThreadId: string
136
147
  webviewName: string
137
148
  webviewStepName?: string
149
+ webviewStepNumber?: number
138
150
  webviewEndFailType?: string
139
151
  webviewEndFailMessage?: string
140
152
  }
@@ -156,11 +168,13 @@ export type HtEventProps =
156
168
  | EventIntentSmart
157
169
  | EventKnowledgeBase
158
170
  | EventFallback
159
- | EventWebview
171
+ | EventWebviewStep
172
+ | EventWebviewEnd
160
173
  | EventCustom
161
174
 
162
175
  export interface RequestData {
163
176
  language: string
164
177
  country: string
165
- userId: string
178
+ userId?: string
179
+ botInteractionId: string
166
180
  }
package/src/utils.ts CHANGED
@@ -11,7 +11,8 @@ import {
11
11
  HtEventIntentSmart,
12
12
  HtEventKeyword,
13
13
  HtEventKnowledgeBase,
14
- HtEventWebview,
14
+ HtEventWebviewEnd,
15
+ HtEventWebviewStep,
15
16
  } from './event-models'
16
17
  import { EventAction, HtEventProps, RequestData } from './types'
17
18
 
@@ -55,8 +56,10 @@ export function createHtEvent(
55
56
  return new HtEventFallback(htEventProps, requestData)
56
57
 
57
58
  case EventAction.WebviewStep:
59
+ return new HtEventWebviewStep(htEventProps, requestData)
60
+
58
61
  case EventAction.WebviewEnd:
59
- return new HtEventWebview(htEventProps, requestData)
62
+ return new HtEventWebviewEnd(htEventProps, requestData)
60
63
 
61
64
  case EventAction.Custom:
62
65
  return new HtEventCustom(htEventProps, requestData)
@@ -1,11 +0,0 @@
1
- import { EventAction, EventWebview, RequestData } from '../types';
2
- import { HtEvent } from './ht-event';
3
- export declare class HtEventWebview extends HtEvent {
4
- action: EventAction.WebviewStep | EventAction.WebviewEnd;
5
- webview_thread_id: string;
6
- webview_name: string;
7
- webview_step_name?: string;
8
- webview_end_fail_type?: string;
9
- webview_end_fail_message?: string;
10
- constructor(event: EventWebview, requestData: RequestData);
11
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ht-event-webview.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-webview.ts"],"names":[],"mappings":";;;AAAA,oCAA4E;AAC5E,yCAAoC;AAEpC,MAAa,cAAe,SAAQ,kBAAO;IAQzC,YAAY,KAAmB,EAAE,WAAwB;QACvD,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,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,kBAAkB,CAAA;QACrD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,qBAAqB,CAAA;IAC7D,CAAC;CACF;AAlBD,wCAkBC"}
@@ -1,11 +0,0 @@
1
- import { EventAction, EventWebview, RequestData } from '../types';
2
- import { HtEvent } from './ht-event';
3
- export declare class HtEventWebview extends HtEvent {
4
- action: EventAction.WebviewStep | EventAction.WebviewEnd;
5
- webview_thread_id: string;
6
- webview_name: string;
7
- webview_step_name?: string;
8
- webview_end_fail_type?: string;
9
- webview_end_fail_message?: string;
10
- constructor(event: EventWebview, requestData: RequestData);
11
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ht-event-webview.js","sourceRoot":"","sources":["../../../src/event-models/ht-event-webview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAA6B,MAAM,UAAU,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,OAAO,cAAe,SAAQ,OAAO;IAQzC,YAAY,KAAmB,EAAE,WAAwB;QACvD,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,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,kBAAkB,CAAA;QACrD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,qBAAqB,CAAA;IAC7D,CAAC;CACF"}