Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Missive

Scalekit connector
Open markdown

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

Tools
38
What they doRead · write · destructive
21 · 14 · 321 read14 write3 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 Missive connection

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

    Each user opens the link once and enters their Missive 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
  • missive_get_analytics_reportFetch the data of a Missive analytics report created earlier.Read-only

    Get Analytics Report

    Fetch the data of a Missive analytics report created earlier. Returns the report as JSON; an empty 404 means the report is not ready yet, has expired (60 seconds after completion) or does not exist, so retry every 5 seconds. Use missive_get_analytics_report after missive_create_analytics_report; wait about 5 seconds before the first call. Requires the report ID returned by missive_create_analytics_report.

    Inputs

    report_idstringrequired
    ID of the report returned by missive_create_analytics_report. Example: 8441d4a0-a0ad-4f0f-aa9c-1cc881057e42
  • missive_get_contactFetch a single Missive contact by ID.Read-only

    Get Contact

    Fetch a single Missive contact by ID. Returns the contact with name fields, notes, starred flag, infos, memberships and modified_at. A deleted contact returns 404. Use missive_get_contact when you know the contact ID; use missive_list_contacts to search. Requires a contact ID from missive_list_contacts.

    Inputs

    contact_idstringrequired
    ID of the contact to fetch. Example: ee31f156-db95-4158-923f-b26450e0dbf7
  • missive_get_conversationFetch a single Missive conversation by ID.Read-only

    Get Conversation

    Fetch a single Missive conversation by ID. Returns the conversation with subject, authors, users and assignees, shared labels, team, message, draft, attachment and task counts, last_activity_at and web and app URLs. Use missive_get_conversation when you already know the conversation ID; use missive_list_conversations to browse. If the conversation was merged, the returned id may differ from the one requested. Requires a conversation ID, which missive_list_conversations returns.

    Inputs

    conversation_idstringrequired
    ID of the conversation to fetch. Example: 6d3c9b1c-7067-4a28-8ea6-ea91340b67cc
  • missive_get_messageFetch one Missive message by ID, including its headers, full HTML body and attachments.Read-only

    Get Message

    Fetch one Missive message by ID, including its headers, full HTML body and attachments. Returns the message with type, subject, from and to fields, body, attachments with signed download URLs and references. Use missive_get_message to read a message body; use missive_list_conversation_messages to find message IDs, which omit the body. Requires a message ID from missive_list_conversation_messages or missive_list_messages.

    Inputs

    message_idstringrequired
    ID of the message to fetch. Example: a2c3f1e4-5b6d-4c7e-8f90-1a2b3c4d5e6f
  • missive_get_responseFetch a single Missive canned response by ID.Read-only

    Get Response

    Fetch a single Missive canned response by ID. Returns the response with title, HTML body, subject, scope, shared labels, default recipients and attachments. Use missive_get_response when you know the response ID; use missive_list_responses to browse. Requires a response ID from missive_list_responses.

    Inputs

    response_idstringrequired
    ID of the response to fetch. Example: 75ad834a-9bd6-4008-b9e6-fc9fa2e7770b
  • missive_get_taskFetch a single Missive task by ID.Read-only

    Get Task

    Fetch a single Missive task by ID. Returns the task with title, description, state, due date, assignees as full user objects and the team. Use missive_get_task when you know the task ID; use missive_list_tasks to search. Requires a task ID from missive_list_tasks.

    Inputs

    task_idstringrequired
    ID of the task to fetch. Example: 75ad834a-9bd6-4008-b9e6-fc9fa2e7770b
  • missive_list_contact_booksList the Missive contact books the token owner can access.Read-only

    List Contact Books

    List the Missive contact books the token owner can access. Returns each contact book's id, name, owning user, organization, sharing settings and import status. Use missive_list_contact_books to find the contact book ID that missive_list_contacts and missive_create_contact need. No prerequisites.

    Inputs

    limitinteger
    Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
    offsetinteger
    Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50
  • missive_list_contact_groupsList the groups or organizations that contacts in a Missive contact book can belong to.Read-only

    List Contact Groups

    List the groups or organizations that contacts in a Missive contact book can belong to. Returns each group's id and name. Use missive_list_contact_groups to look up group or organization IDs, for example to filter conversations by contact_organization. Requires a contact book ID from missive_list_contact_books and a kind.

    Inputs

    contact_bookstringrequired
    ID of the contact book to list groups from. Example: 551b8675-11e9-49c3-aac0-01fb8510d862
    kindstringrequired
    Which kind of group to list: organization for companies, or group for label-like groupings.one of grouporganization
    limitinteger
    Maximum number of results to return. Missive's default is 50; the maximum is 200. Example: 25
    offsetinteger
    Number of results to skip, used to page through large result sets together with limit. Missive's default is 0. Example: 50