@activepieces/piece-chatling 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # pieces-chatling
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build pieces-chatling` to build the library.
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@activepieces/piece-chatling",
3
+ "version": "0.0.1",
4
+ "type": "commonjs",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "dependencies": {
8
+ "@sinclair/typebox": "0.34.11",
9
+ "axios": "1.13.1",
10
+ "axios-retry": "4.4.1",
11
+ "dayjs": "1.11.9",
12
+ "deepmerge-ts": "7.1.0",
13
+ "mime-types": "2.1.35",
14
+ "nanoid": "3.3.8",
15
+ "semver": "7.6.0",
16
+ "socket.io-client": "4.8.1",
17
+ "tslib": "^2.3.0",
18
+ "zod": "4.1.13",
19
+ "@activepieces/pieces-common": "0.10.1",
20
+ "@activepieces/pieces-framework": "0.22.2",
21
+ "@activepieces/shared": "0.30.1"
22
+ },
23
+ "resolutions": {
24
+ "rollup": "npm:@rollup/wasm-node"
25
+ }
26
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const chatlingAuth: import("@activepieces/pieces-framework").SecretTextProperty<true>;
2
+ export declare const chatling: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").SecretTextProperty<true>>;
package/src/index.js ADDED
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chatling = exports.chatlingAuth = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const shared_1 = require("@activepieces/shared");
8
+ const common_1 = require("./lib/common");
9
+ const send_message_1 = require("./lib/actions/send-message");
10
+ const create_chatbot_1 = require("./lib/actions/create-chatbot");
11
+ const new_conversation_1 = require("./lib/triggers/new-conversation");
12
+ const new_contact_1 = require("./lib/triggers/new-contact");
13
+ const markdownDescription = `
14
+ To obtain your API key:
15
+
16
+ 1. Go to your [Chatling account](https://app.chatling.ai)
17
+ 2. Open **Project Settings**
18
+ 3. Click the **API Keys** tab
19
+ 4. Press **New API key** and generate a new key
20
+ 5. Copy the key (it's only shown once)
21
+ `;
22
+ exports.chatlingAuth = pieces_framework_1.PieceAuth.SecretText({
23
+ displayName: 'API Key',
24
+ description: markdownDescription,
25
+ required: true,
26
+ validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
27
+ try {
28
+ yield (0, common_1.makeRequest)(auth, pieces_common_1.HttpMethod.GET, '/project/settings');
29
+ return { valid: true };
30
+ }
31
+ catch (e) {
32
+ return {
33
+ valid: false,
34
+ error: 'Invalid API key',
35
+ };
36
+ }
37
+ }),
38
+ });
39
+ exports.chatling = (0, pieces_framework_1.createPiece)({
40
+ displayName: 'Chatling',
41
+ description: 'Build AI chatbots trained on your data.',
42
+ auth: exports.chatlingAuth,
43
+ minimumSupportedRelease: '0.36.1',
44
+ logoUrl: 'https://cdn.activepieces.com/pieces/chatling.png',
45
+ categories: [shared_1.PieceCategory.ARTIFICIAL_INTELLIGENCE],
46
+ authors: ['onyedikachi-david'],
47
+ actions: [
48
+ send_message_1.sendMessage,
49
+ create_chatbot_1.createChatbot,
50
+ (0, pieces_common_1.createCustomApiCallAction)({
51
+ auth: exports.chatlingAuth,
52
+ baseUrl: () => 'https://api.chatling.ai/v2',
53
+ authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
54
+ return ({
55
+ Authorization: `Bearer ${auth.secret_text}`,
56
+ });
57
+ }),
58
+ }),
59
+ ],
60
+ triggers: [new_conversation_1.newConversation, new_contact_1.newContact],
61
+ });
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/chatling/src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAGqC;AACrC,qEAAwE;AACxE,iDAAqD;AACrD,yCAA2C;AAC3C,6DAAyD;AACzD,iEAA6D;AAC7D,sEAAkE;AAClE,4DAAwD;AAExD,MAAM,mBAAmB,GAAG;;;;;;;;CAQ3B,CAAC;AAEW,QAAA,YAAY,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC/C,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,mBAAmB;IAChC,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,IAAA,oBAAW,EAAC,IAAI,EAAE,0BAAU,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAC7D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,iBAAiB;aACzB,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,QAAQ,GAAG,IAAA,8BAAW,EAAC;IAClC,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,yCAAyC;IACtD,IAAI,EAAE,oBAAY;IAClB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,kDAAkD;IAC3D,UAAU,EAAE,CAAC,sBAAa,CAAC,uBAAuB,CAAC;IACnD,OAAO,EAAE,CAAC,mBAAmB,CAAC;IAC9B,OAAO,EAAE;QACP,0BAAW;QACX,8BAAa;QACb,IAAA,yCAAyB,EAAC;YACxB,IAAI,EAAE,oBAAY;YAClB,OAAO,EAAE,GAAG,EAAE,CAAC,4BAA4B;YAC3C,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,aAAa,EAAE,UAAW,IAAgC,CAAC,WAAW,EAAE;iBACzE,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,QAAQ,EAAE,CAAC,kCAAe,EAAE,wBAAU,CAAC;CACxC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const createChatbot: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ template_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ }>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createChatbot = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const index_1 = require("../../index");
8
+ const common_1 = require("../common");
9
+ const props_1 = require("../common/props");
10
+ exports.createChatbot = (0, pieces_framework_1.createAction)({
11
+ auth: index_1.chatlingAuth,
12
+ name: 'create_chatbot',
13
+ displayName: 'Create Chatbot',
14
+ description: 'Create a new chatbot using a template or from scratch.',
15
+ props: {
16
+ name: pieces_framework_1.Property.ShortText({
17
+ displayName: 'Name',
18
+ description: 'The name of the chatbot',
19
+ required: true,
20
+ }),
21
+ template_id: props_1.templateIdDropdown,
22
+ },
23
+ run(context) {
24
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
+ const { name, template_id } = context.propsValue;
26
+ const apiKey = context.auth.secret_text;
27
+ const body = { name };
28
+ if (template_id)
29
+ body['template_id'] = template_id;
30
+ const response = yield (0, common_1.makeRequest)(apiKey, pieces_common_1.HttpMethod.POST, '/chatbots', body);
31
+ return response;
32
+ });
33
+ },
34
+ });
35
+ //# sourceMappingURL=create-chatbot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-chatbot.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/chatling/src/lib/actions/create-chatbot.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAAwE;AACxE,uCAA2C;AAC3C,sCAAwC;AACxC,2CAAqD;AAExC,QAAA,aAAa,GAAG,IAAA,+BAAY,EAAC;IACxC,IAAI,EAAE,oBAAY;IAClB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,wDAAwD;IACrE,KAAK,EAAE;QACL,IAAI,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACvB,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,WAAW,EAAE,0BAAkB;KAChC;IAEK,GAAG,CAAC,OAAO;;YACf,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YACjD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAExC,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAC;YAE/C,IAAI,WAAW;gBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;YAEnD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAW,EAChC,MAAM,EACN,0BAAU,CAAC,IAAI,EACf,WAAW,EACX,IAAI,CACL,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const sendMessage: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ chatbotId: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
+ message: import("@activepieces/pieces-framework").LongTextProperty<true>;
4
+ ai_model_id: import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
5
+ conversation_id: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
6
+ contact_id: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
7
+ language_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
8
+ temperature: import("@activepieces/pieces-framework").NumberProperty<false>;
9
+ instructions: import("@activepieces/pieces-framework").ArrayProperty<false>;
10
+ }>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendMessage = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const index_1 = require("../../index");
8
+ const common_1 = require("../common");
9
+ const props_1 = require("../common/props");
10
+ exports.sendMessage = (0, pieces_framework_1.createAction)({
11
+ auth: index_1.chatlingAuth,
12
+ name: 'send_message',
13
+ displayName: 'Send Message',
14
+ description: 'Send a message to the chatbot and receive an AI response.',
15
+ props: {
16
+ chatbotId: props_1.chatbotIdDropdown,
17
+ message: pieces_framework_1.Property.LongText({
18
+ displayName: 'Message',
19
+ description: 'The message to send to the AI',
20
+ required: true,
21
+ }),
22
+ ai_model_id: props_1.aiModelIdDropdown,
23
+ conversation_id: props_1.conversationIdDropdown,
24
+ contact_id: props_1.contactIdDropdown,
25
+ language_id: props_1.languageIdDropdown,
26
+ temperature: pieces_framework_1.Property.Number({
27
+ displayName: 'Temperature',
28
+ description: 'Controls randomness (0 = focused, 1 = creative). Default is 0.',
29
+ required: false,
30
+ defaultValue: 0,
31
+ }),
32
+ instructions: pieces_framework_1.Property.Array({
33
+ displayName: 'Instructions',
34
+ description: 'Additional instructions to tailor the AI response',
35
+ required: false,
36
+ }),
37
+ },
38
+ run(context) {
39
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
40
+ const { chatbotId, message, ai_model_id, conversation_id, contact_id, language_id, temperature, instructions, } = context.propsValue;
41
+ const apiKey = context.auth.secret_text;
42
+ const body = {
43
+ message,
44
+ ai_model_id,
45
+ };
46
+ if (conversation_id)
47
+ body['conversation_id'] = conversation_id;
48
+ if (contact_id)
49
+ body['contact_id'] = contact_id;
50
+ if (language_id)
51
+ body['language_id'] = language_id;
52
+ if (temperature !== undefined && temperature !== null)
53
+ body['temperature'] = temperature;
54
+ if (instructions && instructions.length > 0)
55
+ body['instructions'] = instructions;
56
+ const response = yield (0, common_1.makeRequest)(apiKey, pieces_common_1.HttpMethod.POST, `/chatbots/${chatbotId}/ai/kb/chat`, body);
57
+ return response;
58
+ });
59
+ },
60
+ });
61
+ //# sourceMappingURL=send-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/chatling/src/lib/actions/send-message.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAAwE;AACxE,uCAA2C;AAC3C,sCAAwC;AACxC,2CAMyB;AAEZ,QAAA,WAAW,GAAG,IAAA,+BAAY,EAAC;IACtC,IAAI,EAAE,oBAAY;IAClB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,2DAA2D;IACxE,KAAK,EAAE;QACL,SAAS,EAAE,yBAAiB;QAC5B,OAAO,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACzB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,WAAW,EAAE,yBAAiB;QAC9B,eAAe,EAAE,8BAAsB;QACvC,UAAU,EAAE,yBAAiB;QAC7B,WAAW,EAAE,0BAAkB;QAC/B,WAAW,EAAE,2BAAQ,CAAC,MAAM,CAAC;YAC3B,WAAW,EAAE,aAAa;YAC1B,WAAW,EACT,gEAAgE;YAClE,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,CAAC;SAChB,CAAC;QACF,YAAY,EAAE,2BAAQ,CAAC,KAAK,CAAC;YAC3B,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IAEK,GAAG,CAAC,OAAO;;YACf,MAAM,EACJ,SAAS,EACT,OAAO,EACP,WAAW,EACX,eAAe,EACf,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,GACb,GAAG,OAAO,CAAC,UAAU,CAAC;YAEvB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAExC,MAAM,IAAI,GAA4B;gBACpC,OAAO;gBACP,WAAW;aACZ,CAAC;YAEF,IAAI,eAAe;gBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,eAAe,CAAC;YAC/D,IAAI,UAAU;gBAAE,IAAI,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;YAChD,IAAI,WAAW;gBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;YACnD,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI;gBACnD,IAAI,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;YACpC,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;gBACzC,IAAI,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;YAEtC,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAW,EAChC,MAAM,EACN,0BAAU,CAAC,IAAI,EACf,aAAa,SAAS,aAAa,EACnC,IAAI,CACL,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { HttpMethod } from '@activepieces/pieces-common';
2
+ export declare const chatlingCommon: {
3
+ baseUrl: string;
4
+ };
5
+ export declare function makeRequest<T = unknown>(apiKey: string, method: HttpMethod, path: string, body?: unknown): Promise<T>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chatlingCommon = void 0;
4
+ exports.makeRequest = makeRequest;
5
+ const tslib_1 = require("tslib");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ exports.chatlingCommon = {
8
+ baseUrl: 'https://api.chatling.ai/v2',
9
+ };
10
+ function makeRequest(apiKey, method, path, body) {
11
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
12
+ const response = yield pieces_common_1.httpClient.sendRequest({
13
+ method,
14
+ url: `${exports.chatlingCommon.baseUrl}${path}`,
15
+ headers: {
16
+ Authorization: `Bearer ${apiKey}`,
17
+ 'Content-Type': 'application/json',
18
+ },
19
+ body,
20
+ });
21
+ return response.body;
22
+ });
23
+ }
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/chatling/src/lib/common/index.ts"],"names":[],"mappings":";;;AAMA,kCAiBC;;AAvBD,+DAAqE;AAExD,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,4BAA4B;CACtC,CAAC;AAEF,SAAsB,WAAW,CAC/B,MAAc,EACd,MAAkB,EAClB,IAAY,EACZ,IAAc;;QAEd,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAI;YAC/C,MAAM;YACN,GAAG,EAAE,GAAG,sBAAc,CAAC,OAAO,GAAG,IAAI,EAAE;YACvC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI;SACL,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const chatbotIdDropdown: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
2
+ export declare const aiModelIdDropdown: import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
+ export declare const languageIdDropdown: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ export declare const contactIdDropdown: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
5
+ export declare const templateIdDropdown: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
6
+ export declare const conversationIdDropdown: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.conversationIdDropdown = exports.templateIdDropdown = exports.contactIdDropdown = exports.languageIdDropdown = exports.aiModelIdDropdown = exports.chatbotIdDropdown = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const index_1 = require("./index");
8
+ const index_2 = require("../../index");
9
+ exports.chatbotIdDropdown = pieces_framework_1.Property.Dropdown({
10
+ auth: index_2.chatlingAuth,
11
+ displayName: 'Chatbot',
12
+ description: 'Select a chatbot',
13
+ required: true,
14
+ refreshers: [],
15
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
16
+ if (!auth) {
17
+ return {
18
+ disabled: true,
19
+ placeholder: 'Please connect your account first.',
20
+ options: [],
21
+ };
22
+ }
23
+ const response = yield (0, index_1.makeRequest)(auth.secret_text, pieces_common_1.HttpMethod.GET, '/chatbots');
24
+ const options = response.data.chatbots.map((chatbot) => ({
25
+ label: chatbot.name,
26
+ value: chatbot.id,
27
+ }));
28
+ return {
29
+ disabled: false,
30
+ options,
31
+ };
32
+ }),
33
+ });
34
+ exports.aiModelIdDropdown = pieces_framework_1.Property.Dropdown({
35
+ auth: index_2.chatlingAuth,
36
+ displayName: 'AI Model',
37
+ description: 'Select the AI model to use',
38
+ required: true,
39
+ refreshers: ['chatbotId'],
40
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, chatbotId }) {
41
+ if (!auth) {
42
+ return {
43
+ disabled: true,
44
+ placeholder: 'Please connect your account first.',
45
+ options: [],
46
+ };
47
+ }
48
+ if (!chatbotId) {
49
+ return {
50
+ disabled: true,
51
+ placeholder: 'Please select a chatbot first.',
52
+ options: [],
53
+ };
54
+ }
55
+ const response = yield (0, index_1.makeRequest)(auth.secret_text, pieces_common_1.HttpMethod.GET, `/chatbots/${chatbotId}/ai/kb/models`);
56
+ const options = response.data.models.map((model) => ({
57
+ label: model.name,
58
+ value: model.id,
59
+ }));
60
+ return {
61
+ disabled: false,
62
+ options,
63
+ };
64
+ }),
65
+ });
66
+ exports.languageIdDropdown = pieces_framework_1.Property.Dropdown({
67
+ auth: index_2.chatlingAuth,
68
+ displayName: 'Language',
69
+ description: 'Select the language for the AI response',
70
+ required: false,
71
+ refreshers: ['chatbotId'],
72
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, chatbotId }) {
73
+ if (!auth) {
74
+ return {
75
+ disabled: true,
76
+ placeholder: 'Please connect your account first.',
77
+ options: [],
78
+ };
79
+ }
80
+ if (!chatbotId) {
81
+ return {
82
+ disabled: true,
83
+ placeholder: 'Please select a chatbot first.',
84
+ options: [],
85
+ };
86
+ }
87
+ const response = yield (0, index_1.makeRequest)(auth.secret_text, pieces_common_1.HttpMethod.GET, `/chatbots/${chatbotId}/ai/kb/languages`);
88
+ const options = response.data.languages.map((language) => ({
89
+ label: language.name,
90
+ value: language.id,
91
+ }));
92
+ return {
93
+ disabled: false,
94
+ options,
95
+ };
96
+ }),
97
+ });
98
+ exports.contactIdDropdown = pieces_framework_1.Property.Dropdown({
99
+ auth: index_2.chatlingAuth,
100
+ displayName: 'Contact',
101
+ description: 'Associate the conversation with a contact',
102
+ required: false,
103
+ refreshers: ['chatbotId'],
104
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, chatbotId }) {
105
+ if (!auth) {
106
+ return {
107
+ disabled: true,
108
+ placeholder: 'Please connect your account first.',
109
+ options: [],
110
+ };
111
+ }
112
+ if (!chatbotId) {
113
+ return {
114
+ disabled: true,
115
+ placeholder: 'Please select a chatbot first.',
116
+ options: [],
117
+ };
118
+ }
119
+ const response = yield (0, index_1.makeRequest)(auth.secret_text, pieces_common_1.HttpMethod.GET, `/chatbots/${chatbotId}/contacts`);
120
+ const options = response.data.contacts.map((contact) => ({
121
+ label: contact.name || contact.email || contact.id,
122
+ value: contact.id,
123
+ }));
124
+ return {
125
+ disabled: false,
126
+ options,
127
+ };
128
+ }),
129
+ });
130
+ exports.templateIdDropdown = pieces_framework_1.Property.Dropdown({
131
+ auth: index_2.chatlingAuth,
132
+ displayName: 'Template',
133
+ description: 'Use a template to create the chatbot',
134
+ required: false,
135
+ refreshers: [],
136
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
137
+ if (!auth) {
138
+ return {
139
+ disabled: true,
140
+ placeholder: 'Please connect your account first.',
141
+ options: [],
142
+ };
143
+ }
144
+ const response = yield (0, index_1.makeRequest)(auth.secret_text, pieces_common_1.HttpMethod.GET, '/chatbot-templates');
145
+ const options = response.data.templates.map((template) => ({
146
+ label: template.name,
147
+ value: template.id,
148
+ }));
149
+ return {
150
+ disabled: false,
151
+ options,
152
+ };
153
+ }),
154
+ });
155
+ exports.conversationIdDropdown = pieces_framework_1.Property.Dropdown({
156
+ auth: index_2.chatlingAuth,
157
+ displayName: 'Conversation',
158
+ description: 'Continue an existing conversation',
159
+ required: false,
160
+ refreshers: ['chatbotId'],
161
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, chatbotId }) {
162
+ if (!auth) {
163
+ return {
164
+ disabled: true,
165
+ placeholder: 'Please connect your account first.',
166
+ options: [],
167
+ };
168
+ }
169
+ if (!chatbotId) {
170
+ return {
171
+ disabled: true,
172
+ placeholder: 'Please select a chatbot first.',
173
+ options: [],
174
+ };
175
+ }
176
+ const response = yield (0, index_1.makeRequest)(auth.secret_text, pieces_common_1.HttpMethod.GET, `/chatbots/${chatbotId}/conversations`);
177
+ const options = response.data.conversations.map((conv) => {
178
+ var _a;
179
+ const firstUserMsg = (_a = conv.messages) === null || _a === void 0 ? void 0 : _a.find((m) => m.role === 'user');
180
+ const preview = (firstUserMsg === null || firstUserMsg === void 0 ? void 0 : firstUserMsg.text)
181
+ ? firstUserMsg.text.substring(0, 50) +
182
+ (firstUserMsg.text.length > 50 ? '...' : '')
183
+ : conv.created_at;
184
+ return {
185
+ label: preview,
186
+ value: conv.id,
187
+ };
188
+ });
189
+ return {
190
+ disabled: false,
191
+ options,
192
+ };
193
+ }),
194
+ });
195
+ //# sourceMappingURL=props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/chatling/src/lib/common/props.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAA0E;AAC1E,mCAAsC;AACtC,uCAA2C;AAE9B,QAAA,iBAAiB,GAAG,2BAAQ,CAAC,QAAQ,CAAC;IACjD,IAAI,EAAE,oBAAY;IAClB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,kBAAkB;IAC/B,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAI/B,IAAI,CAAC,WAAW,EAAE,0BAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAElD,MAAM,OAAO,GAA6B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAClE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACZ,KAAK,EAAE,OAAO,CAAC,IAAI;YACnB,KAAK,EAAE,OAAO,CAAC,EAAE;SAClB,CAAC,CACH,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO;SACR,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,2BAAQ,CAAC,QAAQ,CAAC;IACjD,IAAI,EAAE,oBAAY;IAClB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,4BAA4B;IACzC,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,OAAO,EAAE,KAA4B,EAAE,oDAAvB,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,gCAAgC;gBAC7C,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAKhC,IAAI,CAAC,WAAW,EAChB,0BAAU,CAAC,GAAG,EACd,aAAa,SAAS,eAAe,CACtC,CAAC;QAEF,MAAM,OAAO,GAA6B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAChE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACV,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,KAAK,EAAE,KAAK,CAAC,EAAE;SAChB,CAAC,CACH,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO;SACR,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,2BAAQ,CAAC,QAAQ,CAAC;IAClD,IAAI,EAAE,oBAAY;IAClB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,yCAAyC;IACtD,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,OAAO,EAAE,KAA4B,EAAE,oDAAvB,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,gCAAgC;gBAC7C,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAKhC,IAAI,CAAC,WAAW,EAChB,0BAAU,CAAC,GAAG,EACd,aAAa,SAAS,kBAAkB,CACzC,CAAC;QAEF,MAAM,OAAO,GAA6B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACnE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACb,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,KAAK,EAAE,QAAQ,CAAC,EAAE;SACnB,CAAC,CACH,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO;SACR,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,2BAAQ,CAAC,QAAQ,CAAC;IACjD,IAAI,EAAE,oBAAY;IAClB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,2CAA2C;IACxD,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,OAAO,EAAE,KAA4B,EAAE,oDAAvB,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,gCAAgC;gBAC7C,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAKhC,IAAI,CAAC,WAAW,EAChB,0BAAU,CAAC,GAAG,EACd,aAAa,SAAS,WAAW,CAClC,CAAC;QAEF,MAAM,OAAO,GAA6B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAClE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACZ,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE;YAClD,KAAK,EAAE,OAAO,CAAC,EAAE;SAClB,CAAC,CACH,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO;SACR,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,2BAAQ,CAAC,QAAQ,CAAC;IAClD,IAAI,EAAE,oBAAY;IAClB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,sCAAsC;IACnD,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAI/B,IAAI,CAAC,WAAW,EAAE,0BAAU,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAE3D,MAAM,OAAO,GAA6B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACnE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACb,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,KAAK,EAAE,QAAQ,CAAC,EAAE;SACnB,CAAC,CACH,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO;SACR,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,2BAAQ,CAAC,QAAQ,CAAC;IACtD,IAAI,EAAE,oBAAY;IAClB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,mCAAmC;IAChD,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,OAAO,EAAE,KAA4B,EAAE,oDAAvB,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,gCAAgC;gBAC7C,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAShC,IAAI,CAAC,WAAW,EAChB,0BAAU,CAAC,GAAG,EACd,aAAa,SAAS,gBAAgB,CACvC,CAAC;QAEF,MAAM,OAAO,GAA6B,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CACvE,CAAC,IAAI,EAAE,EAAE;;YACP,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI;gBAChC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;oBAClC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YACpB,OAAO;gBACL,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,IAAI,CAAC,EAAE;aACf,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO;SACR,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TriggerStrategy } from '@activepieces/pieces-framework';
2
+ export declare const newContact: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
3
+ chatbotId: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
5
+ chatbotId: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
6
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
7
+ chatbotId: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
8
+ }>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newContact = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const index_1 = require("../../index");
8
+ const props_1 = require("../common/props");
9
+ const common_1 = require("../common");
10
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
11
+ const polling = {
12
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
13
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue, lastFetchEpochMS }) {
14
+ const response = yield (0, common_1.makeRequest)(auth.secret_text, pieces_common_1.HttpMethod.GET, `/chatbots/${propsValue.chatbotId}/contacts?sort=date_desc`);
15
+ const contacts = response.data.contacts;
16
+ const items = contacts
17
+ .filter((contact) => {
18
+ if (lastFetchEpochMS === 0)
19
+ return true;
20
+ return (0, dayjs_1.default)(contact.created_at).valueOf() > lastFetchEpochMS;
21
+ })
22
+ .map((contact) => ({
23
+ epochMilliSeconds: (0, dayjs_1.default)(contact.created_at).valueOf(),
24
+ data: contact,
25
+ }));
26
+ return items;
27
+ }),
28
+ };
29
+ exports.newContact = (0, pieces_framework_1.createTrigger)({
30
+ auth: index_1.chatlingAuth,
31
+ name: 'new_contact',
32
+ displayName: 'New Contact/Lead',
33
+ description: 'Triggers when a new contact or lead is collected by the chatbot.',
34
+ props: {
35
+ chatbotId: props_1.chatbotIdDropdown,
36
+ },
37
+ type: pieces_framework_1.TriggerStrategy.POLLING,
38
+ onEnable(context) {
39
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
40
+ yield pieces_common_1.pollingHelper.onEnable(polling, {
41
+ auth: context.auth,
42
+ store: context.store,
43
+ propsValue: context.propsValue,
44
+ });
45
+ });
46
+ },
47
+ onDisable(context) {
48
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
49
+ yield pieces_common_1.pollingHelper.onDisable(polling, {
50
+ auth: context.auth,
51
+ store: context.store,
52
+ propsValue: context.propsValue,
53
+ });
54
+ });
55
+ },
56
+ test(context) {
57
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
58
+ return yield pieces_common_1.pollingHelper.test(polling, context);
59
+ });
60
+ },
61
+ run(context) {
62
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
63
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
64
+ });
65
+ },
66
+ sampleData: {
67
+ id: 'contact_abc123',
68
+ name: 'John Doe',
69
+ email: 'john@example.com',
70
+ phone: '+1234567890',
71
+ job_title: 'Product Manager',
72
+ website: 'https://example.com',
73
+ company: 'Acme Inc',
74
+ created_at: '2024-01-15T10:30:00.000Z',
75
+ },
76
+ });
77
+ //# sourceMappingURL=new-contact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-contact.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/chatling/src/lib/triggers/new-contact.ts"],"names":[],"mappings":";;;;AAAA,qEAIwC;AACxC,+DAKqC;AACrC,uCAA2C;AAC3C,2CAAoD;AACpD,sCAAwC;AACxC,0DAA0B;AAa1B,MAAM,OAAO,GAGT;IACF,QAAQ,EAAE,8BAAc,CAAC,SAAS;IAClC,KAAK,EAAE,KAA+C,EAAE,oDAA1C,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAW,EAKhC,IAAI,CAAC,WAAW,EAChB,0BAAU,CAAC,GAAG,EACd,aAAa,UAAU,CAAC,SAAS,0BAA0B,CAC5D,CAAC;QAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAExC,MAAM,KAAK,GAAG,QAAQ;aACnB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAClB,IAAI,gBAAgB,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACxC,OAAO,IAAA,eAAK,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC;QAChE,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjB,iBAAiB,EAAE,IAAA,eAAK,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;YACtD,IAAI,EAAE,OAAO;SACd,CAAC,CAAC,CAAC;QAEN,OAAO,KAAK,CAAC;IACf,CAAC,CAAA;CACF,CAAC;AAEW,QAAA,UAAU,GAAG,IAAA,gCAAa,EAAC;IACtC,IAAI,EAAE,oBAAY;IAClB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,kEAAkE;IAC/E,KAAK,EAAE;QACL,SAAS,EAAE,yBAAiB;KAC7B;IACD,IAAI,EAAE,kCAAe,CAAC,OAAO;IACvB,QAAQ,CAAC,OAAO;;YACpB,MAAM,6BAAa,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACpC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;KAAA;IACK,SAAS,CAAC,OAAO;;YACrB,MAAM,6BAAa,CAAC,SAAS,CAAC,OAAO,EAAE;gBACrC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;KAAA;IACK,IAAI,CAAC,OAAO;;YAChB,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;KAAA;IACK,GAAG,CAAC,OAAO;;YACf,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;KAAA;IACD,UAAU,EAAE;QACV,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,iBAAiB;QAC5B,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,0BAA0B;KACvC;CACF,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TriggerStrategy } from '@activepieces/pieces-framework';
2
+ export declare const newConversation: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
3
+ chatbotId: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
5
+ chatbotId: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
6
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
7
+ chatbotId: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
8
+ }>;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newConversation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const index_1 = require("../../index");
8
+ const props_1 = require("../common/props");
9
+ const common_1 = require("../common");
10
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
11
+ const polling = {
12
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
13
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue, lastFetchEpochMS }) {
14
+ const response = yield (0, common_1.makeRequest)(auth.secret_text, pieces_common_1.HttpMethod.GET, `/chatbots/${propsValue.chatbotId}/conversations?sort=date_desc`);
15
+ const conversations = response.data.conversations;
16
+ // Filter by lastFetchEpochMS if not first run
17
+ const items = conversations
18
+ .filter((conv) => {
19
+ if (lastFetchEpochMS === 0)
20
+ return true;
21
+ return (0, dayjs_1.default)(conv.created_at).valueOf() > lastFetchEpochMS;
22
+ })
23
+ .map((conv) => ({
24
+ epochMilliSeconds: (0, dayjs_1.default)(conv.created_at).valueOf(),
25
+ data: conv,
26
+ }));
27
+ return items;
28
+ }),
29
+ };
30
+ exports.newConversation = (0, pieces_framework_1.createTrigger)({
31
+ auth: index_1.chatlingAuth,
32
+ name: 'new_conversation',
33
+ displayName: 'New Conversation',
34
+ description: 'Triggers when a new conversation is started by a customer.',
35
+ props: {
36
+ chatbotId: props_1.chatbotIdDropdown,
37
+ },
38
+ type: pieces_framework_1.TriggerStrategy.POLLING,
39
+ onEnable(context) {
40
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
41
+ yield pieces_common_1.pollingHelper.onEnable(polling, {
42
+ auth: context.auth,
43
+ store: context.store,
44
+ propsValue: context.propsValue,
45
+ });
46
+ });
47
+ },
48
+ onDisable(context) {
49
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
50
+ yield pieces_common_1.pollingHelper.onDisable(polling, {
51
+ auth: context.auth,
52
+ store: context.store,
53
+ propsValue: context.propsValue,
54
+ });
55
+ });
56
+ },
57
+ test(context) {
58
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
59
+ return yield pieces_common_1.pollingHelper.test(polling, context);
60
+ });
61
+ },
62
+ run(context) {
63
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
64
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
65
+ });
66
+ },
67
+ sampleData: {
68
+ id: 'conv_abc123',
69
+ contact_id: 'contact_xyz',
70
+ archived: false,
71
+ important: false,
72
+ created_at: '2024-01-15T10:30:00.000Z',
73
+ messages: [
74
+ {
75
+ id: 'msg_1',
76
+ text: 'Hello, I need help with your product.',
77
+ role: 'user',
78
+ },
79
+ ],
80
+ },
81
+ });
82
+ //# sourceMappingURL=new-conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-conversation.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/chatling/src/lib/triggers/new-conversation.ts"],"names":[],"mappings":";;;;AAAA,qEAIwC;AACxC,+DAKqC;AACrC,uCAA2C;AAC3C,2CAAoD;AACpD,sCAAwC;AACxC,0DAA0B;AAW1B,MAAM,OAAO,GAGT;IACF,QAAQ,EAAE,8BAAc,CAAC,SAAS;IAClC,KAAK,EAAE,KAA+C,EAAE,oDAA1C,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAW,EAKhC,IAAI,CAAC,WAAW,EAChB,0BAAU,CAAC,GAAG,EACd,aAAa,UAAU,CAAC,SAAS,+BAA+B,CACjE,CAAC;QAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;QAElD,8CAA8C;QAC9C,MAAM,KAAK,GAAG,aAAa;aACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,gBAAgB,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACxC,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC;QAC7D,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,iBAAiB,EAAE,IAAA,eAAK,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;YACnD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC,CAAC;QAEN,OAAO,KAAK,CAAC;IACf,CAAC,CAAA;CACF,CAAC;AAEW,QAAA,eAAe,GAAG,IAAA,gCAAa,EAAC;IAC3C,IAAI,EAAE,oBAAY;IAClB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,4DAA4D;IACzE,KAAK,EAAE;QACL,SAAS,EAAE,yBAAiB;KAC7B;IACD,IAAI,EAAE,kCAAe,CAAC,OAAO;IACvB,QAAQ,CAAC,OAAO;;YACpB,MAAM,6BAAa,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACpC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;KAAA;IACK,SAAS,CAAC,OAAO;;YACrB,MAAM,6BAAa,CAAC,SAAS,CAAC,OAAO,EAAE;gBACrC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;KAAA;IACK,IAAI,CAAC,OAAO;;YAChB,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;KAAA;IACK,GAAG,CAAC,OAAO;;YACf,OAAO,MAAM,6BAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;KAAA;IACD,UAAU,EAAE;QACV,EAAE,EAAE,aAAa;QACjB,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,0BAA0B;QACtC,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,uCAAuC;gBAC7C,IAAI,EAAE,MAAM;aACb;SACF;KACF;CACF,CAAC,CAAC"}