crisp-api 10.5.0 → 10.6.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/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## v10.6.1
5
+
6
+ ### Changes
7
+
8
+ * Added missing `PluginConnectWebsitePlan` type in the `PluginConnect` resource.
9
+
10
+ ## v10.6.0
11
+
12
+ ### New Features
13
+
14
+ * Added now-public `WebsiteInbox` service to the `CrispClient.website` prefix.
15
+
4
16
  ## v10.5.0
5
17
 
6
18
  ### New Features
package/EXAMPLES.md CHANGED
@@ -1978,6 +1978,125 @@ CrispClient.website.batchRemovePeople(websiteID, people);
1978
1978
 
1979
1979
  =========================
1980
1980
 
1981
+ https://docs.crisp.chat/references/rest-api/v1/#list-website-inboxes
1982
+
1983
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
1984
+ var pageNumber = 1;
1985
+
1986
+ CrispClient.website.listInboxes(websiteID, pageNumber);
1987
+
1988
+ =========================
1989
+
1990
+ https://docs.crisp.chat/references/rest-api/v1/#batch-order-website-inboxes
1991
+
1992
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
1993
+
1994
+ var orders = [
1995
+ {
1996
+ "inbox_id": "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31",
1997
+ "order": 1
1998
+ },
1999
+
2000
+ {
2001
+ "inbox_id": "c058abfe-2881-4ff4-8f6a-6eb73e55385e",
2002
+ "order": 2
2003
+ }
2004
+ ];
2005
+
2006
+ CrispClient.website.batchOrderInboxes(websiteID, orders);
2007
+
2008
+ =========================
2009
+
2010
+ https://docs.crisp.chat/references/rest-api/v1/#create-a-new-website-inbox
2011
+
2012
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2013
+
2014
+ var inbox = {
2015
+ "name": "VIP",
2016
+ "emoji": "⭐️",
2017
+ "order": 1,
2018
+
2019
+ "operators": [
2020
+ "86a4fed0-2f5f-4713-a8ff-41d7f3e4a8f8",
2021
+ "e5cd7aa6-998f-4b8e-b7c5-3b546af87d15"
2022
+ ],
2023
+
2024
+ "conditions": [
2025
+ {
2026
+ "model": "session",
2027
+ "criterion": "segments",
2028
+ "operator": "eq",
2029
+
2030
+ "query": [
2031
+ "vip"
2032
+ ]
2033
+ }
2034
+ ]
2035
+ };
2036
+
2037
+ CrispClient.website.createNewInbox(websiteID, inbox);
2038
+
2039
+ =========================
2040
+
2041
+ https://docs.crisp.chat/references/rest-api/v1/#check-if-website-inbox-exists
2042
+
2043
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2044
+ var inboxID = "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31";
2045
+
2046
+ CrispClient.website.checkIfInboxExists(websiteID, inboxID);
2047
+
2048
+ =========================
2049
+
2050
+ https://docs.crisp.chat/references/rest-api/v1/#get-website-inbox
2051
+
2052
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2053
+ var inboxID = "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31";
2054
+
2055
+ CrispClient.website.getInbox(websiteID, inboxID);
2056
+
2057
+ =========================
2058
+
2059
+ https://docs.crisp.chat/references/rest-api/v1/#save-website-inbox
2060
+
2061
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2062
+ var inboxID = "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31";
2063
+
2064
+ var inbox = {
2065
+ "name": "VIP",
2066
+ "emoji": "⭐️",
2067
+ "order": 1,
2068
+
2069
+ "operators": [
2070
+ "86a4fed0-2f5f-4713-a8ff-41d7f3e4a8f8",
2071
+ "e5cd7aa6-998f-4b8e-b7c5-3b546af87d15"
2072
+ ],
2073
+
2074
+ "conditions": [
2075
+ {
2076
+ "model": "session",
2077
+ "criterion": "segments",
2078
+ "operator": "eq",
2079
+
2080
+ "query": [
2081
+ "vip"
2082
+ ]
2083
+ }
2084
+ ]
2085
+ };
2086
+
2087
+ CrispClient.website.saveInbox(websiteID, inboxID, inbox);
2088
+
2089
+ =========================
2090
+
2091
+ https://docs.crisp.chat/references/rest-api/v1/#delete-website-inbox
2092
+
2093
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2094
+ var inboxID = "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31";
2095
+
2096
+ CrispClient.website.deleteInbox(websiteID, inboxID);
2097
+
2098
+ =========================
2099
+
1981
2100
  https://docs.crisp.chat/references/rest-api/v1/#get-verify-settings
1982
2101
 
1983
2102
  var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
package/README.md CHANGED
@@ -6,7 +6,7 @@ The Crisp API Node wrapper. Authenticate, send messages, fetch conversations, ac
6
6
 
7
7
  Copyright 2026 Crisp IM SAS. See LICENSE for copying information.
8
8
 
9
- * **📝 Implements**: [REST API Reference (V1)](https://docs.crisp.chat/references/rest-api/v1/) at revision: 06/01/2026
9
+ * **📝 Implements**: [REST API Reference (V1)](https://docs.crisp.chat/references/rest-api/v1/) at revision: 09/01/2026
10
10
  * **😘 Maintainers**: [@baptistejamin](https://github.com/baptistejamin), [@eliottvincent](https://github.com/eliottvincent), [@valeriansaliou](https://github.com/valeriansaliou)
11
11
 
12
12
  ## Installation
@@ -111,6 +111,7 @@ All methods that you will most likely need when building a Crisp integration are
111
111
  <li><a href="#website-availability">Website Availability</a></li>
112
112
  <li><a href="#website-analytics">Website Analytics</a></li>
113
113
  <li><a href="#website-batch">Website Batch</a></li>
114
+ <li><a href="#website-inbox">Website Inbox</a></li>
114
115
  <li><a href="#website-verify">Website Verify</a></li>
115
116
  <li><a href="#website-campaigns">Website Campaigns</a></li>
116
117
  <li><a href="#website-campaign">Website Campaign</a></li>
@@ -2837,6 +2838,155 @@ _👉 Notice: The `peopleID` argument can be an email or the `peopleID`._
2837
2838
  </details>
2838
2839
 
2839
2840
 
2841
+ * #### **Website Inbox**
2842
+ * **List Inboxes** [`user`, `plugin`]: [Reference](https://docs.crisp.chat/references/rest-api/v1/#list-website-inboxes)
2843
+ * `CrispClient.website.listInboxes(websiteID, pageNumber)`
2844
+ * <details>
2845
+ <summary>See Example</summary>
2846
+
2847
+ ```javascript
2848
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2849
+ var pageNumber = 1;
2850
+
2851
+ CrispClient.website.listInboxes(websiteID, pageNumber);
2852
+ ```
2853
+ </details>
2854
+
2855
+ * **Batch Order Inboxes** [`user`]: [Reference](https://docs.crisp.chat/references/rest-api/v1/#batch-order-website-inboxes)
2856
+ * `CrispClient.website.batchOrderInboxes(websiteID, orders)`
2857
+ * <details>
2858
+ <summary>See Example</summary>
2859
+
2860
+ ```javascript
2861
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2862
+
2863
+ var orders = [
2864
+ {
2865
+ "inbox_id": "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31",
2866
+ "order": 1
2867
+ },
2868
+
2869
+ {
2870
+ "inbox_id": "c058abfe-2881-4ff4-8f6a-6eb73e55385e",
2871
+ "order": 2
2872
+ }
2873
+ ];
2874
+
2875
+ CrispClient.website.batchOrderInboxes(websiteID, orders);
2876
+ ```
2877
+ </details>
2878
+
2879
+ * **Create A New Inbox** [`user`]: [Reference](https://docs.crisp.chat/references/rest-api/v1/#create-a-new-website-inbox)
2880
+ * `CrispClient.website.createNewInbox(websiteID, inbox)`
2881
+ * <details>
2882
+ <summary>See Example</summary>
2883
+
2884
+ ```javascript
2885
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2886
+
2887
+ var inbox = {
2888
+ "name": "VIP",
2889
+ "emoji": "⭐️",
2890
+ "order": 1,
2891
+
2892
+ "operators": [
2893
+ "86a4fed0-2f5f-4713-a8ff-41d7f3e4a8f8",
2894
+ "e5cd7aa6-998f-4b8e-b7c5-3b546af87d15"
2895
+ ],
2896
+
2897
+ "conditions": [
2898
+ {
2899
+ "model": "session",
2900
+ "criterion": "segments",
2901
+ "operator": "eq",
2902
+
2903
+ "query": [
2904
+ "vip"
2905
+ ]
2906
+ }
2907
+ ]
2908
+ };
2909
+
2910
+ CrispClient.website.createNewInbox(websiteID, inbox);
2911
+ ```
2912
+ </details>
2913
+
2914
+ * **Check If Inbox Exists** [`user`, `plugin`]: [Reference](https://docs.crisp.chat/references/rest-api/v1/#check-if-website-inbox-exists)
2915
+ * `CrispClient.website.checkInboxExists(websiteID, inboxID)`
2916
+ * <details>
2917
+ <summary>See Example</summary>
2918
+
2919
+ ```javascript
2920
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2921
+ var inboxID = "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31";
2922
+
2923
+ CrispClient.website.checkInboxExists(websiteID, inboxID);
2924
+ ```
2925
+ </details>
2926
+
2927
+ * **Get Inbox** [`user`, `plugin`]: [Reference](https://docs.crisp.chat/references/rest-api/v1/#get-website-inbox)
2928
+ * `CrispClient.website.getInbox(websiteID, inboxID)`
2929
+ * <details>
2930
+ <summary>See Example</summary>
2931
+
2932
+ ```javascript
2933
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2934
+ var inboxID = "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31";
2935
+
2936
+ CrispClient.website.getInbox(websiteID, inboxID);
2937
+ ```
2938
+ </details>
2939
+
2940
+ * **Save Inbox** [`user`]: [Reference](https://docs.crisp.chat/references/rest-api/v1/#save-website-inbox)
2941
+ * `CrispClient.website.saveInbox(websiteID, inboxID, inbox)`
2942
+ * <details>
2943
+ <summary>See Example</summary>
2944
+
2945
+ ```javascript
2946
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2947
+ var inboxID = "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31";
2948
+
2949
+ var inbox = {
2950
+ "name": "VIP",
2951
+ "emoji": "⭐️",
2952
+ "order": 1,
2953
+
2954
+ "operators": [
2955
+ "86a4fed0-2f5f-4713-a8ff-41d7f3e4a8f8",
2956
+ "e5cd7aa6-998f-4b8e-b7c5-3b546af87d15"
2957
+ ],
2958
+
2959
+ "conditions": [
2960
+ {
2961
+ "model": "session",
2962
+ "criterion": "segments",
2963
+ "operator": "eq",
2964
+
2965
+ "query": [
2966
+ "vip"
2967
+ ]
2968
+ }
2969
+ ]
2970
+ };
2971
+
2972
+ CrispClient.website.saveInbox(websiteID, inboxID, inbox);
2973
+ ```
2974
+ </details>
2975
+
2976
+ * **Delete Inbox** [`user`]: [Reference](https://docs.crisp.chat/references/rest-api/v1/#delete-website-inbox)
2977
+ * `CrispClient.website.deleteInbox(websiteID, inboxID)`
2978
+ * <details>
2979
+ <summary>See Example</summary>
2980
+
2981
+ ```javascript
2982
+ var websiteID = "8c842203-7ed8-4e29-a608-7cf78a7d2fcc";
2983
+ var inboxID = "d42e8b3b-ea8f-4e79-a9f8-d0e467fc1c31";
2984
+
2985
+ CrispClient.website.deleteInbox(websiteID, inboxID);
2986
+ ```
2987
+ </details>
2988
+
2989
+
2840
2990
  * #### **Website Verify**
2841
2991
  * **Get Verify Settings** [`user`, `plugin`]: [Reference](https://docs.crisp.chat/references/rest-api/v1/#get-verify-settings)
2842
2992
  * `CrispClient.website.getVerifySettings(websiteID)`
package/dist/crisp.js CHANGED
@@ -46,7 +46,7 @@ const AVAILABLE_RTM_MODES = [
46
46
  "websockets",
47
47
  "webhooks"
48
48
  ];
49
- const VERSION = "10.5.0";
49
+ const VERSION = "10.6.1";
50
50
  // Base configuration
51
51
  const DEFAULT_REQUEST_TIMEOUT = 10000;
52
52
  const DEFAULT_SOCKET_TIMEOUT = 10000;
@@ -8,17 +8,18 @@ import BaseResource from "./BaseResource";
8
8
  export type PluginConnectAccount = {
9
9
  plugin_id?: string;
10
10
  };
11
- export type PluginConnectAllWebsite = {
12
- website_id?: string;
13
- token?: string;
14
- settings?: object;
15
- };
16
- export type PluginConnectWebsitesSince = {
11
+ export type PluginConnectWebsite = {
17
12
  website_id?: string;
18
13
  token?: string;
19
14
  settings?: object;
15
+ plan?: PluginConnectWebsitePlan;
20
16
  difference?: string;
21
17
  };
18
+ export type PluginConnectWebsitePlan = {
19
+ id?: string;
20
+ name?: string;
21
+ trialing?: boolean;
22
+ };
22
23
  export type PluginConnectEndpoints = {
23
24
  socket?: PluginConnectEndpointsSocket;
24
25
  rescue?: PluginConnectEndpointsRescue;
@@ -47,11 +48,11 @@ declare class PluginConnect extends BaseResource {
47
48
  /**
48
49
  * List All Connect Websites
49
50
  */
50
- listAllConnectWebsites(pageNumber: number, filterConfigured: boolean, includePlan: boolean): Promise<PluginConnectAllWebsite[]>;
51
+ listAllConnectWebsites(pageNumber: number, filterConfigured: boolean, includePlan: boolean): Promise<PluginConnectWebsite[]>;
51
52
  /**
52
53
  * List Connect Websites Since
53
54
  */
54
- listConnectWebsitesSince(dateSince: string, filterConfigured: boolean, includePlan: boolean): Promise<PluginConnectWebsitesSince[]>;
55
+ listConnectWebsitesSince(dateSince: string, filterConfigured: boolean, includePlan: boolean): Promise<PluginConnectWebsite[]>;
55
56
  /**
56
57
  * Get Connect Endpoints
57
58
  */
@@ -0,0 +1,73 @@
1
+ /**************************************************************************
2
+ * IMPORTS
3
+ ***************************************************************************/
4
+ import BaseResource from "./BaseResource";
5
+ /**************************************************************************
6
+ * TYPES
7
+ ***************************************************************************/
8
+ export type WebsiteInbox = {
9
+ inbox_id?: string;
10
+ name?: string;
11
+ emoji?: string;
12
+ order?: number;
13
+ operators?: string[];
14
+ conditions?: WebsiteInboxCondition[];
15
+ created_at?: number;
16
+ updated_at?: number;
17
+ };
18
+ export type WebsiteInboxCondition = {
19
+ model?: "session";
20
+ criterion?: string;
21
+ operator?: "eq" | "neq" | "gte" | "lte" | "gt" | "lt";
22
+ query?: string[];
23
+ };
24
+ export type WebsiteInboxNew = {
25
+ inbox_id?: string;
26
+ };
27
+ export type WebsiteInboxOrders = {
28
+ orders?: WebsiteInboxOrder[];
29
+ };
30
+ export type WebsiteInboxOrder = {
31
+ inbox_id?: string;
32
+ order?: number;
33
+ };
34
+ /**************************************************************************
35
+ * CLASSES
36
+ ***************************************************************************/
37
+ /**
38
+ * Crisp WebsiteInbox Resource
39
+ */
40
+ declare class WebsiteInboxService extends BaseResource {
41
+ /**
42
+ * List Inboxes
43
+ */
44
+ listInboxes(websiteID: string, pageNumber?: number): Promise<WebsiteInbox[]>;
45
+ /**
46
+ * Batch Order Inboxes
47
+ */
48
+ batchOrderInboxes(websiteID: string, orders: WebsiteInboxOrders): Promise<any>;
49
+ /**
50
+ * Create A New Inbox
51
+ */
52
+ createNewInbox(websiteID: string, inbox: WebsiteInbox): Promise<WebsiteInboxNew>;
53
+ /**
54
+ * Check If Inbox Exists
55
+ */
56
+ checkInboxExists(websiteID: string, inboxID: string): Promise<any>;
57
+ /**
58
+ * Get Inbox
59
+ */
60
+ getInbox(websiteID: string, inboxID: string): Promise<WebsiteInbox>;
61
+ /**
62
+ * Save Inbox
63
+ */
64
+ saveInbox(websiteID: string, inboxID: string, inbox: WebsiteInbox): Promise<any>;
65
+ /**
66
+ * Delete Inbox
67
+ */
68
+ deleteInbox(websiteID: string, inboxID: string): Promise<any>;
69
+ }
70
+ /**************************************************************************
71
+ * EXPORTS
72
+ ***************************************************************************/
73
+ export default WebsiteInboxService;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /*
3
+ * This file is part of node-crisp-api
4
+ *
5
+ * Copyright (c) 2026 Crisp IM SAS
6
+ * All rights belong to Crisp IM SAS
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**************************************************************************
13
+ * IMPORTS
14
+ ***************************************************************************/
15
+ // PROJECT: RESOURCES
16
+ const BaseResource_1 = __importDefault(require("./BaseResource"));
17
+ /**************************************************************************
18
+ * CLASSES
19
+ ***************************************************************************/
20
+ /**
21
+ * Crisp WebsiteInbox Resource
22
+ */
23
+ class WebsiteInboxService extends BaseResource_1.default {
24
+ /**
25
+ * List Inboxes
26
+ */
27
+ listInboxes(websiteID, pageNumber = 1) {
28
+ return this.crisp.get(this.crisp.prepareRestUrl([
29
+ "website", websiteID, "inboxes", "list", String(pageNumber)
30
+ ]));
31
+ }
32
+ /**
33
+ * Batch Order Inboxes
34
+ */
35
+ batchOrderInboxes(websiteID, orders) {
36
+ return this.crisp.patch(this.crisp.prepareRestUrl([
37
+ "website", websiteID, "inboxes", "batch", "order"
38
+ ]), null, orders);
39
+ }
40
+ ;
41
+ /**
42
+ * Create A New Inbox
43
+ */
44
+ createNewInbox(websiteID, inbox) {
45
+ return this.crisp.post(this.crisp.prepareRestUrl(["website", websiteID, "inbox"]), null, inbox);
46
+ }
47
+ ;
48
+ /**
49
+ * Check If Inbox Exists
50
+ */
51
+ checkInboxExists(websiteID, inboxID) {
52
+ return this.crisp.head(this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID]));
53
+ }
54
+ ;
55
+ /**
56
+ * Get Inbox
57
+ */
58
+ getInbox(websiteID, inboxID) {
59
+ return this.crisp.get(this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID]));
60
+ }
61
+ ;
62
+ /**
63
+ * Save Inbox
64
+ */
65
+ saveInbox(websiteID, inboxID, inbox) {
66
+ return this.crisp.put(this.crisp.prepareRestUrl([
67
+ "website", websiteID, "inbox", inboxID
68
+ ]), null, inbox);
69
+ }
70
+ ;
71
+ /**
72
+ * Delete Inbox
73
+ */
74
+ deleteInbox(websiteID, inboxID) {
75
+ return this.crisp.delete(this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID]));
76
+ }
77
+ ;
78
+ }
79
+ /**************************************************************************
80
+ * EXPORTS
81
+ ***************************************************************************/
82
+ exports.default = WebsiteInboxService;
@@ -14,6 +14,7 @@ export * from "./WebsiteBatch";
14
14
  export * from "./WebsiteCampaign";
15
15
  export * from "./WebsiteConversation";
16
16
  export * from "./WebsiteHelpdesk";
17
+ export * from "./WebsiteInbox";
17
18
  export * from "./WebsiteOperator";
18
19
  export * from "./WebsitePeople";
19
20
  export * from "./WebsiteSettings";
@@ -36,6 +36,7 @@ __exportStar(require("./WebsiteBatch"), exports);
36
36
  __exportStar(require("./WebsiteCampaign"), exports);
37
37
  __exportStar(require("./WebsiteConversation"), exports);
38
38
  __exportStar(require("./WebsiteHelpdesk"), exports);
39
+ __exportStar(require("./WebsiteInbox"), exports);
39
40
  __exportStar(require("./WebsiteOperator"), exports);
40
41
  __exportStar(require("./WebsitePeople"), exports);
41
42
  __exportStar(require("./WebsiteSettings"), exports);
@@ -7,9 +7,10 @@ import WebsiteAvailability from "../resources/WebsiteAvailability";
7
7
  import WebsiteBatch from "../resources/WebsiteBatch";
8
8
  import WebsiteCampaign from "../resources/WebsiteCampaign";
9
9
  import WebsiteConversation from "../resources/WebsiteConversation";
10
+ import WebsiteHelpdesk from "../resources/WebsiteHelpdesk";
11
+ import WebsiteInbox from "../resources/WebsiteInbox";
10
12
  import WebsiteOperator from "../resources/WebsiteOperator";
11
13
  import WebsitePeople from "../resources/WebsitePeople";
12
- import WebsiteHelpdesk from "../resources/WebsiteHelpdesk";
13
14
  import WebsiteSettings from "../resources/WebsiteSettings";
14
15
  import WebsiteVerify from "../resources/WebsiteVerify";
15
16
  import WebsiteVisitors from "../resources/WebsiteVisitors";
@@ -25,6 +26,6 @@ declare class WebsiteService {
25
26
  /**************************************************************************
26
27
  * EXPORTS
27
28
  ***************************************************************************/
28
- export interface WebsiteServiceInterface extends WebsiteBase, WebsiteAnalytics, WebsiteAvailability, WebsiteBatch, WebsiteCampaign, WebsiteConversation, WebsiteOperator, WebsitePeople, WebsiteHelpdesk, WebsiteSettings, WebsiteVerify, WebsiteVisitors {
29
+ export interface WebsiteServiceInterface extends WebsiteBase, WebsiteAnalytics, WebsiteAvailability, WebsiteBatch, WebsiteCampaign, WebsiteConversation, WebsiteHelpdesk, WebsiteInbox, WebsiteOperator, WebsitePeople, WebsiteSettings, WebsiteVerify, WebsiteVisitors {
29
30
  }
30
31
  export default WebsiteService;
@@ -19,9 +19,10 @@ const WebsiteAvailability_1 = __importDefault(require("../resources/WebsiteAvail
19
19
  const WebsiteBatch_1 = __importDefault(require("../resources/WebsiteBatch"));
20
20
  const WebsiteCampaign_1 = __importDefault(require("../resources/WebsiteCampaign"));
21
21
  const WebsiteConversation_1 = __importDefault(require("../resources/WebsiteConversation"));
22
+ const WebsiteHelpdesk_1 = __importDefault(require("../resources/WebsiteHelpdesk"));
23
+ const WebsiteInbox_1 = __importDefault(require("../resources/WebsiteInbox"));
22
24
  const WebsiteOperator_1 = __importDefault(require("../resources/WebsiteOperator"));
23
25
  const WebsitePeople_1 = __importDefault(require("../resources/WebsitePeople"));
24
- const WebsiteHelpdesk_1 = __importDefault(require("../resources/WebsiteHelpdesk"));
25
26
  const WebsiteSettings_1 = __importDefault(require("../resources/WebsiteSettings"));
26
27
  const WebsiteVerify_1 = __importDefault(require("../resources/WebsiteVerify"));
27
28
  const WebsiteVisitors_1 = __importDefault(require("../resources/WebsiteVisitors"));
@@ -41,9 +42,10 @@ class WebsiteService {
41
42
  WebsiteBatch_1.default,
42
43
  WebsiteCampaign_1.default,
43
44
  WebsiteConversation_1.default,
45
+ WebsiteHelpdesk_1.default,
46
+ WebsiteInbox_1.default,
44
47
  WebsiteOperator_1.default,
45
48
  WebsitePeople_1.default,
46
- WebsiteHelpdesk_1.default,
47
49
  WebsiteSettings_1.default,
48
50
  WebsiteVerify_1.default,
49
51
  WebsiteVisitors_1.default
@@ -20,19 +20,20 @@ export type PluginConnectAccount = {
20
20
  plugin_id?: string;
21
21
  };
22
22
 
23
- export type PluginConnectAllWebsite = {
24
- website_id?: string;
25
- token?: string;
26
- settings?: object;
27
- }
28
-
29
- export type PluginConnectWebsitesSince = {
23
+ export type PluginConnectWebsite = {
30
24
  website_id?: string;
31
25
  token?: string;
32
26
  settings?: object;
27
+ plan?: PluginConnectWebsitePlan;
33
28
  difference?: string;
34
29
  }
35
30
 
31
+ export type PluginConnectWebsitePlan = {
32
+ id?: string;
33
+ name?: string;
34
+ trialing?: boolean;
35
+ };
36
+
36
37
  export type PluginConnectEndpoints = {
37
38
  socket?: PluginConnectEndpointsSocket;
38
39
  rescue?: PluginConnectEndpointsRescue;
@@ -79,7 +80,7 @@ class PluginConnect extends BaseResource {
79
80
  */
80
81
  listAllConnectWebsites(
81
82
  pageNumber: number, filterConfigured: boolean, includePlan: boolean
82
- ): Promise<PluginConnectAllWebsite[]> {
83
+ ): Promise<PluginConnectWebsite[]> {
83
84
  // Generate query
84
85
  let query = {
85
86
  filter_configured: (
@@ -105,7 +106,7 @@ class PluginConnect extends BaseResource {
105
106
  */
106
107
  listConnectWebsitesSince(
107
108
  dateSince: string, filterConfigured: boolean, includePlan: boolean
108
- ): Promise<PluginConnectWebsitesSince[]> {
109
+ ): Promise<PluginConnectWebsite[]> {
109
110
  // Generate query
110
111
  let query = {
111
112
  filter_configured: (
@@ -0,0 +1,140 @@
1
+ /*
2
+ * This file is part of node-crisp-api
3
+ *
4
+ * Copyright (c) 2026 Crisp IM SAS
5
+ * All rights belong to Crisp IM SAS
6
+ */
7
+
8
+ /**************************************************************************
9
+ * IMPORTS
10
+ ***************************************************************************/
11
+
12
+ // PROJECT: RESOURCES
13
+ import BaseResource from "./BaseResource";
14
+
15
+ /**************************************************************************
16
+ * TYPES
17
+ ***************************************************************************/
18
+
19
+ export type WebsiteInbox = {
20
+ inbox_id?: string;
21
+ name?: string;
22
+ emoji?: string;
23
+ order?: number;
24
+ operators?: string[];
25
+ conditions?: WebsiteInboxCondition[];
26
+ created_at?: number;
27
+ updated_at?: number;
28
+ }
29
+
30
+ export type WebsiteInboxCondition = {
31
+ model?: "session";
32
+ criterion?: string;
33
+ operator?: "eq" | "neq" | "gte" | "lte" | "gt" | "lt";
34
+ query?: string[];
35
+ };
36
+
37
+ export type WebsiteInboxNew = {
38
+ inbox_id?: string;
39
+ };
40
+
41
+ export type WebsiteInboxOrders = {
42
+ orders?: WebsiteInboxOrder[];
43
+ }
44
+
45
+ export type WebsiteInboxOrder = {
46
+ inbox_id?: string;
47
+ order?: number;
48
+ }
49
+
50
+ /**************************************************************************
51
+ * CLASSES
52
+ ***************************************************************************/
53
+
54
+ /**
55
+ * Crisp WebsiteInbox Resource
56
+ */
57
+ class WebsiteInboxService extends BaseResource {
58
+ /**
59
+ * List Inboxes
60
+ */
61
+ listInboxes(
62
+ websiteID: string, pageNumber: number = 1
63
+ ): Promise<WebsiteInbox[]> {
64
+ return this.crisp.get(
65
+ this.crisp.prepareRestUrl([
66
+ "website", websiteID, "inboxes", "list", String(pageNumber)
67
+ ])
68
+ );
69
+ }
70
+
71
+ /**
72
+ * Batch Order Inboxes
73
+ */
74
+ batchOrderInboxes(websiteID: string, orders: WebsiteInboxOrders) {
75
+ return this.crisp.patch(
76
+ this.crisp.prepareRestUrl([
77
+ "website", websiteID, "inboxes", "batch", "order"
78
+ ]),
79
+
80
+ null, orders
81
+ );
82
+ };
83
+
84
+ /**
85
+ * Create A New Inbox
86
+ */
87
+ createNewInbox(
88
+ websiteID: string, inbox: WebsiteInbox
89
+ ): Promise<WebsiteInboxNew> {
90
+ return this.crisp.post(
91
+ this.crisp.prepareRestUrl(["website", websiteID, "inbox"]), null, inbox
92
+ );
93
+ };
94
+
95
+ /**
96
+ * Check If Inbox Exists
97
+ */
98
+ checkInboxExists(websiteID: string, inboxID: string) {
99
+ return this.crisp.head(
100
+ this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID])
101
+ );
102
+ };
103
+
104
+ /**
105
+ * Get Inbox
106
+ */
107
+ getInbox(websiteID: string, inboxID: string): Promise<WebsiteInbox> {
108
+ return this.crisp.get(
109
+ this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID])
110
+ );
111
+ };
112
+
113
+ /**
114
+ * Save Inbox
115
+ */
116
+ saveInbox(websiteID: string, inboxID: string, inbox: WebsiteInbox) {
117
+ return this.crisp.put(
118
+ this.crisp.prepareRestUrl([
119
+ "website", websiteID, "inbox", inboxID
120
+ ]),
121
+
122
+ null, inbox
123
+ );
124
+ };
125
+
126
+ /**
127
+ * Delete Inbox
128
+ */
129
+ deleteInbox(websiteID: string, inboxID: string) {
130
+ return this.crisp.delete(
131
+ this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID])
132
+ );
133
+ };
134
+ }
135
+
136
+ /**************************************************************************
137
+ * EXPORTS
138
+ ***************************************************************************/
139
+
140
+ export default WebsiteInboxService;
@@ -22,6 +22,7 @@ export * from "./WebsiteBatch";
22
22
  export * from "./WebsiteCampaign";
23
23
  export * from "./WebsiteConversation";
24
24
  export * from "./WebsiteHelpdesk";
25
+ export * from "./WebsiteInbox";
25
26
  export * from "./WebsiteOperator";
26
27
  export * from "./WebsitePeople";
27
28
  export * from "./WebsiteSettings";
@@ -16,9 +16,10 @@ import WebsiteAvailability from "@/resources/WebsiteAvailability";
16
16
  import WebsiteBatch from "@/resources/WebsiteBatch";
17
17
  import WebsiteCampaign from "@/resources/WebsiteCampaign";
18
18
  import WebsiteConversation from "@/resources/WebsiteConversation";
19
+ import WebsiteHelpdesk from "@/resources/WebsiteHelpdesk";
20
+ import WebsiteInbox from "@/resources/WebsiteInbox";
19
21
  import WebsiteOperator from "@/resources/WebsiteOperator";
20
22
  import WebsitePeople from "@/resources/WebsitePeople";
21
- import WebsiteHelpdesk from "@/resources/WebsiteHelpdesk";
22
23
  import WebsiteSettings from "@/resources/WebsiteSettings";
23
24
  import WebsiteVerify from "@/resources/WebsiteVerify";
24
25
  import WebsiteVisitors from "@/resources/WebsiteVisitors";
@@ -39,9 +40,10 @@ class WebsiteService {
39
40
  WebsiteBatch,
40
41
  WebsiteCampaign,
41
42
  WebsiteConversation,
43
+ WebsiteHelpdesk,
44
+ WebsiteInbox,
42
45
  WebsiteOperator,
43
46
  WebsitePeople,
44
- WebsiteHelpdesk,
45
47
  WebsiteSettings,
46
48
  WebsiteVerify,
47
49
  WebsiteVisitors
@@ -59,9 +61,10 @@ export interface WebsiteServiceInterface extends
59
61
  WebsiteBatch,
60
62
  WebsiteCampaign,
61
63
  WebsiteConversation,
64
+ WebsiteHelpdesk,
65
+ WebsiteInbox,
62
66
  WebsiteOperator,
63
67
  WebsitePeople,
64
- WebsiteHelpdesk,
65
68
  WebsiteSettings,
66
69
  WebsiteVerify,
67
70
  WebsiteVisitors {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "crisp-api",
3
3
  "description": "Crisp API wrapper for Node - official, maintained by Crisp",
4
- "version": "10.5.0",
4
+ "version": "10.6.1",
5
5
  "homepage": "https://github.com/crisp-im/node-crisp-api",
6
6
  "license": "MIT",
7
7
  "author": {