The ProShort AI connector lets your AI agent act in each user's ProShort AI account. Each user connects their own ProShort AI 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
- 5 · 0 · 05 read0 write0 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. 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>Create the ProShort AI connection
In AgentKit > Connections, create a ProShort AI connection. The name you give it is the
connection_nameyour code passes. See Configure connections.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.actionsconst connector = 'proshortai'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize ProShort AI:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'proshortai_recordings_search',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "proshortai"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize ProShort AI:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="proshortai_recordings_search",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their ProShort AI credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolproshortai_recordings_bulk_getFetch details for up to 100 ProShort recordings in one call by their document_ids — e.g.Read-onlyBulk Get Recordings
Fetch details for up to 100 ProShort recordings in one call by their document_ids — e.g. to hydrate a list of results from Search Recordings. Missing/invalid IDs are reported separately in not_found rather than failing the whole request. Use projections to keep the response small when you don't need every field (especially the transcript).
Inputs
meeting_idsarrayrequired- The document_ids of the recordings to fetch, 1-100 per call. Duplicates are automatically de-duplicated by the API.
projectionsarray- Fields to include for each recording in the response, to minimize payload size. Omit to receive all fields for every recording.
proshortai_recordings_getRetrieve full detail for a single ProShort meeting recording by its document_id (typically obtained from Search Recordings): title, scheduled time, platform, attendees, prospect company, AI-generated overview, transcript, and media URLs.Read-onlyGet Recording
Retrieve full detail for a single ProShort meeting recording by its document_id (typically obtained from Search Recordings): title, scheduled time, platform, attendees, prospect company, AI-generated overview, transcript, and media URLs. Use the projections parameter to request only the fields you need and keep the response small — this matters especially for the (potentially large) transcript field.
Inputs
meeting_idstringrequired- The recording's unique identifier (document_id), e.g. as returned by Search Recordings or Bulk Get Recordings.
projectionsstring- Comma-separated list of fields to include in the response, to minimize payload size. Omit to receive all fields. Valid field names: document_id, event_title, source, scheduled_at, meeting_platform, meeting_participants, parties, prospect_company_name, transcript, thumbnail_url, gcp_public_url, overview.
proshortai_recordings_get_v1Retrieve a ProShort recording via the original v1 endpoint.Read-onlyGet Recording (v1, Full Transcript)
Retrieve a ProShort recording via the original v1 endpoint. Unlike the current v3 Get Recording tool (which returns a flattened, plain-text transcript), v1 always returns the complete raw diarized transcript — an array of speaker-attributed segments, each broken into individual words with start/end timestamps and confidence scores — plus meeting participants (with join/leave events) and parties (attendee/company details). There is no field-selection support: v1 always returns every field, with no projections parameter. If the meeting isn't available or doesn't belong to the calling customer, the response still returns HTTP 200 with an empty data object.
Inputs
meeting_idstringrequired- The recording's unique identifier (document_id), e.g. as returned by Search Recordings, Bulk Get Recordings, or Get Recording.
proshortai_recordings_get_v2Retrieve a ProShort recording via the v2 endpoint.Read-onlyGet Recording (v2, Structured Overview)
Retrieve a ProShort recording via the v2 endpoint. The standout difference from the current v3 Get Recording tool: when the overview projection is requested, v2 returns a rich structured object (recap, budget, timing, use_case, pain_points, action_items, prospect_info, contract_status, questions_asked, risks_obstacles, decision_process, customer_reactions, product_discussion, product_experience, product_suggestions, competitors_mentioned) instead of v3's flattened plain-text summary — useful when you need the individual deal-analysis fields rather than prose. Use projections to request only the fields you need; document_id must always be included in the projections list when projections is used. Adding projections is optional but recommended to speed up requests. If the meeting isn't available or doesn't belong to the calling customer, the response still returns HTTP 200 with an empty data object.
Inputs
meeting_idstringrequired- The recording's unique identifier (document_id), e.g. as returned by Search Recordings, Bulk Get Recordings, or Get Recording.
projectionsstring- Comma-separated list of fields to include in the response, to minimize payload size and speed up the request. document_id must always be included in this list when projections is used. Omit entirely to receive all fields. Valid field names: document_id, event_title, source, scheduled_at, meeting_platform, meeting_participants, parties, prospect_company_name, transcript, thumbnail_url, gcp_public_url, overview.
proshortai_recordings_searchSearch and filter ProShort meeting recordings by title text, date range, attendee email, and conferencing platform.Read-onlySearch Recordings
Search and filter ProShort meeting recordings by title text, date range, attendee email, and conferencing platform. Returns a cursor-paginated list of lightweight recording summaries (document_id, title, scheduled time, platform, participants). Use Get Recording or Bulk Get Recordings afterwards to fetch full details/transcripts for specific results.
Inputs
cursorstring- Opaque pagination token from a previous response's next_cursor field. Pass it back exactly as received to fetch the next page; omit it to start from the first page.
from_datestring- Lower bound (inclusive) for the meeting's scheduled start time, as an ISO-8601 timestamp.
limitinteger- Maximum number of recordings to return per page. Valid range is 1-100; defaults to 20 if omitted.
participantsarray- Filter by attendee email address. Provide one or more emails; they are OR-matched (any meeting containing at least one of the given attendees is returned). Matching is case-insensitive. Each value is sent as its own repeated participants query parameter.
platformstring- Exact match on the conferencing platform used for the meeting, e.g. zoom, google_meet, teams.
qstring- Free-text search on the meeting title. Supports partial matches. Results are ranked by relevance, then recency.
to_datestring- Upper bound (inclusive) for the meeting's scheduled start time, as an ISO-8601 timestamp.
No tools match.