ultracart_rest_api_v2_typescript 4.1.72 → 4.1.73

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.
@@ -226,6 +226,7 @@ src/models/ConversationPbxCall.ts
226
226
  src/models/ConversationPbxCallAgent.ts
227
227
  src/models/ConversationPbxCallAiCost.ts
228
228
  src/models/ConversationPbxCallAiEngagement.ts
229
+ src/models/ConversationPbxCallAiSummary.ts
229
230
  src/models/ConversationPbxCallAiToolCall.ts
230
231
  src/models/ConversationPbxCallAiWhisper.ts
231
232
  src/models/ConversationPbxCallCaller.ts
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # UltraCart Typescript SDK
2
- ## ultracart_rest_api_v2_typescript@4.1.72
2
+ ## ultracart_rest_api_v2_typescript@4.1.73
3
3
 
4
4
  Every API method call has a sample for every language SDK. See https://github.com/UltraCart/sdk_samples
5
5
 
6
6
  Installation
7
7
 
8
8
  ```
9
- npm install ultracart_rest_api_v2_typescript@4.1.72 --save
9
+ npm install ultracart_rest_api_v2_typescript@4.1.73 --save
10
10
  ```
11
11
 
12
12
  ```typescript
@@ -85,6 +85,7 @@ Not every change is committed to every SDK.
85
85
 
86
86
  | Version | Date | Comments |
87
87
  | --: | :-: | --- |
88
+ | 4.1.73 | 04/13/2026 | conversation pbx - queue configuration for ai summary and call record zoho desk |
88
89
  | 4.1.72 | 04/11/2026 | conversation pbx - voicemail notification channels |
89
90
  | 4.1.71 | 04/06/2026 | coupons - new percent_off_items_with_minimum_item_amount |
90
91
  | 4.1.70 | 04/03/2026 | conversation pbx - queue callback settings |
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import { ConversationPbxCallAgent } from './ConversationPbxCallAgent';
13
13
  import { ConversationPbxCallAiEngagement } from './ConversationPbxCallAiEngagement';
14
+ import { ConversationPbxCallAiSummary } from './ConversationPbxCallAiSummary';
14
15
  import { ConversationPbxCallCaller } from './ConversationPbxCallCaller';
15
16
  import { ConversationPbxCallFinancial } from './ConversationPbxCallFinancial';
16
17
  import { ConversationPbxCallHold } from './ConversationPbxCallHold';
@@ -42,6 +43,12 @@ export interface ConversationPbxCall {
42
43
  * @memberof ConversationPbxCall
43
44
  */
44
45
  ai_agent_engagements?: Array<ConversationPbxCallAiEngagement>;
46
+ /**
47
+ *
48
+ * @type {ConversationPbxCallAiSummary}
49
+ * @memberof ConversationPbxCall
50
+ */
51
+ ai_summary?: ConversationPbxCallAiSummary;
45
52
  /**
46
53
  * Twilio call SID for the primary (customer) call leg
47
54
  * @type {string}
@@ -156,6 +163,18 @@ export interface ConversationPbxCall {
156
163
  * @memberof ConversationPbxCall
157
164
  */
158
165
  updated_at_dts?: string;
166
+ /**
167
+ * Zoho Desk ticket ID if a ticket was created for this call
168
+ * @type {string}
169
+ * @memberof ConversationPbxCall
170
+ */
171
+ zoho_desk_ticket_id?: string;
172
+ /**
173
+ * URL to the Zoho Desk ticket if a ticket was created for this call
174
+ * @type {string}
175
+ * @memberof ConversationPbxCall
176
+ */
177
+ zoho_desk_ticket_url?: string;
159
178
  }
160
179
  /**
161
180
  * Check if a given object implements the ConversationPbxCall interface.
@@ -17,6 +17,7 @@ exports.ConversationPbxCallToJSON = exports.ConversationPbxCallFromJSONTyped = e
17
17
  var runtime_1 = require("../runtime");
18
18
  var ConversationPbxCallAgent_1 = require("./ConversationPbxCallAgent");
19
19
  var ConversationPbxCallAiEngagement_1 = require("./ConversationPbxCallAiEngagement");
20
+ var ConversationPbxCallAiSummary_1 = require("./ConversationPbxCallAiSummary");
20
21
  var ConversationPbxCallCaller_1 = require("./ConversationPbxCallCaller");
21
22
  var ConversationPbxCallFinancial_1 = require("./ConversationPbxCallFinancial");
22
23
  var ConversationPbxCallHold_1 = require("./ConversationPbxCallHold");
@@ -44,6 +45,7 @@ function ConversationPbxCallFromJSONTyped(json, ignoreDiscriminator) {
44
45
  'account_sid': !(0, runtime_1.exists)(json, 'account_sid') ? undefined : json['account_sid'],
45
46
  'agents': !(0, runtime_1.exists)(json, 'agents') ? undefined : (json['agents'].map(ConversationPbxCallAgent_1.ConversationPbxCallAgentFromJSON)),
46
47
  'ai_agent_engagements': !(0, runtime_1.exists)(json, 'ai_agent_engagements') ? undefined : (json['ai_agent_engagements'].map(ConversationPbxCallAiEngagement_1.ConversationPbxCallAiEngagementFromJSON)),
48
+ 'ai_summary': !(0, runtime_1.exists)(json, 'ai_summary') ? undefined : (0, ConversationPbxCallAiSummary_1.ConversationPbxCallAiSummaryFromJSON)(json['ai_summary']),
47
49
  'call_sid': !(0, runtime_1.exists)(json, 'call_sid') ? undefined : json['call_sid'],
48
50
  'call_uuid': !(0, runtime_1.exists)(json, 'call_uuid') ? undefined : json['call_uuid'],
49
51
  'caller': !(0, runtime_1.exists)(json, 'caller') ? undefined : (0, ConversationPbxCallCaller_1.ConversationPbxCallCallerFromJSON)(json['caller']),
@@ -63,6 +65,8 @@ function ConversationPbxCallFromJSONTyped(json, ignoreDiscriminator) {
63
65
  'timeline': !(0, runtime_1.exists)(json, 'timeline') ? undefined : (0, ConversationPbxCallTimeline_1.ConversationPbxCallTimelineFromJSON)(json['timeline']),
64
66
  'transfers': !(0, runtime_1.exists)(json, 'transfers') ? undefined : (json['transfers'].map(ConversationPbxCallTransfer_1.ConversationPbxCallTransferFromJSON)),
65
67
  'updated_at_dts': !(0, runtime_1.exists)(json, 'updated_at_dts') ? undefined : json['updated_at_dts'],
68
+ 'zoho_desk_ticket_id': !(0, runtime_1.exists)(json, 'zoho_desk_ticket_id') ? undefined : json['zoho_desk_ticket_id'],
69
+ 'zoho_desk_ticket_url': !(0, runtime_1.exists)(json, 'zoho_desk_ticket_url') ? undefined : json['zoho_desk_ticket_url'],
66
70
  };
67
71
  }
68
72
  exports.ConversationPbxCallFromJSONTyped = ConversationPbxCallFromJSONTyped;
@@ -77,6 +81,7 @@ function ConversationPbxCallToJSON(value) {
77
81
  'account_sid': value.account_sid,
78
82
  'agents': value.agents === undefined ? undefined : (value.agents.map(ConversationPbxCallAgent_1.ConversationPbxCallAgentToJSON)),
79
83
  'ai_agent_engagements': value.ai_agent_engagements === undefined ? undefined : (value.ai_agent_engagements.map(ConversationPbxCallAiEngagement_1.ConversationPbxCallAiEngagementToJSON)),
84
+ 'ai_summary': (0, ConversationPbxCallAiSummary_1.ConversationPbxCallAiSummaryToJSON)(value.ai_summary),
80
85
  'call_sid': value.call_sid,
81
86
  'call_uuid': value.call_uuid,
82
87
  'caller': (0, ConversationPbxCallCaller_1.ConversationPbxCallCallerToJSON)(value.caller),
@@ -96,6 +101,8 @@ function ConversationPbxCallToJSON(value) {
96
101
  'timeline': (0, ConversationPbxCallTimeline_1.ConversationPbxCallTimelineToJSON)(value.timeline),
97
102
  'transfers': value.transfers === undefined ? undefined : (value.transfers.map(ConversationPbxCallTransfer_1.ConversationPbxCallTransferToJSON)),
98
103
  'updated_at_dts': value.updated_at_dts,
104
+ 'zoho_desk_ticket_id': value.zoho_desk_ticket_id,
105
+ 'zoho_desk_ticket_url': value.zoho_desk_ticket_url,
99
106
  };
100
107
  }
101
108
  exports.ConversationPbxCallToJSON = ConversationPbxCallToJSON;
@@ -0,0 +1,100 @@
1
+ /**
2
+ * UltraCart Rest API V2
3
+ * UltraCart REST API Version 2
4
+ *
5
+ * The version of the OpenAPI document: 2.0.0
6
+ * Contact: support@ultracart.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface ConversationPbxCallAiSummary
16
+ */
17
+ export interface ConversationPbxCallAiSummary {
18
+ /**
19
+ * Action items identified during the call
20
+ * @type {Array<string>}
21
+ * @memberof ConversationPbxCallAiSummary
22
+ */
23
+ action_items?: Array<string>;
24
+ /**
25
+ * Category of the call (e.g. support, sales, billing)
26
+ * @type {string}
27
+ * @memberof ConversationPbxCallAiSummary
28
+ */
29
+ call_category?: string;
30
+ /**
31
+ * Number of output tokens used to generate the summary
32
+ * @type {number}
33
+ * @memberof ConversationPbxCallAiSummary
34
+ */
35
+ completion_tokens?: number;
36
+ /**
37
+ * Cost of generating the summary in the specified currency
38
+ * @type {number}
39
+ * @memberof ConversationPbxCallAiSummary
40
+ */
41
+ cost?: number;
42
+ /**
43
+ * Currency code for the summary cost (always USD)
44
+ * @type {string}
45
+ * @memberof ConversationPbxCallAiSummary
46
+ */
47
+ cost_currency?: string;
48
+ /**
49
+ * Timestamp when the summary was generated
50
+ * @type {string}
51
+ * @memberof ConversationPbxCallAiSummary
52
+ */
53
+ generated_at_dts?: string;
54
+ /**
55
+ * Key topics discussed during the call
56
+ * @type {Array<string>}
57
+ * @memberof ConversationPbxCallAiSummary
58
+ */
59
+ key_topics?: Array<string>;
60
+ /**
61
+ * AI model used to generate the summary (e.g. grok-4.1-fast)
62
+ * @type {string}
63
+ * @memberof ConversationPbxCallAiSummary
64
+ */
65
+ model?: string;
66
+ /**
67
+ * Number of input tokens used to generate the summary
68
+ * @type {number}
69
+ * @memberof ConversationPbxCallAiSummary
70
+ */
71
+ prompt_tokens?: number;
72
+ /**
73
+ * Overall sentiment of the call
74
+ * @type {string}
75
+ * @memberof ConversationPbxCallAiSummary
76
+ */
77
+ sentiment?: ConversationPbxCallAiSummarySentimentEnum;
78
+ /**
79
+ * 2-3 sentence synopsis of the call
80
+ * @type {string}
81
+ * @memberof ConversationPbxCallAiSummary
82
+ */
83
+ summary?: string;
84
+ }
85
+ /**
86
+ * @export
87
+ */
88
+ export declare const ConversationPbxCallAiSummarySentimentEnum: {
89
+ readonly Positive: "positive";
90
+ readonly Neutral: "neutral";
91
+ readonly Negative: "negative";
92
+ };
93
+ export type ConversationPbxCallAiSummarySentimentEnum = typeof ConversationPbxCallAiSummarySentimentEnum[keyof typeof ConversationPbxCallAiSummarySentimentEnum];
94
+ /**
95
+ * Check if a given object implements the ConversationPbxCallAiSummary interface.
96
+ */
97
+ export declare function instanceOfConversationPbxCallAiSummary(value: object): boolean;
98
+ export declare function ConversationPbxCallAiSummaryFromJSON(json: any): ConversationPbxCallAiSummary;
99
+ export declare function ConversationPbxCallAiSummaryFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConversationPbxCallAiSummary;
100
+ export declare function ConversationPbxCallAiSummaryToJSON(value?: ConversationPbxCallAiSummary | null): any;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * UltraCart Rest API V2
6
+ * UltraCart REST API Version 2
7
+ *
8
+ * The version of the OpenAPI document: 2.0.0
9
+ * Contact: support@ultracart.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ConversationPbxCallAiSummaryToJSON = exports.ConversationPbxCallAiSummaryFromJSONTyped = exports.ConversationPbxCallAiSummaryFromJSON = exports.instanceOfConversationPbxCallAiSummary = exports.ConversationPbxCallAiSummarySentimentEnum = void 0;
17
+ var runtime_1 = require("../runtime");
18
+ /**
19
+ * @export
20
+ */
21
+ exports.ConversationPbxCallAiSummarySentimentEnum = {
22
+ Positive: 'positive',
23
+ Neutral: 'neutral',
24
+ Negative: 'negative'
25
+ };
26
+ /**
27
+ * Check if a given object implements the ConversationPbxCallAiSummary interface.
28
+ */
29
+ function instanceOfConversationPbxCallAiSummary(value) {
30
+ var isInstance = true;
31
+ return isInstance;
32
+ }
33
+ exports.instanceOfConversationPbxCallAiSummary = instanceOfConversationPbxCallAiSummary;
34
+ function ConversationPbxCallAiSummaryFromJSON(json) {
35
+ return ConversationPbxCallAiSummaryFromJSONTyped(json, false);
36
+ }
37
+ exports.ConversationPbxCallAiSummaryFromJSON = ConversationPbxCallAiSummaryFromJSON;
38
+ function ConversationPbxCallAiSummaryFromJSONTyped(json, ignoreDiscriminator) {
39
+ if ((json === undefined) || (json === null)) {
40
+ return json;
41
+ }
42
+ return {
43
+ 'action_items': !(0, runtime_1.exists)(json, 'action_items') ? undefined : json['action_items'],
44
+ 'call_category': !(0, runtime_1.exists)(json, 'call_category') ? undefined : json['call_category'],
45
+ 'completion_tokens': !(0, runtime_1.exists)(json, 'completion_tokens') ? undefined : json['completion_tokens'],
46
+ 'cost': !(0, runtime_1.exists)(json, 'cost') ? undefined : json['cost'],
47
+ 'cost_currency': !(0, runtime_1.exists)(json, 'cost_currency') ? undefined : json['cost_currency'],
48
+ 'generated_at_dts': !(0, runtime_1.exists)(json, 'generated_at_dts') ? undefined : json['generated_at_dts'],
49
+ 'key_topics': !(0, runtime_1.exists)(json, 'key_topics') ? undefined : json['key_topics'],
50
+ 'model': !(0, runtime_1.exists)(json, 'model') ? undefined : json['model'],
51
+ 'prompt_tokens': !(0, runtime_1.exists)(json, 'prompt_tokens') ? undefined : json['prompt_tokens'],
52
+ 'sentiment': !(0, runtime_1.exists)(json, 'sentiment') ? undefined : json['sentiment'],
53
+ 'summary': !(0, runtime_1.exists)(json, 'summary') ? undefined : json['summary'],
54
+ };
55
+ }
56
+ exports.ConversationPbxCallAiSummaryFromJSONTyped = ConversationPbxCallAiSummaryFromJSONTyped;
57
+ function ConversationPbxCallAiSummaryToJSON(value) {
58
+ if (value === undefined) {
59
+ return undefined;
60
+ }
61
+ if (value === null) {
62
+ return null;
63
+ }
64
+ return {
65
+ 'action_items': value.action_items,
66
+ 'call_category': value.call_category,
67
+ 'completion_tokens': value.completion_tokens,
68
+ 'cost': value.cost,
69
+ 'cost_currency': value.cost_currency,
70
+ 'generated_at_dts': value.generated_at_dts,
71
+ 'key_topics': value.key_topics,
72
+ 'model': value.model,
73
+ 'prompt_tokens': value.prompt_tokens,
74
+ 'sentiment': value.sentiment,
75
+ 'summary': value.summary,
76
+ };
77
+ }
78
+ exports.ConversationPbxCallAiSummaryToJSON = ConversationPbxCallAiSummaryToJSON;
@@ -33,6 +33,12 @@ export interface ConversationPbxCallFinancial {
33
33
  * @memberof ConversationPbxCallFinancial
34
34
  */
35
35
  ai_agent_cost_currency?: string;
36
+ /**
37
+ * AI summary generation cost (LLM call made by pbx-transcript-formatter after the call ends)
38
+ * @type {number}
39
+ * @memberof ConversationPbxCallFinancial
40
+ */
41
+ ai_summary_cost?: number;
36
42
  /**
37
43
  * Currency for call price (default USD)
38
44
  * @type {string}
@@ -35,6 +35,7 @@ function ConversationPbxCallFinancialFromJSONTyped(json, ignoreDiscriminator) {
35
35
  'ai_agent_billed_minutes': !(0, runtime_1.exists)(json, 'ai_agent_billed_minutes') ? undefined : json['ai_agent_billed_minutes'],
36
36
  'ai_agent_cost': !(0, runtime_1.exists)(json, 'ai_agent_cost') ? undefined : json['ai_agent_cost'],
37
37
  'ai_agent_cost_currency': !(0, runtime_1.exists)(json, 'ai_agent_cost_currency') ? undefined : json['ai_agent_cost_currency'],
38
+ 'ai_summary_cost': !(0, runtime_1.exists)(json, 'ai_summary_cost') ? undefined : json['ai_summary_cost'],
38
39
  'call_currency': !(0, runtime_1.exists)(json, 'call_currency') ? undefined : json['call_currency'],
39
40
  'call_price': !(0, runtime_1.exists)(json, 'call_price') ? undefined : json['call_price'],
40
41
  'call_price_estimated': !(0, runtime_1.exists)(json, 'call_price_estimated') ? undefined : json['call_price_estimated'],
@@ -53,6 +54,7 @@ function ConversationPbxCallFinancialToJSON(value) {
53
54
  'ai_agent_billed_minutes': value.ai_agent_billed_minutes,
54
55
  'ai_agent_cost': value.ai_agent_cost,
55
56
  'ai_agent_cost_currency': value.ai_agent_cost_currency,
57
+ 'ai_summary_cost': value.ai_summary_cost,
56
58
  'call_currency': value.call_currency,
57
59
  'call_price': value.call_price,
58
60
  'call_price_estimated': value.call_price_estimated,
@@ -22,6 +22,18 @@ export interface ConversationPbxQueue {
22
22
  * @memberof ConversationPbxQueue
23
23
  */
24
24
  ai_priority?: ConversationPbxQueueAiPriorityEnum;
25
+ /**
26
+ * If true, AI summaries are generated for answered calls in this queue
27
+ * @type {boolean}
28
+ * @memberof ConversationPbxQueue
29
+ */
30
+ ai_summary_enabled?: boolean;
31
+ /**
32
+ * Custom instructions injected into the AI summary system prompt for this queue
33
+ * @type {string}
34
+ * @memberof ConversationPbxQueue
35
+ */
36
+ ai_summary_instructions?: string;
25
37
  /**
26
38
  * AI timeout seconds
27
39
  * @type {number}
@@ -232,6 +244,18 @@ export interface ConversationPbxQueue {
232
244
  * @memberof ConversationPbxQueue
233
245
  */
234
246
  wrap_up_seconds?: number;
247
+ /**
248
+ * Zoho Desk department ID to create tickets in
249
+ * @type {string}
250
+ * @memberof ConversationPbxQueue
251
+ */
252
+ zoho_desk_department_id?: string;
253
+ /**
254
+ * If true, a Zoho Desk ticket is automatically created for answered calls in this queue
255
+ * @type {boolean}
256
+ * @memberof ConversationPbxQueue
257
+ */
258
+ zoho_desk_ticket_enabled?: boolean;
235
259
  }
236
260
  /**
237
261
  * @export
@@ -56,6 +56,8 @@ function ConversationPbxQueueFromJSONTyped(json, ignoreDiscriminator) {
56
56
  }
57
57
  return {
58
58
  'ai_priority': !(0, runtime_1.exists)(json, 'ai_priority') ? undefined : json['ai_priority'],
59
+ 'ai_summary_enabled': !(0, runtime_1.exists)(json, 'ai_summary_enabled') ? undefined : json['ai_summary_enabled'],
60
+ 'ai_summary_instructions': !(0, runtime_1.exists)(json, 'ai_summary_instructions') ? undefined : json['ai_summary_instructions'],
59
61
  'ai_timeout_seconds': !(0, runtime_1.exists)(json, 'ai_timeout_seconds') ? undefined : json['ai_timeout_seconds'],
60
62
  'announce_queue_position': !(0, runtime_1.exists)(json, 'announce_queue_position') ? undefined : json['announce_queue_position'],
61
63
  'automatic_coach_agent_uuid': !(0, runtime_1.exists)(json, 'automatic_coach_agent_uuid') ? undefined : json['automatic_coach_agent_uuid'],
@@ -91,6 +93,8 @@ function ConversationPbxQueueFromJSONTyped(json, ignoreDiscriminator) {
91
93
  'wait_critical_seconds': !(0, runtime_1.exists)(json, 'wait_critical_seconds') ? undefined : json['wait_critical_seconds'],
92
94
  'wait_warning_seconds': !(0, runtime_1.exists)(json, 'wait_warning_seconds') ? undefined : json['wait_warning_seconds'],
93
95
  'wrap_up_seconds': !(0, runtime_1.exists)(json, 'wrap_up_seconds') ? undefined : json['wrap_up_seconds'],
96
+ 'zoho_desk_department_id': !(0, runtime_1.exists)(json, 'zoho_desk_department_id') ? undefined : json['zoho_desk_department_id'],
97
+ 'zoho_desk_ticket_enabled': !(0, runtime_1.exists)(json, 'zoho_desk_ticket_enabled') ? undefined : json['zoho_desk_ticket_enabled'],
94
98
  };
95
99
  }
96
100
  exports.ConversationPbxQueueFromJSONTyped = ConversationPbxQueueFromJSONTyped;
@@ -103,6 +107,8 @@ function ConversationPbxQueueToJSON(value) {
103
107
  }
104
108
  return {
105
109
  'ai_priority': value.ai_priority,
110
+ 'ai_summary_enabled': value.ai_summary_enabled,
111
+ 'ai_summary_instructions': value.ai_summary_instructions,
106
112
  'ai_timeout_seconds': value.ai_timeout_seconds,
107
113
  'announce_queue_position': value.announce_queue_position,
108
114
  'automatic_coach_agent_uuid': value.automatic_coach_agent_uuid,
@@ -138,6 +144,8 @@ function ConversationPbxQueueToJSON(value) {
138
144
  'wait_critical_seconds': value.wait_critical_seconds,
139
145
  'wait_warning_seconds': value.wait_warning_seconds,
140
146
  'wrap_up_seconds': value.wrap_up_seconds,
147
+ 'zoho_desk_department_id': value.zoho_desk_department_id,
148
+ 'zoho_desk_ticket_enabled': value.zoho_desk_ticket_enabled,
141
149
  };
142
150
  }
143
151
  exports.ConversationPbxQueueToJSON = ConversationPbxQueueToJSON;
@@ -200,6 +200,7 @@ export * from './ConversationPbxCall';
200
200
  export * from './ConversationPbxCallAgent';
201
201
  export * from './ConversationPbxCallAiCost';
202
202
  export * from './ConversationPbxCallAiEngagement';
203
+ export * from './ConversationPbxCallAiSummary';
203
204
  export * from './ConversationPbxCallAiToolCall';
204
205
  export * from './ConversationPbxCallAiWhisper';
205
206
  export * from './ConversationPbxCallCaller';
@@ -218,6 +218,7 @@ __exportStar(require("./ConversationPbxCall"), exports);
218
218
  __exportStar(require("./ConversationPbxCallAgent"), exports);
219
219
  __exportStar(require("./ConversationPbxCallAiCost"), exports);
220
220
  __exportStar(require("./ConversationPbxCallAiEngagement"), exports);
221
+ __exportStar(require("./ConversationPbxCallAiSummary"), exports);
221
222
  __exportStar(require("./ConversationPbxCallAiToolCall"), exports);
222
223
  __exportStar(require("./ConversationPbxCallAiWhisper"), exports);
223
224
  __exportStar(require("./ConversationPbxCallCaller"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ultracart_rest_api_v2_typescript",
3
- "version": "4.1.72",
3
+ "version": "4.1.73",
4
4
  "description": "UltraCart Rest TypeScript SDK",
5
5
  "author": "UltraCart",
6
6
  "repository": {
@@ -25,6 +25,12 @@ import {
25
25
  ConversationPbxCallAiEngagementFromJSONTyped,
26
26
  ConversationPbxCallAiEngagementToJSON,
27
27
  } from './ConversationPbxCallAiEngagement';
28
+ import {
29
+ ConversationPbxCallAiSummary,
30
+ ConversationPbxCallAiSummaryFromJSON,
31
+ ConversationPbxCallAiSummaryFromJSONTyped,
32
+ ConversationPbxCallAiSummaryToJSON,
33
+ } from './ConversationPbxCallAiSummary';
28
34
  import {
29
35
  ConversationPbxCallCaller,
30
36
  ConversationPbxCallCallerFromJSON,
@@ -92,6 +98,12 @@ export interface ConversationPbxCall {
92
98
  * @memberof ConversationPbxCall
93
99
  */
94
100
  ai_agent_engagements?: Array<ConversationPbxCallAiEngagement>;
101
+ /**
102
+ *
103
+ * @type {ConversationPbxCallAiSummary}
104
+ * @memberof ConversationPbxCall
105
+ */
106
+ ai_summary?: ConversationPbxCallAiSummary;
95
107
  /**
96
108
  * Twilio call SID for the primary (customer) call leg
97
109
  * @type {string}
@@ -206,6 +218,18 @@ export interface ConversationPbxCall {
206
218
  * @memberof ConversationPbxCall
207
219
  */
208
220
  updated_at_dts?: string;
221
+ /**
222
+ * Zoho Desk ticket ID if a ticket was created for this call
223
+ * @type {string}
224
+ * @memberof ConversationPbxCall
225
+ */
226
+ zoho_desk_ticket_id?: string;
227
+ /**
228
+ * URL to the Zoho Desk ticket if a ticket was created for this call
229
+ * @type {string}
230
+ * @memberof ConversationPbxCall
231
+ */
232
+ zoho_desk_ticket_url?: string;
209
233
  }
210
234
 
211
235
 
@@ -232,6 +256,7 @@ export function ConversationPbxCallFromJSONTyped(json: any, ignoreDiscriminator:
232
256
  'account_sid': !exists(json, 'account_sid') ? undefined : json['account_sid'],
233
257
  'agents': !exists(json, 'agents') ? undefined : ((json['agents'] as Array<any>).map(ConversationPbxCallAgentFromJSON)),
234
258
  'ai_agent_engagements': !exists(json, 'ai_agent_engagements') ? undefined : ((json['ai_agent_engagements'] as Array<any>).map(ConversationPbxCallAiEngagementFromJSON)),
259
+ 'ai_summary': !exists(json, 'ai_summary') ? undefined : ConversationPbxCallAiSummaryFromJSON(json['ai_summary']),
235
260
  'call_sid': !exists(json, 'call_sid') ? undefined : json['call_sid'],
236
261
  'call_uuid': !exists(json, 'call_uuid') ? undefined : json['call_uuid'],
237
262
  'caller': !exists(json, 'caller') ? undefined : ConversationPbxCallCallerFromJSON(json['caller']),
@@ -251,6 +276,8 @@ export function ConversationPbxCallFromJSONTyped(json: any, ignoreDiscriminator:
251
276
  'timeline': !exists(json, 'timeline') ? undefined : ConversationPbxCallTimelineFromJSON(json['timeline']),
252
277
  'transfers': !exists(json, 'transfers') ? undefined : ((json['transfers'] as Array<any>).map(ConversationPbxCallTransferFromJSON)),
253
278
  'updated_at_dts': !exists(json, 'updated_at_dts') ? undefined : json['updated_at_dts'],
279
+ 'zoho_desk_ticket_id': !exists(json, 'zoho_desk_ticket_id') ? undefined : json['zoho_desk_ticket_id'],
280
+ 'zoho_desk_ticket_url': !exists(json, 'zoho_desk_ticket_url') ? undefined : json['zoho_desk_ticket_url'],
254
281
  };
255
282
  }
256
283
 
@@ -266,6 +293,7 @@ export function ConversationPbxCallToJSON(value?: ConversationPbxCall | null): a
266
293
  'account_sid': value.account_sid,
267
294
  'agents': value.agents === undefined ? undefined : ((value.agents as Array<any>).map(ConversationPbxCallAgentToJSON)),
268
295
  'ai_agent_engagements': value.ai_agent_engagements === undefined ? undefined : ((value.ai_agent_engagements as Array<any>).map(ConversationPbxCallAiEngagementToJSON)),
296
+ 'ai_summary': ConversationPbxCallAiSummaryToJSON(value.ai_summary),
269
297
  'call_sid': value.call_sid,
270
298
  'call_uuid': value.call_uuid,
271
299
  'caller': ConversationPbxCallCallerToJSON(value.caller),
@@ -285,6 +313,8 @@ export function ConversationPbxCallToJSON(value?: ConversationPbxCall | null): a
285
313
  'timeline': ConversationPbxCallTimelineToJSON(value.timeline),
286
314
  'transfers': value.transfers === undefined ? undefined : ((value.transfers as Array<any>).map(ConversationPbxCallTransferToJSON)),
287
315
  'updated_at_dts': value.updated_at_dts,
316
+ 'zoho_desk_ticket_id': value.zoho_desk_ticket_id,
317
+ 'zoho_desk_ticket_url': value.zoho_desk_ticket_url,
288
318
  };
289
319
  }
290
320
 
@@ -0,0 +1,158 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * UltraCart Rest API V2
5
+ * UltraCart REST API Version 2
6
+ *
7
+ * The version of the OpenAPI document: 2.0.0
8
+ * Contact: support@ultracart.com
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { exists, mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface ConversationPbxCallAiSummary
20
+ */
21
+ export interface ConversationPbxCallAiSummary {
22
+ /**
23
+ * Action items identified during the call
24
+ * @type {Array<string>}
25
+ * @memberof ConversationPbxCallAiSummary
26
+ */
27
+ action_items?: Array<string>;
28
+ /**
29
+ * Category of the call (e.g. support, sales, billing)
30
+ * @type {string}
31
+ * @memberof ConversationPbxCallAiSummary
32
+ */
33
+ call_category?: string;
34
+ /**
35
+ * Number of output tokens used to generate the summary
36
+ * @type {number}
37
+ * @memberof ConversationPbxCallAiSummary
38
+ */
39
+ completion_tokens?: number;
40
+ /**
41
+ * Cost of generating the summary in the specified currency
42
+ * @type {number}
43
+ * @memberof ConversationPbxCallAiSummary
44
+ */
45
+ cost?: number;
46
+ /**
47
+ * Currency code for the summary cost (always USD)
48
+ * @type {string}
49
+ * @memberof ConversationPbxCallAiSummary
50
+ */
51
+ cost_currency?: string;
52
+ /**
53
+ * Timestamp when the summary was generated
54
+ * @type {string}
55
+ * @memberof ConversationPbxCallAiSummary
56
+ */
57
+ generated_at_dts?: string;
58
+ /**
59
+ * Key topics discussed during the call
60
+ * @type {Array<string>}
61
+ * @memberof ConversationPbxCallAiSummary
62
+ */
63
+ key_topics?: Array<string>;
64
+ /**
65
+ * AI model used to generate the summary (e.g. grok-4.1-fast)
66
+ * @type {string}
67
+ * @memberof ConversationPbxCallAiSummary
68
+ */
69
+ model?: string;
70
+ /**
71
+ * Number of input tokens used to generate the summary
72
+ * @type {number}
73
+ * @memberof ConversationPbxCallAiSummary
74
+ */
75
+ prompt_tokens?: number;
76
+ /**
77
+ * Overall sentiment of the call
78
+ * @type {string}
79
+ * @memberof ConversationPbxCallAiSummary
80
+ */
81
+ sentiment?: ConversationPbxCallAiSummarySentimentEnum;
82
+ /**
83
+ * 2-3 sentence synopsis of the call
84
+ * @type {string}
85
+ * @memberof ConversationPbxCallAiSummary
86
+ */
87
+ summary?: string;
88
+ }
89
+
90
+
91
+
92
+ /**
93
+ * @export
94
+ */
95
+ export const ConversationPbxCallAiSummarySentimentEnum = {
96
+ Positive: 'positive',
97
+ Neutral: 'neutral',
98
+ Negative: 'negative'
99
+ } as const;
100
+ export type ConversationPbxCallAiSummarySentimentEnum = typeof ConversationPbxCallAiSummarySentimentEnum[keyof typeof ConversationPbxCallAiSummarySentimentEnum];
101
+
102
+
103
+ /**
104
+ * Check if a given object implements the ConversationPbxCallAiSummary interface.
105
+ */
106
+ export function instanceOfConversationPbxCallAiSummary(value: object): boolean {
107
+ let isInstance = true;
108
+
109
+ return isInstance;
110
+ }
111
+
112
+ export function ConversationPbxCallAiSummaryFromJSON(json: any): ConversationPbxCallAiSummary {
113
+ return ConversationPbxCallAiSummaryFromJSONTyped(json, false);
114
+ }
115
+
116
+ export function ConversationPbxCallAiSummaryFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConversationPbxCallAiSummary {
117
+ if ((json === undefined) || (json === null)) {
118
+ return json;
119
+ }
120
+ return {
121
+
122
+ 'action_items': !exists(json, 'action_items') ? undefined : json['action_items'],
123
+ 'call_category': !exists(json, 'call_category') ? undefined : json['call_category'],
124
+ 'completion_tokens': !exists(json, 'completion_tokens') ? undefined : json['completion_tokens'],
125
+ 'cost': !exists(json, 'cost') ? undefined : json['cost'],
126
+ 'cost_currency': !exists(json, 'cost_currency') ? undefined : json['cost_currency'],
127
+ 'generated_at_dts': !exists(json, 'generated_at_dts') ? undefined : json['generated_at_dts'],
128
+ 'key_topics': !exists(json, 'key_topics') ? undefined : json['key_topics'],
129
+ 'model': !exists(json, 'model') ? undefined : json['model'],
130
+ 'prompt_tokens': !exists(json, 'prompt_tokens') ? undefined : json['prompt_tokens'],
131
+ 'sentiment': !exists(json, 'sentiment') ? undefined : json['sentiment'],
132
+ 'summary': !exists(json, 'summary') ? undefined : json['summary'],
133
+ };
134
+ }
135
+
136
+ export function ConversationPbxCallAiSummaryToJSON(value?: ConversationPbxCallAiSummary | null): any {
137
+ if (value === undefined) {
138
+ return undefined;
139
+ }
140
+ if (value === null) {
141
+ return null;
142
+ }
143
+ return {
144
+
145
+ 'action_items': value.action_items,
146
+ 'call_category': value.call_category,
147
+ 'completion_tokens': value.completion_tokens,
148
+ 'cost': value.cost,
149
+ 'cost_currency': value.cost_currency,
150
+ 'generated_at_dts': value.generated_at_dts,
151
+ 'key_topics': value.key_topics,
152
+ 'model': value.model,
153
+ 'prompt_tokens': value.prompt_tokens,
154
+ 'sentiment': value.sentiment,
155
+ 'summary': value.summary,
156
+ };
157
+ }
158
+
@@ -37,6 +37,12 @@ export interface ConversationPbxCallFinancial {
37
37
  * @memberof ConversationPbxCallFinancial
38
38
  */
39
39
  ai_agent_cost_currency?: string;
40
+ /**
41
+ * AI summary generation cost (LLM call made by pbx-transcript-formatter after the call ends)
42
+ * @type {number}
43
+ * @memberof ConversationPbxCallFinancial
44
+ */
45
+ ai_summary_cost?: number;
40
46
  /**
41
47
  * Currency for call price (default USD)
42
48
  * @type {string}
@@ -87,6 +93,7 @@ export function ConversationPbxCallFinancialFromJSONTyped(json: any, ignoreDiscr
87
93
  'ai_agent_billed_minutes': !exists(json, 'ai_agent_billed_minutes') ? undefined : json['ai_agent_billed_minutes'],
88
94
  'ai_agent_cost': !exists(json, 'ai_agent_cost') ? undefined : json['ai_agent_cost'],
89
95
  'ai_agent_cost_currency': !exists(json, 'ai_agent_cost_currency') ? undefined : json['ai_agent_cost_currency'],
96
+ 'ai_summary_cost': !exists(json, 'ai_summary_cost') ? undefined : json['ai_summary_cost'],
90
97
  'call_currency': !exists(json, 'call_currency') ? undefined : json['call_currency'],
91
98
  'call_price': !exists(json, 'call_price') ? undefined : json['call_price'],
92
99
  'call_price_estimated': !exists(json, 'call_price_estimated') ? undefined : json['call_price_estimated'],
@@ -106,6 +113,7 @@ export function ConversationPbxCallFinancialToJSON(value?: ConversationPbxCallFi
106
113
  'ai_agent_billed_minutes': value.ai_agent_billed_minutes,
107
114
  'ai_agent_cost': value.ai_agent_cost,
108
115
  'ai_agent_cost_currency': value.ai_agent_cost_currency,
116
+ 'ai_summary_cost': value.ai_summary_cost,
109
117
  'call_currency': value.call_currency,
110
118
  'call_price': value.call_price,
111
119
  'call_price_estimated': value.call_price_estimated,
@@ -32,6 +32,18 @@ export interface ConversationPbxQueue {
32
32
  * @memberof ConversationPbxQueue
33
33
  */
34
34
  ai_priority?: ConversationPbxQueueAiPriorityEnum;
35
+ /**
36
+ * If true, AI summaries are generated for answered calls in this queue
37
+ * @type {boolean}
38
+ * @memberof ConversationPbxQueue
39
+ */
40
+ ai_summary_enabled?: boolean;
41
+ /**
42
+ * Custom instructions injected into the AI summary system prompt for this queue
43
+ * @type {string}
44
+ * @memberof ConversationPbxQueue
45
+ */
46
+ ai_summary_instructions?: string;
35
47
  /**
36
48
  * AI timeout seconds
37
49
  * @type {number}
@@ -242,6 +254,18 @@ export interface ConversationPbxQueue {
242
254
  * @memberof ConversationPbxQueue
243
255
  */
244
256
  wrap_up_seconds?: number;
257
+ /**
258
+ * Zoho Desk department ID to create tickets in
259
+ * @type {string}
260
+ * @memberof ConversationPbxQueue
261
+ */
262
+ zoho_desk_department_id?: string;
263
+ /**
264
+ * If true, a Zoho Desk ticket is automatically created for answered calls in this queue
265
+ * @type {boolean}
266
+ * @memberof ConversationPbxQueue
267
+ */
268
+ zoho_desk_ticket_enabled?: boolean;
245
269
  }
246
270
 
247
271
 
@@ -295,6 +319,8 @@ export function ConversationPbxQueueFromJSONTyped(json: any, ignoreDiscriminator
295
319
  return {
296
320
 
297
321
  'ai_priority': !exists(json, 'ai_priority') ? undefined : json['ai_priority'],
322
+ 'ai_summary_enabled': !exists(json, 'ai_summary_enabled') ? undefined : json['ai_summary_enabled'],
323
+ 'ai_summary_instructions': !exists(json, 'ai_summary_instructions') ? undefined : json['ai_summary_instructions'],
298
324
  'ai_timeout_seconds': !exists(json, 'ai_timeout_seconds') ? undefined : json['ai_timeout_seconds'],
299
325
  'announce_queue_position': !exists(json, 'announce_queue_position') ? undefined : json['announce_queue_position'],
300
326
  'automatic_coach_agent_uuid': !exists(json, 'automatic_coach_agent_uuid') ? undefined : json['automatic_coach_agent_uuid'],
@@ -330,6 +356,8 @@ export function ConversationPbxQueueFromJSONTyped(json: any, ignoreDiscriminator
330
356
  'wait_critical_seconds': !exists(json, 'wait_critical_seconds') ? undefined : json['wait_critical_seconds'],
331
357
  'wait_warning_seconds': !exists(json, 'wait_warning_seconds') ? undefined : json['wait_warning_seconds'],
332
358
  'wrap_up_seconds': !exists(json, 'wrap_up_seconds') ? undefined : json['wrap_up_seconds'],
359
+ 'zoho_desk_department_id': !exists(json, 'zoho_desk_department_id') ? undefined : json['zoho_desk_department_id'],
360
+ 'zoho_desk_ticket_enabled': !exists(json, 'zoho_desk_ticket_enabled') ? undefined : json['zoho_desk_ticket_enabled'],
333
361
  };
334
362
  }
335
363
 
@@ -343,6 +371,8 @@ export function ConversationPbxQueueToJSON(value?: ConversationPbxQueue | null):
343
371
  return {
344
372
 
345
373
  'ai_priority': value.ai_priority,
374
+ 'ai_summary_enabled': value.ai_summary_enabled,
375
+ 'ai_summary_instructions': value.ai_summary_instructions,
346
376
  'ai_timeout_seconds': value.ai_timeout_seconds,
347
377
  'announce_queue_position': value.announce_queue_position,
348
378
  'automatic_coach_agent_uuid': value.automatic_coach_agent_uuid,
@@ -378,6 +408,8 @@ export function ConversationPbxQueueToJSON(value?: ConversationPbxQueue | null):
378
408
  'wait_critical_seconds': value.wait_critical_seconds,
379
409
  'wait_warning_seconds': value.wait_warning_seconds,
380
410
  'wrap_up_seconds': value.wrap_up_seconds,
411
+ 'zoho_desk_department_id': value.zoho_desk_department_id,
412
+ 'zoho_desk_ticket_enabled': value.zoho_desk_ticket_enabled,
381
413
  };
382
414
  }
383
415
 
@@ -202,6 +202,7 @@ export * from './ConversationPbxCall';
202
202
  export * from './ConversationPbxCallAgent';
203
203
  export * from './ConversationPbxCallAiCost';
204
204
  export * from './ConversationPbxCallAiEngagement';
205
+ export * from './ConversationPbxCallAiSummary';
205
206
  export * from './ConversationPbxCallAiToolCall';
206
207
  export * from './ConversationPbxCallAiWhisper';
207
208
  export * from './ConversationPbxCallCaller';