From f75fe6a8bd46dde143d913dd07ce2770b335ce50 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 10 Dec 2025 20:05:49 +0000 Subject: [PATCH] Update API specifications with fern api update --- fern/apis/api/openapi.json | 1110 +++++++++++++++++++++++++++++++++++- 1 file changed, 1079 insertions(+), 31 deletions(-) diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index 4d8ecfd1..f16a81b3 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -739,6 +739,16 @@ "operationId": "CallController_findAllPaginated", "summary": "List Calls", "parameters": [ + { + "name": "assistantIdAny", + "required": false, + "in": "query", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "schema": { + "example": "assistant-1,assistant-2,assistant-3", + "type": "string" + } + }, { "name": "assistantOverrides", "required": false, @@ -1195,6 +1205,15 @@ "operationId": "ChatController_listChats", "summary": "List Chats", "parameters": [ + { + "name": "id", + "required": false, + "in": "query", + "description": "This is the unique identifier for the chat to filter by.", + "schema": { + "type": "string" + } + }, { "name": "assistantId", "required": false, @@ -1204,6 +1223,16 @@ "type": "string" } }, + { + "name": "assistantIdAny", + "required": false, + "in": "query", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "schema": { + "example": "assistant-1,assistant-2,assistant-3", + "type": "string" + } + }, { "name": "squadId", "required": false, @@ -1421,6 +1450,252 @@ ] } }, + "/chat/export": { + "get": { + "operationId": "ChatController_chatsExport", + "summary": "Export Chats to CSV", + "parameters": [ + { + "name": "id", + "required": false, + "in": "query", + "description": "This is the unique identifier for the chat to filter by.", + "schema": { + "type": "string" + } + }, + { + "name": "assistantId", + "required": false, + "in": "query", + "description": "This is the unique identifier for the assistant that will be used for the chat.", + "schema": { + "type": "string" + } + }, + { + "name": "assistantIdAny", + "required": false, + "in": "query", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "schema": { + "example": "assistant-1,assistant-2,assistant-3", + "type": "string" + } + }, + { + "name": "squadId", + "required": false, + "in": "query", + "description": "This is the unique identifier for the squad that will be used for the chat.", + "schema": { + "type": "string" + } + }, + { + "name": "sessionId", + "required": false, + "in": "query", + "description": "This is the unique identifier for the session that will be used for the chat.", + "schema": { + "type": "string" + } + }, + { + "name": "previousChatId", + "required": false, + "in": "query", + "description": "This is the unique identifier for the previous chat to filter by.", + "schema": { + "type": "string" + } + }, + { + "name": "columns", + "required": false, + "in": "query", + "description": "Columns to include in the CSV export", + "schema": { + "default": [ + "id", + "assistantId", + "squadId", + "sessionId", + "previousChatId", + "cost", + "messages", + "output", + "createdAt", + "updatedAt" + ], + "enum": [ + "id", + "assistantId", + "squadId", + "sessionId", + "previousChatId", + "cost", + "messages", + "output", + "createdAt", + "updatedAt" + ], + "type": "string" + } + }, + { + "name": "email", + "required": false, + "in": "query", + "description": "This is the email address to send the export to.\nRequired if userId is not available in the request context.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "required": false, + "in": "query", + "description": "This is the format of the export.\n\n@default csv", + "schema": { + "default": "csv", + "enum": [ + "csv", + "json" + ], + "type": "string" + } + }, + { + "name": "page", + "required": false, + "in": "query", + "description": "This is the page number to return. Defaults to 1.", + "schema": { + "minimum": 1, + "type": "number" + } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "This is the sort order for pagination. Defaults to 'DESC'.", + "schema": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "This is the maximum number of items to return. Defaults to 100.", + "schema": { + "minimum": 0, + "maximum": 1000, + "type": "number" + } + }, + { + "name": "createdAtGt", + "required": false, + "in": "query", + "description": "This will return items where the createdAt is greater than the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "createdAtLt", + "required": false, + "in": "query", + "description": "This will return items where the createdAt is less than the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "createdAtGe", + "required": false, + "in": "query", + "description": "This will return items where the createdAt is greater than or equal to the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "createdAtLe", + "required": false, + "in": "query", + "description": "This will return items where the createdAt is less than or equal to the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "updatedAtGt", + "required": false, + "in": "query", + "description": "This will return items where the updatedAt is greater than the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "updatedAtLt", + "required": false, + "in": "query", + "description": "This will return items where the updatedAt is less than the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "updatedAtGe", + "required": false, + "in": "query", + "description": "This will return items where the updatedAt is greater than or equal to the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "updatedAtLe", + "required": false, + "in": "query", + "description": "This will return items where the updatedAt is less than or equal to the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Chats" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, "/chat/{id}": { "get": { "operationId": "ChatController_getChat", @@ -1906,6 +2181,15 @@ "operationId": "SessionController_findAllPaginated", "summary": "List Sessions", "parameters": [ + { + "name": "id", + "required": false, + "in": "query", + "description": "This is the unique identifier for the session to filter by.", + "schema": { + "type": "string" + } + }, { "name": "name", "required": false, @@ -1924,6 +2208,16 @@ "type": "string" } }, + { + "name": "assistantIdAny", + "required": false, + "in": "query", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "schema": { + "example": "assistant-1,assistant-2,assistant-3", + "type": "string" + } + }, { "name": "squadId", "required": false, @@ -2025,6 +2319,37 @@ "type": "string" } }, + { + "name": "customerNumberAny", + "required": false, + "in": "query", + "description": "Filter by any of the specified customer phone numbers (comma-separated).", + "schema": { + "example": "+1234567890,+0987654321", + "type": "string" + } + }, + { + "name": "phoneNumberId", + "required": false, + "in": "query", + "description": "This will return sessions with the specified phoneNumberId.", + "schema": { + "type": "string" + } + }, + { + "name": "phoneNumberIdAny", + "required": false, + "in": "query", + "description": "This will return sessions with any of the specified phoneNumberIds.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, { "name": "page", "required": false, @@ -2162,6 +2487,370 @@ ] } }, + "/session/export": { + "get": { + "operationId": "SessionController_sessionsExport", + "summary": "Export Sessions to CSV", + "parameters": [ + { + "name": "id", + "required": false, + "in": "query", + "description": "This is the unique identifier for the session to filter by.", + "schema": { + "type": "string" + } + }, + { + "name": "name", + "required": false, + "in": "query", + "description": "This is the name of the session to filter by.", + "schema": { + "type": "string" + } + }, + { + "name": "assistantId", + "required": false, + "in": "query", + "description": "This is the ID of the assistant to filter sessions by.", + "schema": { + "type": "string" + } + }, + { + "name": "assistantIdAny", + "required": false, + "in": "query", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "schema": { + "example": "assistant-1,assistant-2,assistant-3", + "type": "string" + } + }, + { + "name": "squadId", + "required": false, + "in": "query", + "description": "This is the ID of the squad to filter sessions by.", + "schema": { + "type": "string" + } + }, + { + "name": "workflowId", + "required": false, + "in": "query", + "description": "This is the ID of the workflow to filter sessions by.", + "schema": { + "type": "string" + } + }, + { + "required": false, + "description": "This is the flag to toggle the E164 check for the `number` field. This is an advanced property which should be used if you know your use case requires it.\n\nUse cases:\n- `false`: To allow non-E164 numbers like `+001234567890`, `1234`, or `abc`. This is useful for dialing out to non-E164 numbers on your SIP trunks.\n- `true` (default): To allow only E164 numbers like `+14155551234`. This is standard for PSTN calls.\n\nIf `false`, the `number` is still required to only contain alphanumeric characters (regex: `/^\\+?[a-zA-Z0-9]+$/`).\n\n@default true (E164 check is enabled)", + "name": "numberE164CheckEnabled", + "in": "query", + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "required": false, + "description": "This is the extension that will be dialed after the call is answered.", + "name": "extension", + "in": "query", + "schema": { + "maxLength": 10, + "example": null, + "type": "string" + } + }, + { + "name": "assistantOverrides", + "required": false, + "description": "These are the overrides for the assistant's settings and template variables specific to this customer.\nThis allows customization of the assistant's behavior for individual customers in batch calls.", + "allOf": [ + { + "$ref": "#/components/schemas/AssistantOverrides" + } + ], + "in": "query", + "schema": {} + }, + { + "required": false, + "description": "This is the number of the customer.", + "name": "number", + "in": "query", + "schema": { + "minLength": 3, + "maxLength": 40, + "type": "string" + } + }, + { + "required": false, + "description": "This is the SIP URI of the customer.", + "name": "sipUri", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "required": false, + "description": "This is the name of the customer. This is just for your own reference.\n\nFor SIP inbound calls, this is extracted from the `From` SIP header with format `\"Display Name\" `.", + "name": "name", + "in": "query", + "schema": { + "maxLength": 40, + "type": "string" + } + }, + { + "required": false, + "description": "This is the email of the customer.", + "name": "email", + "in": "query", + "schema": { + "maxLength": 40, + "type": "string" + } + }, + { + "required": false, + "description": "This is the external ID of the customer.", + "name": "externalId", + "in": "query", + "schema": { + "maxLength": 40, + "type": "string" + } + }, + { + "name": "customerNumberAny", + "required": false, + "in": "query", + "description": "Filter by any of the specified customer phone numbers (comma-separated).", + "schema": { + "example": "+1234567890,+0987654321", + "type": "string" + } + }, + { + "name": "columns", + "required": false, + "in": "query", + "description": "Columns to include in the CSV export", + "schema": { + "default": [ + "id", + "name", + "status", + "assistantId", + "squadId", + "customerName", + "customerNumber", + "phoneNumberId", + "cost", + "messages", + "createdAt", + "updatedAt" + ], + "enum": [ + "id", + "name", + "status", + "assistantId", + "squadId", + "customerName", + "customerNumber", + "phoneNumberId", + "cost", + "messages", + "createdAt", + "updatedAt" + ], + "type": "string" + } + }, + { + "name": "email", + "required": false, + "in": "query", + "description": "This is the email address to send the export to.\nRequired if userId is not available in the request context.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "required": false, + "in": "query", + "description": "This is the format of the export.\n\n@default csv", + "schema": { + "default": "csv", + "enum": [ + "csv", + "json" + ], + "type": "string" + } + }, + { + "name": "phoneNumberId", + "required": false, + "in": "query", + "description": "This will return sessions with the specified phoneNumberId.", + "schema": { + "type": "string" + } + }, + { + "name": "phoneNumberIdAny", + "required": false, + "in": "query", + "description": "This will return sessions with any of the specified phoneNumberIds.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "page", + "required": false, + "in": "query", + "description": "This is the page number to return. Defaults to 1.", + "schema": { + "minimum": 1, + "type": "number" + } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "This is the sort order for pagination. Defaults to 'DESC'.", + "schema": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "description": "This is the maximum number of items to return. Defaults to 100.", + "schema": { + "minimum": 0, + "maximum": 1000, + "type": "number" + } + }, + { + "name": "createdAtGt", + "required": false, + "in": "query", + "description": "This will return items where the createdAt is greater than the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "createdAtLt", + "required": false, + "in": "query", + "description": "This will return items where the createdAt is less than the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "createdAtGe", + "required": false, + "in": "query", + "description": "This will return items where the createdAt is greater than or equal to the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "createdAtLe", + "required": false, + "in": "query", + "description": "This will return items where the createdAt is less than or equal to the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "updatedAtGt", + "required": false, + "in": "query", + "description": "This will return items where the updatedAt is greater than the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "updatedAtLt", + "required": false, + "in": "query", + "description": "This will return items where the updatedAt is less than the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "updatedAtGe", + "required": false, + "in": "query", + "description": "This will return items where the updatedAt is greater than or equal to the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "updatedAtLe", + "required": false, + "in": "query", + "description": "This will return items where the updatedAt is less than or equal to the specified value.", + "schema": { + "format": "date-time", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "Sessions" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, "/session/{id}": { "get": { "operationId": "SessionController_findOne", @@ -8125,12 +8814,6 @@ "example": true, "default": false }, - "enablePartials": { - "type": "boolean", - "description": "This enables partial transcripts during speech recognition. When false, only final transcripts are returned.\n\n@default true", - "example": false, - "default": true - }, "maxDelay": { "type": "number", "description": "This sets the maximum delay in milliseconds for partial transcripts. Balances latency and accuracy.\n\n@default 3000", @@ -9921,12 +10604,6 @@ "example": true, "default": false }, - "enablePartials": { - "type": "boolean", - "description": "This enables partial transcripts during speech recognition. When false, only final transcripts are returned.\n\n@default true", - "example": false, - "default": true - }, "maxDelay": { "type": "number", "description": "This sets the maximum delay in milliseconds for partial transcripts. Balances latency and accuracy.\n\n@default 3000", @@ -17768,7 +18445,7 @@ }, "fullMessageHistoryEnabled": { "type": "boolean", - "description": "This determines whether the artifact contains the full message history, even after handoff context engineering. Defaults to false.", + "description": "This determines whether the artifact contains the full message history, even after handoff context engineering. Defaults to true.", "example": false }, "pcapEnabled": { @@ -33255,6 +33932,10 @@ "metadata": { "type": "object", "description": "The metadata associated with the message. Currently used to store the transcriber's word level confidence." + }, + "speakerLabel": { + "type": "string", + "description": "Stable speaker label for diarized user speakers (e.g., \"Speaker 1\")." } }, "required": [ @@ -33761,10 +34442,19 @@ "GetChatPaginatedDTO": { "type": "object", "properties": { + "id": { + "type": "string", + "description": "This is the unique identifier for the chat to filter by." + }, "assistantId": { "type": "string", "description": "This is the unique identifier for the assistant that will be used for the chat." }, + "assistantIdAny": { + "type": "string", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "example": "assistant-1,assistant-2,assistant-3" + }, "squadId": { "type": "string", "description": "This is the unique identifier for the squad that will be used for the chat." @@ -34292,6 +34982,136 @@ "input" ] }, + "ExportChatDTO": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "This is the unique identifier for the chat to filter by." + }, + "assistantId": { + "type": "string", + "description": "This is the unique identifier for the assistant that will be used for the chat." + }, + "assistantIdAny": { + "type": "string", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "example": "assistant-1,assistant-2,assistant-3" + }, + "squadId": { + "type": "string", + "description": "This is the unique identifier for the squad that will be used for the chat." + }, + "sessionId": { + "type": "string", + "description": "This is the unique identifier for the session that will be used for the chat." + }, + "previousChatId": { + "type": "string", + "description": "This is the unique identifier for the previous chat to filter by." + }, + "columns": { + "type": "string", + "description": "Columns to include in the CSV export", + "enum": [ + "id", + "assistantId", + "squadId", + "sessionId", + "previousChatId", + "cost", + "messages", + "output", + "createdAt", + "updatedAt" + ], + "default": [ + "id", + "assistantId", + "squadId", + "sessionId", + "previousChatId", + "cost", + "messages", + "output", + "createdAt", + "updatedAt" + ] + }, + "email": { + "type": "string", + "description": "This is the email address to send the export to.\nRequired if userId is not available in the request context." + }, + "format": { + "type": "string", + "description": "This is the format of the export.\n\n@default csv", + "enum": [ + "csv", + "json" + ], + "default": "csv" + }, + "page": { + "type": "number", + "description": "This is the page number to return. Defaults to 1.", + "minimum": 1 + }, + "sortOrder": { + "type": "string", + "description": "This is the sort order for pagination. Defaults to 'DESC'.", + "enum": [ + "ASC", + "DESC" + ] + }, + "limit": { + "type": "number", + "description": "This is the maximum number of items to return. Defaults to 100.", + "minimum": 0, + "maximum": 1000 + }, + "createdAtGt": { + "format": "date-time", + "type": "string", + "description": "This will return items where the createdAt is greater than the specified value." + }, + "createdAtLt": { + "format": "date-time", + "type": "string", + "description": "This will return items where the createdAt is less than the specified value." + }, + "createdAtGe": { + "format": "date-time", + "type": "string", + "description": "This will return items where the createdAt is greater than or equal to the specified value." + }, + "createdAtLe": { + "format": "date-time", + "type": "string", + "description": "This will return items where the createdAt is less than or equal to the specified value." + }, + "updatedAtGt": { + "format": "date-time", + "type": "string", + "description": "This will return items where the updatedAt is greater than the specified value." + }, + "updatedAtLt": { + "format": "date-time", + "type": "string", + "description": "This will return items where the updatedAt is less than the specified value." + }, + "updatedAtGe": { + "format": "date-time", + "type": "string", + "description": "This will return items where the updatedAt is greater than or equal to the specified value." + }, + "updatedAtLe": { + "format": "date-time", + "type": "string", + "description": "This will return items where the updatedAt is less than or equal to the specified value." + } + } + }, "ResponseOutputText": { "type": "object", "properties": { @@ -34557,6 +35377,26 @@ "sequence_number" ] }, + "DialPlanEntry": { + "type": "object", + "properties": { + "phoneNumberId": { + "type": "string", + "description": "The phone number ID to use for calling the customers in this entry." + }, + "customers": { + "description": "The list of customers to call using this phone number.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateCustomerDTO" + } + } + }, + "required": [ + "phoneNumberId", + "customers" + ] + }, "CreateCampaignDTO": { "type": "object", "properties": { @@ -34567,15 +35407,26 @@ }, "assistantId": { "type": "string", - "description": "This is the assistant ID that will be used for the campaign calls. Note: Either assistantId or workflowId can be used, but not both." + "description": "This is the assistant ID that will be used for the campaign calls. Note: Only one of assistantId, workflowId, or squadId can be used." }, "workflowId": { "type": "string", - "description": "This is the workflow ID that will be used for the campaign calls. Note: Either assistantId or workflowId can be used, but not both." + "description": "This is the workflow ID that will be used for the campaign calls. Note: Only one of assistantId, workflowId, or squadId can be used." + }, + "squadId": { + "type": "string", + "description": "This is the squad ID that will be used for the campaign calls. Note: Only one of assistantId, workflowId, or squadId can be used." }, "phoneNumberId": { "type": "string", - "description": "This is the phone number ID that will be used for the campaign calls." + "description": "This is the phone number ID that will be used for the campaign calls. Required if dialPlan is not provided. Note: phoneNumberId and dialPlan are mutually exclusive." + }, + "dialPlan": { + "description": "This is a list of dial entries, each specifying a phone number and the customers to call using that number. Use this when you want different phone numbers to call different sets of customers. Note: phoneNumberId and dialPlan are mutually exclusive.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DialPlanEntry" + } }, "schedulePlan": { "description": "This is the schedule plan for the campaign. Calls will start at startedAt and continue until your organization’s concurrency limit is reached. Any remaining calls will be retried for up to one hour as capacity becomes available. After that hour or after latestAt, whichever comes first, any calls that couldn’t be placed won’t be retried.", @@ -34586,7 +35437,7 @@ ] }, "customers": { - "description": "These are the customers that will be called in the campaign.", + "description": "These are the customers that will be called in the campaign. Required if dialPlan is not provided.", "type": "array", "items": { "$ref": "#/components/schemas/CreateCustomerDTO" @@ -34594,9 +35445,7 @@ } }, "required": [ - "name", - "phoneNumberId", - "customers" + "name" ] }, "Campaign": { @@ -34627,15 +35476,26 @@ }, "assistantId": { "type": "string", - "description": "This is the assistant ID that will be used for the campaign calls. Note: Either assistantId or workflowId can be used, but not both." + "description": "This is the assistant ID that will be used for the campaign calls. Note: Only one of assistantId, workflowId, or squadId can be used." }, "workflowId": { "type": "string", - "description": "This is the workflow ID that will be used for the campaign calls. Note: Either assistantId or workflowId can be used, but not both." + "description": "This is the workflow ID that will be used for the campaign calls. Note: Only one of assistantId, workflowId, or squadId can be used." + }, + "squadId": { + "type": "string", + "description": "This is the squad ID that will be used for the campaign calls. Note: Only one of assistantId, workflowId, or squadId can be used." }, "phoneNumberId": { "type": "string", - "description": "This is the phone number ID that will be used for the campaign calls." + "description": "This is the phone number ID that will be used for the campaign calls. Required if dialPlan is not provided. Note: phoneNumberId and dialPlan are mutually exclusive." + }, + "dialPlan": { + "description": "This is a list of dial entries, each specifying a phone number and the customers to call using that number. Use this when you want different phone numbers to call different sets of customers. Note: phoneNumberId and dialPlan are mutually exclusive.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DialPlanEntry" + } }, "schedulePlan": { "description": "This is the schedule plan for the campaign. Calls will start at startedAt and continue until your organization’s concurrency limit is reached. Any remaining calls will be retried for up to one hour as capacity becomes available. After that hour or after latestAt, whichever comes first, any calls that couldn’t be placed won’t be retried.", @@ -34646,7 +35506,7 @@ ] }, "customers": { - "description": "These are the customers that will be called in the campaign.", + "description": "These are the customers that will be called in the campaign. Required if dialPlan is not provided.", "type": "array", "items": { "$ref": "#/components/schemas/CreateCustomerDTO" @@ -34698,8 +35558,6 @@ "required": [ "status", "name", - "phoneNumberId", - "customers", "id", "orgId", "createdAt", @@ -34745,9 +35603,20 @@ "type": "string", "description": "This is the workflow ID that will be used for the campaign calls.\nCan only be updated if campaign is not in progress or has ended." }, + "squadId": { + "type": "string", + "description": "This is the squad ID that will be used for the campaign calls.\nCan only be updated if campaign is not in progress or has ended." + }, "phoneNumberId": { "type": "string", - "description": "This is the phone number ID that will be used for the campaign calls.\nCan only be updated if campaign is not in progress or has ended." + "description": "This is the phone number ID that will be used for the campaign calls.\nCan only be updated if campaign is not in progress or has ended.\nNote: `phoneNumberId` and `dialPlan` are mutually exclusive." + }, + "dialPlan": { + "description": "This is a list of dial entries, each specifying a phone number and the customers to call using that number. Can only be updated if campaign is not in progress or has ended. Note: phoneNumberId and dialPlan are mutually exclusive.", + "type": "array", + "items": { + "$ref": "#/components/schemas/DialPlanEntry" + } }, "schedulePlan": { "description": "This is the schedule plan for the campaign.\nCan only be updated if campaign is not in progress or has ended.", @@ -35072,6 +35941,10 @@ "GetSessionPaginatedDTO": { "type": "object", "properties": { + "id": { + "type": "string", + "description": "This is the unique identifier for the session to filter by." + }, "name": { "type": "string", "description": "This is the name of the session to filter by." @@ -35080,6 +35953,11 @@ "type": "string", "description": "This is the ID of the assistant to filter sessions by." }, + "assistantIdAny": { + "type": "string", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "example": "assistant-1,assistant-2,assistant-3" + }, "squadId": { "type": "string", "description": "This is the ID of the squad to filter sessions by." @@ -35096,6 +35974,22 @@ } ] }, + "customerNumberAny": { + "type": "string", + "description": "Filter by any of the specified customer phone numbers (comma-separated).", + "example": "+1234567890,+0987654321" + }, + "phoneNumberId": { + "type": "string", + "description": "This will return sessions with the specified phoneNumberId." + }, + "phoneNumberIdAny": { + "description": "This will return sessions with any of the specified phoneNumberIds.", + "type": "array", + "items": { + "type": "string" + } + }, "page": { "type": "number", "description": "This is the page number to return. Defaults to 1.", @@ -35175,6 +36069,164 @@ "metadata" ] }, + "ExportSessionDTO": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "This is the unique identifier for the session to filter by." + }, + "name": { + "type": "string", + "description": "This is the name of the session to filter by." + }, + "assistantId": { + "type": "string", + "description": "This is the ID of the assistant to filter sessions by." + }, + "assistantIdAny": { + "type": "string", + "description": "Filter by multiple assistant IDs. Provide as comma-separated values.", + "example": "assistant-1,assistant-2,assistant-3" + }, + "squadId": { + "type": "string", + "description": "This is the ID of the squad to filter sessions by." + }, + "workflowId": { + "type": "string", + "description": "This is the ID of the workflow to filter sessions by." + }, + "customer": { + "description": "This is the customer information to filter by.", + "allOf": [ + { + "$ref": "#/components/schemas/CreateCustomerDTO" + } + ] + }, + "customerNumberAny": { + "type": "string", + "description": "Filter by any of the specified customer phone numbers (comma-separated).", + "example": "+1234567890,+0987654321" + }, + "columns": { + "type": "string", + "description": "Columns to include in the CSV export", + "enum": [ + "id", + "name", + "status", + "assistantId", + "squadId", + "customerName", + "customerNumber", + "phoneNumberId", + "cost", + "messages", + "createdAt", + "updatedAt" + ], + "default": [ + "id", + "name", + "status", + "assistantId", + "squadId", + "customerName", + "customerNumber", + "phoneNumberId", + "cost", + "messages", + "createdAt", + "updatedAt" + ] + }, + "email": { + "type": "string", + "description": "This is the email address to send the export to.\nRequired if userId is not available in the request context." + }, + "format": { + "type": "string", + "description": "This is the format of the export.\n\n@default csv", + "enum": [ + "csv", + "json" + ], + "default": "csv" + }, + "phoneNumberId": { + "type": "string", + "description": "This will return sessions with the specified phoneNumberId." + }, + "phoneNumberIdAny": { + "description": "This will return sessions with any of the specified phoneNumberIds.", + "type": "array", + "items": { + "type": "string" + } + }, + "page": { + "type": "number", + "description": "This is the page number to return. Defaults to 1.", + "minimum": 1 + }, + "sortOrder": { + "type": "string", + "description": "This is the sort order for pagination. Defaults to 'DESC'.", + "enum": [ + "ASC", + "DESC" + ] + }, + "limit": { + "type": "number", + "description": "This is the maximum number of items to return. Defaults to 100.", + "minimum": 0, + "maximum": 1000 + }, + "createdAtGt": { + "format": "date-time", + "type": "string", + "description": "This will return items where the createdAt is greater than the specified value." + }, + "createdAtLt": { + "format": "date-time", + "type": "string", + "description": "This will return items where the createdAt is less than the specified value." + }, + "createdAtGe": { + "format": "date-time", + "type": "string", + "description": "This will return items where the createdAt is greater than or equal to the specified value." + }, + "createdAtLe": { + "format": "date-time", + "type": "string", + "description": "This will return items where the createdAt is less than or equal to the specified value." + }, + "updatedAtGt": { + "format": "date-time", + "type": "string", + "description": "This will return items where the updatedAt is greater than the specified value." + }, + "updatedAtLt": { + "format": "date-time", + "type": "string", + "description": "This will return items where the updatedAt is less than the specified value." + }, + "updatedAtGe": { + "format": "date-time", + "type": "string", + "description": "This will return items where the updatedAt is greater than or equal to the specified value." + }, + "updatedAtLe": { + "format": "date-time", + "type": "string", + "description": "This will return items where the updatedAt is less than or equal to the specified value." + } + } + }, "ByoPhoneNumber": { "type": "object", "properties": { @@ -57928,10 +58980,6 @@ "duration": { "type": "number", "description": "The duration of the message in seconds." - }, - "speakerLabel": { - "type": "string", - "description": "Stable speaker label for diarized user speakers (e.g., \"Speaker 1\")." } }, "required": [