{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/JSONQueryOnEventsTable", "title": "JSONQueryOnEventsTable", "type": "object", "properties": { "type": { "type": "string", "description": "This is the type of query. Only allowed type is \"vapiql-json\".", "example": "vapiql-json", "enum": [ "vapiql-json" ] }, "table": { "type": "string", "description": "This is the table that will be queried.\nMust be \"events\" for event-based insights.", "enum": [ "events" ] }, "on": { "type": "string", "description": "The event type to query", "example": "assistant.model.requestFailed", "enum": [ "call.started", "call.ended", "call.inProgress", "call.queued", "call.transportConnected", "call.transportDisconnected", "call.transportReconnected", "call.transferInitiated", "call.transferCompleted", "call.transferFailed", "call.transferCancelled", "call.handoffInitiated", "call.handoffCompleted", "call.handoffFailed", "call.assistantSwapped", "call.assistantStarted", "call.customerJoined", "call.customerLeft", "call.controlReceived", "call.listenStarted", "call.recordingStarted", "call.recordingPaused", "call.recordingResumed", "call.voicemailDetected", "call.voicemailNotDetected", "call.dtmfReceived", "call.dtmfSent", "call.amdDetected", "call.hookTriggered", "call.hookSucceeded", "call.hookFailed", "call.statusReceived", "call.silenceTimeout", "call.microphoneTimeout", "call.maxDurationReached", "assistant.voice.requestStarted", "assistant.voice.requestSucceeded", "assistant.voice.requestFailed", "assistant.voice.connectionOpened", "assistant.voice.connectionClosed", "assistant.voice.firstAudioReceived", "assistant.voice.audioChunkReceived", "assistant.voice.generationSucceeded", "assistant.voice.generationFailed", "assistant.voice.textPushed", "assistant.voice.reconnecting", "assistant.voice.cleanup", "assistant.voice.clearing", "assistant.voice.voiceSwitched", "assistant.model.requestStarted", "assistant.model.requestSucceeded", "assistant.model.requestFailed", "assistant.model.requestAttemptStarted", "assistant.model.requestAttemptSucceeded", "assistant.model.requestAttemptFailed", "assistant.model.connectionOpened", "assistant.model.connectionClosed", "assistant.model.firstTokenReceived", "assistant.model.tokenReceived", "assistant.model.responseSucceeded", "assistant.model.responseFailed", "assistant.model.toolCallsReceived", "assistant.model.reconnecting", "assistant.model.cleanup", "assistant.model.clearing", "assistant.tool.started", "assistant.tool.completed", "assistant.tool.failed", "assistant.tool.delayedMessageSent", "assistant.tool.timeout", "assistant.tool.asyncCallbackReceived", "assistant.transcriber.requestStarted", "assistant.transcriber.requestSucceeded", "assistant.transcriber.requestFailed", "assistant.transcriber.connectionOpened", "assistant.transcriber.connectionClosed", "assistant.transcriber.partialTranscript", "assistant.transcriber.finalTranscript", "assistant.transcriber.keepAlive", "assistant.transcriber.reconnecting", "assistant.transcriber.cleanup", "assistant.transcriber.clearing", "assistant.transcriber.transcriptIgnored", "assistant.transcriber.languageSwitched", "assistant.analysis.structuredOutputGenerated", "pipeline.turnStarted", "pipeline.cleared", "pipeline.botSpeechStarted", "pipeline.botSpeechStopped", "pipeline.userSpeechStarted", "pipeline.userSpeechStopped", "pipeline.endpointingTriggered", "pipeline.firstMessageStarted", "pipeline.firstMessageCompleted" ] }, "operation": { "type": "string", "description": "This is the operation to perform on matching events.\n- \"count\": Returns the raw count of matching events\n- \"percentage\": Returns (count of matching events / total calls) * 100", "example": "count", "enum": [ "count", "percentage" ] }, "filters": { "type": "array", "description": "These are the filters to apply to the events query.\nEach filter filters on a field specific to the event type.", "items": { "oneOf": [ { "$ref": "#/components/schemas/EventsTableStringCondition" }, { "$ref": "#/components/schemas/EventsTableNumberCondition" }, { "$ref": "#/components/schemas/EventsTableBooleanCondition" } ] } }, "name": { "type": "string", "description": "This is the name of the query.\nIt will be used to label the query in the insight board on the UI.", "example": "Model Failures" } }, "required": [ "type", "table", "on", "operation" ] }