useyuva 0.0.4 → 0.0.5
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/dist/esm/chat.js +1 -1
- package/dist/esm/{index-feftwnsj.js → index-d1vxbqpr.js} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/yuva-chat-tebg111a.js +195 -0
- package/dist/types/client/api.d.ts +2 -0
- package/dist/types/client/client.d.ts +2 -1
- package/dist/types/element.d.ts +2 -1
- package/dist/types/panel/chat.d.ts +2 -0
- package/dist/types/panel/styles.d.ts +1 -1
- package/dist/types/schema.gen.d.ts +667 -14
- package/dist/types/types.d.ts +3 -0
- package/dist/yuva-chat.js +22 -10
- package/dist/yuva.js +2 -2
- package/package.json +1 -1
- package/dist/esm/yuva-chat-2482m97r.js +0 -183
|
@@ -442,7 +442,9 @@ export interface paths {
|
|
|
442
442
|
};
|
|
443
443
|
/**
|
|
444
444
|
* List members
|
|
445
|
-
* @description
|
|
445
|
+
* @description Every member of the workspace with their `availability` and whether they are `online`.
|
|
446
|
+
*
|
|
447
|
+
* Scope: `inboxes:read`.
|
|
446
448
|
*/
|
|
447
449
|
get: operations["listMembers"];
|
|
448
450
|
put?: never;
|
|
@@ -812,7 +814,11 @@ export interface paths {
|
|
|
812
814
|
};
|
|
813
815
|
/**
|
|
814
816
|
* List contacts
|
|
815
|
-
* @description Newest first
|
|
817
|
+
* @description Newest first, or most recently active first with `sort=last_seen` (contacts never seen sort
|
|
818
|
+
* by when they were created). `q` searches names, e-mail addresses and external ids.
|
|
819
|
+
* With `sort=last_seen`, a contact who becomes active while you page moves above the pages
|
|
820
|
+
* already read and does not appear on the later ones; no contact appears twice.
|
|
821
|
+
* Each item carries `activity`, counted over the inboxes the caller can see.
|
|
816
822
|
*
|
|
817
823
|
* Scope: `contacts:read`.
|
|
818
824
|
*/
|
|
@@ -940,6 +946,80 @@ export interface paths {
|
|
|
940
946
|
patch?: never;
|
|
941
947
|
trace?: never;
|
|
942
948
|
};
|
|
949
|
+
"/v1/contacts/{contactId}/notes": {
|
|
950
|
+
parameters: {
|
|
951
|
+
query?: never;
|
|
952
|
+
header?: never;
|
|
953
|
+
path?: never;
|
|
954
|
+
cookie?: never;
|
|
955
|
+
};
|
|
956
|
+
/**
|
|
957
|
+
* List notes about a contact
|
|
958
|
+
* @description Team-only notes about the contact, not tied to a conversation, newest first. Whoever can
|
|
959
|
+
* see the contact can read and add them; contacts never see them, and no event or webhook
|
|
960
|
+
* carries them.
|
|
961
|
+
*
|
|
962
|
+
* Scope: `contacts:read`.
|
|
963
|
+
*/
|
|
964
|
+
get: operations["listContactNotes"];
|
|
965
|
+
put?: never;
|
|
966
|
+
/**
|
|
967
|
+
* Add a note about a contact
|
|
968
|
+
* @description Scope: `contacts:write`.
|
|
969
|
+
*/
|
|
970
|
+
post: operations["createContactNote"];
|
|
971
|
+
delete?: never;
|
|
972
|
+
options?: never;
|
|
973
|
+
head?: never;
|
|
974
|
+
patch?: never;
|
|
975
|
+
trace?: never;
|
|
976
|
+
};
|
|
977
|
+
"/v1/contacts/{contactId}/notes/{noteId}": {
|
|
978
|
+
parameters: {
|
|
979
|
+
query?: never;
|
|
980
|
+
header?: never;
|
|
981
|
+
path?: never;
|
|
982
|
+
cookie?: never;
|
|
983
|
+
};
|
|
984
|
+
get?: never;
|
|
985
|
+
put?: never;
|
|
986
|
+
post?: never;
|
|
987
|
+
/**
|
|
988
|
+
* Delete a note about a contact
|
|
989
|
+
* @description Its author (a member, or the API key that wrote it) or an owner or admin; anyone else gets
|
|
990
|
+
* `403 forbidden`.
|
|
991
|
+
*
|
|
992
|
+
* Scope: `contacts:write`.
|
|
993
|
+
*/
|
|
994
|
+
delete: operations["deleteContactNote"];
|
|
995
|
+
options?: never;
|
|
996
|
+
head?: never;
|
|
997
|
+
patch?: never;
|
|
998
|
+
trace?: never;
|
|
999
|
+
};
|
|
1000
|
+
"/v1/contacts/{contactId}/summary": {
|
|
1001
|
+
parameters: {
|
|
1002
|
+
query?: never;
|
|
1003
|
+
header?: never;
|
|
1004
|
+
path?: never;
|
|
1005
|
+
cookie?: never;
|
|
1006
|
+
};
|
|
1007
|
+
/**
|
|
1008
|
+
* How the team served a contact
|
|
1009
|
+
* @description First-reply time and ratings over the contact's conversations the caller can see. The
|
|
1010
|
+
* counts of conversations are on the contact's `activity`.
|
|
1011
|
+
*
|
|
1012
|
+
* Scope: `contacts:read` and `conversations:read`.
|
|
1013
|
+
*/
|
|
1014
|
+
get: operations["getContactSummary"];
|
|
1015
|
+
put?: never;
|
|
1016
|
+
post?: never;
|
|
1017
|
+
delete?: never;
|
|
1018
|
+
options?: never;
|
|
1019
|
+
head?: never;
|
|
1020
|
+
patch?: never;
|
|
1021
|
+
trace?: never;
|
|
1022
|
+
};
|
|
943
1023
|
"/v1/contacts/{contactId}/presence": {
|
|
944
1024
|
parameters: {
|
|
945
1025
|
query?: never;
|
|
@@ -1006,8 +1086,8 @@ export interface paths {
|
|
|
1006
1086
|
/**
|
|
1007
1087
|
* Count open conversations
|
|
1008
1088
|
* @description Open conversations in the inboxes the caller can see: all of them, those assigned to the
|
|
1009
|
-
* calling member (`0` for API keys), unassigned ones, and per inbox
|
|
1010
|
-
* labels without open conversations are left out of their lists. Conversations flagged as
|
|
1089
|
+
* calling member (`0` for API keys), unassigned ones, and per inbox, per assignee and per
|
|
1090
|
+
* label. Inboxes, assignees and labels without open conversations are left out of their lists. Conversations flagged as
|
|
1011
1091
|
* spam are counted only in `spam`.
|
|
1012
1092
|
*
|
|
1013
1093
|
* Scope: `conversations:read`.
|
|
@@ -1021,6 +1101,36 @@ export interface paths {
|
|
|
1021
1101
|
patch?: never;
|
|
1022
1102
|
trace?: never;
|
|
1023
1103
|
};
|
|
1104
|
+
"/v1/stats": {
|
|
1105
|
+
parameters: {
|
|
1106
|
+
query?: never;
|
|
1107
|
+
header?: never;
|
|
1108
|
+
path?: never;
|
|
1109
|
+
cookie?: never;
|
|
1110
|
+
};
|
|
1111
|
+
/**
|
|
1112
|
+
* Team activity since a moment
|
|
1113
|
+
* @description What the team did in the inboxes the caller can see (or in one of them) from `since` until
|
|
1114
|
+
* now: replies sent by members (messages members wrote or drafts they sent; not notes, not
|
|
1115
|
+
* bots' own messages), conversations closed, the median time from a contact's first
|
|
1116
|
+
* message to the first member reply, over the conversations whose first reply falls in the
|
|
1117
|
+
* window, and the ratings contacts gave in it. `members` breaks replies and closes down per member, leaving out members with
|
|
1118
|
+
* neither. Nothing is stored for it; it is counted from the messages each time.
|
|
1119
|
+
*
|
|
1120
|
+
* `since` defaults to the start of today in `timezone` (an IANA name, `UTC` by default); the
|
|
1121
|
+
* panel sends the browser's zone. It must be in the past and at most 366 days ago.
|
|
1122
|
+
*
|
|
1123
|
+
* Scope: `conversations:read`.
|
|
1124
|
+
*/
|
|
1125
|
+
get: operations["getStats"];
|
|
1126
|
+
put?: never;
|
|
1127
|
+
post?: never;
|
|
1128
|
+
delete?: never;
|
|
1129
|
+
options?: never;
|
|
1130
|
+
head?: never;
|
|
1131
|
+
patch?: never;
|
|
1132
|
+
trace?: never;
|
|
1133
|
+
};
|
|
1024
1134
|
"/v1/conversations/bulk": {
|
|
1025
1135
|
parameters: {
|
|
1026
1136
|
query?: never;
|
|
@@ -1305,8 +1415,8 @@ export interface paths {
|
|
|
1305
1415
|
/**
|
|
1306
1416
|
* Get a message's e-mail details
|
|
1307
1417
|
* @description The full text with the quoted history and signature that the thread hides, the full
|
|
1308
|
-
* sanitized HTML,
|
|
1309
|
-
* have them; others answer `404`.
|
|
1418
|
+
* sanitized HTML, the original HTML with the sender's styling, and the headers that matter.
|
|
1419
|
+
* Only messages that came or went by e-mail have them; others answer `404`.
|
|
1310
1420
|
*
|
|
1311
1421
|
* Scope: `conversations:read`.
|
|
1312
1422
|
*/
|
|
@@ -1888,7 +1998,10 @@ export interface paths {
|
|
|
1888
1998
|
* admins and API keys (an agent learns of a new inbox from `inbox_access.changed`);
|
|
1889
1999
|
* `inbox.deleted` reaches everyone who could see the inbox. `conversation.read` reaches only
|
|
1890
2000
|
* the connections of the member who read. `typing` (a contact or another member typing) has no
|
|
1891
|
-
* `id`, is not stored and is not replayed.
|
|
2001
|
+
* `id`, is not stored and is not replayed. `member.presence` (a member of the workspace opened
|
|
2002
|
+
* or closed the panel or changed `availability`) reaches member sessions only, also has no
|
|
2003
|
+
* `id` and is not replayed; so does `viewing` (another member opened or left a conversation),
|
|
2004
|
+
* which follows inbox access like conversation events.
|
|
1892
2005
|
*
|
|
1893
2006
|
* A member session's open connection also makes the member available to contacts of `live`
|
|
1894
2007
|
* inboxes they can access (see `availability` on `/v1/me`).
|
|
@@ -1905,8 +2018,10 @@ export interface paths {
|
|
|
1905
2018
|
* a text frame `{"type": "viewing", "conversation_id": "<id>"}`, and
|
|
1906
2019
|
* `{"type": "viewing", "conversation_id": null}` when it shows none or the page is hidden;
|
|
1907
2020
|
* send it again after every reconnect. While a connection of the member views a
|
|
1908
|
-
* conversation, the member gets no push or e-mail notification about it. Other
|
|
1909
|
-
*
|
|
2021
|
+
* conversation, the member gets no push or e-mail notification about it. Other members who
|
|
2022
|
+
* can see the conversation get a `viewing` event when the member opens or leaves it, and
|
|
2023
|
+
* the reporting connection gets a `viewing` event for each other member already there.
|
|
2024
|
+
* Other client frames are ignored. Close codes: 1008 (`unauthenticated`, `forbidden`) when the session
|
|
1910
2025
|
* or membership ends, 1013 (`slow_consumer`) when the client does not read fast enough, 1012
|
|
1911
2026
|
* (`restart`) when the server restarts or loses its event feed. Reconnect with
|
|
1912
2027
|
* `last_event_id` after any of them except 1008. While the server is reconnecting its own event
|
|
@@ -2104,6 +2219,31 @@ export interface paths {
|
|
|
2104
2219
|
patch?: never;
|
|
2105
2220
|
trace?: never;
|
|
2106
2221
|
};
|
|
2222
|
+
"/client/v1/conversations/{conversationId}/rating": {
|
|
2223
|
+
parameters: {
|
|
2224
|
+
query?: never;
|
|
2225
|
+
header?: never;
|
|
2226
|
+
path?: never;
|
|
2227
|
+
cookie?: never;
|
|
2228
|
+
};
|
|
2229
|
+
get?: never;
|
|
2230
|
+
put?: never;
|
|
2231
|
+
/**
|
|
2232
|
+
* Rate a closed conversation
|
|
2233
|
+
* @description Records the contact's rating (`good` or `bad`) and optional comment for a conversation
|
|
2234
|
+
* whose `can_rate` is true. It is stored once per close: members see it in the thread as a
|
|
2235
|
+
* `rated` event and on the conversation, and it sends the `conversation.rated` webhook.
|
|
2236
|
+
* Answers `409 rating_unavailable` when `can_rate` is false (the inbox does not ask for
|
|
2237
|
+
* ratings, the conversation is open, the close is older than 30 days) and
|
|
2238
|
+
* `409 already_rated` when the contact already rated this close.
|
|
2239
|
+
*/
|
|
2240
|
+
post: operations["rateClientConversation"];
|
|
2241
|
+
delete?: never;
|
|
2242
|
+
options?: never;
|
|
2243
|
+
head?: never;
|
|
2244
|
+
patch?: never;
|
|
2245
|
+
trace?: never;
|
|
2246
|
+
};
|
|
2107
2247
|
"/client/v1/conversations/{conversationId}/typing": {
|
|
2108
2248
|
parameters: {
|
|
2109
2249
|
query?: never;
|
|
@@ -2494,6 +2634,27 @@ export interface webhooks {
|
|
|
2494
2634
|
patch?: never;
|
|
2495
2635
|
trace?: never;
|
|
2496
2636
|
};
|
|
2637
|
+
"conversation.rated": {
|
|
2638
|
+
parameters: {
|
|
2639
|
+
query?: never;
|
|
2640
|
+
header?: never;
|
|
2641
|
+
path?: never;
|
|
2642
|
+
cookie?: never;
|
|
2643
|
+
};
|
|
2644
|
+
get?: never;
|
|
2645
|
+
put?: never;
|
|
2646
|
+
/**
|
|
2647
|
+
* A contact rated a conversation
|
|
2648
|
+
* @description The contact rated a closed conversation; `conversation.rating` holds the rating and
|
|
2649
|
+
* comment. Sent once per rating, with `conversation.updated` for the same change.
|
|
2650
|
+
*/
|
|
2651
|
+
post: operations["webhookConversationRated"];
|
|
2652
|
+
delete?: never;
|
|
2653
|
+
options?: never;
|
|
2654
|
+
head?: never;
|
|
2655
|
+
patch?: never;
|
|
2656
|
+
trace?: never;
|
|
2657
|
+
};
|
|
2497
2658
|
"conversation.updated": {
|
|
2498
2659
|
parameters: {
|
|
2499
2660
|
query?: never;
|
|
@@ -2756,9 +2917,72 @@ export interface components {
|
|
|
2756
2917
|
email: components["schemas"]["Email"];
|
|
2757
2918
|
name: string;
|
|
2758
2919
|
role: components["schemas"]["Role"];
|
|
2920
|
+
availability: components["schemas"]["Availability"];
|
|
2921
|
+
/**
|
|
2922
|
+
* @description The member has a `/v1/realtime` connection seen in the last 75 seconds (any panel tab
|
|
2923
|
+
* or device). `member.presence` events on `/v1/realtime` report changes.
|
|
2924
|
+
*/
|
|
2925
|
+
online: boolean;
|
|
2759
2926
|
/** Format: date-time */
|
|
2760
2927
|
created_at: string;
|
|
2761
2928
|
};
|
|
2929
|
+
MemberPresence: {
|
|
2930
|
+
/** Format: uuid */
|
|
2931
|
+
member_id: string;
|
|
2932
|
+
availability: components["schemas"]["Availability"];
|
|
2933
|
+
online: boolean;
|
|
2934
|
+
};
|
|
2935
|
+
Viewing: {
|
|
2936
|
+
/** Format: uuid */
|
|
2937
|
+
member_id: string;
|
|
2938
|
+
/** Format: uuid */
|
|
2939
|
+
conversation_id: string;
|
|
2940
|
+
/** @description `false` when the member no longer has the conversation open anywhere. */
|
|
2941
|
+
viewing: boolean;
|
|
2942
|
+
};
|
|
2943
|
+
/**
|
|
2944
|
+
* @description Another member opened (`viewing: true`) or left a conversation, as their panel reported
|
|
2945
|
+
* with a `viewing` frame; leaving includes hiding the page and disconnecting. Right after a
|
|
2946
|
+
* connection reports a conversation, it also gets one `viewing: true` event for every other
|
|
2947
|
+
* member who already has it open. Not stored: it has no `id` and is not replayed. Sent to
|
|
2948
|
+
* member sessions that can see the conversation's inbox; members do not get their own.
|
|
2949
|
+
*/
|
|
2950
|
+
ViewingEvent: {
|
|
2951
|
+
/**
|
|
2952
|
+
* @description discriminator enum property added by openapi-typescript
|
|
2953
|
+
* @enum {string}
|
|
2954
|
+
*/
|
|
2955
|
+
type: "viewing";
|
|
2956
|
+
/** Format: uuid */
|
|
2957
|
+
workspace_id: string;
|
|
2958
|
+
/** Format: uuid */
|
|
2959
|
+
inbox_id: string;
|
|
2960
|
+
/** Format: uuid */
|
|
2961
|
+
conversation_id: string;
|
|
2962
|
+
/** Format: date-time */
|
|
2963
|
+
created_at: string;
|
|
2964
|
+
data: components["schemas"]["Viewing"];
|
|
2965
|
+
};
|
|
2966
|
+
/**
|
|
2967
|
+
* @description A member's `availability` or `online` changed (they opened or closed the panel, or set
|
|
2968
|
+
* themselves away). Carries the member's current state, so it may repeat the previous one.
|
|
2969
|
+
* Not stored: it has no `id` and is not replayed; reload `/v1/members` after a reconnect.
|
|
2970
|
+
* A server process that stops without closing its connections sends none: such members
|
|
2971
|
+
* turn offline in `/v1/members` 75 seconds later. Sent to member sessions only, the member's
|
|
2972
|
+
* own included.
|
|
2973
|
+
*/
|
|
2974
|
+
MemberPresenceEvent: {
|
|
2975
|
+
/**
|
|
2976
|
+
* @description discriminator enum property added by openapi-typescript
|
|
2977
|
+
* @enum {string}
|
|
2978
|
+
*/
|
|
2979
|
+
type: "member.presence";
|
|
2980
|
+
/** Format: uuid */
|
|
2981
|
+
workspace_id: string;
|
|
2982
|
+
/** Format: date-time */
|
|
2983
|
+
created_at: string;
|
|
2984
|
+
data: components["schemas"]["MemberPresence"];
|
|
2985
|
+
};
|
|
2762
2986
|
MemberList: {
|
|
2763
2987
|
items: components["schemas"]["Member"][];
|
|
2764
2988
|
};
|
|
@@ -2944,6 +3168,7 @@ export interface components {
|
|
|
2944
3168
|
message_in_my_conversation: components["schemas"]["NotificationChannels"];
|
|
2945
3169
|
message_in_unassigned_conversation: components["schemas"]["NotificationChannels"];
|
|
2946
3170
|
assigned_to_me: components["schemas"]["NotificationChannels"];
|
|
3171
|
+
mentioned: components["schemas"]["NotificationChannels"];
|
|
2947
3172
|
};
|
|
2948
3173
|
/** @description Some events and their channels. */
|
|
2949
3174
|
NotificationEventsUpdate: {
|
|
@@ -2952,6 +3177,7 @@ export interface components {
|
|
|
2952
3177
|
message_in_my_conversation?: components["schemas"]["NotificationChannels"];
|
|
2953
3178
|
message_in_unassigned_conversation?: components["schemas"]["NotificationChannels"];
|
|
2954
3179
|
assigned_to_me?: components["schemas"]["NotificationChannels"];
|
|
3180
|
+
mentioned?: components["schemas"]["NotificationChannels"];
|
|
2955
3181
|
};
|
|
2956
3182
|
NotificationSettings: {
|
|
2957
3183
|
events: components["schemas"]["NotificationEvents"];
|
|
@@ -2986,7 +3212,7 @@ export interface components {
|
|
|
2986
3212
|
* @description What caused it (see the `notifications` tag), or `test`.
|
|
2987
3213
|
* @enum {string}
|
|
2988
3214
|
*/
|
|
2989
|
-
event: "new_live_conversation" | "new_async_conversation" | "message_in_my_conversation" | "message_in_unassigned_conversation" | "assigned_to_me" | "test";
|
|
3215
|
+
event: "new_live_conversation" | "new_async_conversation" | "message_in_my_conversation" | "message_in_unassigned_conversation" | "assigned_to_me" | "mentioned" | "test";
|
|
2990
3216
|
/**
|
|
2991
3217
|
* @description The inbox name and the contact's name.
|
|
2992
3218
|
* @example Support · Ayşe Yılmaz
|
|
@@ -3096,6 +3322,13 @@ export interface components {
|
|
|
3096
3322
|
*/
|
|
3097
3323
|
expected_reply_minutes?: number;
|
|
3098
3324
|
business_hours: components["schemas"]["BusinessHours"];
|
|
3325
|
+
/**
|
|
3326
|
+
* @description Contacts may rate a closed conversation (`good` or `bad`, with an optional comment):
|
|
3327
|
+
* the widget and the mobile SDKs offer it, and e-mail contacts get a request with two
|
|
3328
|
+
* links after a member's conversation is closed. Off by default. Only conversations
|
|
3329
|
+
* closed after it was turned on can be rated; turning it off and on again starts over.
|
|
3330
|
+
*/
|
|
3331
|
+
ask_for_rating: boolean;
|
|
3099
3332
|
/** Format: date-time */
|
|
3100
3333
|
created_at: string;
|
|
3101
3334
|
/** Format: date-time */
|
|
@@ -3112,6 +3345,8 @@ export interface components {
|
|
|
3112
3345
|
/** Format: int32 */
|
|
3113
3346
|
expected_reply_minutes?: number;
|
|
3114
3347
|
business_hours?: components["schemas"]["BusinessHours"];
|
|
3348
|
+
/** @default false */
|
|
3349
|
+
ask_for_rating: boolean;
|
|
3115
3350
|
};
|
|
3116
3351
|
InboxUpdate: {
|
|
3117
3352
|
name?: string;
|
|
@@ -3126,6 +3361,7 @@ export interface components {
|
|
|
3126
3361
|
*/
|
|
3127
3362
|
expected_reply_minutes?: number | null;
|
|
3128
3363
|
business_hours?: components["schemas"]["BusinessHours"];
|
|
3364
|
+
ask_for_rating?: boolean;
|
|
3129
3365
|
};
|
|
3130
3366
|
InboxCreated: {
|
|
3131
3367
|
inbox: components["schemas"]["Inbox"];
|
|
@@ -3293,11 +3529,75 @@ export interface components {
|
|
|
3293
3529
|
locale?: components["schemas"]["LanguageTag"];
|
|
3294
3530
|
/** @description The contact's addresses that must not be mailed. */
|
|
3295
3531
|
undeliverable: components["schemas"]["UndeliverableEmail"][];
|
|
3532
|
+
activity?: components["schemas"]["ContactActivity"];
|
|
3296
3533
|
/** Format: date-time */
|
|
3297
3534
|
created_at: string;
|
|
3298
3535
|
/** Format: date-time */
|
|
3299
3536
|
updated_at: string;
|
|
3300
3537
|
};
|
|
3538
|
+
/**
|
|
3539
|
+
* @description Only on `GET /v1/contacts` and `GET /v1/contacts/{contactId}`. The counts cover the
|
|
3540
|
+
* conversations the caller can see, spam left out; `last_seen_at` does not depend on the caller.
|
|
3541
|
+
*/
|
|
3542
|
+
ContactActivity: {
|
|
3543
|
+
/**
|
|
3544
|
+
* Format: date-time
|
|
3545
|
+
* @description The contact's last activity: a message (any channel), a rating, or use of a widget or
|
|
3546
|
+
* app session. Absent when never active.
|
|
3547
|
+
*/
|
|
3548
|
+
last_seen_at?: string;
|
|
3549
|
+
/** Format: int64 */
|
|
3550
|
+
conversations: number;
|
|
3551
|
+
/** Format: int64 */
|
|
3552
|
+
open_conversations: number;
|
|
3553
|
+
/**
|
|
3554
|
+
* Format: date-time
|
|
3555
|
+
* @description The last message in any of those conversations, else when the newest one started.
|
|
3556
|
+
*/
|
|
3557
|
+
last_conversation_at?: string;
|
|
3558
|
+
};
|
|
3559
|
+
ContactNote: {
|
|
3560
|
+
/** Format: uuid */
|
|
3561
|
+
id: string;
|
|
3562
|
+
/** Format: uuid */
|
|
3563
|
+
contact_id: string;
|
|
3564
|
+
/** @description A `member` or a `bot` (API key); `member_id` is absent once the member was removed. */
|
|
3565
|
+
author: components["schemas"]["MessageAuthor"];
|
|
3566
|
+
/** @description Plain text. */
|
|
3567
|
+
body: string;
|
|
3568
|
+
/** Format: date-time */
|
|
3569
|
+
created_at: string;
|
|
3570
|
+
};
|
|
3571
|
+
ContactNoteCreate: {
|
|
3572
|
+
body: string;
|
|
3573
|
+
};
|
|
3574
|
+
ContactNotePage: {
|
|
3575
|
+
items: components["schemas"]["ContactNote"][];
|
|
3576
|
+
next_cursor?: string;
|
|
3577
|
+
};
|
|
3578
|
+
/**
|
|
3579
|
+
* @description How the team has served the contact, over all their conversations the caller can see (spam
|
|
3580
|
+
* left out).
|
|
3581
|
+
*/
|
|
3582
|
+
ContactSummary: {
|
|
3583
|
+
/**
|
|
3584
|
+
* Format: int64
|
|
3585
|
+
* @description Conversations where a member answered the contact's first message.
|
|
3586
|
+
*/
|
|
3587
|
+
first_replies: number;
|
|
3588
|
+
/**
|
|
3589
|
+
* Format: int64
|
|
3590
|
+
* @description Median seconds from the contact's first message to the first member reply; absent when `first_replies` is 0.
|
|
3591
|
+
*/
|
|
3592
|
+
median_first_reply_seconds?: number;
|
|
3593
|
+
/** @description The latest rating of each conversation. */
|
|
3594
|
+
ratings: {
|
|
3595
|
+
/** Format: int64 */
|
|
3596
|
+
good: number;
|
|
3597
|
+
/** Format: int64 */
|
|
3598
|
+
bad: number;
|
|
3599
|
+
};
|
|
3600
|
+
};
|
|
3301
3601
|
ContactPresence: {
|
|
3302
3602
|
/** Format: uuid */
|
|
3303
3603
|
contact_id: string;
|
|
@@ -3337,7 +3637,7 @@ export interface components {
|
|
|
3337
3637
|
count: number;
|
|
3338
3638
|
};
|
|
3339
3639
|
/** @enum {string} */
|
|
3340
|
-
WebhookEventType: "conversation.created" | "conversation.updated" | "message.created" | "feedback.created" | "contact.updated" | "contact.deleted" | "draft.created" | "draft.updated" | "draft.deleted";
|
|
3640
|
+
WebhookEventType: "conversation.created" | "conversation.updated" | "conversation.rated" | "message.created" | "feedback.created" | "contact.updated" | "contact.deleted" | "draft.created" | "draft.updated" | "draft.deleted";
|
|
3341
3641
|
WebhookEndpoint: {
|
|
3342
3642
|
/** Format: uuid */
|
|
3343
3643
|
id: string;
|
|
@@ -3622,11 +3922,30 @@ export interface components {
|
|
|
3622
3922
|
* @description The last message or note, or the creation time.
|
|
3623
3923
|
*/
|
|
3624
3924
|
last_activity_at: string;
|
|
3925
|
+
/**
|
|
3926
|
+
* Format: date-time
|
|
3927
|
+
* @description When it was last closed; absent when it never was.
|
|
3928
|
+
*/
|
|
3929
|
+
closed_at?: string;
|
|
3930
|
+
rating?: components["schemas"]["ConversationRating"];
|
|
3625
3931
|
/** Format: date-time */
|
|
3626
3932
|
created_at: string;
|
|
3627
3933
|
/** Format: date-time */
|
|
3628
3934
|
updated_at: string;
|
|
3629
3935
|
};
|
|
3936
|
+
/**
|
|
3937
|
+
* @description The contact's latest rating. A conversation can be rated once each time it is closed, so
|
|
3938
|
+
* this may belong to an earlier close (compare `rated_at` with `closed_at`). The thread also
|
|
3939
|
+
* has it as a `rated` event message whose body is the comment.
|
|
3940
|
+
*/
|
|
3941
|
+
ConversationRating: {
|
|
3942
|
+
rating: components["schemas"]["Rating"];
|
|
3943
|
+
comment?: string;
|
|
3944
|
+
/** Format: date-time */
|
|
3945
|
+
rated_at: string;
|
|
3946
|
+
};
|
|
3947
|
+
/** @enum {string} */
|
|
3948
|
+
Rating: "good" | "bad";
|
|
3630
3949
|
ConversationCreate: {
|
|
3631
3950
|
/** Format: uuid */
|
|
3632
3951
|
inbox_id: string;
|
|
@@ -3738,6 +4057,62 @@ export interface components {
|
|
|
3738
4057
|
/** Format: int64 */
|
|
3739
4058
|
count: number;
|
|
3740
4059
|
};
|
|
4060
|
+
Stats: {
|
|
4061
|
+
/** Format: date-time */
|
|
4062
|
+
since: string;
|
|
4063
|
+
/**
|
|
4064
|
+
* Format: date-time
|
|
4065
|
+
* @description When it was counted.
|
|
4066
|
+
*/
|
|
4067
|
+
until: string;
|
|
4068
|
+
/**
|
|
4069
|
+
* Format: int64
|
|
4070
|
+
* @description Replies sent by members.
|
|
4071
|
+
*/
|
|
4072
|
+
replies: number;
|
|
4073
|
+
/**
|
|
4074
|
+
* Format: int64
|
|
4075
|
+
* @description Times a conversation was closed, by anyone (members, API keys, the server).
|
|
4076
|
+
*/
|
|
4077
|
+
closed: number;
|
|
4078
|
+
/**
|
|
4079
|
+
* Format: int64
|
|
4080
|
+
* @description Conversations whose first member reply to the contact was sent in the window.
|
|
4081
|
+
*/
|
|
4082
|
+
first_replies: number;
|
|
4083
|
+
/**
|
|
4084
|
+
* Format: int64
|
|
4085
|
+
* @description Median seconds from the contact's first message to that reply; absent when `first_replies` is 0.
|
|
4086
|
+
*/
|
|
4087
|
+
median_first_reply_seconds?: number;
|
|
4088
|
+
ratings: components["schemas"]["RatingStats"];
|
|
4089
|
+
/** @description Per member, by member id. */
|
|
4090
|
+
members: components["schemas"]["MemberStats"][];
|
|
4091
|
+
};
|
|
4092
|
+
/** @description Ratings contacts gave in the window, in total and per inbox (inboxes without any are left out). */
|
|
4093
|
+
RatingStats: {
|
|
4094
|
+
/** Format: int64 */
|
|
4095
|
+
good: number;
|
|
4096
|
+
/** Format: int64 */
|
|
4097
|
+
bad: number;
|
|
4098
|
+
inboxes: components["schemas"]["InboxRatingStats"][];
|
|
4099
|
+
};
|
|
4100
|
+
InboxRatingStats: {
|
|
4101
|
+
/** Format: uuid */
|
|
4102
|
+
inbox_id: string;
|
|
4103
|
+
/** Format: int64 */
|
|
4104
|
+
good: number;
|
|
4105
|
+
/** Format: int64 */
|
|
4106
|
+
bad: number;
|
|
4107
|
+
};
|
|
4108
|
+
MemberStats: {
|
|
4109
|
+
/** Format: uuid */
|
|
4110
|
+
member_id: string;
|
|
4111
|
+
/** Format: int64 */
|
|
4112
|
+
replies: number;
|
|
4113
|
+
/** Format: int64 */
|
|
4114
|
+
closed: number;
|
|
4115
|
+
};
|
|
3741
4116
|
/** @description Open conversations in the inboxes the caller can see. */
|
|
3742
4117
|
ConversationCounts: {
|
|
3743
4118
|
/**
|
|
@@ -3760,6 +4135,11 @@ export interface components {
|
|
|
3760
4135
|
unassigned: number;
|
|
3761
4136
|
/** @description Per inbox id. */
|
|
3762
4137
|
inboxes: components["schemas"]["CountByID"][];
|
|
4138
|
+
/**
|
|
4139
|
+
* @description Per assignee's member id: each member's open load, for choosing whom to hand a
|
|
4140
|
+
* conversation to. Counts only the inboxes the caller can see.
|
|
4141
|
+
*/
|
|
4142
|
+
assignees: components["schemas"]["CountByID"][];
|
|
3763
4143
|
/** @description Per label id. */
|
|
3764
4144
|
labels: components["schemas"]["CountByID"][];
|
|
3765
4145
|
};
|
|
@@ -3824,7 +4204,7 @@ export interface components {
|
|
|
3824
4204
|
via?: string;
|
|
3825
4205
|
};
|
|
3826
4206
|
/** @enum {string} */
|
|
3827
|
-
EventType: "assigned" | "unassigned" | "status_changed" | "labels_changed" | "moved";
|
|
4207
|
+
EventType: "assigned" | "unassigned" | "status_changed" | "labels_changed" | "moved" | "rated";
|
|
3828
4208
|
MessageEvent: {
|
|
3829
4209
|
type: components["schemas"]["EventType"];
|
|
3830
4210
|
/**
|
|
@@ -3851,6 +4231,8 @@ export interface components {
|
|
|
3851
4231
|
* @description The inbox it moved from (`moved`).
|
|
3852
4232
|
*/
|
|
3853
4233
|
previous_inbox_id?: string;
|
|
4234
|
+
/** @description `rated` only: the contact's rating; the message body is their comment. */
|
|
4235
|
+
rating?: components["schemas"]["Rating"];
|
|
3854
4236
|
};
|
|
3855
4237
|
Attachment: {
|
|
3856
4238
|
/**
|
|
@@ -3897,6 +4279,8 @@ export interface components {
|
|
|
3897
4279
|
draft: boolean;
|
|
3898
4280
|
/** @description Who sent a draft (`member` or `bot`); absent for messages that were never drafts. */
|
|
3899
4281
|
sent_by?: components["schemas"]["MessageAuthor"];
|
|
4282
|
+
/** @description Members a note mentions (notes only; absent when it mentions nobody). */
|
|
4283
|
+
mentions?: string[];
|
|
3900
4284
|
/**
|
|
3901
4285
|
* Format: date-time
|
|
3902
4286
|
* @description For a sent draft, when it was sent.
|
|
@@ -3956,7 +4340,16 @@ export interface components {
|
|
|
3956
4340
|
full_text: string;
|
|
3957
4341
|
/** @description The whole HTML part, sanitized. */
|
|
3958
4342
|
full_html?: string;
|
|
3959
|
-
/**
|
|
4343
|
+
/**
|
|
4344
|
+
* @description The whole HTML part of the kept original, built on request and sanitized with a policy
|
|
4345
|
+
* that keeps inline styles limited to an allowlist of CSS properties (no `url(`,
|
|
4346
|
+
* `expression` or `@import` values) and the colour, alignment and size attributes of
|
|
4347
|
+
* tables and `font`; never `<style>` blocks, scripts, forms, frames, stylesheets or event
|
|
4348
|
+
* handlers. `cid:` sources are kept as in `full_html`. Absent when the original is not
|
|
4349
|
+
* kept, has no HTML part or is too large.
|
|
4350
|
+
*/
|
|
4351
|
+
original_html?: string;
|
|
4352
|
+
/** @description `full_html` or `original_html` loads images from other servers; block them until the member asks. */
|
|
3960
4353
|
has_remote_images: boolean;
|
|
3961
4354
|
in_reply_to?: string;
|
|
3962
4355
|
references?: string[];
|
|
@@ -3979,6 +4372,14 @@ export interface components {
|
|
|
3979
4372
|
client_id?: string;
|
|
3980
4373
|
/** @description Stores an outgoing message as a draft instead of delivering it. */
|
|
3981
4374
|
draft?: boolean;
|
|
4375
|
+
/**
|
|
4376
|
+
* @description Notes only: members to notify about the note. Each must be a member of the workspace
|
|
4377
|
+
* who can see the conversation's inbox (`400 validation_failed` otherwise). They get the
|
|
4378
|
+
* `mentioned` notification (realtime as `message.created`, Web Push and e-mail per their
|
|
4379
|
+
* notification settings); the author is never notified. The panel shows mentions in the
|
|
4380
|
+
* body as it likes; the server does not parse `@` in the text.
|
|
4381
|
+
*/
|
|
4382
|
+
mentions?: string[];
|
|
3982
4383
|
};
|
|
3983
4384
|
MessageCreateMultipart: {
|
|
3984
4385
|
/** @enum {string} */
|
|
@@ -3988,6 +4389,8 @@ export interface components {
|
|
|
3988
4389
|
html?: string;
|
|
3989
4390
|
client_id?: string;
|
|
3990
4391
|
draft?: boolean;
|
|
4392
|
+
/** @description Notes only; repeat the field once per member id. */
|
|
4393
|
+
mentions?: string[];
|
|
3991
4394
|
files?: string[];
|
|
3992
4395
|
};
|
|
3993
4396
|
/** @description Only the fields sent change. */
|
|
@@ -4345,7 +4748,7 @@ export interface components {
|
|
|
4345
4748
|
id: number;
|
|
4346
4749
|
};
|
|
4347
4750
|
/** @description One server message on `/v1/realtime`, told apart by `type`. */
|
|
4348
|
-
RealtimeMessage: components["schemas"]["ConversationEvent"] | components["schemas"]["ConversationMovedEvent"] | components["schemas"]["MessageCreatedEvent"] | components["schemas"]["MessageUpdatedEvent"] | components["schemas"]["DraftEvent"] | components["schemas"]["ContactUpdatedEvent"] | components["schemas"]["ContactDeletedEvent"] | components["schemas"]["InboxCreatedEvent"] | components["schemas"]["InboxUpdatedEvent"] | components["schemas"]["InboxDeletedEvent"] | components["schemas"]["InboxAccessChangedEvent"] | components["schemas"]["ConversationReadEvent"] | components["schemas"]["TypingEvent"] | components["schemas"]["RealtimeReady"] | components["schemas"]["RealtimeResyncRequired"];
|
|
4751
|
+
RealtimeMessage: components["schemas"]["ConversationEvent"] | components["schemas"]["ConversationMovedEvent"] | components["schemas"]["MessageCreatedEvent"] | components["schemas"]["MessageUpdatedEvent"] | components["schemas"]["DraftEvent"] | components["schemas"]["ContactUpdatedEvent"] | components["schemas"]["ContactDeletedEvent"] | components["schemas"]["InboxCreatedEvent"] | components["schemas"]["InboxUpdatedEvent"] | components["schemas"]["InboxDeletedEvent"] | components["schemas"]["InboxAccessChangedEvent"] | components["schemas"]["ConversationReadEvent"] | components["schemas"]["TypingEvent"] | components["schemas"]["MemberPresenceEvent"] | components["schemas"]["ViewingEvent"] | components["schemas"]["RealtimeReady"] | components["schemas"]["RealtimeResyncRequired"];
|
|
4349
4752
|
/**
|
|
4350
4753
|
* @description `auto`: available in `live` inboxes while connected to `/v1/realtime` within business
|
|
4351
4754
|
* hours. `away`: never shown as available.
|
|
@@ -4565,6 +4968,11 @@ export interface components {
|
|
|
4565
4968
|
chat: components["schemas"]["ClientChatSettings"];
|
|
4566
4969
|
/** @description The categories `POST /client/v1/feedback` accepts, in display order. */
|
|
4567
4970
|
feedback_categories: components["schemas"]["FeedbackCategory"][];
|
|
4971
|
+
/**
|
|
4972
|
+
* @description The inbox asks contacts to rate closed conversations; offer it where `can_rate` is true
|
|
4973
|
+
* on a conversation.
|
|
4974
|
+
*/
|
|
4975
|
+
ask_for_rating: boolean;
|
|
4568
4976
|
};
|
|
4569
4977
|
ClientContact: {
|
|
4570
4978
|
/** Format: uuid */
|
|
@@ -4596,6 +5004,9 @@ export interface components {
|
|
|
4596
5004
|
/** Format: uuid */
|
|
4597
5005
|
id: string;
|
|
4598
5006
|
status: components["schemas"]["ConversationStatus"];
|
|
5007
|
+
/** @description As on `ClientConversation`. */
|
|
5008
|
+
can_rate: boolean;
|
|
5009
|
+
rating?: components["schemas"]["Rating"];
|
|
4599
5010
|
/** Format: date-time */
|
|
4600
5011
|
updated_at: string;
|
|
4601
5012
|
};
|
|
@@ -4628,9 +5039,23 @@ export interface components {
|
|
|
4628
5039
|
* when no member has read the conversation, and in `async` inboxes.
|
|
4629
5040
|
*/
|
|
4630
5041
|
last_read_by_member_at?: string;
|
|
5042
|
+
/**
|
|
5043
|
+
* @description The contact may rate it now with `POST /client/v1/conversations/{id}/rating`: the inbox
|
|
5044
|
+
* asks for ratings (`ask_for_rating`), the conversation is closed, was closed at most 30
|
|
5045
|
+
* days ago and after the inbox started asking, and has no rating since it was closed. A message from the contact reopens it,
|
|
5046
|
+
* and the next close allows a new rating.
|
|
5047
|
+
*/
|
|
5048
|
+
can_rate: boolean;
|
|
5049
|
+
/** @description The contact's rating since the last close; absent when they have not rated it. */
|
|
5050
|
+
rating?: components["schemas"]["Rating"];
|
|
4631
5051
|
/** Format: date-time */
|
|
4632
5052
|
created_at: string;
|
|
4633
5053
|
};
|
|
5054
|
+
ClientRatingCreate: {
|
|
5055
|
+
rating: components["schemas"]["Rating"];
|
|
5056
|
+
/** @description Optional; blank is the same as absent. */
|
|
5057
|
+
comment?: string;
|
|
5058
|
+
};
|
|
4634
5059
|
ClientConversationPage: {
|
|
4635
5060
|
items: components["schemas"]["ClientConversation"][];
|
|
4636
5061
|
/** @description Absent on the last page. */
|
|
@@ -6502,6 +6927,14 @@ export interface operations {
|
|
|
6502
6927
|
query?: {
|
|
6503
6928
|
/** @description Full-text search (Postgres `simple` configuration, `websearch` syntax). */
|
|
6504
6929
|
q?: components["parameters"]["Search"];
|
|
6930
|
+
/**
|
|
6931
|
+
* @description `known`: the contact has an e-mail address or an external id. `visitor`: neither (an
|
|
6932
|
+
* anonymous widget visitor, or someone known only by a typed, unconfirmed address).
|
|
6933
|
+
*/
|
|
6934
|
+
kind?: "known" | "visitor";
|
|
6935
|
+
/** @description Only contacts with (`true`) or without (`false`) an open conversation the caller can see; spam does not count. */
|
|
6936
|
+
has_open?: boolean;
|
|
6937
|
+
sort?: "created" | "last_seen";
|
|
6505
6938
|
/** @description The `next_cursor` of the previous page. */
|
|
6506
6939
|
cursor?: components["parameters"]["Cursor"];
|
|
6507
6940
|
/** @description Page size, 1 to 100; 25 by default. */
|
|
@@ -6744,6 +7177,128 @@ export interface operations {
|
|
|
6744
7177
|
404: components["responses"]["Problem"];
|
|
6745
7178
|
};
|
|
6746
7179
|
};
|
|
7180
|
+
listContactNotes: {
|
|
7181
|
+
parameters: {
|
|
7182
|
+
query?: {
|
|
7183
|
+
/** @description The `next_cursor` of the previous page. */
|
|
7184
|
+
cursor?: components["parameters"]["Cursor"];
|
|
7185
|
+
/** @description Page size, 1 to 100; 25 by default. */
|
|
7186
|
+
limit?: components["parameters"]["Limit"];
|
|
7187
|
+
};
|
|
7188
|
+
header?: {
|
|
7189
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7190
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7191
|
+
};
|
|
7192
|
+
path: {
|
|
7193
|
+
contactId: components["parameters"]["ContactId"];
|
|
7194
|
+
};
|
|
7195
|
+
cookie?: never;
|
|
7196
|
+
};
|
|
7197
|
+
requestBody?: never;
|
|
7198
|
+
responses: {
|
|
7199
|
+
/** @description A page of notes. */
|
|
7200
|
+
200: {
|
|
7201
|
+
headers: {
|
|
7202
|
+
[name: string]: unknown;
|
|
7203
|
+
};
|
|
7204
|
+
content: {
|
|
7205
|
+
"application/json": components["schemas"]["ContactNotePage"];
|
|
7206
|
+
};
|
|
7207
|
+
};
|
|
7208
|
+
400: components["responses"]["Problem"];
|
|
7209
|
+
401: components["responses"]["Problem"];
|
|
7210
|
+
403: components["responses"]["Problem"];
|
|
7211
|
+
404: components["responses"]["Problem"];
|
|
7212
|
+
};
|
|
7213
|
+
};
|
|
7214
|
+
createContactNote: {
|
|
7215
|
+
parameters: {
|
|
7216
|
+
query?: never;
|
|
7217
|
+
header?: {
|
|
7218
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7219
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7220
|
+
};
|
|
7221
|
+
path: {
|
|
7222
|
+
contactId: components["parameters"]["ContactId"];
|
|
7223
|
+
};
|
|
7224
|
+
cookie?: never;
|
|
7225
|
+
};
|
|
7226
|
+
requestBody: {
|
|
7227
|
+
content: {
|
|
7228
|
+
"application/json": components["schemas"]["ContactNoteCreate"];
|
|
7229
|
+
};
|
|
7230
|
+
};
|
|
7231
|
+
responses: {
|
|
7232
|
+
/** @description The note. */
|
|
7233
|
+
201: {
|
|
7234
|
+
headers: {
|
|
7235
|
+
[name: string]: unknown;
|
|
7236
|
+
};
|
|
7237
|
+
content: {
|
|
7238
|
+
"application/json": components["schemas"]["ContactNote"];
|
|
7239
|
+
};
|
|
7240
|
+
};
|
|
7241
|
+
400: components["responses"]["Problem"];
|
|
7242
|
+
401: components["responses"]["Problem"];
|
|
7243
|
+
403: components["responses"]["Problem"];
|
|
7244
|
+
404: components["responses"]["Problem"];
|
|
7245
|
+
};
|
|
7246
|
+
};
|
|
7247
|
+
deleteContactNote: {
|
|
7248
|
+
parameters: {
|
|
7249
|
+
query?: never;
|
|
7250
|
+
header?: {
|
|
7251
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7252
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7253
|
+
};
|
|
7254
|
+
path: {
|
|
7255
|
+
contactId: components["parameters"]["ContactId"];
|
|
7256
|
+
noteId: string;
|
|
7257
|
+
};
|
|
7258
|
+
cookie?: never;
|
|
7259
|
+
};
|
|
7260
|
+
requestBody?: never;
|
|
7261
|
+
responses: {
|
|
7262
|
+
/** @description Deleted. */
|
|
7263
|
+
204: {
|
|
7264
|
+
headers: {
|
|
7265
|
+
[name: string]: unknown;
|
|
7266
|
+
};
|
|
7267
|
+
content?: never;
|
|
7268
|
+
};
|
|
7269
|
+
401: components["responses"]["Problem"];
|
|
7270
|
+
403: components["responses"]["Problem"];
|
|
7271
|
+
404: components["responses"]["Problem"];
|
|
7272
|
+
};
|
|
7273
|
+
};
|
|
7274
|
+
getContactSummary: {
|
|
7275
|
+
parameters: {
|
|
7276
|
+
query?: never;
|
|
7277
|
+
header?: {
|
|
7278
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7279
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7280
|
+
};
|
|
7281
|
+
path: {
|
|
7282
|
+
contactId: components["parameters"]["ContactId"];
|
|
7283
|
+
};
|
|
7284
|
+
cookie?: never;
|
|
7285
|
+
};
|
|
7286
|
+
requestBody?: never;
|
|
7287
|
+
responses: {
|
|
7288
|
+
/** @description The summary. */
|
|
7289
|
+
200: {
|
|
7290
|
+
headers: {
|
|
7291
|
+
[name: string]: unknown;
|
|
7292
|
+
};
|
|
7293
|
+
content: {
|
|
7294
|
+
"application/json": components["schemas"]["ContactSummary"];
|
|
7295
|
+
};
|
|
7296
|
+
};
|
|
7297
|
+
401: components["responses"]["Problem"];
|
|
7298
|
+
403: components["responses"]["Problem"];
|
|
7299
|
+
404: components["responses"]["Problem"];
|
|
7300
|
+
};
|
|
7301
|
+
};
|
|
6747
7302
|
getContactPresence: {
|
|
6748
7303
|
parameters: {
|
|
6749
7304
|
query?: never;
|
|
@@ -6880,6 +7435,40 @@ export interface operations {
|
|
|
6880
7435
|
403: components["responses"]["Problem"];
|
|
6881
7436
|
};
|
|
6882
7437
|
};
|
|
7438
|
+
getStats: {
|
|
7439
|
+
parameters: {
|
|
7440
|
+
query?: {
|
|
7441
|
+
/** @description Only this inbox (`404` when the caller cannot see it). */
|
|
7442
|
+
inbox_id?: string;
|
|
7443
|
+
/** @description Start of the window; the start of today in `timezone` when absent. */
|
|
7444
|
+
since?: string;
|
|
7445
|
+
/** @description IANA time zone for the default `since`. */
|
|
7446
|
+
timezone?: string;
|
|
7447
|
+
};
|
|
7448
|
+
header?: {
|
|
7449
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7450
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7451
|
+
};
|
|
7452
|
+
path?: never;
|
|
7453
|
+
cookie?: never;
|
|
7454
|
+
};
|
|
7455
|
+
requestBody?: never;
|
|
7456
|
+
responses: {
|
|
7457
|
+
/** @description The activity. */
|
|
7458
|
+
200: {
|
|
7459
|
+
headers: {
|
|
7460
|
+
[name: string]: unknown;
|
|
7461
|
+
};
|
|
7462
|
+
content: {
|
|
7463
|
+
"application/json": components["schemas"]["Stats"];
|
|
7464
|
+
};
|
|
7465
|
+
};
|
|
7466
|
+
400: components["responses"]["Problem"];
|
|
7467
|
+
401: components["responses"]["Problem"];
|
|
7468
|
+
403: components["responses"]["Problem"];
|
|
7469
|
+
404: components["responses"]["Problem"];
|
|
7470
|
+
};
|
|
7471
|
+
};
|
|
6883
7472
|
bulkUpdateConversations: {
|
|
6884
7473
|
parameters: {
|
|
6885
7474
|
query?: never;
|
|
@@ -8473,6 +9062,37 @@ export interface operations {
|
|
|
8473
9062
|
404: components["responses"]["Problem"];
|
|
8474
9063
|
};
|
|
8475
9064
|
};
|
|
9065
|
+
rateClientConversation: {
|
|
9066
|
+
parameters: {
|
|
9067
|
+
query?: never;
|
|
9068
|
+
header?: never;
|
|
9069
|
+
path: {
|
|
9070
|
+
conversationId: components["parameters"]["ConversationId"];
|
|
9071
|
+
};
|
|
9072
|
+
cookie?: never;
|
|
9073
|
+
};
|
|
9074
|
+
requestBody: {
|
|
9075
|
+
content: {
|
|
9076
|
+
"application/json": components["schemas"]["ClientRatingCreate"];
|
|
9077
|
+
};
|
|
9078
|
+
};
|
|
9079
|
+
responses: {
|
|
9080
|
+
/** @description The conversation with its rating. */
|
|
9081
|
+
201: {
|
|
9082
|
+
headers: {
|
|
9083
|
+
[name: string]: unknown;
|
|
9084
|
+
};
|
|
9085
|
+
content: {
|
|
9086
|
+
"application/json": components["schemas"]["ClientConversation"];
|
|
9087
|
+
};
|
|
9088
|
+
};
|
|
9089
|
+
400: components["responses"]["Problem"];
|
|
9090
|
+
401: components["responses"]["Problem"];
|
|
9091
|
+
403: components["responses"]["Problem"];
|
|
9092
|
+
404: components["responses"]["Problem"];
|
|
9093
|
+
409: components["responses"]["Problem"];
|
|
9094
|
+
};
|
|
9095
|
+
};
|
|
8476
9096
|
setClientTyping: {
|
|
8477
9097
|
parameters: {
|
|
8478
9098
|
query?: never;
|
|
@@ -8940,6 +9560,39 @@ export interface operations {
|
|
|
8940
9560
|
};
|
|
8941
9561
|
};
|
|
8942
9562
|
};
|
|
9563
|
+
webhookConversationRated: {
|
|
9564
|
+
parameters: {
|
|
9565
|
+
query?: never;
|
|
9566
|
+
header: {
|
|
9567
|
+
/** @description The delivery's id, the same on every retry; use it to ignore duplicates. */
|
|
9568
|
+
"webhook-id": components["parameters"]["WebhookIdHeader"];
|
|
9569
|
+
/** @description Unix seconds of this attempt. Refuse values far from your clock. */
|
|
9570
|
+
"webhook-timestamp": components["parameters"]["WebhookTimestampHeader"];
|
|
9571
|
+
/**
|
|
9572
|
+
* @description Space-separated `v1,<base64>` signatures: HMAC-SHA256 over
|
|
9573
|
+
* `<webhook-id>.<webhook-timestamp>.<body>` with the base64-decoded part of the
|
|
9574
|
+
* `whsec_` secret (Standard Webhooks). Two during a secret rotation.
|
|
9575
|
+
*/
|
|
9576
|
+
"webhook-signature": components["parameters"]["WebhookSignatureHeader"];
|
|
9577
|
+
};
|
|
9578
|
+
path?: never;
|
|
9579
|
+
cookie?: never;
|
|
9580
|
+
};
|
|
9581
|
+
requestBody: {
|
|
9582
|
+
content: {
|
|
9583
|
+
"application/json": components["schemas"]["WebhookConversationPayload"];
|
|
9584
|
+
};
|
|
9585
|
+
};
|
|
9586
|
+
responses: {
|
|
9587
|
+
/** @description Any 2xx answer counts as delivered. */
|
|
9588
|
+
200: {
|
|
9589
|
+
headers: {
|
|
9590
|
+
[name: string]: unknown;
|
|
9591
|
+
};
|
|
9592
|
+
content?: never;
|
|
9593
|
+
};
|
|
9594
|
+
};
|
|
9595
|
+
};
|
|
8943
9596
|
webhookConversationUpdated: {
|
|
8944
9597
|
parameters: {
|
|
8945
9598
|
query?: never;
|