@xapp/stentor-service-fieldpulse 1.64.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldPulseService.js","sourceRoot":"","sources":["../src/FieldPulseService.ts"],"names":[],"mappings":"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"}
package/lib/ai.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { FieldPulseJobType } from "./models";
2
+ export interface AIProperties {
3
+ jobTypes?: any;
4
+ apiKey?: string;
5
+ }
6
+ export interface LabelJobResponse {
7
+ success: boolean;
8
+ serviceType?: string;
9
+ jobCategory?: string;
10
+ jobService?: string;
11
+ }
12
+ export declare class AIService {
13
+ props: AIProperties;
14
+ /**
15
+ * Process a description into a label and summary for a job
16
+ */
17
+ constructor(props: AIProperties);
18
+ labelJob(description: string): Promise<LabelJobResponse>;
19
+ processResponse(response: any): LabelJobResponse;
20
+ selectJobCategoryFromDescription(description: string, jobCategories: string[]): Promise<FieldPulseJobType>;
21
+ }
package/lib/ai.js ADDED
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AIService = void 0;
16
+ /*! Copyright (c) 2024, XAPP AI */
17
+ const stentor_logger_1 = require("stentor-logger");
18
+ const openai_1 = __importDefault(require("openai"));
19
+ //import { kMaxLength } from "buffer";
20
+ const model = "gpt-4o";
21
+ class AIService {
22
+ /**
23
+ * Process a description into a label and summary for a job
24
+ */
25
+ constructor(props) {
26
+ this.props = props;
27
+ }
28
+ labelJob(description) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const labelJobResponse = { success: false };
31
+ const system_prompt = "You are a helpful assistant for a Home Services company. Match a customer description to the following JSON object: \n";
32
+ const openai = new openai_1.default({
33
+ apiKey: this.props.apiKey
34
+ });
35
+ const messages = [
36
+ {
37
+ role: "system",
38
+ content: system_prompt + JSON.stringify(this.props.jobTypes) + "\n Return the response as a JSON object"
39
+ },
40
+ {
41
+ role: "user",
42
+ content: description
43
+ }
44
+ ];
45
+ try {
46
+ const response = yield openai.chat.completions.create({
47
+ messages: messages,
48
+ model,
49
+ temperature: 0,
50
+ response_format: { type: "json_object" }
51
+ });
52
+ return this.processResponse(response);
53
+ }
54
+ catch (err) {
55
+ (0, stentor_logger_1.log)().error(`Error labelling job ${err}`);
56
+ return labelJobResponse;
57
+ }
58
+ });
59
+ }
60
+ processResponse(response) {
61
+ const labelJobResponse = { success: false };
62
+ try {
63
+ const label = response.choices[0].message.content;
64
+ const json = JSON.parse(label);
65
+ labelJobResponse.serviceType = json.JobType[0];
66
+ for (const key in json.Category) {
67
+ labelJobResponse.jobCategory = key;
68
+ labelJobResponse.jobService = json.Category[key][0];
69
+ }
70
+ labelJobResponse.success = true;
71
+ return labelJobResponse;
72
+ }
73
+ catch (err) {
74
+ (0, stentor_logger_1.log)().error(`Error processing OpenAI response: ${err}`);
75
+ return labelJobResponse;
76
+ }
77
+ }
78
+ selectJobCategoryFromDescription(description, jobCategories) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ const system_prompt = "Using the JSON payload, return the best job type from an array of job_types based on a user's description of an issue: ";
81
+ try {
82
+ const openai = new openai_1.default({
83
+ apiKey: this.props.apiKey
84
+ });
85
+ const messages = [
86
+ {
87
+ role: "system",
88
+ content: system_prompt +
89
+ JSON.stringify({
90
+ job_types: jobCategories
91
+ }) +
92
+ "\n Return the id, and name fields of the matching job_type in a JSON object."
93
+ },
94
+ {
95
+ role: "user",
96
+ content: description
97
+ }
98
+ ];
99
+ const response = yield openai.chat.completions.create({
100
+ messages: messages,
101
+ model,
102
+ temperature: 0,
103
+ response_format: { type: "json_object" }
104
+ });
105
+ const cleaned = response.choices[0].message.content;
106
+ const json = JSON.parse(cleaned);
107
+ return json;
108
+ }
109
+ catch (err) {
110
+ (0, stentor_logger_1.log)().error(`Error selecting job category ${err}`);
111
+ return;
112
+ }
113
+ });
114
+ }
115
+ }
116
+ exports.AIService = AIService;
117
+ //# sourceMappingURL=ai.js.map
package/lib/ai.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ /*! Copyright (c) 2024, XAPP AI */
2
+ export * from "./FieldPulseService";
package/lib/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /*! Copyright (c) 2024, XAPP AI */
18
+ __exportStar(require("./FieldPulseService"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kCAAkC;AAClC,sDAAoC"}
@@ -0,0 +1,167 @@
1
+ /*! Copyright (c) 2024, XAPP AI */
2
+ import { IParsedAddress } from "addresser";
3
+ export interface FieldPulseExternalLeadExtras {
4
+ /**
5
+ * Typically aligned with the session ID to allow the same customer to have multiple conversations and create multiple leads.
6
+ */
7
+ externalId?: string;
8
+ /**
9
+ * The URL of the website the lead is on when the lead capture is complete
10
+ */
11
+ source?: string;
12
+ /**
13
+ * ID of the bot. Pass this in if you aren't using 'bot' or the STUDIO_APP_ID
14
+ */
15
+ botId?: string;
16
+ /**
17
+ * Was the session abandoned i.e. widget was closed (= no more data)?
18
+ */
19
+ isAbandoned?: boolean;
20
+ }
21
+ export interface FieldPulseLeadTranscript {
22
+ /**
23
+ * What the end user asked
24
+ */
25
+ question: string;
26
+ /**
27
+ * How the bot responded
28
+ */
29
+ answer: string;
30
+ }
31
+ export interface FieldPulseLead extends FieldPulseExternalLeadExtras {
32
+ /**
33
+ * A transcript of the conversation that lead to the lead
34
+ */
35
+ transcript: FieldPulseLeadTranscript[];
36
+ /**
37
+ * The fields and their value for the lead.
38
+ */
39
+ fields: {
40
+ name: string;
41
+ value: string;
42
+ }[];
43
+ }
44
+ /**
45
+ * Address
46
+ */
47
+ export interface FieldPulseAddress {
48
+ title: string;
49
+ address_1?: string;
50
+ city?: string;
51
+ state?: string;
52
+ zip_code?: string;
53
+ is_main_location?: boolean;
54
+ }
55
+ /**
56
+ * customer
57
+ *
58
+ * @export
59
+ * @interface FieldPulseCustomer
60
+ */
61
+ export interface FieldPulseCustomer {
62
+ id?: number;
63
+ company_id?: number;
64
+ email?: string;
65
+ phone?: string;
66
+ city?: string;
67
+ state?: string;
68
+ notes?: string;
69
+ address_1?: string;
70
+ address_2?: string;
71
+ billing_address_1?: string;
72
+ billing_address_2?: string;
73
+ billing_city?: string;
74
+ billing_state?: string;
75
+ billing_zip_code?: string;
76
+ first_name?: string;
77
+ last_name?: string;
78
+ company_name?: string;
79
+ zip_code?: string;
80
+ tags?: string[];
81
+ lead_source?: string;
82
+ job_notes?: string;
83
+ updated_at?: string;
84
+ created_at?: string;
85
+ status: "lead" | "opportunity" | "current customer";
86
+ locations?: FieldPulseAddress[];
87
+ customfields?: {
88
+ id: number;
89
+ value: string;
90
+ }[];
91
+ }
92
+ export declare enum JobStatus {
93
+ New = 1,
94
+ InProgress = 2,
95
+ Pending = 3,
96
+ Completed = 4,
97
+ Canceled = 5,
98
+ OnMyWay = 6
99
+ }
100
+ export interface Tag {
101
+ type: "job" | "customer";
102
+ title: string;
103
+ color?: string;
104
+ }
105
+ /**
106
+ * Job
107
+ *
108
+ * @export
109
+ * @interface FieldPulseJob
110
+ */
111
+ export interface FieldPulseJob {
112
+ customer_id: number;
113
+ job_type: string;
114
+ status: JobStatus;
115
+ subtitle?: string;
116
+ start_time: number;
117
+ end_time: number;
118
+ notes: string;
119
+ billing: 1;
120
+ location: string;
121
+ location_id?: number;
122
+ tags?: number[];
123
+ }
124
+ export interface FieldPulsePagination<Data = unknown> {
125
+ error: boolean;
126
+ total_count: number;
127
+ response: Data[];
128
+ }
129
+ export interface FieldPulseResponse<T> {
130
+ status: "Success" | "Failure";
131
+ error?: string;
132
+ data?: T;
133
+ }
134
+ export interface CustomerQuery {
135
+ ids?: string[];
136
+ name?: string;
137
+ phone?: string;
138
+ email?: string;
139
+ }
140
+ export interface FieldPulseLocation {
141
+ title: string;
142
+ object_type: string;
143
+ object_id?: number;
144
+ address_1?: string;
145
+ address_2?: string;
146
+ city?: string;
147
+ state?: string;
148
+ zip_code?: string;
149
+ is_main_location?: boolean;
150
+ is_primary_location?: boolean;
151
+ }
152
+ export interface JobsQuery {
153
+ createdOnOrAfter?: number;
154
+ search?: string;
155
+ }
156
+ export interface ProcessJobRequest {
157
+ dateTime?: string;
158
+ consentApproval?: boolean;
159
+ message?: string;
160
+ crmRequest?: FieldPulseCustomer;
161
+ parsedAddress?: IParsedAddress;
162
+ preferredTime?: string;
163
+ }
164
+ export interface FieldPulseJobType {
165
+ id: string;
166
+ name: string;
167
+ }
package/lib/models.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JobStatus = void 0;
4
+ var JobStatus;
5
+ (function (JobStatus) {
6
+ JobStatus[JobStatus["New"] = 1] = "New";
7
+ JobStatus[JobStatus["InProgress"] = 2] = "InProgress";
8
+ JobStatus[JobStatus["Pending"] = 3] = "Pending";
9
+ JobStatus[JobStatus["Completed"] = 4] = "Completed";
10
+ JobStatus[JobStatus["Canceled"] = 5] = "Canceled";
11
+ JobStatus[JobStatus["OnMyWay"] = 6] = "OnMyWay";
12
+ })(JobStatus || (exports.JobStatus = JobStatus = {}));
13
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":";;;AA4FA,IAAY,SAOX;AAPD,WAAY,SAAS;IACjB,uCAAO,CAAA;IACP,qDAAc,CAAA;IACd,+CAAW,CAAA;IACX,mDAAa,CAAA;IACb,iDAAY,CAAA;IACZ,+CAAW,CAAA;AACf,CAAC,EAPW,SAAS,yBAAT,SAAS,QAOpB"}
package/lib/util.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import { Message, ExternalLead, DateTime } from "stentor-models";
2
+ import { FieldPulseLeadTranscript } from "./models";
3
+ import addresser from "addresser";
4
+ export declare function transformTranscript(transcript: Message[], botId?: string): FieldPulseLeadTranscript[];
5
+ export declare function parseAddress(addressString: string): Promise<addresser.IParsedAddress>;
6
+ export declare function getUTCOffset(dateString: string): number;
7
+ export declare function getName(lead: ExternalLead): any;
8
+ /**
9
+ * Array of DateTime objects for the next n days from today
10
+ *
11
+ * @param n
12
+ * @returns
13
+ */
14
+ export declare function getNextDays(n: number): DateTime[];
package/lib/util.js ADDED
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.transformTranscript = transformTranscript;
16
+ exports.parseAddress = parseAddress;
17
+ exports.getUTCOffset = getUTCOffset;
18
+ exports.getName = getName;
19
+ exports.getNextDays = getNextDays;
20
+ /*! Copyright (c) 2024, XAPP AI */
21
+ const stentor_logger_1 = require("stentor-logger");
22
+ const addresser_1 = __importDefault(require("addresser"));
23
+ const axios_1 = __importDefault(require("axios"));
24
+ function transformTranscript(transcript, botId) {
25
+ const FieldPulseTranscript = [];
26
+ const current = {
27
+ question: "",
28
+ answer: ""
29
+ };
30
+ // This is very fragile at the moment
31
+ transcript.forEach((value, index) => {
32
+ const message = value.message;
33
+ let isFromBot = false;
34
+ if (value.from && value.from.id) {
35
+ isFromBot =
36
+ value.from.id === botId || value.from.id === "bot" || value.from.id === process.env["STUDIO_APP_ID"];
37
+ }
38
+ // Either what they passed in, the app_id, or "bot" which is another possible default
39
+ if (isFromBot) {
40
+ // From the bot, the answer
41
+ current.answer = message;
42
+ }
43
+ else {
44
+ current.question = message;
45
+ }
46
+ if (index % 2) {
47
+ // push if we are on the add number
48
+ FieldPulseTranscript.push(Object.assign({}, current));
49
+ // clean it
50
+ current.answer = "";
51
+ current.question = "";
52
+ }
53
+ else {
54
+ // If we are at the end and not on a odd number
55
+ if (index === transcript.length - 1) {
56
+ FieldPulseTranscript.push(Object.assign({}, current));
57
+ }
58
+ }
59
+ });
60
+ return FieldPulseTranscript;
61
+ }
62
+ function parseAddress(addressString) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ let parsedAddress;
65
+ if (!addressString) {
66
+ (0, stentor_logger_1.log)().info("No Address passed...");
67
+ return;
68
+ }
69
+ try {
70
+ addresser_1.default.parseAddress(addressString);
71
+ }
72
+ catch (err) {
73
+ (0, stentor_logger_1.log)().error(`Invalid address, go through Google ${addressString}: ${err}`);
74
+ const addrDetails = yield getAddressDetails(addressString);
75
+ return addrDetails;
76
+ }
77
+ try {
78
+ parsedAddress = addresser_1.default.parseAddress(addressString);
79
+ // Service Titan Requires Zip Code. Get it from Google
80
+ if ((parsedAddress === null || parsedAddress === void 0 ? void 0 : parsedAddress.addressLine1) && !(parsedAddress === null || parsedAddress === void 0 ? void 0 : parsedAddress.zipCode)) {
81
+ const addressDetails = yield getAddressDetails(addressString);
82
+ return addressDetails;
83
+ }
84
+ return parsedAddress;
85
+ }
86
+ catch (e) {
87
+ (0, stentor_logger_1.log)().error(`Invalid address ${addressString}: ${e}`);
88
+ return undefined;
89
+ }
90
+ });
91
+ }
92
+ function getAddressDetails(addressString) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const predictions = yield axios_1.default.request({
95
+ method: "get",
96
+ url: `https://places.xapp.ai/maps/api/place/autocomplete/json?input=${addressString}`
97
+ });
98
+ // Match found: Get Details
99
+ if (predictions.data.predictions.length > 0) {
100
+ const details = yield axios_1.default.request({
101
+ method: "get",
102
+ url: `https://places.xapp.ai/maps/api/place/details/json?place_id=${predictions.data.predictions[0].place_id}`
103
+ });
104
+ return addresser_1.default.parseAddress(details.data.result.formatted_address);
105
+ }
106
+ else {
107
+ return;
108
+ }
109
+ });
110
+ }
111
+ function getUTCOffset(dateString) {
112
+ const date = new Date(dateString);
113
+ const utcOffsetMinutes = date.getTimezoneOffset();
114
+ const utcOffsetHours = utcOffsetMinutes / 60;
115
+ return -utcOffsetHours; // Return negative because getTimezoneOffset returns positive for timezones ahead of UTC
116
+ }
117
+ function getName(lead) {
118
+ // Try to find a field with the name "FULL_NAME" in the lead.fields array
119
+ const fullNameField = lead.fields.find((field) => field.name === "FULL_NAME");
120
+ // If a "FULL_NAME" field is found, return its value
121
+ if (fullNameField) {
122
+ const nameParts = fullNameField.value.trim().split(/\s+/);
123
+ const lastName = nameParts.pop();
124
+ const firstName = nameParts.join(" ");
125
+ return {
126
+ firstName,
127
+ lastName
128
+ };
129
+ }
130
+ // If no "FULL_NAME" field is found, try to find "FIRST_NAME" and "LAST_NAME" fields
131
+ const firstNameField = lead.fields.find((field) => field.name === "FIRST_NAME");
132
+ const lastNameField = lead.fields.find((field) => field.name === "LAST_NAME");
133
+ // If both "FIRST_NAME" and "LAST_NAME" fields are found, concatenate their values with a space in between
134
+ if (firstNameField && lastNameField)
135
+ return {
136
+ firstName: firstNameField,
137
+ lastName: lastNameField
138
+ };
139
+ return null;
140
+ }
141
+ /**
142
+ * Array of DateTime objects for the next n days from today
143
+ *
144
+ * @param n
145
+ * @returns
146
+ */
147
+ function getNextDays(n) {
148
+ const dates = [];
149
+ let today = new Date();
150
+ const serverOffset = today.getTimezoneOffset();
151
+ today = moveBackByMinutes(today, 240 - serverOffset); // TODO: visitor (browser) or service location address
152
+ for (let i = 1; i <= n; i++) {
153
+ const nextDay = new Date(today);
154
+ nextDay.setDate(today.getDate() + i);
155
+ const year = nextDay.getFullYear();
156
+ const month = (nextDay.getMonth() + 1).toString().padStart(2, "0");
157
+ const day = nextDay.getDate().toString().padStart(2, "0");
158
+ dates.push({ date: `${year}-${month}-${day}` });
159
+ }
160
+ return dates;
161
+ }
162
+ function moveBackByMinutes(d, minutes) {
163
+ if (minutes !== 0) {
164
+ d.setMinutes(d.getMinutes() - minutes);
165
+ }
166
+ (0, stentor_logger_1.log)().info(`Jobber: Moved back ${minutes} minutes: ${d}`);
167
+ return d;
168
+ }
169
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@xapp/stentor-service-fieldpulse",
3
+ "license": "Apache-2.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "version": "1.64.0",
8
+ "description": "Service to integrate with FieldPulse",
9
+ "types": "lib/index",
10
+ "main": "lib/index",
11
+ "files": [
12
+ "lib"
13
+ ],
14
+ "engines": {
15
+ "node": "^16 || ^18 || ^20"
16
+ },
17
+ "devDependencies": {
18
+ "@types/chai": "4.3.20",
19
+ "@types/lodash": "4.17.13",
20
+ "@xapp/config": "0.2.3",
21
+ "chai": "4.5.0",
22
+ "dotenv": "16.4.5",
23
+ "mocha": "10.8.2",
24
+ "stentor-logger": "1.59.132",
25
+ "stentor-models": "1.59.128",
26
+ "stentor-service-fetch": "1.59.128",
27
+ "ts-node": "10.9.2",
28
+ "typescript": "5.6.3"
29
+ },
30
+ "peerDependencies": {
31
+ "stentor-logger": "1.x",
32
+ "stentor-models": "1.x",
33
+ "stentor-service-fetch": "1.x"
34
+ },
35
+ "scripts": {
36
+ "build": "tsc -d true -p .",
37
+ "clean": "rm -rf ./lib/*",
38
+ "test": "exit 0",
39
+ "local": "mocha --recursive --timeout 12000 -r ts-node/register \"./src/**/*.test.ts\""
40
+ },
41
+ "gitHead": "8a428b675b0b76c8d0ed4dc23f11209cf4644c2c",
42
+ "dependencies": {
43
+ "addresser": "1.1.20"
44
+ }
45
+ }