useyuva 0.0.4 → 0.0.6
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 +1145 -68
- 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
|
@@ -396,6 +396,35 @@ export interface paths {
|
|
|
396
396
|
patch?: never;
|
|
397
397
|
trace?: never;
|
|
398
398
|
};
|
|
399
|
+
"/v1/me/mentions": {
|
|
400
|
+
parameters: {
|
|
401
|
+
query?: never;
|
|
402
|
+
header?: never;
|
|
403
|
+
path?: never;
|
|
404
|
+
cookie?: never;
|
|
405
|
+
};
|
|
406
|
+
/**
|
|
407
|
+
* Notes that mention you
|
|
408
|
+
* @description Notes in the workspace whose `mentions` name the calling member, written by someone else,
|
|
409
|
+
* newest first, in conversations the member can see now. Each item has the note (a preview
|
|
410
|
+
* of its text and its author), the conversation, and `seen`: whether the member has read the
|
|
411
|
+
* conversation up to the note (`POST /v1/conversations/{id}/read`, or writing in it). The
|
|
412
|
+
* page carries `unseen`, the number of unseen mentions over all pages, for a badge. Member
|
|
413
|
+
* sessions only.
|
|
414
|
+
*
|
|
415
|
+
* Realtime: a new mention arrives as `message.created` with `kind: note` and the member in
|
|
416
|
+
* `mentions`; `conversation.read` changes `seen`; `conversation.moved` and
|
|
417
|
+
* `inbox_access.changed` can hide or show items.
|
|
418
|
+
*/
|
|
419
|
+
get: operations["listMentions"];
|
|
420
|
+
put?: never;
|
|
421
|
+
post?: never;
|
|
422
|
+
delete?: never;
|
|
423
|
+
options?: never;
|
|
424
|
+
head?: never;
|
|
425
|
+
patch?: never;
|
|
426
|
+
trace?: never;
|
|
427
|
+
};
|
|
399
428
|
"/v1/workspace": {
|
|
400
429
|
parameters: {
|
|
401
430
|
query?: never;
|
|
@@ -442,7 +471,9 @@ export interface paths {
|
|
|
442
471
|
};
|
|
443
472
|
/**
|
|
444
473
|
* List members
|
|
445
|
-
* @description
|
|
474
|
+
* @description Every member of the workspace with their `availability` and whether they are `online`.
|
|
475
|
+
*
|
|
476
|
+
* Scope: `inboxes:read`.
|
|
446
477
|
*/
|
|
447
478
|
get: operations["listMembers"];
|
|
448
479
|
put?: never;
|
|
@@ -812,7 +843,11 @@ export interface paths {
|
|
|
812
843
|
};
|
|
813
844
|
/**
|
|
814
845
|
* List contacts
|
|
815
|
-
* @description Newest first
|
|
846
|
+
* @description Newest first, or most recently active first with `sort=last_seen` (contacts never seen sort
|
|
847
|
+
* by when they were created). `q` searches names, e-mail addresses and external ids.
|
|
848
|
+
* With `sort=last_seen`, a contact who becomes active while you page moves above the pages
|
|
849
|
+
* already read and does not appear on the later ones; no contact appears twice.
|
|
850
|
+
* Each item carries `activity`, counted over the inboxes the caller can see.
|
|
816
851
|
*
|
|
817
852
|
* Scope: `contacts:read`.
|
|
818
853
|
*/
|
|
@@ -940,6 +975,80 @@ export interface paths {
|
|
|
940
975
|
patch?: never;
|
|
941
976
|
trace?: never;
|
|
942
977
|
};
|
|
978
|
+
"/v1/contacts/{contactId}/notes": {
|
|
979
|
+
parameters: {
|
|
980
|
+
query?: never;
|
|
981
|
+
header?: never;
|
|
982
|
+
path?: never;
|
|
983
|
+
cookie?: never;
|
|
984
|
+
};
|
|
985
|
+
/**
|
|
986
|
+
* List notes about a contact
|
|
987
|
+
* @description Team-only notes about the contact, not tied to a conversation, newest first. Whoever can
|
|
988
|
+
* see the contact can read and add them; contacts never see them, and no event or webhook
|
|
989
|
+
* carries them.
|
|
990
|
+
*
|
|
991
|
+
* Scope: `contacts:read`.
|
|
992
|
+
*/
|
|
993
|
+
get: operations["listContactNotes"];
|
|
994
|
+
put?: never;
|
|
995
|
+
/**
|
|
996
|
+
* Add a note about a contact
|
|
997
|
+
* @description Scope: `contacts:write`.
|
|
998
|
+
*/
|
|
999
|
+
post: operations["createContactNote"];
|
|
1000
|
+
delete?: never;
|
|
1001
|
+
options?: never;
|
|
1002
|
+
head?: never;
|
|
1003
|
+
patch?: never;
|
|
1004
|
+
trace?: never;
|
|
1005
|
+
};
|
|
1006
|
+
"/v1/contacts/{contactId}/notes/{noteId}": {
|
|
1007
|
+
parameters: {
|
|
1008
|
+
query?: never;
|
|
1009
|
+
header?: never;
|
|
1010
|
+
path?: never;
|
|
1011
|
+
cookie?: never;
|
|
1012
|
+
};
|
|
1013
|
+
get?: never;
|
|
1014
|
+
put?: never;
|
|
1015
|
+
post?: never;
|
|
1016
|
+
/**
|
|
1017
|
+
* Delete a note about a contact
|
|
1018
|
+
* @description Its author (a member, or the API key that wrote it) or an owner or admin; anyone else gets
|
|
1019
|
+
* `403 forbidden`.
|
|
1020
|
+
*
|
|
1021
|
+
* Scope: `contacts:write`.
|
|
1022
|
+
*/
|
|
1023
|
+
delete: operations["deleteContactNote"];
|
|
1024
|
+
options?: never;
|
|
1025
|
+
head?: never;
|
|
1026
|
+
patch?: never;
|
|
1027
|
+
trace?: never;
|
|
1028
|
+
};
|
|
1029
|
+
"/v1/contacts/{contactId}/summary": {
|
|
1030
|
+
parameters: {
|
|
1031
|
+
query?: never;
|
|
1032
|
+
header?: never;
|
|
1033
|
+
path?: never;
|
|
1034
|
+
cookie?: never;
|
|
1035
|
+
};
|
|
1036
|
+
/**
|
|
1037
|
+
* How the team served a contact
|
|
1038
|
+
* @description First-reply time and ratings over the contact's conversations the caller can see. The
|
|
1039
|
+
* counts of conversations are on the contact's `activity`.
|
|
1040
|
+
*
|
|
1041
|
+
* Scope: `contacts:read` and `conversations:read`.
|
|
1042
|
+
*/
|
|
1043
|
+
get: operations["getContactSummary"];
|
|
1044
|
+
put?: never;
|
|
1045
|
+
post?: never;
|
|
1046
|
+
delete?: never;
|
|
1047
|
+
options?: never;
|
|
1048
|
+
head?: never;
|
|
1049
|
+
patch?: never;
|
|
1050
|
+
trace?: never;
|
|
1051
|
+
};
|
|
943
1052
|
"/v1/contacts/{contactId}/presence": {
|
|
944
1053
|
parameters: {
|
|
945
1054
|
query?: never;
|
|
@@ -952,7 +1061,7 @@ export interface paths {
|
|
|
952
1061
|
* @description Whether the contact has a live `/client/v1/realtime` connection (widget or app in the
|
|
953
1062
|
* foreground), and when one was last seen. A host backend that sends its own push
|
|
954
1063
|
* notifications can skip the push while the contact is online; webhooks carry the same
|
|
955
|
-
* `contact.online
|
|
1064
|
+
* `contact.online`, and `contact.presence` events on `/v1/realtime` report changes.
|
|
956
1065
|
*
|
|
957
1066
|
* Scope: `contacts:read`.
|
|
958
1067
|
*/
|
|
@@ -981,7 +1090,8 @@ export interface paths {
|
|
|
981
1090
|
* Scope: `conversations:read`.
|
|
982
1091
|
*
|
|
983
1092
|
* Each item carries the contact (id, name, first e-mail address), a preview of the last
|
|
984
|
-
* `message` (notes and events are not previewed) and `unread` for the
|
|
1093
|
+
* `message` (notes and events are not previewed), and `unread` and `pinned_at` for the
|
|
1094
|
+
* calling member.
|
|
985
1095
|
*/
|
|
986
1096
|
get: operations["listConversations"];
|
|
987
1097
|
put?: never;
|
|
@@ -1006,8 +1116,8 @@ export interface paths {
|
|
|
1006
1116
|
/**
|
|
1007
1117
|
* Count open conversations
|
|
1008
1118
|
* @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
|
|
1119
|
+
* calling member (`0` for API keys), unassigned ones, and per inbox, per assignee and per
|
|
1120
|
+
* label. Inboxes, assignees and labels without open conversations are left out of their lists. Conversations flagged as
|
|
1011
1121
|
* spam are counted only in `spam`.
|
|
1012
1122
|
*
|
|
1013
1123
|
* Scope: `conversations:read`.
|
|
@@ -1021,6 +1131,36 @@ export interface paths {
|
|
|
1021
1131
|
patch?: never;
|
|
1022
1132
|
trace?: never;
|
|
1023
1133
|
};
|
|
1134
|
+
"/v1/stats": {
|
|
1135
|
+
parameters: {
|
|
1136
|
+
query?: never;
|
|
1137
|
+
header?: never;
|
|
1138
|
+
path?: never;
|
|
1139
|
+
cookie?: never;
|
|
1140
|
+
};
|
|
1141
|
+
/**
|
|
1142
|
+
* Team activity since a moment
|
|
1143
|
+
* @description What the team did in the inboxes the caller can see (or in one of them) from `since` until
|
|
1144
|
+
* now: replies sent by members (messages members wrote or drafts they sent; not notes, not
|
|
1145
|
+
* bots' own messages), conversations closed, the median time from a contact's first
|
|
1146
|
+
* message to the first member reply, over the conversations whose first reply falls in the
|
|
1147
|
+
* window, and the ratings contacts gave in it. `members` breaks replies and closes down per member, leaving out members with
|
|
1148
|
+
* neither. Nothing is stored for it; it is counted from the messages each time.
|
|
1149
|
+
*
|
|
1150
|
+
* `since` defaults to the start of today in `timezone` (an IANA name, `UTC` by default); the
|
|
1151
|
+
* panel sends the browser's zone. It must be in the past and at most 366 days ago.
|
|
1152
|
+
*
|
|
1153
|
+
* Scope: `conversations:read`.
|
|
1154
|
+
*/
|
|
1155
|
+
get: operations["getStats"];
|
|
1156
|
+
put?: never;
|
|
1157
|
+
post?: never;
|
|
1158
|
+
delete?: never;
|
|
1159
|
+
options?: never;
|
|
1160
|
+
head?: never;
|
|
1161
|
+
patch?: never;
|
|
1162
|
+
trace?: never;
|
|
1163
|
+
};
|
|
1024
1164
|
"/v1/conversations/bulk": {
|
|
1025
1165
|
parameters: {
|
|
1026
1166
|
query?: never;
|
|
@@ -1190,6 +1330,57 @@ export interface paths {
|
|
|
1190
1330
|
patch?: never;
|
|
1191
1331
|
trace?: never;
|
|
1192
1332
|
};
|
|
1333
|
+
"/v1/conversations/{conversationId}/unread": {
|
|
1334
|
+
parameters: {
|
|
1335
|
+
query?: never;
|
|
1336
|
+
header?: never;
|
|
1337
|
+
path?: never;
|
|
1338
|
+
cookie?: never;
|
|
1339
|
+
};
|
|
1340
|
+
get?: never;
|
|
1341
|
+
put?: never;
|
|
1342
|
+
/**
|
|
1343
|
+
* Mark a conversation unread
|
|
1344
|
+
* @description Marks the conversation unread for the calling member, wherever their read cursor is: it is
|
|
1345
|
+
* `unread` in their lists until they read it again (`POST .../read`, or a message or note
|
|
1346
|
+
* of their own). Others are not affected. A `conversation.read` event with `unread: true`
|
|
1347
|
+
* reaches the member's connections. Member sessions only.
|
|
1348
|
+
*/
|
|
1349
|
+
post: operations["markConversationUnread"];
|
|
1350
|
+
delete?: never;
|
|
1351
|
+
options?: never;
|
|
1352
|
+
head?: never;
|
|
1353
|
+
patch?: never;
|
|
1354
|
+
trace?: never;
|
|
1355
|
+
};
|
|
1356
|
+
"/v1/conversations/{conversationId}/pin": {
|
|
1357
|
+
parameters: {
|
|
1358
|
+
query?: never;
|
|
1359
|
+
header?: never;
|
|
1360
|
+
path?: never;
|
|
1361
|
+
cookie?: never;
|
|
1362
|
+
};
|
|
1363
|
+
get?: never;
|
|
1364
|
+
/**
|
|
1365
|
+
* Pin a conversation
|
|
1366
|
+
* @description Pins the conversation to the top of the calling member's lists; nobody else sees it.
|
|
1367
|
+
* Pinning a pinned conversation keeps its `pinned_at`. A `conversation.pin` event reaches the
|
|
1368
|
+
* member's connections. Member sessions only.
|
|
1369
|
+
*/
|
|
1370
|
+
put: operations["pinConversation"];
|
|
1371
|
+
post?: never;
|
|
1372
|
+
/**
|
|
1373
|
+
* Unpin a conversation
|
|
1374
|
+
* @description Takes the calling member's pin away; unpinning a conversation that is not pinned changes
|
|
1375
|
+
* nothing. A `conversation.pin` event reaches the member's connections when a pin was
|
|
1376
|
+
* removed. Member sessions only.
|
|
1377
|
+
*/
|
|
1378
|
+
delete: operations["unpinConversation"];
|
|
1379
|
+
options?: never;
|
|
1380
|
+
head?: never;
|
|
1381
|
+
patch?: never;
|
|
1382
|
+
trace?: never;
|
|
1383
|
+
};
|
|
1193
1384
|
"/v1/conversations/{conversationId}/typing": {
|
|
1194
1385
|
parameters: {
|
|
1195
1386
|
query?: never;
|
|
@@ -1215,6 +1406,37 @@ export interface paths {
|
|
|
1215
1406
|
patch?: never;
|
|
1216
1407
|
trace?: never;
|
|
1217
1408
|
};
|
|
1409
|
+
"/v1/drafts": {
|
|
1410
|
+
parameters: {
|
|
1411
|
+
query?: never;
|
|
1412
|
+
header?: never;
|
|
1413
|
+
path?: never;
|
|
1414
|
+
cookie?: never;
|
|
1415
|
+
};
|
|
1416
|
+
/**
|
|
1417
|
+
* List pending drafts
|
|
1418
|
+
* @description Drafts waiting to be sent, edited or discarded in the conversations the caller can see,
|
|
1419
|
+
* newest first, each with its conversation. `author` narrows them to drafts by bots (API
|
|
1420
|
+
* keys), by assistants (members through an OAuth client, `author.via` set) or by members in
|
|
1421
|
+
* the panel. The page carries `total`, the number of drafts matching the filters over all
|
|
1422
|
+
* pages, for a badge.
|
|
1423
|
+
*
|
|
1424
|
+
* Scope: `conversations:read`.
|
|
1425
|
+
*
|
|
1426
|
+
* Realtime: `draft.created`, `draft.updated` and `draft.deleted` carry the draft; a sent
|
|
1427
|
+
* draft arrives as `message.created` with the draft's id and `draft: false`;
|
|
1428
|
+
* `conversation.updated`, `conversation.moved` and `inbox_access.changed` can change the
|
|
1429
|
+
* conversation summary or hide items.
|
|
1430
|
+
*/
|
|
1431
|
+
get: operations["listDrafts"];
|
|
1432
|
+
put?: never;
|
|
1433
|
+
post?: never;
|
|
1434
|
+
delete?: never;
|
|
1435
|
+
options?: never;
|
|
1436
|
+
head?: never;
|
|
1437
|
+
patch?: never;
|
|
1438
|
+
trace?: never;
|
|
1439
|
+
};
|
|
1218
1440
|
"/v1/attachments/{attachmentId}": {
|
|
1219
1441
|
parameters: {
|
|
1220
1442
|
query?: never;
|
|
@@ -1305,8 +1527,8 @@ export interface paths {
|
|
|
1305
1527
|
/**
|
|
1306
1528
|
* Get a message's e-mail details
|
|
1307
1529
|
* @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`.
|
|
1530
|
+
* sanitized HTML, the original HTML with the sender's styling, and the headers that matter.
|
|
1531
|
+
* Only messages that came or went by e-mail have them; others answer `404`.
|
|
1310
1532
|
*
|
|
1311
1533
|
* Scope: `conversations:read`.
|
|
1312
1534
|
*/
|
|
@@ -1886,9 +2108,15 @@ export interface paths {
|
|
|
1886
2108
|
* arrives and every 30 seconds. An API key or token needs `conversations:read`, and contact
|
|
1887
2109
|
* events reach it only with `contacts:read`. `inbox.created` reaches owners,
|
|
1888
2110
|
* admins and API keys (an agent learns of a new inbox from `inbox_access.changed`);
|
|
1889
|
-
* `inbox.deleted` reaches everyone who could see the inbox. `conversation.read`
|
|
1890
|
-
* 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.
|
|
2111
|
+
* `inbox.deleted` reaches everyone who could see the inbox. `conversation.read` and
|
|
2112
|
+
* `conversation.pin` reach only the connections of the member who read or pinned. `typing` (a contact or another member typing) has no
|
|
2113
|
+
* `id`, is not stored and is not replayed. `member.presence` (a member of the workspace opened
|
|
2114
|
+
* or closed the panel or changed `availability`) reaches member sessions only, also has no
|
|
2115
|
+
* `id` and is not replayed; so does `viewing` (another member opened or left a conversation),
|
|
2116
|
+
* which follows inbox access like conversation events. `contact.presence` (a contact
|
|
2117
|
+
* connected to or disconnected from `/client/v1/realtime`) follows contact events, also has no
|
|
2118
|
+
* `id` and is not replayed. `contact.read` (the contact read the conversation up to a
|
|
2119
|
+
* message) follows conversation events.
|
|
1892
2120
|
*
|
|
1893
2121
|
* A member session's open connection also makes the member available to contacts of `live`
|
|
1894
2122
|
* inboxes they can access (see `availability` on `/v1/me`).
|
|
@@ -1905,8 +2133,10 @@ export interface paths {
|
|
|
1905
2133
|
* a text frame `{"type": "viewing", "conversation_id": "<id>"}`, and
|
|
1906
2134
|
* `{"type": "viewing", "conversation_id": null}` when it shows none or the page is hidden;
|
|
1907
2135
|
* 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
|
-
*
|
|
2136
|
+
* conversation, the member gets no push or e-mail notification about it. Other members who
|
|
2137
|
+
* can see the conversation get a `viewing` event when the member opens or leaves it, and
|
|
2138
|
+
* the reporting connection gets a `viewing` event for each other member already there.
|
|
2139
|
+
* Other client frames are ignored. Close codes: 1008 (`unauthenticated`, `forbidden`) when the session
|
|
1910
2140
|
* or membership ends, 1013 (`slow_consumer`) when the client does not read fast enough, 1012
|
|
1911
2141
|
* (`restart`) when the server restarts or loses its event feed. Reconnect with
|
|
1912
2142
|
* `last_event_id` after any of them except 1008. While the server is reconnecting its own event
|
|
@@ -2096,6 +2326,8 @@ export interface paths {
|
|
|
2096
2326
|
* Mark a conversation read
|
|
2097
2327
|
* @description Moves the contact's read cursor to `message_id`, or to the latest message when it is
|
|
2098
2328
|
* absent; it only moves forward. Replies the contact has read are not e-mailed to them.
|
|
2329
|
+
* When it moves, members see it as the conversation's `last_read_by_contact_at` and a
|
|
2330
|
+
* `contact.read` event on `/v1/realtime`.
|
|
2099
2331
|
*/
|
|
2100
2332
|
post: operations["markClientConversationRead"];
|
|
2101
2333
|
delete?: never;
|
|
@@ -2104,6 +2336,31 @@ export interface paths {
|
|
|
2104
2336
|
patch?: never;
|
|
2105
2337
|
trace?: never;
|
|
2106
2338
|
};
|
|
2339
|
+
"/client/v1/conversations/{conversationId}/rating": {
|
|
2340
|
+
parameters: {
|
|
2341
|
+
query?: never;
|
|
2342
|
+
header?: never;
|
|
2343
|
+
path?: never;
|
|
2344
|
+
cookie?: never;
|
|
2345
|
+
};
|
|
2346
|
+
get?: never;
|
|
2347
|
+
put?: never;
|
|
2348
|
+
/**
|
|
2349
|
+
* Rate a closed conversation
|
|
2350
|
+
* @description Records the contact's rating (`good` or `bad`) and optional comment for a conversation
|
|
2351
|
+
* whose `can_rate` is true. It is stored once per close: members see it in the thread as a
|
|
2352
|
+
* `rated` event and on the conversation, and it sends the `conversation.rated` webhook.
|
|
2353
|
+
* Answers `409 rating_unavailable` when `can_rate` is false (the inbox does not ask for
|
|
2354
|
+
* ratings, the conversation is open, the close is older than 30 days) and
|
|
2355
|
+
* `409 already_rated` when the contact already rated this close.
|
|
2356
|
+
*/
|
|
2357
|
+
post: operations["rateClientConversation"];
|
|
2358
|
+
delete?: never;
|
|
2359
|
+
options?: never;
|
|
2360
|
+
head?: never;
|
|
2361
|
+
patch?: never;
|
|
2362
|
+
trace?: never;
|
|
2363
|
+
};
|
|
2107
2364
|
"/client/v1/conversations/{conversationId}/typing": {
|
|
2108
2365
|
parameters: {
|
|
2109
2366
|
query?: never;
|
|
@@ -2494,6 +2751,27 @@ export interface webhooks {
|
|
|
2494
2751
|
patch?: never;
|
|
2495
2752
|
trace?: never;
|
|
2496
2753
|
};
|
|
2754
|
+
"conversation.rated": {
|
|
2755
|
+
parameters: {
|
|
2756
|
+
query?: never;
|
|
2757
|
+
header?: never;
|
|
2758
|
+
path?: never;
|
|
2759
|
+
cookie?: never;
|
|
2760
|
+
};
|
|
2761
|
+
get?: never;
|
|
2762
|
+
put?: never;
|
|
2763
|
+
/**
|
|
2764
|
+
* A contact rated a conversation
|
|
2765
|
+
* @description The contact rated a closed conversation; `conversation.rating` holds the rating and
|
|
2766
|
+
* comment. Sent once per rating, with `conversation.updated` for the same change.
|
|
2767
|
+
*/
|
|
2768
|
+
post: operations["webhookConversationRated"];
|
|
2769
|
+
delete?: never;
|
|
2770
|
+
options?: never;
|
|
2771
|
+
head?: never;
|
|
2772
|
+
patch?: never;
|
|
2773
|
+
trace?: never;
|
|
2774
|
+
};
|
|
2497
2775
|
"conversation.updated": {
|
|
2498
2776
|
parameters: {
|
|
2499
2777
|
query?: never;
|
|
@@ -2756,8 +3034,90 @@ export interface components {
|
|
|
2756
3034
|
email: components["schemas"]["Email"];
|
|
2757
3035
|
name: string;
|
|
2758
3036
|
role: components["schemas"]["Role"];
|
|
3037
|
+
availability: components["schemas"]["Availability"];
|
|
3038
|
+
/**
|
|
3039
|
+
* @description The member has a `/v1/realtime` connection seen in the last 75 seconds (any panel tab
|
|
3040
|
+
* or device). `member.presence` events on `/v1/realtime` report changes.
|
|
3041
|
+
*/
|
|
3042
|
+
online: boolean;
|
|
3043
|
+
/** Format: date-time */
|
|
3044
|
+
created_at: string;
|
|
3045
|
+
};
|
|
3046
|
+
MemberPresence: {
|
|
3047
|
+
/** Format: uuid */
|
|
3048
|
+
member_id: string;
|
|
3049
|
+
availability: components["schemas"]["Availability"];
|
|
3050
|
+
online: boolean;
|
|
3051
|
+
};
|
|
3052
|
+
Viewing: {
|
|
3053
|
+
/** Format: uuid */
|
|
3054
|
+
member_id: string;
|
|
3055
|
+
/** Format: uuid */
|
|
3056
|
+
conversation_id: string;
|
|
3057
|
+
/** @description `false` when the member no longer has the conversation open anywhere. */
|
|
3058
|
+
viewing: boolean;
|
|
3059
|
+
};
|
|
3060
|
+
/**
|
|
3061
|
+
* @description Another member opened (`viewing: true`) or left a conversation, as their panel reported
|
|
3062
|
+
* with a `viewing` frame; leaving includes hiding the page and disconnecting. Right after a
|
|
3063
|
+
* connection reports a conversation, it also gets one `viewing: true` event for every other
|
|
3064
|
+
* member who already has it open. Not stored: it has no `id` and is not replayed. Sent to
|
|
3065
|
+
* member sessions that can see the conversation's inbox; members do not get their own.
|
|
3066
|
+
*/
|
|
3067
|
+
ViewingEvent: {
|
|
3068
|
+
/**
|
|
3069
|
+
* @description discriminator enum property added by openapi-typescript
|
|
3070
|
+
* @enum {string}
|
|
3071
|
+
*/
|
|
3072
|
+
type: "viewing";
|
|
3073
|
+
/** Format: uuid */
|
|
3074
|
+
workspace_id: string;
|
|
3075
|
+
/** Format: uuid */
|
|
3076
|
+
inbox_id: string;
|
|
3077
|
+
/** Format: uuid */
|
|
3078
|
+
conversation_id: string;
|
|
3079
|
+
/** Format: date-time */
|
|
3080
|
+
created_at: string;
|
|
3081
|
+
data: components["schemas"]["Viewing"];
|
|
3082
|
+
};
|
|
3083
|
+
/**
|
|
3084
|
+
* @description A member's `availability` or `online` changed (they opened or closed the panel, or set
|
|
3085
|
+
* themselves away). Carries the member's current state, so it may repeat the previous one.
|
|
3086
|
+
* Not stored: it has no `id` and is not replayed; reload `/v1/members` after a reconnect.
|
|
3087
|
+
* A server process that stops without closing its connections sends none: such members
|
|
3088
|
+
* turn offline in `/v1/members` 75 seconds later. Sent to member sessions only, the member's
|
|
3089
|
+
* own included.
|
|
3090
|
+
*/
|
|
3091
|
+
MemberPresenceEvent: {
|
|
3092
|
+
/**
|
|
3093
|
+
* @description discriminator enum property added by openapi-typescript
|
|
3094
|
+
* @enum {string}
|
|
3095
|
+
*/
|
|
3096
|
+
type: "member.presence";
|
|
3097
|
+
/** Format: uuid */
|
|
3098
|
+
workspace_id: string;
|
|
3099
|
+
/** Format: date-time */
|
|
3100
|
+
created_at: string;
|
|
3101
|
+
data: components["schemas"]["MemberPresence"];
|
|
3102
|
+
};
|
|
3103
|
+
/**
|
|
3104
|
+
* @description One of a contact's `/client/v1/realtime` connections opened or closed. Carries the
|
|
3105
|
+
* contact's current presence, so it may repeat the previous one.
|
|
3106
|
+
* Not stored: it has no `id` and is not replayed; read `/v1/contacts/{contactId}/presence`
|
|
3107
|
+
* after a reconnect. A connection that ends without closing (a server process that died) is
|
|
3108
|
+
* announced within about two minutes.
|
|
3109
|
+
*/
|
|
3110
|
+
ContactPresenceEvent: {
|
|
3111
|
+
/**
|
|
3112
|
+
* @description discriminator enum property added by openapi-typescript
|
|
3113
|
+
* @enum {string}
|
|
3114
|
+
*/
|
|
3115
|
+
type: "contact.presence";
|
|
3116
|
+
/** Format: uuid */
|
|
3117
|
+
workspace_id: string;
|
|
2759
3118
|
/** Format: date-time */
|
|
2760
3119
|
created_at: string;
|
|
3120
|
+
data: components["schemas"]["ContactPresence"];
|
|
2761
3121
|
};
|
|
2762
3122
|
MemberList: {
|
|
2763
3123
|
items: components["schemas"]["Member"][];
|
|
@@ -2944,6 +3304,7 @@ export interface components {
|
|
|
2944
3304
|
message_in_my_conversation: components["schemas"]["NotificationChannels"];
|
|
2945
3305
|
message_in_unassigned_conversation: components["schemas"]["NotificationChannels"];
|
|
2946
3306
|
assigned_to_me: components["schemas"]["NotificationChannels"];
|
|
3307
|
+
mentioned: components["schemas"]["NotificationChannels"];
|
|
2947
3308
|
};
|
|
2948
3309
|
/** @description Some events and their channels. */
|
|
2949
3310
|
NotificationEventsUpdate: {
|
|
@@ -2952,6 +3313,7 @@ export interface components {
|
|
|
2952
3313
|
message_in_my_conversation?: components["schemas"]["NotificationChannels"];
|
|
2953
3314
|
message_in_unassigned_conversation?: components["schemas"]["NotificationChannels"];
|
|
2954
3315
|
assigned_to_me?: components["schemas"]["NotificationChannels"];
|
|
3316
|
+
mentioned?: components["schemas"]["NotificationChannels"];
|
|
2955
3317
|
};
|
|
2956
3318
|
NotificationSettings: {
|
|
2957
3319
|
events: components["schemas"]["NotificationEvents"];
|
|
@@ -2986,7 +3348,7 @@ export interface components {
|
|
|
2986
3348
|
* @description What caused it (see the `notifications` tag), or `test`.
|
|
2987
3349
|
* @enum {string}
|
|
2988
3350
|
*/
|
|
2989
|
-
event: "new_live_conversation" | "new_async_conversation" | "message_in_my_conversation" | "message_in_unassigned_conversation" | "assigned_to_me" | "test";
|
|
3351
|
+
event: "new_live_conversation" | "new_async_conversation" | "message_in_my_conversation" | "message_in_unassigned_conversation" | "assigned_to_me" | "mentioned" | "test";
|
|
2990
3352
|
/**
|
|
2991
3353
|
* @description The inbox name and the contact's name.
|
|
2992
3354
|
* @example Support · Ayşe Yılmaz
|
|
@@ -3096,6 +3458,13 @@ export interface components {
|
|
|
3096
3458
|
*/
|
|
3097
3459
|
expected_reply_minutes?: number;
|
|
3098
3460
|
business_hours: components["schemas"]["BusinessHours"];
|
|
3461
|
+
/**
|
|
3462
|
+
* @description Contacts may rate a closed conversation (`good` or `bad`, with an optional comment):
|
|
3463
|
+
* the widget and the mobile SDKs offer it, and e-mail contacts get a request with two
|
|
3464
|
+
* links after a member's conversation is closed. Off by default. Only conversations
|
|
3465
|
+
* closed after it was turned on can be rated; turning it off and on again starts over.
|
|
3466
|
+
*/
|
|
3467
|
+
ask_for_rating: boolean;
|
|
3099
3468
|
/** Format: date-time */
|
|
3100
3469
|
created_at: string;
|
|
3101
3470
|
/** Format: date-time */
|
|
@@ -3112,6 +3481,8 @@ export interface components {
|
|
|
3112
3481
|
/** Format: int32 */
|
|
3113
3482
|
expected_reply_minutes?: number;
|
|
3114
3483
|
business_hours?: components["schemas"]["BusinessHours"];
|
|
3484
|
+
/** @default false */
|
|
3485
|
+
ask_for_rating: boolean;
|
|
3115
3486
|
};
|
|
3116
3487
|
InboxUpdate: {
|
|
3117
3488
|
name?: string;
|
|
@@ -3126,6 +3497,7 @@ export interface components {
|
|
|
3126
3497
|
*/
|
|
3127
3498
|
expected_reply_minutes?: number | null;
|
|
3128
3499
|
business_hours?: components["schemas"]["BusinessHours"];
|
|
3500
|
+
ask_for_rating?: boolean;
|
|
3129
3501
|
};
|
|
3130
3502
|
InboxCreated: {
|
|
3131
3503
|
inbox: components["schemas"]["Inbox"];
|
|
@@ -3293,32 +3665,96 @@ export interface components {
|
|
|
3293
3665
|
locale?: components["schemas"]["LanguageTag"];
|
|
3294
3666
|
/** @description The contact's addresses that must not be mailed. */
|
|
3295
3667
|
undeliverable: components["schemas"]["UndeliverableEmail"][];
|
|
3668
|
+
activity?: components["schemas"]["ContactActivity"];
|
|
3296
3669
|
/** Format: date-time */
|
|
3297
3670
|
created_at: string;
|
|
3298
3671
|
/** Format: date-time */
|
|
3299
3672
|
updated_at: string;
|
|
3300
3673
|
};
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3674
|
+
/**
|
|
3675
|
+
* @description Only on `GET /v1/contacts` and `GET /v1/contacts/{contactId}`. The counts cover the
|
|
3676
|
+
* conversations the caller can see, spam left out; `last_seen_at` does not depend on the caller.
|
|
3677
|
+
*/
|
|
3678
|
+
ContactActivity: {
|
|
3306
3679
|
/**
|
|
3307
3680
|
* Format: date-time
|
|
3308
|
-
* @description The contact's last
|
|
3681
|
+
* @description The contact's last activity: a message (any channel), a rating, or use of a widget or
|
|
3682
|
+
* app session. Absent when never active.
|
|
3309
3683
|
*/
|
|
3310
3684
|
last_seen_at?: string;
|
|
3685
|
+
/** Format: int64 */
|
|
3686
|
+
conversations: number;
|
|
3687
|
+
/** Format: int64 */
|
|
3688
|
+
open_conversations: number;
|
|
3689
|
+
/**
|
|
3690
|
+
* Format: date-time
|
|
3691
|
+
* @description The last message in any of those conversations, else when the newest one started.
|
|
3692
|
+
*/
|
|
3693
|
+
last_conversation_at?: string;
|
|
3311
3694
|
};
|
|
3312
|
-
|
|
3313
|
-
/** @description The host app's id for this user, per inbox. */
|
|
3314
|
-
external_id: string;
|
|
3315
|
-
email?: components["schemas"]["Email"];
|
|
3316
|
-
name?: string;
|
|
3317
|
-
};
|
|
3318
|
-
FeedbackCreate: components["schemas"]["FeedbackFields"] & {
|
|
3695
|
+
ContactNote: {
|
|
3319
3696
|
/** Format: uuid */
|
|
3320
|
-
|
|
3321
|
-
|
|
3697
|
+
id: string;
|
|
3698
|
+
/** Format: uuid */
|
|
3699
|
+
contact_id: string;
|
|
3700
|
+
/** @description A `member` or a `bot` (API key); `member_id` is absent once the member was removed. */
|
|
3701
|
+
author: components["schemas"]["MessageAuthor"];
|
|
3702
|
+
/** @description Plain text. */
|
|
3703
|
+
body: string;
|
|
3704
|
+
/** Format: date-time */
|
|
3705
|
+
created_at: string;
|
|
3706
|
+
};
|
|
3707
|
+
ContactNoteCreate: {
|
|
3708
|
+
body: string;
|
|
3709
|
+
};
|
|
3710
|
+
ContactNotePage: {
|
|
3711
|
+
items: components["schemas"]["ContactNote"][];
|
|
3712
|
+
next_cursor?: string;
|
|
3713
|
+
};
|
|
3714
|
+
/**
|
|
3715
|
+
* @description How the team has served the contact, over all their conversations the caller can see (spam
|
|
3716
|
+
* left out).
|
|
3717
|
+
*/
|
|
3718
|
+
ContactSummary: {
|
|
3719
|
+
/**
|
|
3720
|
+
* Format: int64
|
|
3721
|
+
* @description Conversations where a member answered the contact's first message.
|
|
3722
|
+
*/
|
|
3723
|
+
first_replies: number;
|
|
3724
|
+
/**
|
|
3725
|
+
* Format: int64
|
|
3726
|
+
* @description Median seconds from the contact's first message to the first member reply; absent when `first_replies` is 0.
|
|
3727
|
+
*/
|
|
3728
|
+
median_first_reply_seconds?: number;
|
|
3729
|
+
/** @description The latest rating of each conversation. */
|
|
3730
|
+
ratings: {
|
|
3731
|
+
/** Format: int64 */
|
|
3732
|
+
good: number;
|
|
3733
|
+
/** Format: int64 */
|
|
3734
|
+
bad: number;
|
|
3735
|
+
};
|
|
3736
|
+
};
|
|
3737
|
+
ContactPresence: {
|
|
3738
|
+
/** Format: uuid */
|
|
3739
|
+
contact_id: string;
|
|
3740
|
+
/** @description A `/client/v1/realtime` connection of the contact was seen in the last 75 seconds. */
|
|
3741
|
+
online: boolean;
|
|
3742
|
+
/**
|
|
3743
|
+
* Format: date-time
|
|
3744
|
+
* @description The contact's last client activity (a connection or a session use); absent when never seen.
|
|
3745
|
+
*/
|
|
3746
|
+
last_seen_at?: string;
|
|
3747
|
+
};
|
|
3748
|
+
FeedbackContact: {
|
|
3749
|
+
/** @description The host app's id for this user, per inbox. */
|
|
3750
|
+
external_id: string;
|
|
3751
|
+
email?: components["schemas"]["Email"];
|
|
3752
|
+
name?: string;
|
|
3753
|
+
};
|
|
3754
|
+
FeedbackCreate: components["schemas"]["FeedbackFields"] & {
|
|
3755
|
+
/** Format: uuid */
|
|
3756
|
+
inbox_id: string;
|
|
3757
|
+
contact: components["schemas"]["FeedbackContact"];
|
|
3322
3758
|
category: components["schemas"]["FeedbackCategory"];
|
|
3323
3759
|
subject?: string;
|
|
3324
3760
|
body: string;
|
|
@@ -3337,7 +3773,7 @@ export interface components {
|
|
|
3337
3773
|
count: number;
|
|
3338
3774
|
};
|
|
3339
3775
|
/** @enum {string} */
|
|
3340
|
-
WebhookEventType: "conversation.created" | "conversation.updated" | "message.created" | "feedback.created" | "contact.updated" | "contact.deleted" | "draft.created" | "draft.updated" | "draft.deleted";
|
|
3776
|
+
WebhookEventType: "conversation.created" | "conversation.updated" | "conversation.rated" | "message.created" | "feedback.created" | "contact.updated" | "contact.deleted" | "draft.created" | "draft.updated" | "draft.deleted";
|
|
3341
3777
|
WebhookEndpoint: {
|
|
3342
3778
|
/** Format: uuid */
|
|
3343
3779
|
id: string;
|
|
@@ -3622,11 +4058,38 @@ export interface components {
|
|
|
3622
4058
|
* @description The last message or note, or the creation time.
|
|
3623
4059
|
*/
|
|
3624
4060
|
last_activity_at: string;
|
|
4061
|
+
/**
|
|
4062
|
+
* Format: date-time
|
|
4063
|
+
* @description When it was last closed; absent when it never was.
|
|
4064
|
+
*/
|
|
4065
|
+
closed_at?: string;
|
|
4066
|
+
rating?: components["schemas"]["ConversationRating"];
|
|
4067
|
+
/**
|
|
4068
|
+
* Format: date-time
|
|
4069
|
+
* @description The contact has read every message created at or before this time, in the widget or
|
|
4070
|
+
* an app (`POST /client/v1/conversations/{id}/read`). Absent until the contact has read
|
|
4071
|
+
* anything, and in conversations the contact only reaches by e-mail. A `contact.read`
|
|
4072
|
+
* event tells when it moves.
|
|
4073
|
+
*/
|
|
4074
|
+
last_read_by_contact_at?: string;
|
|
3625
4075
|
/** Format: date-time */
|
|
3626
4076
|
created_at: string;
|
|
3627
4077
|
/** Format: date-time */
|
|
3628
4078
|
updated_at: string;
|
|
3629
4079
|
};
|
|
4080
|
+
/**
|
|
4081
|
+
* @description The contact's latest rating. A conversation can be rated once each time it is closed, so
|
|
4082
|
+
* this may belong to an earlier close (compare `rated_at` with `closed_at`). The thread also
|
|
4083
|
+
* has it as a `rated` event message whose body is the comment.
|
|
4084
|
+
*/
|
|
4085
|
+
ConversationRating: {
|
|
4086
|
+
rating: components["schemas"]["Rating"];
|
|
4087
|
+
comment?: string;
|
|
4088
|
+
/** Format: date-time */
|
|
4089
|
+
rated_at: string;
|
|
4090
|
+
};
|
|
4091
|
+
/** @enum {string} */
|
|
4092
|
+
Rating: "good" | "bad";
|
|
3630
4093
|
ConversationCreate: {
|
|
3631
4094
|
/** Format: uuid */
|
|
3632
4095
|
inbox_id: string;
|
|
@@ -3723,21 +4186,137 @@ export interface components {
|
|
|
3723
4186
|
last_message?: components["schemas"]["MessagePreview"];
|
|
3724
4187
|
/**
|
|
3725
4188
|
* @description A message or note from someone other than the calling member is newer than the
|
|
3726
|
-
* member's read cursor. Always `false` for API keys.
|
|
4189
|
+
* member's read cursor, or the member marked it unread. Always `false` for API keys.
|
|
3727
4190
|
*/
|
|
3728
4191
|
unread: boolean;
|
|
4192
|
+
/**
|
|
4193
|
+
* Format: date-time
|
|
4194
|
+
* @description When the calling member pinned it; absent when they did not, and for API keys.
|
|
4195
|
+
*/
|
|
4196
|
+
pinned_at?: string;
|
|
3729
4197
|
};
|
|
3730
4198
|
ConversationPage: {
|
|
3731
4199
|
items: components["schemas"]["ConversationListItem"][];
|
|
3732
4200
|
/** @description Absent on the last page. */
|
|
3733
4201
|
next_cursor?: string;
|
|
3734
4202
|
};
|
|
4203
|
+
/** @description Enough of a conversation to show where an item belongs. */
|
|
4204
|
+
ConversationSummary: {
|
|
4205
|
+
/** Format: uuid */
|
|
4206
|
+
id: string;
|
|
4207
|
+
/** Format: uuid */
|
|
4208
|
+
inbox_id: string;
|
|
4209
|
+
subject: string;
|
|
4210
|
+
status: components["schemas"]["ConversationStatus"];
|
|
4211
|
+
contact: components["schemas"]["ConversationContact"];
|
|
4212
|
+
};
|
|
4213
|
+
MentionNote: {
|
|
4214
|
+
/** Format: uuid */
|
|
4215
|
+
id: string;
|
|
4216
|
+
/** @description The plain-text body on one line, cut to 140 characters with `…` when longer. */
|
|
4217
|
+
text: string;
|
|
4218
|
+
author: components["schemas"]["MessageAuthor"];
|
|
4219
|
+
/** Format: date-time */
|
|
4220
|
+
created_at: string;
|
|
4221
|
+
};
|
|
4222
|
+
Mention: {
|
|
4223
|
+
note: components["schemas"]["MentionNote"];
|
|
4224
|
+
conversation: components["schemas"]["ConversationSummary"];
|
|
4225
|
+
/** @description The calling member has read the conversation up to this note. */
|
|
4226
|
+
seen: boolean;
|
|
4227
|
+
};
|
|
4228
|
+
MentionPage: {
|
|
4229
|
+
items: components["schemas"]["Mention"][];
|
|
4230
|
+
/** @description Absent on the last page. */
|
|
4231
|
+
next_cursor?: string;
|
|
4232
|
+
/**
|
|
4233
|
+
* Format: int64
|
|
4234
|
+
* @description Unseen mentions over all pages.
|
|
4235
|
+
*/
|
|
4236
|
+
unseen: number;
|
|
4237
|
+
};
|
|
4238
|
+
/**
|
|
4239
|
+
* @description `bot`: written with an API key. `assistant`: written by a member through an OAuth client.
|
|
4240
|
+
* `member`: written by a member in the panel.
|
|
4241
|
+
* @enum {string}
|
|
4242
|
+
*/
|
|
4243
|
+
DraftAuthorKind: "bot" | "assistant" | "member";
|
|
4244
|
+
DraftItem: {
|
|
4245
|
+
draft: components["schemas"]["Message"];
|
|
4246
|
+
conversation: components["schemas"]["ConversationSummary"];
|
|
4247
|
+
};
|
|
4248
|
+
DraftPage: {
|
|
4249
|
+
items: components["schemas"]["DraftItem"][];
|
|
4250
|
+
/** @description Absent on the last page. */
|
|
4251
|
+
next_cursor?: string;
|
|
4252
|
+
/**
|
|
4253
|
+
* Format: int64
|
|
4254
|
+
* @description Drafts matching the filters over all pages.
|
|
4255
|
+
*/
|
|
4256
|
+
total: number;
|
|
4257
|
+
};
|
|
3735
4258
|
CountByID: {
|
|
3736
4259
|
/** Format: uuid */
|
|
3737
4260
|
id: string;
|
|
3738
4261
|
/** Format: int64 */
|
|
3739
4262
|
count: number;
|
|
3740
4263
|
};
|
|
4264
|
+
Stats: {
|
|
4265
|
+
/** Format: date-time */
|
|
4266
|
+
since: string;
|
|
4267
|
+
/**
|
|
4268
|
+
* Format: date-time
|
|
4269
|
+
* @description When it was counted.
|
|
4270
|
+
*/
|
|
4271
|
+
until: string;
|
|
4272
|
+
/**
|
|
4273
|
+
* Format: int64
|
|
4274
|
+
* @description Replies sent by members.
|
|
4275
|
+
*/
|
|
4276
|
+
replies: number;
|
|
4277
|
+
/**
|
|
4278
|
+
* Format: int64
|
|
4279
|
+
* @description Times a conversation was closed, by anyone (members, API keys, the server).
|
|
4280
|
+
*/
|
|
4281
|
+
closed: number;
|
|
4282
|
+
/**
|
|
4283
|
+
* Format: int64
|
|
4284
|
+
* @description Conversations whose first member reply to the contact was sent in the window.
|
|
4285
|
+
*/
|
|
4286
|
+
first_replies: number;
|
|
4287
|
+
/**
|
|
4288
|
+
* Format: int64
|
|
4289
|
+
* @description Median seconds from the contact's first message to that reply; absent when `first_replies` is 0.
|
|
4290
|
+
*/
|
|
4291
|
+
median_first_reply_seconds?: number;
|
|
4292
|
+
ratings: components["schemas"]["RatingStats"];
|
|
4293
|
+
/** @description Per member, by member id. */
|
|
4294
|
+
members: components["schemas"]["MemberStats"][];
|
|
4295
|
+
};
|
|
4296
|
+
/** @description Ratings contacts gave in the window, in total and per inbox (inboxes without any are left out). */
|
|
4297
|
+
RatingStats: {
|
|
4298
|
+
/** Format: int64 */
|
|
4299
|
+
good: number;
|
|
4300
|
+
/** Format: int64 */
|
|
4301
|
+
bad: number;
|
|
4302
|
+
inboxes: components["schemas"]["InboxRatingStats"][];
|
|
4303
|
+
};
|
|
4304
|
+
InboxRatingStats: {
|
|
4305
|
+
/** Format: uuid */
|
|
4306
|
+
inbox_id: string;
|
|
4307
|
+
/** Format: int64 */
|
|
4308
|
+
good: number;
|
|
4309
|
+
/** Format: int64 */
|
|
4310
|
+
bad: number;
|
|
4311
|
+
};
|
|
4312
|
+
MemberStats: {
|
|
4313
|
+
/** Format: uuid */
|
|
4314
|
+
member_id: string;
|
|
4315
|
+
/** Format: int64 */
|
|
4316
|
+
replies: number;
|
|
4317
|
+
/** Format: int64 */
|
|
4318
|
+
closed: number;
|
|
4319
|
+
};
|
|
3741
4320
|
/** @description Open conversations in the inboxes the caller can see. */
|
|
3742
4321
|
ConversationCounts: {
|
|
3743
4322
|
/**
|
|
@@ -3760,6 +4339,11 @@ export interface components {
|
|
|
3760
4339
|
unassigned: number;
|
|
3761
4340
|
/** @description Per inbox id. */
|
|
3762
4341
|
inboxes: components["schemas"]["CountByID"][];
|
|
4342
|
+
/**
|
|
4343
|
+
* @description Per assignee's member id: each member's open load, for choosing whom to hand a
|
|
4344
|
+
* conversation to. Counts only the inboxes the caller can see.
|
|
4345
|
+
*/
|
|
4346
|
+
assignees: components["schemas"]["CountByID"][];
|
|
3763
4347
|
/** @description Per label id. */
|
|
3764
4348
|
labels: components["schemas"]["CountByID"][];
|
|
3765
4349
|
};
|
|
@@ -3781,8 +4365,21 @@ export interface components {
|
|
|
3781
4365
|
* @description Absent when the conversation has nothing to read yet.
|
|
3782
4366
|
*/
|
|
3783
4367
|
last_read_message_id?: string;
|
|
4368
|
+
/** @description Something is newer than the cursor, or the member marked it unread. */
|
|
3784
4369
|
unread: boolean;
|
|
3785
4370
|
};
|
|
4371
|
+
/** @description Whether a member pinned a conversation to the top of their lists. */
|
|
4372
|
+
ConversationPin: {
|
|
4373
|
+
/** Format: uuid */
|
|
4374
|
+
conversation_id: string;
|
|
4375
|
+
/** Format: uuid */
|
|
4376
|
+
member_id: string;
|
|
4377
|
+
/**
|
|
4378
|
+
* Format: date-time
|
|
4379
|
+
* @description Absent when it is not pinned.
|
|
4380
|
+
*/
|
|
4381
|
+
pinned_at?: string;
|
|
4382
|
+
};
|
|
3786
4383
|
/**
|
|
3787
4384
|
* @description `message` goes to or comes from the contact, `note` is for members only, `event` records a
|
|
3788
4385
|
* change (assignment, status, labels).
|
|
@@ -3824,7 +4421,7 @@ export interface components {
|
|
|
3824
4421
|
via?: string;
|
|
3825
4422
|
};
|
|
3826
4423
|
/** @enum {string} */
|
|
3827
|
-
EventType: "assigned" | "unassigned" | "status_changed" | "labels_changed" | "moved";
|
|
4424
|
+
EventType: "assigned" | "unassigned" | "status_changed" | "labels_changed" | "moved" | "rated";
|
|
3828
4425
|
MessageEvent: {
|
|
3829
4426
|
type: components["schemas"]["EventType"];
|
|
3830
4427
|
/**
|
|
@@ -3851,6 +4448,8 @@ export interface components {
|
|
|
3851
4448
|
* @description The inbox it moved from (`moved`).
|
|
3852
4449
|
*/
|
|
3853
4450
|
previous_inbox_id?: string;
|
|
4451
|
+
/** @description `rated` only: the contact's rating; the message body is their comment. */
|
|
4452
|
+
rating?: components["schemas"]["Rating"];
|
|
3854
4453
|
};
|
|
3855
4454
|
Attachment: {
|
|
3856
4455
|
/**
|
|
@@ -3897,6 +4496,8 @@ export interface components {
|
|
|
3897
4496
|
draft: boolean;
|
|
3898
4497
|
/** @description Who sent a draft (`member` or `bot`); absent for messages that were never drafts. */
|
|
3899
4498
|
sent_by?: components["schemas"]["MessageAuthor"];
|
|
4499
|
+
/** @description Members a note mentions (notes only; absent when it mentions nobody). */
|
|
4500
|
+
mentions?: string[];
|
|
3900
4501
|
/**
|
|
3901
4502
|
* Format: date-time
|
|
3902
4503
|
* @description For a sent draft, when it was sent.
|
|
@@ -3956,7 +4557,16 @@ export interface components {
|
|
|
3956
4557
|
full_text: string;
|
|
3957
4558
|
/** @description The whole HTML part, sanitized. */
|
|
3958
4559
|
full_html?: string;
|
|
3959
|
-
/**
|
|
4560
|
+
/**
|
|
4561
|
+
* @description The whole HTML part of the kept original, built on request and sanitized with a policy
|
|
4562
|
+
* that keeps inline styles limited to an allowlist of CSS properties (no `url(`,
|
|
4563
|
+
* `expression` or `@import` values) and the colour, alignment and size attributes of
|
|
4564
|
+
* tables and `font`; never `<style>` blocks, scripts, forms, frames, stylesheets or event
|
|
4565
|
+
* handlers. `cid:` sources are kept as in `full_html`. Absent when the original is not
|
|
4566
|
+
* kept, has no HTML part or is too large.
|
|
4567
|
+
*/
|
|
4568
|
+
original_html?: string;
|
|
4569
|
+
/** @description `full_html` or `original_html` loads images from other servers; block them until the member asks. */
|
|
3960
4570
|
has_remote_images: boolean;
|
|
3961
4571
|
in_reply_to?: string;
|
|
3962
4572
|
references?: string[];
|
|
@@ -3979,6 +4589,14 @@ export interface components {
|
|
|
3979
4589
|
client_id?: string;
|
|
3980
4590
|
/** @description Stores an outgoing message as a draft instead of delivering it. */
|
|
3981
4591
|
draft?: boolean;
|
|
4592
|
+
/**
|
|
4593
|
+
* @description Notes only: members to notify about the note. Each must be a member of the workspace
|
|
4594
|
+
* who can see the conversation's inbox (`400 validation_failed` otherwise). They get the
|
|
4595
|
+
* `mentioned` notification (realtime as `message.created`, Web Push and e-mail per their
|
|
4596
|
+
* notification settings); the author is never notified. The panel shows mentions in the
|
|
4597
|
+
* body as it likes; the server does not parse `@` in the text.
|
|
4598
|
+
*/
|
|
4599
|
+
mentions?: string[];
|
|
3982
4600
|
};
|
|
3983
4601
|
MessageCreateMultipart: {
|
|
3984
4602
|
/** @enum {string} */
|
|
@@ -3988,6 +4606,8 @@ export interface components {
|
|
|
3988
4606
|
html?: string;
|
|
3989
4607
|
client_id?: string;
|
|
3990
4608
|
draft?: boolean;
|
|
4609
|
+
/** @description Notes only; repeat the field once per member id. */
|
|
4610
|
+
mentions?: string[];
|
|
3991
4611
|
files?: string[];
|
|
3992
4612
|
};
|
|
3993
4613
|
/** @description Only the fields sent change. */
|
|
@@ -4270,6 +4890,56 @@ export interface components {
|
|
|
4270
4890
|
created_at: string;
|
|
4271
4891
|
data: components["schemas"]["ConversationRead"];
|
|
4272
4892
|
};
|
|
4893
|
+
/** @description The contact's read position in a conversation. */
|
|
4894
|
+
ContactRead: {
|
|
4895
|
+
/** Format: uuid */
|
|
4896
|
+
conversation_id: string;
|
|
4897
|
+
/** Format: uuid */
|
|
4898
|
+
last_read_message_id: string;
|
|
4899
|
+
/**
|
|
4900
|
+
* Format: date-time
|
|
4901
|
+
* @description The contact has read every message created at or before this time.
|
|
4902
|
+
*/
|
|
4903
|
+
read_at: string;
|
|
4904
|
+
};
|
|
4905
|
+
/** @description The contact read the conversation further, in the widget or an app. */
|
|
4906
|
+
ContactReadEvent: {
|
|
4907
|
+
/** Format: int64 */
|
|
4908
|
+
id: number;
|
|
4909
|
+
/**
|
|
4910
|
+
* @description discriminator enum property added by openapi-typescript
|
|
4911
|
+
* @enum {string}
|
|
4912
|
+
*/
|
|
4913
|
+
type: "contact.read";
|
|
4914
|
+
/** Format: uuid */
|
|
4915
|
+
workspace_id: string;
|
|
4916
|
+
/** Format: uuid */
|
|
4917
|
+
inbox_id: string;
|
|
4918
|
+
/** Format: uuid */
|
|
4919
|
+
conversation_id: string;
|
|
4920
|
+
/** Format: date-time */
|
|
4921
|
+
created_at: string;
|
|
4922
|
+
data: components["schemas"]["ContactRead"];
|
|
4923
|
+
};
|
|
4924
|
+
/** @description The receiving member pinned or unpinned a conversation, in this or another tab or device. */
|
|
4925
|
+
ConversationPinEvent: {
|
|
4926
|
+
/** Format: int64 */
|
|
4927
|
+
id: number;
|
|
4928
|
+
/**
|
|
4929
|
+
* @description discriminator enum property added by openapi-typescript
|
|
4930
|
+
* @enum {string}
|
|
4931
|
+
*/
|
|
4932
|
+
type: "conversation.pin";
|
|
4933
|
+
/** Format: uuid */
|
|
4934
|
+
workspace_id: string;
|
|
4935
|
+
/** Format: uuid */
|
|
4936
|
+
inbox_id: string;
|
|
4937
|
+
/** Format: uuid */
|
|
4938
|
+
conversation_id: string;
|
|
4939
|
+
/** Format: date-time */
|
|
4940
|
+
created_at: string;
|
|
4941
|
+
data: components["schemas"]["ConversationPin"];
|
|
4942
|
+
};
|
|
4273
4943
|
/** @description A member was given or lost access to an inbox. Reload the inboxes and conversations when it is about you. */
|
|
4274
4944
|
InboxAccessChangedEvent: {
|
|
4275
4945
|
/** Format: int64 */
|
|
@@ -4326,7 +4996,7 @@ export interface components {
|
|
|
4326
4996
|
type: "resync_required";
|
|
4327
4997
|
};
|
|
4328
4998
|
/** @description An event as `GET /v1/events` returns it, told apart by `type`; the same objects realtime and webhooks carry. */
|
|
4329
|
-
StoredEvent: 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"];
|
|
4999
|
+
StoredEvent: 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"]["ContactReadEvent"] | components["schemas"]["ConversationPinEvent"];
|
|
4330
5000
|
EventPage: {
|
|
4331
5001
|
events: components["schemas"]["StoredEvent"][];
|
|
4332
5002
|
/**
|
|
@@ -4345,7 +5015,7 @@ export interface components {
|
|
|
4345
5015
|
id: number;
|
|
4346
5016
|
};
|
|
4347
5017
|
/** @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"];
|
|
5018
|
+
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"]["ContactReadEvent"] | components["schemas"]["ConversationPinEvent"] | components["schemas"]["TypingEvent"] | components["schemas"]["MemberPresenceEvent"] | components["schemas"]["ContactPresenceEvent"] | components["schemas"]["ViewingEvent"] | components["schemas"]["RealtimeReady"] | components["schemas"]["RealtimeResyncRequired"];
|
|
4349
5019
|
/**
|
|
4350
5020
|
* @description `auto`: available in `live` inboxes while connected to `/v1/realtime` within business
|
|
4351
5021
|
* hours. `away`: never shown as available.
|
|
@@ -4565,6 +5235,11 @@ export interface components {
|
|
|
4565
5235
|
chat: components["schemas"]["ClientChatSettings"];
|
|
4566
5236
|
/** @description The categories `POST /client/v1/feedback` accepts, in display order. */
|
|
4567
5237
|
feedback_categories: components["schemas"]["FeedbackCategory"][];
|
|
5238
|
+
/**
|
|
5239
|
+
* @description The inbox asks contacts to rate closed conversations; offer it where `can_rate` is true
|
|
5240
|
+
* on a conversation.
|
|
5241
|
+
*/
|
|
5242
|
+
ask_for_rating: boolean;
|
|
4568
5243
|
};
|
|
4569
5244
|
ClientContact: {
|
|
4570
5245
|
/** Format: uuid */
|
|
@@ -4596,6 +5271,9 @@ export interface components {
|
|
|
4596
5271
|
/** Format: uuid */
|
|
4597
5272
|
id: string;
|
|
4598
5273
|
status: components["schemas"]["ConversationStatus"];
|
|
5274
|
+
/** @description As on `ClientConversation`. */
|
|
5275
|
+
can_rate: boolean;
|
|
5276
|
+
rating?: components["schemas"]["Rating"];
|
|
4599
5277
|
/** Format: date-time */
|
|
4600
5278
|
updated_at: string;
|
|
4601
5279
|
};
|
|
@@ -4628,9 +5306,23 @@ export interface components {
|
|
|
4628
5306
|
* when no member has read the conversation, and in `async` inboxes.
|
|
4629
5307
|
*/
|
|
4630
5308
|
last_read_by_member_at?: string;
|
|
5309
|
+
/**
|
|
5310
|
+
* @description The contact may rate it now with `POST /client/v1/conversations/{id}/rating`: the inbox
|
|
5311
|
+
* asks for ratings (`ask_for_rating`), the conversation is closed, was closed at most 30
|
|
5312
|
+
* days ago and after the inbox started asking, and has no rating since it was closed. A message from the contact reopens it,
|
|
5313
|
+
* and the next close allows a new rating.
|
|
5314
|
+
*/
|
|
5315
|
+
can_rate: boolean;
|
|
5316
|
+
/** @description The contact's rating since the last close; absent when they have not rated it. */
|
|
5317
|
+
rating?: components["schemas"]["Rating"];
|
|
4631
5318
|
/** Format: date-time */
|
|
4632
5319
|
created_at: string;
|
|
4633
5320
|
};
|
|
5321
|
+
ClientRatingCreate: {
|
|
5322
|
+
rating: components["schemas"]["Rating"];
|
|
5323
|
+
/** @description Optional; blank is the same as absent. */
|
|
5324
|
+
comment?: string;
|
|
5325
|
+
};
|
|
4634
5326
|
ClientConversationPage: {
|
|
4635
5327
|
items: components["schemas"]["ClientConversation"][];
|
|
4636
5328
|
/** @description Absent on the last page. */
|
|
@@ -5659,6 +6351,37 @@ export interface operations {
|
|
|
5659
6351
|
404: components["responses"]["Problem"];
|
|
5660
6352
|
};
|
|
5661
6353
|
};
|
|
6354
|
+
listMentions: {
|
|
6355
|
+
parameters: {
|
|
6356
|
+
query?: {
|
|
6357
|
+
/** @description The `next_cursor` of the previous page. */
|
|
6358
|
+
cursor?: components["parameters"]["Cursor"];
|
|
6359
|
+
/** @description Page size, 1 to 100; 25 by default. */
|
|
6360
|
+
limit?: components["parameters"]["Limit"];
|
|
6361
|
+
};
|
|
6362
|
+
header?: {
|
|
6363
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
6364
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
6365
|
+
};
|
|
6366
|
+
path?: never;
|
|
6367
|
+
cookie?: never;
|
|
6368
|
+
};
|
|
6369
|
+
requestBody?: never;
|
|
6370
|
+
responses: {
|
|
6371
|
+
/** @description A page of mentions. */
|
|
6372
|
+
200: {
|
|
6373
|
+
headers: {
|
|
6374
|
+
[name: string]: unknown;
|
|
6375
|
+
};
|
|
6376
|
+
content: {
|
|
6377
|
+
"application/json": components["schemas"]["MentionPage"];
|
|
6378
|
+
};
|
|
6379
|
+
};
|
|
6380
|
+
400: components["responses"]["Problem"];
|
|
6381
|
+
401: components["responses"]["Problem"];
|
|
6382
|
+
403: components["responses"]["Problem"];
|
|
6383
|
+
};
|
|
6384
|
+
};
|
|
5662
6385
|
getWorkspace: {
|
|
5663
6386
|
parameters: {
|
|
5664
6387
|
query?: never;
|
|
@@ -6502,6 +7225,14 @@ export interface operations {
|
|
|
6502
7225
|
query?: {
|
|
6503
7226
|
/** @description Full-text search (Postgres `simple` configuration, `websearch` syntax). */
|
|
6504
7227
|
q?: components["parameters"]["Search"];
|
|
7228
|
+
/**
|
|
7229
|
+
* @description `known`: the contact has an e-mail address or an external id. `visitor`: neither (an
|
|
7230
|
+
* anonymous widget visitor, or someone known only by a typed, unconfirmed address).
|
|
7231
|
+
*/
|
|
7232
|
+
kind?: "known" | "visitor";
|
|
7233
|
+
/** @description Only contacts with (`true`) or without (`false`) an open conversation the caller can see; spam does not count. */
|
|
7234
|
+
has_open?: boolean;
|
|
7235
|
+
sort?: "created" | "last_seen";
|
|
6505
7236
|
/** @description The `next_cursor` of the previous page. */
|
|
6506
7237
|
cursor?: components["parameters"]["Cursor"];
|
|
6507
7238
|
/** @description Page size, 1 to 100; 25 by default. */
|
|
@@ -6744,9 +7475,14 @@ export interface operations {
|
|
|
6744
7475
|
404: components["responses"]["Problem"];
|
|
6745
7476
|
};
|
|
6746
7477
|
};
|
|
6747
|
-
|
|
7478
|
+
listContactNotes: {
|
|
6748
7479
|
parameters: {
|
|
6749
|
-
query?:
|
|
7480
|
+
query?: {
|
|
7481
|
+
/** @description The `next_cursor` of the previous page. */
|
|
7482
|
+
cursor?: components["parameters"]["Cursor"];
|
|
7483
|
+
/** @description Page size, 1 to 100; 25 by default. */
|
|
7484
|
+
limit?: components["parameters"]["Limit"];
|
|
7485
|
+
};
|
|
6750
7486
|
header?: {
|
|
6751
7487
|
/** @description The workspace to act on; see "Workspace selection". */
|
|
6752
7488
|
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
@@ -6758,57 +7494,179 @@ export interface operations {
|
|
|
6758
7494
|
};
|
|
6759
7495
|
requestBody?: never;
|
|
6760
7496
|
responses: {
|
|
6761
|
-
/** @description
|
|
7497
|
+
/** @description A page of notes. */
|
|
6762
7498
|
200: {
|
|
6763
7499
|
headers: {
|
|
6764
7500
|
[name: string]: unknown;
|
|
6765
7501
|
};
|
|
6766
7502
|
content: {
|
|
6767
|
-
"application/json": components["schemas"]["
|
|
7503
|
+
"application/json": components["schemas"]["ContactNotePage"];
|
|
6768
7504
|
};
|
|
6769
7505
|
};
|
|
7506
|
+
400: components["responses"]["Problem"];
|
|
6770
7507
|
401: components["responses"]["Problem"];
|
|
6771
7508
|
403: components["responses"]["Problem"];
|
|
6772
7509
|
404: components["responses"]["Problem"];
|
|
6773
7510
|
};
|
|
6774
7511
|
};
|
|
6775
|
-
|
|
7512
|
+
createContactNote: {
|
|
6776
7513
|
parameters: {
|
|
6777
|
-
query?:
|
|
6778
|
-
inbox_id?: string;
|
|
6779
|
-
/** @description Only this contact's conversations. A contact of another workspace answers `404`. */
|
|
6780
|
-
contact_id?: string;
|
|
6781
|
-
status?: components["schemas"]["ConversationStatus"];
|
|
6782
|
-
/** @description A member id, `me` (member sessions only) or `unassigned`. */
|
|
6783
|
-
assignee?: string;
|
|
6784
|
-
label_id?: string;
|
|
6785
|
-
/**
|
|
6786
|
-
* @description `true` lists only conversations flagged as spam (the spam view); without it, or with
|
|
6787
|
-
* `false`, spam is left out.
|
|
6788
|
-
*/
|
|
6789
|
-
spam?: boolean;
|
|
6790
|
-
/** @description Only conversations of this kind, e.g. `feedback` for the feedback view. */
|
|
6791
|
-
kind?: components["schemas"]["ConversationKind"];
|
|
6792
|
-
/** @description Only feedback of this category (implies `kind=feedback`). */
|
|
6793
|
-
category?: components["schemas"]["FeedbackCategory"];
|
|
6794
|
-
/** @description Full-text search (Postgres `simple` configuration, `websearch` syntax). */
|
|
6795
|
-
q?: components["parameters"]["Search"];
|
|
6796
|
-
/** @description The `next_cursor` of the previous page. */
|
|
6797
|
-
cursor?: components["parameters"]["Cursor"];
|
|
6798
|
-
/** @description Page size, 1 to 100; 25 by default. */
|
|
6799
|
-
limit?: components["parameters"]["Limit"];
|
|
6800
|
-
};
|
|
7514
|
+
query?: never;
|
|
6801
7515
|
header?: {
|
|
6802
7516
|
/** @description The workspace to act on; see "Workspace selection". */
|
|
6803
7517
|
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
6804
7518
|
};
|
|
6805
|
-
path
|
|
7519
|
+
path: {
|
|
7520
|
+
contactId: components["parameters"]["ContactId"];
|
|
7521
|
+
};
|
|
6806
7522
|
cookie?: never;
|
|
6807
7523
|
};
|
|
6808
|
-
requestBody
|
|
7524
|
+
requestBody: {
|
|
7525
|
+
content: {
|
|
7526
|
+
"application/json": components["schemas"]["ContactNoteCreate"];
|
|
7527
|
+
};
|
|
7528
|
+
};
|
|
6809
7529
|
responses: {
|
|
6810
|
-
/** @description
|
|
6811
|
-
|
|
7530
|
+
/** @description The note. */
|
|
7531
|
+
201: {
|
|
7532
|
+
headers: {
|
|
7533
|
+
[name: string]: unknown;
|
|
7534
|
+
};
|
|
7535
|
+
content: {
|
|
7536
|
+
"application/json": components["schemas"]["ContactNote"];
|
|
7537
|
+
};
|
|
7538
|
+
};
|
|
7539
|
+
400: components["responses"]["Problem"];
|
|
7540
|
+
401: components["responses"]["Problem"];
|
|
7541
|
+
403: components["responses"]["Problem"];
|
|
7542
|
+
404: components["responses"]["Problem"];
|
|
7543
|
+
};
|
|
7544
|
+
};
|
|
7545
|
+
deleteContactNote: {
|
|
7546
|
+
parameters: {
|
|
7547
|
+
query?: never;
|
|
7548
|
+
header?: {
|
|
7549
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7550
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7551
|
+
};
|
|
7552
|
+
path: {
|
|
7553
|
+
contactId: components["parameters"]["ContactId"];
|
|
7554
|
+
noteId: string;
|
|
7555
|
+
};
|
|
7556
|
+
cookie?: never;
|
|
7557
|
+
};
|
|
7558
|
+
requestBody?: never;
|
|
7559
|
+
responses: {
|
|
7560
|
+
/** @description Deleted. */
|
|
7561
|
+
204: {
|
|
7562
|
+
headers: {
|
|
7563
|
+
[name: string]: unknown;
|
|
7564
|
+
};
|
|
7565
|
+
content?: never;
|
|
7566
|
+
};
|
|
7567
|
+
401: components["responses"]["Problem"];
|
|
7568
|
+
403: components["responses"]["Problem"];
|
|
7569
|
+
404: components["responses"]["Problem"];
|
|
7570
|
+
};
|
|
7571
|
+
};
|
|
7572
|
+
getContactSummary: {
|
|
7573
|
+
parameters: {
|
|
7574
|
+
query?: never;
|
|
7575
|
+
header?: {
|
|
7576
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7577
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7578
|
+
};
|
|
7579
|
+
path: {
|
|
7580
|
+
contactId: components["parameters"]["ContactId"];
|
|
7581
|
+
};
|
|
7582
|
+
cookie?: never;
|
|
7583
|
+
};
|
|
7584
|
+
requestBody?: never;
|
|
7585
|
+
responses: {
|
|
7586
|
+
/** @description The summary. */
|
|
7587
|
+
200: {
|
|
7588
|
+
headers: {
|
|
7589
|
+
[name: string]: unknown;
|
|
7590
|
+
};
|
|
7591
|
+
content: {
|
|
7592
|
+
"application/json": components["schemas"]["ContactSummary"];
|
|
7593
|
+
};
|
|
7594
|
+
};
|
|
7595
|
+
401: components["responses"]["Problem"];
|
|
7596
|
+
403: components["responses"]["Problem"];
|
|
7597
|
+
404: components["responses"]["Problem"];
|
|
7598
|
+
};
|
|
7599
|
+
};
|
|
7600
|
+
getContactPresence: {
|
|
7601
|
+
parameters: {
|
|
7602
|
+
query?: never;
|
|
7603
|
+
header?: {
|
|
7604
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7605
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7606
|
+
};
|
|
7607
|
+
path: {
|
|
7608
|
+
contactId: components["parameters"]["ContactId"];
|
|
7609
|
+
};
|
|
7610
|
+
cookie?: never;
|
|
7611
|
+
};
|
|
7612
|
+
requestBody?: never;
|
|
7613
|
+
responses: {
|
|
7614
|
+
/** @description The contact's presence. */
|
|
7615
|
+
200: {
|
|
7616
|
+
headers: {
|
|
7617
|
+
[name: string]: unknown;
|
|
7618
|
+
};
|
|
7619
|
+
content: {
|
|
7620
|
+
"application/json": components["schemas"]["ContactPresence"];
|
|
7621
|
+
};
|
|
7622
|
+
};
|
|
7623
|
+
401: components["responses"]["Problem"];
|
|
7624
|
+
403: components["responses"]["Problem"];
|
|
7625
|
+
404: components["responses"]["Problem"];
|
|
7626
|
+
};
|
|
7627
|
+
};
|
|
7628
|
+
listConversations: {
|
|
7629
|
+
parameters: {
|
|
7630
|
+
query?: {
|
|
7631
|
+
inbox_id?: string;
|
|
7632
|
+
/** @description Only this contact's conversations. A contact of another workspace answers `404`. */
|
|
7633
|
+
contact_id?: string;
|
|
7634
|
+
status?: components["schemas"]["ConversationStatus"];
|
|
7635
|
+
/** @description A member id, `me` (member sessions only) or `unassigned`. */
|
|
7636
|
+
assignee?: string;
|
|
7637
|
+
label_id?: string;
|
|
7638
|
+
/**
|
|
7639
|
+
* @description `true` lists only conversations flagged as spam (the spam view); without it, or with
|
|
7640
|
+
* `false`, spam is left out.
|
|
7641
|
+
*/
|
|
7642
|
+
spam?: boolean;
|
|
7643
|
+
/** @description Only conversations of this kind, e.g. `feedback` for the feedback view. */
|
|
7644
|
+
kind?: components["schemas"]["ConversationKind"];
|
|
7645
|
+
/** @description Only feedback of this category (implies `kind=feedback`). */
|
|
7646
|
+
category?: components["schemas"]["FeedbackCategory"];
|
|
7647
|
+
/**
|
|
7648
|
+
* @description `true` lists only the conversations the calling member pinned, `false` only the others;
|
|
7649
|
+
* without it, both. Member sessions only (`400 validation_failed` for API keys).
|
|
7650
|
+
*/
|
|
7651
|
+
pinned?: boolean;
|
|
7652
|
+
/** @description Full-text search (Postgres `simple` configuration, `websearch` syntax). */
|
|
7653
|
+
q?: components["parameters"]["Search"];
|
|
7654
|
+
/** @description The `next_cursor` of the previous page. */
|
|
7655
|
+
cursor?: components["parameters"]["Cursor"];
|
|
7656
|
+
/** @description Page size, 1 to 100; 25 by default. */
|
|
7657
|
+
limit?: components["parameters"]["Limit"];
|
|
7658
|
+
};
|
|
7659
|
+
header?: {
|
|
7660
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7661
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7662
|
+
};
|
|
7663
|
+
path?: never;
|
|
7664
|
+
cookie?: never;
|
|
7665
|
+
};
|
|
7666
|
+
requestBody?: never;
|
|
7667
|
+
responses: {
|
|
7668
|
+
/** @description A page of conversations. */
|
|
7669
|
+
200: {
|
|
6812
7670
|
headers: {
|
|
6813
7671
|
[name: string]: unknown;
|
|
6814
7672
|
};
|
|
@@ -6880,6 +7738,40 @@ export interface operations {
|
|
|
6880
7738
|
403: components["responses"]["Problem"];
|
|
6881
7739
|
};
|
|
6882
7740
|
};
|
|
7741
|
+
getStats: {
|
|
7742
|
+
parameters: {
|
|
7743
|
+
query?: {
|
|
7744
|
+
/** @description Only this inbox (`404` when the caller cannot see it). */
|
|
7745
|
+
inbox_id?: string;
|
|
7746
|
+
/** @description Start of the window; the start of today in `timezone` when absent. */
|
|
7747
|
+
since?: string;
|
|
7748
|
+
/** @description IANA time zone for the default `since`. */
|
|
7749
|
+
timezone?: string;
|
|
7750
|
+
};
|
|
7751
|
+
header?: {
|
|
7752
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
7753
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
7754
|
+
};
|
|
7755
|
+
path?: never;
|
|
7756
|
+
cookie?: never;
|
|
7757
|
+
};
|
|
7758
|
+
requestBody?: never;
|
|
7759
|
+
responses: {
|
|
7760
|
+
/** @description The activity. */
|
|
7761
|
+
200: {
|
|
7762
|
+
headers: {
|
|
7763
|
+
[name: string]: unknown;
|
|
7764
|
+
};
|
|
7765
|
+
content: {
|
|
7766
|
+
"application/json": components["schemas"]["Stats"];
|
|
7767
|
+
};
|
|
7768
|
+
};
|
|
7769
|
+
400: components["responses"]["Problem"];
|
|
7770
|
+
401: components["responses"]["Problem"];
|
|
7771
|
+
403: components["responses"]["Problem"];
|
|
7772
|
+
404: components["responses"]["Problem"];
|
|
7773
|
+
};
|
|
7774
|
+
};
|
|
6883
7775
|
bulkUpdateConversations: {
|
|
6884
7776
|
parameters: {
|
|
6885
7777
|
query?: never;
|
|
@@ -7127,6 +8019,92 @@ export interface operations {
|
|
|
7127
8019
|
404: components["responses"]["Problem"];
|
|
7128
8020
|
};
|
|
7129
8021
|
};
|
|
8022
|
+
markConversationUnread: {
|
|
8023
|
+
parameters: {
|
|
8024
|
+
query?: never;
|
|
8025
|
+
header?: {
|
|
8026
|
+
/** @description Makes a retried request return the first response; see "Idempotency". */
|
|
8027
|
+
"Idempotency-Key"?: components["parameters"]["IdempotencyKey"];
|
|
8028
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
8029
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
8030
|
+
};
|
|
8031
|
+
path: {
|
|
8032
|
+
conversationId: components["parameters"]["ConversationId"];
|
|
8033
|
+
};
|
|
8034
|
+
cookie?: never;
|
|
8035
|
+
};
|
|
8036
|
+
requestBody?: never;
|
|
8037
|
+
responses: {
|
|
8038
|
+
/** @description The member's read state. */
|
|
8039
|
+
200: {
|
|
8040
|
+
headers: {
|
|
8041
|
+
[name: string]: unknown;
|
|
8042
|
+
};
|
|
8043
|
+
content: {
|
|
8044
|
+
"application/json": components["schemas"]["ConversationRead"];
|
|
8045
|
+
};
|
|
8046
|
+
};
|
|
8047
|
+
401: components["responses"]["Problem"];
|
|
8048
|
+
403: components["responses"]["Problem"];
|
|
8049
|
+
404: components["responses"]["Problem"];
|
|
8050
|
+
};
|
|
8051
|
+
};
|
|
8052
|
+
pinConversation: {
|
|
8053
|
+
parameters: {
|
|
8054
|
+
query?: never;
|
|
8055
|
+
header?: {
|
|
8056
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
8057
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
8058
|
+
};
|
|
8059
|
+
path: {
|
|
8060
|
+
conversationId: components["parameters"]["ConversationId"];
|
|
8061
|
+
};
|
|
8062
|
+
cookie?: never;
|
|
8063
|
+
};
|
|
8064
|
+
requestBody?: never;
|
|
8065
|
+
responses: {
|
|
8066
|
+
/** @description The member's pin. */
|
|
8067
|
+
200: {
|
|
8068
|
+
headers: {
|
|
8069
|
+
[name: string]: unknown;
|
|
8070
|
+
};
|
|
8071
|
+
content: {
|
|
8072
|
+
"application/json": components["schemas"]["ConversationPin"];
|
|
8073
|
+
};
|
|
8074
|
+
};
|
|
8075
|
+
401: components["responses"]["Problem"];
|
|
8076
|
+
403: components["responses"]["Problem"];
|
|
8077
|
+
404: components["responses"]["Problem"];
|
|
8078
|
+
};
|
|
8079
|
+
};
|
|
8080
|
+
unpinConversation: {
|
|
8081
|
+
parameters: {
|
|
8082
|
+
query?: never;
|
|
8083
|
+
header?: {
|
|
8084
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
8085
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
8086
|
+
};
|
|
8087
|
+
path: {
|
|
8088
|
+
conversationId: components["parameters"]["ConversationId"];
|
|
8089
|
+
};
|
|
8090
|
+
cookie?: never;
|
|
8091
|
+
};
|
|
8092
|
+
requestBody?: never;
|
|
8093
|
+
responses: {
|
|
8094
|
+
/** @description The member's pin, without `pinned_at`. */
|
|
8095
|
+
200: {
|
|
8096
|
+
headers: {
|
|
8097
|
+
[name: string]: unknown;
|
|
8098
|
+
};
|
|
8099
|
+
content: {
|
|
8100
|
+
"application/json": components["schemas"]["ConversationPin"];
|
|
8101
|
+
};
|
|
8102
|
+
};
|
|
8103
|
+
401: components["responses"]["Problem"];
|
|
8104
|
+
403: components["responses"]["Problem"];
|
|
8105
|
+
404: components["responses"]["Problem"];
|
|
8106
|
+
};
|
|
8107
|
+
};
|
|
7130
8108
|
setMemberTyping: {
|
|
7131
8109
|
parameters: {
|
|
7132
8110
|
query?: never;
|
|
@@ -7160,6 +8138,41 @@ export interface operations {
|
|
|
7160
8138
|
404: components["responses"]["Problem"];
|
|
7161
8139
|
};
|
|
7162
8140
|
};
|
|
8141
|
+
listDrafts: {
|
|
8142
|
+
parameters: {
|
|
8143
|
+
query?: {
|
|
8144
|
+
/** @description Only drafts in this inbox. An inbox the caller cannot see answers `404`. */
|
|
8145
|
+
inbox_id?: string;
|
|
8146
|
+
author?: components["schemas"]["DraftAuthorKind"];
|
|
8147
|
+
/** @description The `next_cursor` of the previous page. */
|
|
8148
|
+
cursor?: components["parameters"]["Cursor"];
|
|
8149
|
+
/** @description Page size, 1 to 100; 25 by default. */
|
|
8150
|
+
limit?: components["parameters"]["Limit"];
|
|
8151
|
+
};
|
|
8152
|
+
header?: {
|
|
8153
|
+
/** @description The workspace to act on; see "Workspace selection". */
|
|
8154
|
+
"Yuva-Workspace"?: components["parameters"]["WorkspaceHeader"];
|
|
8155
|
+
};
|
|
8156
|
+
path?: never;
|
|
8157
|
+
cookie?: never;
|
|
8158
|
+
};
|
|
8159
|
+
requestBody?: never;
|
|
8160
|
+
responses: {
|
|
8161
|
+
/** @description A page of drafts. */
|
|
8162
|
+
200: {
|
|
8163
|
+
headers: {
|
|
8164
|
+
[name: string]: unknown;
|
|
8165
|
+
};
|
|
8166
|
+
content: {
|
|
8167
|
+
"application/json": components["schemas"]["DraftPage"];
|
|
8168
|
+
};
|
|
8169
|
+
};
|
|
8170
|
+
400: components["responses"]["Problem"];
|
|
8171
|
+
401: components["responses"]["Problem"];
|
|
8172
|
+
403: components["responses"]["Problem"];
|
|
8173
|
+
404: components["responses"]["Problem"];
|
|
8174
|
+
};
|
|
8175
|
+
};
|
|
7163
8176
|
downloadAttachment: {
|
|
7164
8177
|
parameters: {
|
|
7165
8178
|
query?: {
|
|
@@ -8473,6 +9486,37 @@ export interface operations {
|
|
|
8473
9486
|
404: components["responses"]["Problem"];
|
|
8474
9487
|
};
|
|
8475
9488
|
};
|
|
9489
|
+
rateClientConversation: {
|
|
9490
|
+
parameters: {
|
|
9491
|
+
query?: never;
|
|
9492
|
+
header?: never;
|
|
9493
|
+
path: {
|
|
9494
|
+
conversationId: components["parameters"]["ConversationId"];
|
|
9495
|
+
};
|
|
9496
|
+
cookie?: never;
|
|
9497
|
+
};
|
|
9498
|
+
requestBody: {
|
|
9499
|
+
content: {
|
|
9500
|
+
"application/json": components["schemas"]["ClientRatingCreate"];
|
|
9501
|
+
};
|
|
9502
|
+
};
|
|
9503
|
+
responses: {
|
|
9504
|
+
/** @description The conversation with its rating. */
|
|
9505
|
+
201: {
|
|
9506
|
+
headers: {
|
|
9507
|
+
[name: string]: unknown;
|
|
9508
|
+
};
|
|
9509
|
+
content: {
|
|
9510
|
+
"application/json": components["schemas"]["ClientConversation"];
|
|
9511
|
+
};
|
|
9512
|
+
};
|
|
9513
|
+
400: components["responses"]["Problem"];
|
|
9514
|
+
401: components["responses"]["Problem"];
|
|
9515
|
+
403: components["responses"]["Problem"];
|
|
9516
|
+
404: components["responses"]["Problem"];
|
|
9517
|
+
409: components["responses"]["Problem"];
|
|
9518
|
+
};
|
|
9519
|
+
};
|
|
8476
9520
|
setClientTyping: {
|
|
8477
9521
|
parameters: {
|
|
8478
9522
|
query?: never;
|
|
@@ -8940,6 +9984,39 @@ export interface operations {
|
|
|
8940
9984
|
};
|
|
8941
9985
|
};
|
|
8942
9986
|
};
|
|
9987
|
+
webhookConversationRated: {
|
|
9988
|
+
parameters: {
|
|
9989
|
+
query?: never;
|
|
9990
|
+
header: {
|
|
9991
|
+
/** @description The delivery's id, the same on every retry; use it to ignore duplicates. */
|
|
9992
|
+
"webhook-id": components["parameters"]["WebhookIdHeader"];
|
|
9993
|
+
/** @description Unix seconds of this attempt. Refuse values far from your clock. */
|
|
9994
|
+
"webhook-timestamp": components["parameters"]["WebhookTimestampHeader"];
|
|
9995
|
+
/**
|
|
9996
|
+
* @description Space-separated `v1,<base64>` signatures: HMAC-SHA256 over
|
|
9997
|
+
* `<webhook-id>.<webhook-timestamp>.<body>` with the base64-decoded part of the
|
|
9998
|
+
* `whsec_` secret (Standard Webhooks). Two during a secret rotation.
|
|
9999
|
+
*/
|
|
10000
|
+
"webhook-signature": components["parameters"]["WebhookSignatureHeader"];
|
|
10001
|
+
};
|
|
10002
|
+
path?: never;
|
|
10003
|
+
cookie?: never;
|
|
10004
|
+
};
|
|
10005
|
+
requestBody: {
|
|
10006
|
+
content: {
|
|
10007
|
+
"application/json": components["schemas"]["WebhookConversationPayload"];
|
|
10008
|
+
};
|
|
10009
|
+
};
|
|
10010
|
+
responses: {
|
|
10011
|
+
/** @description Any 2xx answer counts as delivered. */
|
|
10012
|
+
200: {
|
|
10013
|
+
headers: {
|
|
10014
|
+
[name: string]: unknown;
|
|
10015
|
+
};
|
|
10016
|
+
content?: never;
|
|
10017
|
+
};
|
|
10018
|
+
};
|
|
10019
|
+
};
|
|
8943
10020
|
webhookConversationUpdated: {
|
|
8944
10021
|
parameters: {
|
|
8945
10022
|
query?: never;
|