Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Instantly

Scalekit connector
Open markdown

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

Tools
94
What they doRead · write · destructive
40 · 43 · 1140 read43 write11 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 Instantly connection

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

    Each user opens the link once and enters their Instantly 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
  • instantly_account_campaigns_listList the campaigns that use a given sending account.Read-only

    List Campaigns for Account

    List the campaigns that use a given sending account. Returns campaign IDs, names and statuses, plus next_starting_after. Use instantly_account_campaigns_list before pausing or deleting an account.

    Inputs

    emailstringrequired
    Email address of the sending account, as listed by instantly_accounts_list. Example: "john@acme-mail.com".
    limitnumber
    Number of campaigns to return per page. Example: 25.
    starting_afterstring
    Pagination cursor. Pass the next_starting_after value from the previous response to get the next page. Leave empty for the first page. Example: "0199a4b2-6c1e-7a3d-9f20-4b5c6d7e8f90".
  • instantly_account_getGet one sending account by its email address.Read-only

    Get Sending Account

    Get one sending account by its email address. Returns the account's name, status, provider, warmup settings and score, daily limit, sending gap, signature and tracking domain. Use instantly_account_get for one account's settings. Use instantly_accounts_list to list accounts.

    Inputs

    emailstringrequired
    Email address of the sending account, as listed by instantly_accounts_list. Example: "john@acme-mail.com".
  • instantly_account_tracking_domain_status_getCheck whether a custom tracking domain is set up correctly.Read-only

    Get Tracking Domain Status

    Check whether a custom tracking domain is set up correctly. Returns success plus the domain's CNAME and SSL check results. Use instantly_account_tracking_domain_status_get before assigning a tracking domain with instantly_account_update.

    Inputs

    hoststringrequired
    Custom tracking domain host to check. Example: "track.acme-mail.com".
  • instantly_accounts_analytics_daily_getGet the number of emails sent per day by each sending account over a date range of up to 31 days.Read-only

    Get Daily Account Analytics

    Get the number of emails sent per day by each sending account over a date range of up to 31 days. Returns one row per account and date with sent, bounced, contacted, opened, replied and clicked counts. Use instantly_accounts_analytics_daily_get to track sending volume. Use instantly_accounts_warmup_analytics_get for warmup health.

    Inputs

    emailsarrayrequired
    Sending accounts to include (up to 200). Instantly requires this filter. Example: ["john@acme-mail.com"].
    end_datestring
    End of the period. Defaults to today. Accepts a date (YYYY-MM-DD, read as UTC midnight) or a full ISO 8601 timestamp. Example: "2026-01-31".
    start_datestring
    Start of the period. Defaults to 30 days before end_date; the range can be up to 31 days. Accepts a date (YYYY-MM-DD, read as UTC midnight) or a full ISO 8601 timestamp. Example: "2026-01-01".
  • instantly_accounts_listList the email sending accounts connected to the workspace, optionally filtered by status, provider, tag or text.Read-only

    List Sending Accounts

    List the email sending accounts connected to the workspace, optionally filtered by status, provider, tag or text. Returns accounts with email, name, status, provider, warmup status and score, daily limit and tracking domain, plus next_starting_after. Use instantly_accounts_list to find sending accounts for campaigns. Use instantly_account_get for one account.

    Inputs

    include_tagsboolean
    Set true to include each account's tags in the response. Example: true.
    limitinteger
    Number of accounts to return per page, from 1 to 100. Example: 25.
    provider_codenumber
    Only accounts on this provider: 1 = Custom IMAP/SMTP, 2 = Google, 3 = Microsoft, 4 = AWS, 8 = AirMail, 11 = Airmail Instant. Example: 2.one of 1234811
    searchstring
    Search text matched against account email addresses. Example: "Q4 outreach".
    sort_bystring
    Sort by timestamp_created, email, stat_warmup_score or status. Example: "stat_warmup_score".one of timestamp_createdemailstat_warmup_scorestatus
    sort_orderstring
    asc or desc (desc by default when sort_by is set). Example: "desc".one of ascdesc
    starting_afterstring
    Pagination cursor: the next_starting_after value from the previous response. Leave empty for the first page. Example: "2026-01-15T10:00:00.000Z&john@acme-mail.com".
    statusnumber
    Only accounts with this status: 1 = Active, 2 = Paused, 3 = Temporarily paused for maintenance, -1 = Connection Error, -2 = Soft Bounce Error, -3 = Sending Error. Example: 1.one of 123-1-2-3
    tag_idsstring
    Comma-separated tag IDs; returns accounts with any of these tags. Example: "0199a4b2-b16d-7f8c-8e75-901234567890".
  • instantly_accounts_vitals_testRun Instantly's vitals check (DNS records such as SPF, DKIM, DMARC and MX) on sending accounts.Read-only

    Test Account Vitals

    Run Instantly's vitals check (DNS records such as SPF, DKIM, DMARC and MX) on sending accounts. Returns success and failure lists with each domain's MX, SPF, DKIM and DMARC results. Use instantly_accounts_vitals_test to diagnose deliverability setup.

    Inputs

    accountsarray
    Sending account email addresses to test. Example: ["john@acme-mail.com"].
  • instantly_accounts_warmup_analytics_getGet warmup analytics for sending accounts.Read-only

    Get Warmup Analytics

    Get warmup analytics for sending accounts. Returns per-account, per-day warmup counts (sent, received, landed in inbox, landed in spam) and per-account totals with a health score. Use instantly_accounts_warmup_analytics_get to check deliverability health. Use instantly_accounts_analytics_daily_get for campaign sending volume.

    Inputs

    emailsarrayrequired
    Sending account email addresses to get warmup analytics for. Example: ["john@acme-mail.com"].
  • instantly_background_job_getGet the status and progress of a background job, such as a lead move or warmup change.Read-only

    Get Background Job

    Get the status and progress of a background job, such as a lead move or warmup change. Returns the job's type, status (pending, in-progress, success, failed and so on), progress and result data. Use instantly_background_job_get to poll a job returned by instantly_leads_move or the warmup tools.

    Inputs

    idstringrequired
    Background job ID, from the id field of the job returned by the tool that started it. Example: "0199a4b2-f5ab-7dc0-8cb9-345678901234".
    data_fieldsstring
    Comma-separated fields to include from the job's data object. Example: "success_count,failed_count".