@xapp/stentor-service-promio 1.40.112 → 1.40.119
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/PromioService.d.ts +27 -0
- package/lib/PromioService.js +10 -5
- package/lib/PromioService.js.map +1 -1
- package/lib/util.d.ts +4 -0
- package/lib/util.js +42 -0
- package/lib/util.js.map +1 -0
- package/package.json +8 -5
package/lib/PromioService.d.ts
CHANGED
|
@@ -29,6 +29,33 @@ export interface PromioExternalLeadExtras {
|
|
|
29
29
|
* The URL of the website the lead is on when the lead capture is complete
|
|
30
30
|
*/
|
|
31
31
|
source?: string;
|
|
32
|
+
/**
|
|
33
|
+
* ID of the bot. Pass this in if you aren't using 'bot' or the STUDIO_APP_ID
|
|
34
|
+
*/
|
|
35
|
+
botId?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface PromioLeadTranscript {
|
|
38
|
+
/**
|
|
39
|
+
* What the end user asked
|
|
40
|
+
*/
|
|
41
|
+
question: string;
|
|
42
|
+
/**
|
|
43
|
+
* How the bot responded
|
|
44
|
+
*/
|
|
45
|
+
answer: string;
|
|
46
|
+
}
|
|
47
|
+
export interface PromioLead extends PromioExternalLeadExtras {
|
|
48
|
+
/**
|
|
49
|
+
* A transcript of the conversation that lead to the lead
|
|
50
|
+
*/
|
|
51
|
+
transcript: PromioLeadTranscript[];
|
|
52
|
+
/**
|
|
53
|
+
* The fields and their value for the lead.
|
|
54
|
+
*/
|
|
55
|
+
fields: {
|
|
56
|
+
name: string;
|
|
57
|
+
value: string;
|
|
58
|
+
}[];
|
|
32
59
|
}
|
|
33
60
|
export interface PromioResponse {
|
|
34
61
|
Status: "Success" | undefined;
|
package/lib/PromioService.js
CHANGED
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.PromioService = void 0;
|
|
13
13
|
const stentor_logger_1 = require("stentor-logger");
|
|
14
14
|
require("isomorphic-fetch");
|
|
15
|
+
const util_1 = require("./util");
|
|
15
16
|
const TIMEOUT_MS = 12000;
|
|
16
17
|
class PromioService {
|
|
17
18
|
constructor(props) {
|
|
@@ -41,11 +42,15 @@ class PromioService {
|
|
|
41
42
|
if (!this.props.endPoint) {
|
|
42
43
|
throw new Error("Promio: endpoint is not set");
|
|
43
44
|
}
|
|
45
|
+
const transcript = (0, util_1.transformTranscript)(externalLead.transcript, extras === null || extras === void 0 ? void 0 : extras.botId);
|
|
44
46
|
// Add a couple of items to the external lead
|
|
45
|
-
const lead =
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
const lead = {
|
|
48
|
+
transcript,
|
|
49
|
+
completed: extras === null || extras === void 0 ? void 0 : extras.completed,
|
|
50
|
+
source: extras === null || extras === void 0 ? void 0 : extras.source,
|
|
51
|
+
externalId: extras === null || extras === void 0 ? void 0 : extras.externalId,
|
|
52
|
+
fields: externalLead.fields
|
|
53
|
+
};
|
|
49
54
|
const url = `${this.props.endPoint}/?${new URLSearchParams({
|
|
50
55
|
AuthToken: this.props.authToken,
|
|
51
56
|
DataMap: `${this.props.dataMap}`
|
|
@@ -56,7 +61,7 @@ class PromioService {
|
|
|
56
61
|
"Content-Type": "application/json"
|
|
57
62
|
},
|
|
58
63
|
timeout: TIMEOUT_MS,
|
|
59
|
-
body: JSON.stringify(
|
|
64
|
+
body: JSON.stringify(lead)
|
|
60
65
|
};
|
|
61
66
|
(0, stentor_logger_1.log)().info(`Promio: Sending Leads: ${JSON.stringify(externalLead, undefined, 2)}`);
|
|
62
67
|
return fetch(url, opts)
|
package/lib/PromioService.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromioService.js","sourceRoot":"","sources":["../src/PromioService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,mDAAqC;AACrC,4BAA0B;
|
|
1
|
+
{"version":3,"file":"PromioService.js","sourceRoot":"","sources":["../src/PromioService.ts"],"names":[],"mappings":"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"}
|
package/lib/util.d.ts
ADDED
package/lib/util.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformTranscript = void 0;
|
|
4
|
+
function transformTranscript(transcript, botId) {
|
|
5
|
+
const promioTranscript = [];
|
|
6
|
+
const current = {
|
|
7
|
+
question: "",
|
|
8
|
+
answer: ""
|
|
9
|
+
};
|
|
10
|
+
// This is very fragile at the moment
|
|
11
|
+
transcript.forEach((value, index) => {
|
|
12
|
+
const message = value.message;
|
|
13
|
+
let isFromBot = false;
|
|
14
|
+
if (value.from && value.from.id) {
|
|
15
|
+
isFromBot = value.from.id === botId || value.from.id === "bot" || value.from.id === process.env["STUDIO_APP_ID"];
|
|
16
|
+
}
|
|
17
|
+
// Either what they passed in, the app_id, or "bot" which is another possible default
|
|
18
|
+
if (isFromBot) {
|
|
19
|
+
// From the bot, the answer
|
|
20
|
+
current.answer = message;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
current.question = message;
|
|
24
|
+
}
|
|
25
|
+
if (index % 2) {
|
|
26
|
+
// push if we are on the add number
|
|
27
|
+
promioTranscript.push(Object.assign({}, current));
|
|
28
|
+
// clean it
|
|
29
|
+
current.answer = "";
|
|
30
|
+
current.question = "";
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// If we are at the end and not on a odd number
|
|
34
|
+
if (index === transcript.length - 1) {
|
|
35
|
+
promioTranscript.push(Object.assign({}, current));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return promioTranscript;
|
|
40
|
+
}
|
|
41
|
+
exports.transformTranscript = transformTranscript;
|
|
42
|
+
//# sourceMappingURL=util.js.map
|
package/lib/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAKA,SAAgB,mBAAmB,CAAC,UAAqB,EAAE,KAAc;IAErE,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAyB;QAClC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;KACb,CAAC;IAEF,qCAAqC;IACrC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAEhC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE9B,IAAI,SAAS,GAAY,KAAK,CAAC;QAC/B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;YAC7B,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;SACnH;QAED,qFAAqF;QACrF,IAAI,SAAS,EAAE;YACX,2BAA2B;YAC3B,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;SAC5B;aAAM;YACH,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;SAC9B;QAED,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,mCAAmC;YACnC,gBAAgB,CAAC,IAAI,mBAAM,OAAO,EAAG,CAAC;YACtC,WAAW;YACX,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAA;SACxB;aAAM;YACH,+CAA+C;YAC/C,IAAI,KAAK,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,gBAAgB,CAAC,IAAI,mBAAM,OAAO,EAAG,CAAC;aACzC;SACJ;IAGL,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AA5CD,kDA4CC"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "1.40.
|
|
7
|
+
"version": "1.40.119",
|
|
8
8
|
"description": "Service to interface the Promio CRM service",
|
|
9
9
|
"types": "lib/index",
|
|
10
10
|
"main": "lib/index",
|
|
@@ -19,8 +19,10 @@
|
|
|
19
19
|
"@types/lodash": "4.14.180",
|
|
20
20
|
"@xapp/config": "0.2.3",
|
|
21
21
|
"chai": "4.3.6",
|
|
22
|
-
"
|
|
23
|
-
"stentor-
|
|
22
|
+
"mocha": "9.2.2",
|
|
23
|
+
"stentor-logger": "1.54.12",
|
|
24
|
+
"stentor-models": "1.54.12",
|
|
25
|
+
"ts-node": "9.1.1",
|
|
24
26
|
"typescript": "4.6.3"
|
|
25
27
|
},
|
|
26
28
|
"dependencies": {
|
|
@@ -33,7 +35,8 @@
|
|
|
33
35
|
},
|
|
34
36
|
"scripts": {
|
|
35
37
|
"build": "tsc -d true -p .",
|
|
36
|
-
"clean": "rm -rf ./lib/*"
|
|
38
|
+
"clean": "rm -rf ./lib/*",
|
|
39
|
+
"test": "mocha --recursive -r ts-node/register \"./src/**/*.test.ts\""
|
|
37
40
|
},
|
|
38
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "7cbaabb73da2d2b2b19e5c62c503211a7a1ab509"
|
|
39
42
|
}
|