crisp-api 10.5.0 → 10.6.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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## v10.6.0
5
+
6
+ ### New Features
7
+
8
+ * Added now-public `WebsiteInbox` service to the `CrispClient.website` prefix.
9
+
4
10
  ## v10.5.0
5
11
 
6
12
  ### 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: 08/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.0";
50
50
  // Base configuration
51
51
  const DEFAULT_REQUEST_TIMEOUT = 10000;
52
52
  const DEFAULT_SOCKET_TIMEOUT = 10000;
@@ -0,0 +1,70 @@
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 WebsiteInboxOrders = {
25
+ orders?: WebsiteInboxOrder[];
26
+ };
27
+ export type WebsiteInboxOrder = {
28
+ inbox_id?: string;
29
+ order?: number;
30
+ };
31
+ /**************************************************************************
32
+ * CLASSES
33
+ ***************************************************************************/
34
+ /**
35
+ * Crisp WebsiteInbox Resource
36
+ */
37
+ declare class WebsiteInboxService extends BaseResource {
38
+ /**
39
+ * List Inboxes
40
+ */
41
+ listInboxes(websiteID: string, pageNumber?: number): Promise<WebsiteInbox[]>;
42
+ /**
43
+ * Batch Order Inboxes
44
+ */
45
+ batchOrderInboxes(websiteID: string, orders: WebsiteInboxOrders): Promise<any>;
46
+ /**
47
+ * Create A New Inbox
48
+ */
49
+ createNewInbox(websiteID: string, inbox: WebsiteInbox): Promise<any>;
50
+ /**
51
+ * Check If Inbox Exists
52
+ */
53
+ checkInboxExists(websiteID: string, inboxID: string): Promise<any>;
54
+ /**
55
+ * Get Inbox
56
+ */
57
+ getInbox(websiteID: string, inboxID: string): Promise<WebsiteInbox>;
58
+ /**
59
+ * Save Inbox
60
+ */
61
+ saveInbox(websiteID: string, inboxID: string, inbox: WebsiteInbox): Promise<any>;
62
+ /**
63
+ * Delete Inbox
64
+ */
65
+ deleteInbox(websiteID: string, inboxID: string): Promise<any>;
66
+ }
67
+ /**************************************************************************
68
+ * EXPORTS
69
+ ***************************************************************************/
70
+ 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
@@ -0,0 +1,134 @@
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 WebsiteInboxOrders = {
38
+ orders?: WebsiteInboxOrder[];
39
+ }
40
+
41
+ export type WebsiteInboxOrder = {
42
+ inbox_id?: string;
43
+ order?: number;
44
+ }
45
+
46
+ /**************************************************************************
47
+ * CLASSES
48
+ ***************************************************************************/
49
+
50
+ /**
51
+ * Crisp WebsiteInbox Resource
52
+ */
53
+ class WebsiteInboxService extends BaseResource {
54
+ /**
55
+ * List Inboxes
56
+ */
57
+ listInboxes(
58
+ websiteID: string, pageNumber: number = 1
59
+ ): Promise<WebsiteInbox[]> {
60
+ return this.crisp.get(
61
+ this.crisp.prepareRestUrl([
62
+ "website", websiteID, "inboxes", "list", String(pageNumber)
63
+ ])
64
+ );
65
+ }
66
+
67
+ /**
68
+ * Batch Order Inboxes
69
+ */
70
+ batchOrderInboxes(websiteID: string, orders: WebsiteInboxOrders) {
71
+ return this.crisp.patch(
72
+ this.crisp.prepareRestUrl([
73
+ "website", websiteID, "inboxes", "batch", "order"
74
+ ]),
75
+
76
+ null, orders
77
+ );
78
+ };
79
+
80
+ /**
81
+ * Create A New Inbox
82
+ */
83
+ createNewInbox(websiteID: string, inbox: WebsiteInbox) {
84
+ return this.crisp.post(
85
+ this.crisp.prepareRestUrl(["website", websiteID, "inbox"]), null, inbox
86
+ );
87
+ };
88
+
89
+ /**
90
+ * Check If Inbox Exists
91
+ */
92
+ checkInboxExists(websiteID: string, inboxID: string) {
93
+ return this.crisp.head(
94
+ this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID])
95
+ );
96
+ };
97
+
98
+ /**
99
+ * Get Inbox
100
+ */
101
+ getInbox(websiteID: string, inboxID: string): Promise<WebsiteInbox> {
102
+ return this.crisp.get(
103
+ this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID])
104
+ );
105
+ };
106
+
107
+ /**
108
+ * Save Inbox
109
+ */
110
+ saveInbox(websiteID: string, inboxID: string, inbox: WebsiteInbox) {
111
+ return this.crisp.put(
112
+ this.crisp.prepareRestUrl([
113
+ "website", websiteID, "inbox", inboxID
114
+ ]),
115
+
116
+ null, inbox
117
+ );
118
+ };
119
+
120
+ /**
121
+ * Delete Inbox
122
+ */
123
+ deleteInbox(websiteID: string, inboxID: string) {
124
+ return this.crisp.delete(
125
+ this.crisp.prepareRestUrl(["website", websiteID, "inbox", inboxID])
126
+ );
127
+ };
128
+ }
129
+
130
+ /**************************************************************************
131
+ * EXPORTS
132
+ ***************************************************************************/
133
+
134
+ 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.0",
5
5
  "homepage": "https://github.com/crisp-im/node-crisp-api",
6
6
  "license": "MIT",
7
7
  "author": {