Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to ActiveCampaign

Scalekit connector
Open markdown

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

Tools
120
What they doRead · write · destructive
62 · 43 · 1562 read43 write15 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 ActiveCampaign connection

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

    Each user opens the link once and enters their ActiveCampaign 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
  • activecampaign_get_accountRetrieve one account (company) by ID.Read-only

    Get Account

    Retrieve one account (company) by ID. Returns the account's name, accountUrl, owner, custom field values and dates. Use activecampaign_list_accounts to find the ID.

    Inputs

    account_idintegerrequired
    ID of the account.
  • activecampaign_get_bulk_import_statusCheck the status of one bulk contact import by its batchId.Read-only

    Get Bulk Import Status

    Check the status of one bulk contact import by its batchId. Returns status (completed when done), success (IDs of contacts created or updated) and failure (emails not imported). Use this after activecampaign_bulk_import_contacts; poll until status is completed instead of resubmitting.

    Inputs

    batch_idstringrequired
    The batchId returned by bulk_import_contacts.
  • activecampaign_get_campaignRetrieve one email campaign by ID.Read-only

    Get Campaign

    Retrieve one email campaign by ID. Returns the campaign's name, type, status, schedule and lifetime send, open, click, unsubscribe and bounce totals. Use activecampaign_get_campaign_messages for per-message (A/B variation) totals.

    Inputs

    campaign_idintegerrequired
    ID of the campaign.
  • activecampaign_get_campaign_messagesList the messages a campaign sent with their lifetime reporting totals; split (A/B) campaigns return one row per variation.Read-only

    Get Campaign Messages

    List the messages a campaign sent with their lifetime reporting totals; split (A/B) campaigns return one row per variation. Returns campaignMessages with message ID and send, open, click and bounce counts. Not paginated. Use this to compare A/B variations. Use activecampaign_get_campaign for campaign-level totals.

    Inputs

    campaign_idintegerrequired
    ID of the campaign.
  • activecampaign_get_contactRetrieve one contact by ID.Read-only

    Get Contact

    Retrieve one contact by ID. Returns the contact record plus side-loaded contactLists, contactAutomations, fieldValues, deals and geoIps. Use this when you have the contact ID. Use activecampaign_list_contacts to find a contact by email or name.

    Inputs

    contact_idintegerrequired
    ID of the contact.
  • activecampaign_get_contact_account_contactsList the account associations of one contact.Read-only

    Get Contact Account Associations

    List the account associations of one contact. Returns accountContacts rows with account (account ID), jobTitle and the association id. Use this to find which accounts a contact belongs to. Use activecampaign_create_account_contact to link a contact to an account.

    Inputs

    contact_idintegerrequired
    ID of the contact.
  • activecampaign_get_contact_automationsList the automations one contact is in or has completed.Read-only

    Get Contact Automations

    List the automations one contact is in or has completed. Returns contactAutomations rows with automation (automation ID), status, adddate and the row id. Use this for one contact. Use activecampaign_list_automation_contacts for every contact in one automation.

    Inputs

    contact_idintegerrequired
    ID of the contact.