Skip to main content

autessa.meetingRecorder

Meeting recordings, transcripts, and recording configuration.

autessa.meetingRecorder.alerts.dismissMUTATE

autessa.meetingRecorder.alerts.dismiss({ alertId })

Dismiss one of your meeting-recorder alerts.

User-scoped. alertId is the UUID of the alert to dismiss. Returns a single-entry object {dismissed: <boolean>}.

Request fields

  • Name
    alertId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.alerts.dismissAllMUTATE

autessa.meetingRecorder.alerts.dismissAll()

Dismiss all of your meeting-recorder alerts at once.

User-scoped; takes no request body. Returns a single-entry object with the count of dismissed alerts: {dismissed: <count>}.

Request fields

No fields.

Response fields

No fields.

autessa.meetingRecorder.alerts.listREAD

autessa.meetingRecorder.alerts.list({ unreadOnly, limit })

List your meeting-recorder alerts (bot/recording notifications), optionally unread-only.

User-scoped (your alerts across all bots). unreadOnly defaults to true; limit defaults to 20. Returns a top-level array of alerts.

Request fields

  • Name
    unreadOnly
    Type
    boolean
    Description
  • Name
    limit
    Type
    number
    Description

Response fields

No fields.

autessa.meetingRecorder.botsMUTATE

autessa.meetingRecorder.bots({ botDisplayName, botAvatarS3Key, calendarConnectorIds, identityStrategy, strategyParams })

Create a recorder bot, provisioning its AutessaDB table, tools, and processing-trigger pipeline.

Creates a bot with the given display name and identity strategy. identityStrategy chooses how the bot joins/receives meetings (e.g. WORKSPACE_OAUTH via a connected calendar, or SUBDOMAIN_MX where it receives invites at its own email — those need DNS verification via the meetingBot namespace before the table/tools are provisioned). For provisioned bots this creates: a dependent AutessaDB table (autessadbTableId), three first-class tools (summarizeLlmCallToolId, notifyToolId, purgeToolId), and three triggers (extract-audio, transcribe, summarize-and-notify) plus retention/scan schedules — all visible and editable by the user. botDisplayName is required (<=100 chars). botId is a plain UUID.

Request fields

  • Name
    botDisplayName
    Type
    string
    Description
  • Name
    botAvatarS3Key
    Type
    string
    Description
  • Name
    calendarConnectorIds
    Type
    string (opaque id)[]
    Description
  • Name
    identityStrategy
    Type
    string
    Description
  • Name
    strategyParams
    Type
    object
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    botId
    Type
    string
    Description
  • Name
    botEmail
    Type
    string
    Description
  • Name
    botConnectorId
    Type
    string (opaque id)
    Description
    References external connector by opaque id.
  • Name
    autessadbTableId
    Type
    string (opaque id)
    Description
    References autessadb table by opaque id.
  • Name
    summarizeLlmCallToolId
    Type
    string (opaque id)
    Description
    References tool by opaque id.
  • Name
    notifyToolId
    Type
    string (opaque id)
    Description
    References tool by opaque id.
  • Name
    purgeToolId
    Type
    string (opaque id)
    Description
    References tool by opaque id.
  • Name
    triggerExtractAudioId
    Type
    string
    Description
  • Name
    triggerTranscribeId
    Type
    string
    Description
  • Name
    triggerSummarizeAndNotifyId
    Type
    string
    Description

autessa.meetingRecorder.bots.calendar.updateRecordModeMUTATE

autessa.meetingRecorder.bots.calendar.updateRecordMode({ botId, connectorId, autoRecordMode, keywords, autoInviteEnabled })

Set a bot's auto-record mode for one bound calendar connector (MANUAL, INVITED_ONLY, or KEYWORD).

Requires EDITOR access. connectorId is required and must be a connector the bot is bound to and you can see. autoRecordMode is MANUAL, INVITED_ONLY, or KEYWORD; KEYWORD requires at least one non-empty keyword (matched case-insensitively against event titles). autoInviteEnabled toggles auto-inviting the bot to matching events. Returns the updated bot summary.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    connectorId
    Type
    string (opaque id)
    Description
    References external connector by opaque id.
  • Name
    autoRecordMode
    Type
    "MANUAL" | "INVITED_ONLY" | "KEYWORD"
    Description
  • Name
    keywords
    Type
    string[]
    Description
  • Name
    autoInviteEnabled
    Type
    boolean
    Description

Response fields

No fields.

autessa.meetingRecorder.bots.deleteMUTATE

autessa.meetingRecorder.bots.delete({ botId })

Permanently delete a bot and cascade-delete its recordings table, tools, triggers, and schedules.

Irreversible. Cancels in-flight recordings, hard-deletes the bot's AutessaDB recordings table (and its data), its three tools, retention/scan/health schedules, and the bot's connector; if it was the last bot in the company, shared per-company tools are torn down too. Requires ADMIN access. Returns a single-entry object {deleted: true}.

Request fields

  • Name
    botId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.bots.event.inviteMUTATE

autessa.meetingRecorder.bots.event.invite({ botId, connectorId, externalEventId })

Add the bot to a specific calendar event's attendee list.

Requires EDITOR access. connectorId and externalEventId are required. This only adds the bot as an attendee; the calendar scan handles actually dispatching the recorder when the meeting is near. Returns {invited: true}.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    connectorId
    Type
    string (opaque id)
    Description
    References external connector by opaque id.
  • Name
    externalEventId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.bots.event.uninviteMUTATE

autessa.meetingRecorder.bots.event.uninvite({ botId, connectorId, externalEventId })

Remove the bot from a specific calendar event's attendee list.

Requires EDITOR access. connectorId and externalEventId are required. Returns {uninvited: true}.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    connectorId
    Type
    string (opaque id)
    Description
    References external connector by opaque id.
  • Name
    externalEventId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.bots.getREAD

autessa.meetingRecorder.bots.get({ botId })

Fetch a bot's configuration plus this-month usage, quota, and health.

Requires VIEWER access. Returns the bot summary along with used/cap minutes this month, percent used, a rolled-up health status/message, and the bot's email.

Request fields

  • Name
    botId
    Type
    string
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    bot
    Type
    BotSummaryResponseDto
    Description
  • Name
    usedMinutesThisMonth
    Type
    number
    Description
  • Name
    capMinutes
    Type
    number
    Description
  • Name
    pctUsed
    Type
    number
    Description
  • Name
    healthStatus
    Type
    string
    Description
  • Name
    healthMessage
    Type
    string
    Description
  • Name
    botEmail
    Type
    string
    Description

autessa.meetingRecorder.bots.healthREAD

autessa.meetingRecorder.bots.health({ botId })

Get a bot's detailed health: OAuth refresh, push-subscription expiry, and failure counts.

Requires VIEWER access. status is GREEN/YELLOW/RED/UNKNOWN. A missing health row reports UNKNOWN. Despite mutating classification upstream, this is a read of health state.

Request fields

  • Name
    botId
    Type
    string
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    status
    Type
    string
    Description
  • Name
    message
    Type
    string
    Description
  • Name
    oauthRefreshStatus
    Type
    string
    Description
  • Name
    oauthLastRefreshAt
    Type
    string (ISO 8601)
    Description
  • Name
    pushSubscriptionExpiresAt
    Type
    string (ISO 8601)
    Description
  • Name
    lastCheckedAt
    Type
    string (ISO 8601)
    Description
  • Name
    consecutiveFailureCount
    Type
    number
    Description

autessa.meetingRecorder.bots.inboundActivityREAD

autessa.meetingRecorder.bots.inboundActivity({ botId })

List a bot's recent inbound webhook/email activity (newest first, up to 50).

Requires VIEWER access. Returns a top-level array of the bot's recent inbound events (calendar webhooks, inbound emails), aggregated across its connectors and capped at 50.

Request fields

  • Name
    botId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.bots.listREAD

autessa.meetingRecorder.bots.list()

List all recorder bots you can access in the company.

Returns a top-level array of bot summaries (up to 100). No request body; results are the bots you can access, with your visible calendar bindings.

Request fields

No fields.

Response fields

No fields.

autessa.meetingRecorder.bots.nameAvailableREAD

autessa.meetingRecorder.bots.nameAvailable({ name })

Check whether a bot display name is available in the company, with a suggested alternative.

Company-scoped. available is true when no non-deleted bot has that name (case-insensitive); when taken, suggestion offers a numbered alternative. Read-only despite the POST shape.

Request fields

  • Name
    name
    Type
    string
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    available
    Type
    boolean
    Description
  • Name
    suggestion
    Type
    string
    Description

autessa.meetingRecorder.bots.permissionsREAD

autessa.meetingRecorder.bots.permissions({ botId })

List a bot's per-user permission grants.

Requires VIEWER access. Returns a top-level array of the bot's explicit per-user permission rows.

Request fields

  • Name
    botId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.bots.shareMUTATE

autessa.meetingRecorder.bots.share({ botId, sharingLevel, companyPermissionLevel, userGrants })

Set a bot's sharing: PRIVATE, COMPANY-wide at one permission level, or SPECIFIC_MEMBER with per-user grants.

Requires ADMIN access. sharingLevel is PRIVATE/COMPANY/SPECIFIC_MEMBER; companyPermissionLevel (VIEWER/EDITOR/ADMIN) applies for COMPANY. A non-null userGrants list REPLACES all existing per-user grants. Returns the updated bot summary.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    sharingLevel
    Type
    "PRIVATE" | "SPECIFIC_MEMBER" | "COMPANY"
    Description
  • Name
    companyPermissionLevel
    Type
    "VIEWER" | "EDITOR" | "ADMIN"
    Description
  • Name
    userGrants
    Type
    UserGrant[]
    Description

Response fields

No fields.

autessa.meetingRecorder.bots.share.previewREAD

autessa.meetingRecorder.bots.share.preview({ botId, sharingLevel, companyPermissionLevel, userGrants })

Preview who a proposed bot sharing change would affect, without applying it.

Requires VIEWER access. Takes the same fields as bots.share and returns the affected user counts, the affected users with their effective permission, and a human-readable summary. No mutation.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    sharingLevel
    Type
    "PRIVATE" | "SPECIFIC_MEMBER" | "COMPANY"
    Description
  • Name
    companyPermissionLevel
    Type
    "VIEWER" | "EDITOR" | "ADMIN"
    Description
  • Name
    userGrants
    Type
    UserGrant[]
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    companyUserCount
    Type
    number
    Description
  • Name
    specificUserCount
    Type
    number
    Description
  • Name
    affectedUsers
    Type
    AffectedUser[]
    Description
  • Name
    summary
    Type
    string
    Description

autessa.meetingRecorder.bots.upcomingMeetingsREAD

autessa.meetingRecorder.bots.upcomingMeetings({ botId, forceRefresh })

List a bot's upcoming calendar meetings across its bound connectors, with per-connector fetch errors.

Requires VIEWER access. Returns upcoming events (with whether the bot is already invited) and any per-connector fetch errors. forceRefresh runs a calendar scan inline (best-effort). Note: errors here is a list of calendar fetch-error objects, not the usual string error envelope.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    forceRefresh
    Type
    boolean
    Description

Response fields

  • Name
    events
    Type
    UpcomingEventResponseDto[]
    Description
  • Name
    errors
    Type
    CalendarFetchErrorDto[]
    Description

autessa.meetingRecorder.bots.updateCalendarConnectorsMUTATE

autessa.meetingRecorder.bots.updateCalendarConnectors({ botId, calendarConnectorIds })

Replace the set of calendar connectors a bot is bound to (limited to connectors you can see).

Requires EDITOR access. Sets the bot's visible calendar bindings to calendarConnectorIds; connectors you cannot see are left untouched, and an id you cannot access is rejected. An empty list clears your visible bindings. Returns the updated bot summary.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    calendarConnectorIds
    Type
    string (opaque id)[]
    Description

Response fields

No fields.

autessa.meetingRecorder.recordings.dispatchMUTATE

autessa.meetingRecorder.recordings.dispatch({ botId, meetingUrl, joinAtUtc, title })

Dispatch the bot to record an ad-hoc meeting by URL, now or at a scheduled time.

Requires EDITOR access. meetingUrl is required; joinAtUtc (ISO-8601 UTC) schedules a future join, or omit to join now. Returns the new meeting id and detected platform. The recording processes through the bot's pipeline and lands as a row in the bot's AutessaDB table; read it with meetingRecorder.recordings.get.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingUrl
    Type
    string
    Description
  • Name
    joinAtUtc
    Type
    string
    Description
  • Name
    title
    Type
    string
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description
  • Name
    platform
    Type
    string
    Description
  • Name
    startTimeUtc
    Type
    string
    Description

autessa.meetingRecorder.recordings.dispatchFromEventMUTATE

autessa.meetingRecorder.recordings.dispatchFromEvent({ botId, externalEventId, calendarId })

Dispatch the bot to record a specific calendar event (resolved and scheduled asynchronously).

Requires EDITOR access. externalEventId is required; calendarId defaults to "primary". Enqueues a calendar scan that adds the bot to the event and schedules the recorder when the meeting is within the join window, so meetingId comes back null and platform is CALENDAR (the recording appears later via recordings.list/get).

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    externalEventId
    Type
    string
    Description
  • Name
    calendarId
    Type
    string
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description
  • Name
    platform
    Type
    string
    Description
  • Name
    startTimeUtc
    Type
    string
    Description

autessa.meetingRecorder.recordings.getREAD

autessa.meetingRecorder.recordings.get({ botId, meetingId })

Fetch a recording: its AutessaDB row (transcript, summary, status columns) plus backend ref and share tokens.

Requires VIEWER access. row is the recording's AutessaDB row as a column-name to typed value map — the transcript, transcript_source, summary, status, title, and media columns live here (media columns carry presigned URLs). backendRef carries the row/table linkage; shareTokens lists active public share links; the response also returns opaque ids for the recording's chat agent and its recordings table. Poll this (watch row.status) while a recording processes.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description
  • Name
    row
    Type
    object
    Description
  • Name
    backendRef
    Type
    RecordingSummaryResponseDto
    Description
  • Name
    shareTokens
    Type
    ShareTokenResponseDto[]
    Description
  • Name
    chatAgentSqid
    Type
    string
    Description
  • Name
    recordingsTableSqid
    Type
    string
    Description

autessa.meetingRecorder.recordings.listREAD

autessa.meetingRecorder.recordings.list({ botId })

List all of a bot's recordings (backend references).

Requires VIEWER access. Returns a top-level array of recording backend-reference summaries (not paginated). Use meetingRecorder.recordings.get for a recording's transcript and summary.

Request fields

  • Name
    botId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.recordings.resendNotificationsMUTATE

autessa.meetingRecorder.recordings.resendNotifications({ botId, meetingId })

Re-send the per-participant recap emails for a recording.

Requires EDITOR access. Re-sends the recording's recap notifications. Returns a bare status string (e.g. "skipped" when the bot has participant emails disabled, or a send-result string).

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.recordings.retryDiagnosisREAD

autessa.meetingRecorder.recordings.retryDiagnosis({ botId, meetingId })

Diagnose why a recording failed and what retry action is applicable (read-only).

Requires EDITOR access. Classifies the failure cause from the recording's structured state (not error text) and reports whether processing can be retried and the suggested action. No mutation.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.recordings.retryProcessingMUTATE

autessa.meetingRecorder.recordings.retryProcessing({ botId, meetingId })

Re-run a failed recording's full processing (re-pull the recording and re-process it).

Requires EDITOR access. Re-checks whether the recording can be retried; if so, re-pulls the recording ingest and re-runs processing, returning a diagnosis with the new status. If not retryable, returns the diagnosis unchanged.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.recordings.retrySummaryMUTATE

autessa.meetingRecorder.recordings.retrySummary({ botId, meetingId })

Re-run only the summarization step for a recording.

Requires EDITOR access. Clears the summary column so the summarize-and-notify trigger re-runs the summarization. Returns the bare string "retrigger_enqueued".

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.recordings.retryTranscriptionMUTATE

autessa.meetingRecorder.recordings.retryTranscription({ botId, meetingId })

Re-run only the transcription step for a recording.

Requires EDITOR access. Clears the transcript column and re-runs transcription. Returns a bare status string: "ok", "no_row", "no_audio", or "stt_error".

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.recordings.shareMUTATE

autessa.meetingRecorder.recordings.share({ botId, meetingId, recipientEmails, requiresOtp })

Email tokenized recording links to a list of recipients.

Requires EDITOR access. recipientEmails must be non-empty (invalid entries are dropped; all-invalid errors). Each recipient gets a tokenized link, optionally OTP-gated via requiresOtp. Returns counts of sent and failed emails.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description
  • Name
    recipientEmails
    Type
    string[]
    Description
  • Name
    requiresOtp
    Type
    boolean
    Description

Response fields

  • Name
    sent
    Type
    number
    Description
  • Name
    failed
    Type
    number
    Description

autessa.meetingRecorder.recordings.shareLinkMUTATE

autessa.meetingRecorder.recordings.shareLink({ botId, meetingId, ttlHours, requiresOtp })

Create a public, time-limited share link for a recording.

Requires EDITOR access. ttlHours sets the link lifetime (defaults to the bot's setting, else 168 hours); requiresOtp gates viewing behind an OTP (defaults to the bot's share access mode). Returns the token id, public URL, and expiry.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description
  • Name
    ttlHours
    Type
    number
    Description
  • Name
    requiresOtp
    Type
    boolean
    Description

Response fields

  • Name
    tokenId
    Type
    string
    Description
  • Name
    publicUrl
    Type
    string
    Description
  • Name
    expiresAt
    Type
    string (ISO 8601)
    Description
  • Name
    requiresOtp
    Type
    boolean
    Description

autessa.meetingRecorder.recordings.shareTokens.revokeMUTATE

autessa.meetingRecorder.recordings.shareTokens.revoke({ botId, meetingId })

Revoke all active share tokens (public links) for a recording.

Requires EDITOR access. Invalidates every share token for the recording. Returns the bare number 1 (a success flag, not a count).

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description

Response fields

No fields.

autessa.meetingRecorder.recordings.uploadMUTATE

autessa.meetingRecorder.recordings.upload({ botId, kind, fileType, title })

Get a presigned upload link to add a pre-recorded meeting file (video or audio) to a bot.

Requires EDITOR access. kind is VIDEO or AUDIO; fileType is the file extension (required). Returns a fresh meetingId, the target column name, and a presigned upload URL. PUT the bytes to uploadUrl, then call meetingRecorder.recordings.upload.complete to register and process the recording.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    kind
    Type
    "VIDEO" | "AUDIO"
    Description
  • Name
    fileType
    Type
    "DOCX" | "DOC" | "PDF" | "PPTX" | "XLSX" | "XLS" | "TXT" | "JSON" | "YAML" | "YML" | "XML" | "HTML" | "HTM" | "CSV" | "EML" | "MD" | "MARKDOWN" | "PNG" | "JPG" | "JPEG" | "MP4" | "AVI" | "MOV" | "WMV" | "FLV" | "MKV" | "WEBM" | "MPEG" | "MPG" | "MP3" | "M4A" | "WAV"
    Description
  • Name
    title
    Type
    string
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description
  • Name
    columnName
    Type
    string
    Description
  • Name
    uploadUrl
    Type
    string
    Description
  • Name
    s3Uri
    Type
    string
    Description
  • Name
    expiresInSeconds
    Type
    number
    Description

autessa.meetingRecorder.recordings.upload.completeMUTATE

autessa.meetingRecorder.recordings.upload.complete({ botId, meetingId, s3Uri, kind })

Register an uploaded recording file and kick off its processing pipeline.

Requires EDITOR access. meetingId (from recordings.upload) and s3Uri are required; kind defaults to VIDEO. Saves the backend reference and inserts an AutessaDB row (status PROCESSING) with the media column set, which fires the transcribe/summarize pipeline.

Request fields

  • Name
    botId
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description
  • Name
    s3Uri
    Type
    string
    Description
  • Name
    kind
    Type
    "VIDEO" | "AUDIO"
    Description

Response fields

  • Name
    errors
    Type
    string[]
    Description
  • Name
    deprecationWarnings
    Type
    string[]
    Description
  • Name
    sessionToken
    Type
    string
    Description
  • Name
    meetingId
    Type
    string
    Description
  • Name
    platform
    Type
    string
    Description
  • Name
    startTimeUtc
    Type
    string
    Description