Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Unipile

Scalekit connector
Open markdown

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

Tools
68
What they doRead · write · destructive
47 · 16 · 547 read16 write5 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 Unipile connection

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

    Each user opens the link once and enters their Unipile 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
  • unipile_get_accountRetrieve one connected account by id.Read-only

    Get Account

    Retrieve one connected account by id. Returns the account type, name, connection parameters and current sync status. Use to check the health of a single account. Use List Accounts to browse all accounts.

    Inputs

    idstringrequired
    The id of the account to retrieve. Example: mZ9tTq1xRkWJb3dLq8aXyA
  • unipile_get_attendeeRetrieve one messaging attendee by id.Read-only

    Get Attendee

    Retrieve one messaging attendee by id. Returns the attendee name, provider id, picture and profile url, plus provider-specific details. Use when you already have an attendee_id. Use List Attendees to search.

    Inputs

    idstringrequired
    The id of the wanted attendee. Example: mZ9tTq1xRkWJb3dLq8aXyA
    account_idstring
    A filter to target items related to a certain account. Example: mZ9tTq1xRkWJb3dLq8aXyA
  • unipile_get_calendarRetrieve one calendar.Read-only

    Get Calendar

    Retrieve one calendar. Returns the calendar name, description, access role, colors and sync state. Use when you already have a calendar_id.

    Inputs

    account_idstringrequired
    The id of the account to use. Example: mZ9tTq1xRkWJb3dLq8aXyA
    calendar_idstringrequired
    The id of the wanted calendar. Example: primary
  • unipile_get_calendar_eventRetrieve one calendar event.Read-only

    Get Calendar Event

    Retrieve one calendar event. Returns title, body, location, times, attendees and cancellation state. Use when you already have an event_id.

    Inputs

    account_idstringrequired
    The id of the account to use. Example: mZ9tTq1xRkWJb3dLq8aXyA
    calendar_idstringrequired
    The id of calendar of the wanted event. Example: primary
    event_idstringrequired
    The id of the wanted event. Example: 0e6b0a2f3c4d5e6f7a8b9c0d
  • unipile_get_chatRetrieve the details of one chat.Read-only

    Get Chat

    Retrieve the details of one chat. Returns the chat id, account, provider, name, type, unread count, archive and mute state. Use when you already have a chat_id. Use List Chats to find chats.

    Inputs

    chat_idstringrequired
    The Unipile or provider ID of the chat. Example: 9f9uuKzhVHGUNo9PzbgUtQ
    account_idstring
    Mandatory if the chat ID is a provider ID. Example: mZ9tTq1xRkWJb3dLq8aXyA
  • unipile_get_emailRetrieve one email with its full content.Read-only

    Get Email

    Retrieve one email with its full content. Returns subject, sender, recipients, body, folders, attachments and read state. Use when you already have an email_id. Use List Emails to find emails.

    Inputs

    email_idstringrequired
    The id of the email to be retrieved. Either the Unipile id or the provider uid. Example: Q2xhdWRlRW1haWwx
    account_idstring
    The id of the account related to the email. Required when using the provider uid. Example: mZ9tTq1xRkWJb3dLq8aXyA
    include_headersboolean
    Include the email headers in the response. Example: true
  • unipile_get_email_folderRetrieve one email folder.Read-only

    Get Email Folder

    Retrieve one email folder. Returns the folder details. Use when you already have a folder_id.

    Inputs

    folder_idstringrequired
    The id of the wanted folder. Either the Unipile id or the provider uid. Example: INBOX
    account_idstring
    The id of the account related to the folder. Required when using the provider uid. Example: mZ9tTq1xRkWJb3dLq8aXyA
  • unipile_get_hiring_projectRetrieve one LinkedIn Recruiter hiring project.Read-only

    Get Hiring Project

    Retrieve one LinkedIn Recruiter hiring project. Returns project name, owner, creation date and linked job posting. Use when you already have a project id.

    Inputs

    account_idstringrequired
    The ID of the account to trigger the request from. Example: mZ9tTq1xRkWJb3dLq8aXyA
    idstringrequired
    The ID of the hiring project. Example: mZ9tTq1xRkWJb3dLq8aXyA