Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to tl;dv

Scalekit connector
Open markdown

The tl;dv connector lets your AI agent act in each user's tl;dv account. Each user connects their own tl;dv API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 5 tools.

Tools
5
What they doRead · write · destructive
4 · 1 · 04 read1 write0 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the tl;dv connection

    In AgentKit > Connections, create a tl;dv connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'tldv'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize tl;dv:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'tldv_list_meetings',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their tl;dv credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • tldv_get_meetingRetrieve one tl;dv meeting by id.Read-only

    Get Meeting

    Retrieve one tl;dv meeting by id. Returns id, name, happenedAt, url, duration, organizer, invitees, template, extraProperties, plus phoneNumber and metadata when set at import. Use get_meeting for metadata about one meeting. Use list_meetings to find ids, get_transcript for the spoken text, get_meeting_notes for the AI notes.

    Inputs

    meetingIdstringrequired
    ID of the meeting, as returned by tldv_list_meetings (the id field).
  • tldv_get_meeting_notesRetrieve the AI-generated notes of a tl;dv meeting.Read-only

    Get Meeting Notes

    Retrieve the AI-generated notes of a tl;dv meeting. Returns structuredNotes, markdownContent and topics for the meeting. Use get_meeting_notes for a summary and key points. Use get_transcript for the verbatim text. Prerequisite: a meeting id from list_meetings.

    Inputs

    meetingIdstringrequired
    ID of the meeting, as returned by tldv_list_meetings (the id field).
  • tldv_get_transcriptRetrieve the transcript of a tl;dv meeting.Read-only

    Get Transcript

    Retrieve the transcript of a tl;dv meeting. Returns the transcript id, meetingId and a data array of sentences, each with speaker, text, startTime and endTime. Use get_transcript for the full spoken text. Use get_meeting_notes for a summary instead. Only available once the transcript is complete; the meeting organizer's plan must allow API access. Prerequisite: a meeting id from list_meetings.

    Inputs

    meetingIdstringrequired
    ID of the meeting, as returned by tldv_list_meetings (the id field).
  • tldv_list_meetingsList meetings in tl;dv, optionally filtered by search text, date range, participation or meeting type.Read-only

    List Meetings

    List meetings in tl;dv, optionally filtered by search text, date range, participation or meeting type. Returns page, pages, total, pageSize and a results array with each meeting's id, name, happenedAt, url, duration, organizer and invitees. Use list_meetings to find a meeting id. Use get_meeting for one meeting's full details, get_transcript for what was said, get_meeting_notes for the AI summary.

    Inputs

    fromstring
    Only return meetings that happened on or after this date, as YYYY-MM-DD or an ISO 8601 date-time.
    limitinteger
    Number of results per page. Default is 50, maximum 100. The total number of results cannot exceed 10,000.
    meetingTypestring
    Filter by meeting type: internal (all participants from the same organization) or external (at least one participant from outside it).one of internalexternal
    onlyParticipatedboolean
    When true, only return meetings the user participated in. Default is false.
    pageinteger
    Page number to return, starting at 1. Default is 1.
    querystring
    Text to search for in meetings.
    tostring
    Only return meetings that happened on or before this date, as YYYY-MM-DD or an ISO 8601 date-time.
  • tldv_import_meetingImport a recording from a public URL into tl;dv as a new meeting for transcription.Write

    Import Meeting

    Import a recording from a public URL into tl;dv as a new meeting for transcription. Returns success, jobId and a message describing the import job. Use import_meeting to add an existing audio or video file. The URL must be publicly accessible and in a supported format (.mp3, .mp4, .wav, .m4a, .mkv, .mov, .avi, .wma, .flac). Processing is asynchronous: poll list_meetings for the new meeting.

    Inputs

    namestringrequired
    Name of the imported meeting or recording.
    urlstringrequired
    Publicly accessible URL of the media file. Supported formats: .mp3, .mp4, .wav, .m4a, .mkv, .mov, .avi, .wma, .flac.
    dryRunboolean
    When true, validates the import without persisting it or running anything. For testing only.
    happenedAtstring
    When the meeting happened, as an ISO 8601 UTC date-time with fractional seconds. Defaults to the current time if omitted.
    metadataobject
    Flat object of your own identifiers (up to 20 keys; keys match ^[A-Za-z0-9_-]{1,64}$; values are strings up to 256 characters, numbers or booleans; no nesting). Returned verbatim by get_meeting. Example: {"crmRecordId": "rec_123", "callId": 42}.
    participantsarray
    Emails of the participants invited to the meeting or recording.
    phoneNumberstring
    Phone number associated with the recording, such as the other party of a call. Maximum 64 characters.