Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Rocketlane

Scalekit connector
Open markdown

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

Tools
70
What they doRead · write · destructive
30 · 31 · 930 read31 write9 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 Rocketlane connection

    In AgentKit > Connections, create a Rocketlane 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 = 'rocketlane'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Rocketlane:', 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: 'rocketlane_budgets_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Rocketlane 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
  • rocketlane_budget_getGet one Rocketlane project budget by its ID.Read-only

    Get Budget

    Get one Rocketlane project budget by its ID. Returns the budget with project, name, dates, status, currency, billing type, revenue recognition type, amount and hours. Use rocketlane_budget_get when you have the budgetId. Use rocketlane_budgets_list to find budgets.

    Inputs

    budget_idintegerrequired
    ID of the budget. Get it from the budgetId field returned by rocketlane_budgets_list. Example: 601.
    include_all_fieldsboolean
    Set to true to return every budget property, including the optional ones. Leave empty for the default properties. Example: true.
    include_fieldsstring
    Comma-separated list of optional budget properties to add to the response. Valid values: manualRevenueRecognitionConfigs, milestoneRevenueRecognitionConfigs. Leave empty for the default properties. Example: "manualRevenueRecognitionConfigs,milestoneRevenueRecognitionConfigs".
  • rocketlane_budgets_listList project budgets in Rocketlane financials, filtered by project, customer company, name, billing type, status or dates.Read-only

    List Budgets

    List project budgets in Rocketlane financials, filtered by project, customer company, name, billing type, status or dates. Returns a page of budgets (budgetId, projectId, budgetName, dates, status, currency, billingType, budgetAmount, budgetHours) in data, with pagination.nextPageToken when more pages exist. Use rocketlane_budgets_list to find budgets. Use rocketlane_budget_get when you have the budgetId.

    Inputs

    billing_typestring
    Only return budgets with this billing type. Valid values: FIXED_FEE, TIME_AND_MATERIAL, SUBSCRIPTION, NON_BILLABLE. Example: "FIXED_FEE".one of FIXED_FEETIME_AND_MATERIALSUBSCRIPTIONNON_BILLABLE
    budget_name_containsstring
    Only return budgets whose name contains this text. Example: "Q1".
    company_idinteger
    Only return budgets for this customer company ID. Example: 301.
    end_date_tostring
    Only return budgets ending on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
    include_all_fieldsboolean
    Set to true to return every budget property, including the optional ones. Leave empty for the default properties. Example: true.
    include_fieldsstring
    Comma-separated list of optional budget properties to add to the response. Valid values: manualRevenueRecognitionConfigs, milestoneRevenueRecognitionConfigs. Leave empty for the default properties. Example: "manualRevenueRecognitionConfigs,milestoneRevenueRecognitionConfigs".
    matchstring
    How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all".one of allany
    page_sizeinteger
    Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
    page_tokenstring
    Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
    project_idinteger
    Only return budgets of this project. Get the ID from rocketlane_projects_list. Example: 201.
    sort_bystring
    Field to sort the results by. Valid values: createdAt, budgetId, projectId, budgetName, budgetHours, budgetAmount, startDate, endDate. Example: "createdAt".one of createdAtbudgetIdprojectIdbudgetNamebudgetHoursbudgetAmountstartDateendDate
    sort_orderstring
    Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC".one of ASCDESC
    start_date_fromstring
    Only return budgets starting on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
    status_valueinteger
    Only return budgets with this numeric status ID. Example: 1.
  • rocketlane_companies_listList customer companies (accounts) in Rocketlane, filtered by name, website or account owner.Read-only

    List Companies

    List customer companies (accounts) in Rocketlane, filtered by name, website or account owner. Returns a page of companies (companyId, companyName, companyUrl, visibility, accountOwner) in data, with pagination.nextPageToken when more pages exist. Use rocketlane_companies_list to find a company. Use rocketlane_company_get when you have the companyId.

    Inputs

    account_owner_idinteger
    Only return companies owned by this user ID. Get it from rocketlane_users_list. Example: 201.
    company_namestring
    Only return the company with exactly this name. Example: "Acme Inc".
    company_name_containsstring
    Only return companies whose name contains this text. Example: "Acme".
    company_url_containsstring
    Only return companies whose website URL contains this text. Example: "acme.com".
    include_all_fieldsboolean
    Set to true to return every company property, including the optional ones. Leave empty for the default properties. Example: true.
    include_fieldsstring
    Comma-separated list of optional company properties to add to the response. Valid values: companyUrl, notes. Leave empty for the default properties. Example: "companyUrl,notes".
    matchstring
    How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all".one of allany
    page_sizeinteger
    Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
    page_tokenstring
    Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
    sort_bystring
    Field to sort the results by. Valid values: companyName, createdAt, updatedAt. Example: "companyName".one of companyNamecreatedAtupdatedAt
    sort_orderstring
    Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC".one of ASCDESC
  • rocketlane_company_getGet one Rocketlane customer company by its ID.Read-only

    Get Company

    Get one Rocketlane customer company by its ID. Returns the company with name, website, visibility, description, account owner and custom fields, plus notes when requested. Use rocketlane_company_get when you have the companyId. Use rocketlane_companies_list to search companies.

    Inputs

    company_idintegerrequired
    ID of the company. Get it from the companyId field returned by rocketlane_companies_list. Example: 301.
    include_all_fieldsboolean
    Set to true to return every company property, including the optional ones. Leave empty for the default properties. Example: true.
    include_fieldsstring
    Comma-separated list of optional company properties to add to the response. Valid values: companyUrl, notes. Leave empty for the default properties. Example: "companyUrl,notes".
  • rocketlane_field_getGet one Rocketlane custom field definition by its ID.Read-only

    Get Custom Field

    Get one Rocketlane custom field definition by its ID. Returns the field's label, description, type, object type, enabled and private flags, and its options when requested. Use rocketlane_field_get to read a field's option values. Use rocketlane_fields_list to find fields.

    Inputs

    field_idintegerrequired
    ID of the field. Get it from the fieldId field returned by rocketlane_fields_list. Example: 55.
    include_all_fieldsboolean
    Set to true to return every field property, including the optional ones. Leave empty for the default properties. Example: true.
    include_fieldsstring
    Comma-separated list of optional field properties to add to the response. Valid values: options. Leave empty for the default properties. Example: "options".
  • rocketlane_fields_listList the custom field definitions in Rocketlane, filtered by object type, field type, enabled or private flags.Read-only

    List Custom Fields

    List the custom field definitions in Rocketlane, filtered by object type, field type, enabled or private flags. Returns a page of fields (fieldId, fieldLabel, fieldType, objectType, fieldOptions when requested) in data, with pagination.nextPageToken when more pages exist. Use rocketlane_fields_list to find field IDs and option values for the fields input of create and update tools. Use rocketlane_field_get for one field.

    Inputs

    enabledboolean
    Set to true for enabled fields only, false for disabled only. Example: true.
    field_typestring
    Only return fields of this type. Valid values: TEXT, MULTI_LINE_TEXT, YES_OR_NO, DATE, SINGLE_CHOICE, MULTIPLE_CHOICE, SINGLE_USER, MULTIPLE_USER, NUMBER, NOTE, RATING. Example: "SINGLE_CHOICE".one of TEXTMULTI_LINE_TEXTYES_OR_NODATESINGLE_CHOICEMULTIPLE_CHOICESINGLE_USERMULTIPLE_USERNUMBERNOTERATING
    include_all_fieldsboolean
    Set to true to return every field property, including the optional ones. Leave empty for the default properties. Example: true.
    include_fieldsstring
    Comma-separated list of optional field properties to add to the response. Valid values: options. Leave empty for the default properties. Example: "options".
    matchstring
    How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all".one of allany
    object_typestring
    Only return fields on this object type. Valid values: PROJECT, TASK, USER, BUDGET, COMPANY. Example: "PROJECT".one of PROJECTTASKUSERBUDGETCOMPANY
    page_sizeinteger
    Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
    page_tokenstring
    Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
    privateboolean
    Set to true for private fields only, false for shared only. Example: false.
    sort_bystring
    Field to sort the results by. Valid values: fieldLabel. Example: "fieldLabel".one of fieldLabel
    sort_orderstring
    Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC".one of ASCDESC
  • rocketlane_invoice_getGet one Rocketlane invoice by its ID.Read-only

    Get Invoice

    Get one Rocketlane invoice by its ID. Returns the invoice with number, dates, currency, status, amounts (total, tax, subtotal, outstanding, paid, written off) and, when requested, notes and attachments. Use rocketlane_invoice_get for invoice totals. Use rocketlane_invoice_line_items_list for its lines and rocketlane_invoice_payments_list for its payments.

    Inputs

    invoice_idintegerrequired
    ID of the invoice. Get it from the invoiceId field returned by rocketlane_invoices_list. Example: 1201.
    include_all_fieldsboolean
    Set to true to return every invoice property, including the optional ones. Leave empty for the default properties. Example: true.
    include_fieldsstring
    Comma-separated list of optional invoice properties to add to the response. Valid values: notes, attachments. Leave empty for the default properties. Example: "notes,attachments".
  • rocketlane_invoice_line_items_listList the line items of a Rocketlane invoice.Read-only

    List Invoice Line Items

    List the line items of a Rocketlane invoice. Returns a page of line items (invoiceLineItemId, description, quantity, unitPrice, amount, source, tax, budget) in data. Use rocketlane_invoice_line_items_list for what was billed. Use rocketlane_invoice_payments_list for what was paid.

    Inputs

    invoice_idintegerrequired
    ID of the invoice. Get it from the invoiceId field returned by rocketlane_invoices_list. Example: 1201.
    page_sizeinteger
    Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
    page_tokenstring
    Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".