Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Zoho Mail

Scalekit connector
Open markdown

The Zoho Mail connector lets your AI agent act in each user's Zoho Mail account. Each user signs in to Zoho Mail once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 245 tools.

Tools
245
What they doRead · write · destructive
74 · 145 · 2674 read145 write26 destructive
Users sign in with
OAuth app
Your own Zoho Mail app

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 Zoho Mail connection

    In AgentKit > Connections, create a Zoho Mail connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Zoho Mail connections use your own OAuth app. Register one with Zoho Mail and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Zoho Mail connection.

  5. 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 = 'zohomail'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Zoho Mail:', 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: 'zohomail_account_list_user',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • zohomail_account_getGet full details for one Zoho Mail account (mailbox) by its numeric account ID.Read-only

    Get Account

    Get full details for one Zoho Mail account (mailbox) by its numeric account ID. Returns the account's user profile, mailbox configuration, storage metrics, email addresses, and send-mail settings. Use this to inspect a single account's configuration in depth; use zohomail_account_list_user to browse all accounts or to look up the account_id first. Requires the numeric account_id from zohomail_account_list_user.

    Inputs

    account_idstringrequired
    Numeric Zoho Mail account ID identifying the mailbox to fetch details for. This is a Zoho-generated internal identifier assigned when the mail account was added — it is not the user's email address, and it is typically a large integer such as 6000000012345. Obtain it from zohomail_account_list_user first.
  • zohomail_account_list_userList every Zoho Mail account (mailbox) the authenticated user has access to.Read-only

    List User Accounts

    List every Zoho Mail account (mailbox) the authenticated user has access to. Returns each account's numeric account ID, email address, account type, storage usage, and mailbox configuration. Use this first to look up the numeric account_id that other Zoho Mail account tools require; use zohomail_account_get once you have an ID and need that one account's full details.

    Inputs

    This tool takes no inputs.

  • zohomail_antispam_get_dkim_fail_optionGet the DKIM fail action configured for a Zoho Mail organization's anti-spam settings.Read-only

    Get DKIM Fail Option

    Get the DKIM fail action configured for a Zoho Mail organization's anti-spam settings. Returns the configured DKIM fail action: allowMail, permanentReject, temporaryReject, or moveToQuarantine. Use this to check the current DKIM fail handling before changing it with zohomail_antispam_update_dkim_fail_option. Requires the organization's zoid, obtained from zohomail_org_get_organization.

    Inputs

    zoidstringrequired
    Unique Zoho Organization Identifier (zoid) for the organization. Obtain it by calling zohomail_org_get_organization first.
    modestring
    The type of operation to perform. Must be getDKIMFailOption to retrieve the organization's current DKIM fail action.one of getDKIMFailOptiondefault getDKIMFailOption
  • zohomail_antispam_get_dmarc_fail_optionGet the DMARC fail action configured for a Zoho Mail organization's anti-spam settings.Read-only

    Get DMARC Fail Option

    Get the DMARC fail action configured for a Zoho Mail organization's anti-spam settings. Returns the configured DMARC fail action, indicating whether emails that fail DMARC are allowed, quarantined, or moved to spam. Use this to check the current DMARC fail handling before changing it with zohomail_antispam_update_dmarc_fail_option. Requires the organization's zoid, obtained from zohomail_org_get_organization.

    Inputs

    zoidstringrequired
    Unique Zoho Organization Identifier (zoid) for the organization. Obtain it by calling zohomail_org_get_organization first.
    modestring
    The type of operation to perform. Must be getDMARCFailOption to retrieve the organization's current DMARC fail action.one of getDMARCFailOptiondefault getDMARCFailOption
  • zohomail_antispam_get_spf_fail_optionGet the SPF fail action configured for a Zoho Mail organization's anti-spam settings.Read-only

    Get SPF Fail Option

    Get the SPF fail action configured for a Zoho Mail organization's anti-spam settings. Returns the configured spfFail action: allowMail, permanentReject, temporaryReject, or moveToQuarantine. Use this to check the current SPF fail handling before changing it with zohomail_antispam_update_spf_fail_option. Requires the organization's zoid, obtained from zohomail_org_get_organization.

    Inputs

    zoidstringrequired
    Unique Zoho Organization Identifier (zoid) for the organization. Obtain it by calling zohomail_org_get_organization first.
    modestring
    The type of operation to perform. Must be getSPFFailOption to retrieve the organization's current SPF fail action.one of getSPFFailOptiondefault getSPFFailOption
  • zohomail_antispam_get_spf_soft_fail_optionGet the SPF soft fail action configured for a Zoho Mail organization's anti-spam settings.Read-only

    Get SPF Soft Fail Option

    Get the SPF soft fail action configured for a Zoho Mail organization's anti-spam settings. Returns the configured action for SPF soft fail emails: allowMail, permanentReject, temporaryReject, or moveToQuarantine. Use this to check the current SPF soft fail handling before changing it with zohomail_antispam_update_spf_soft_fail_option. Requires the organization's zoid, obtained from zohomail_org_get_organization.

    Inputs

    zoidstringrequired
    Unique Zoho Organization Identifier (zoid) for the organization. Obtain it by calling zohomail_org_get_organization first.
    modestring
    The type of operation to perform. Must be getSPFSoftFailOption to retrieve the organization's current SPF soft fail action.one of getSPFSoftFailOptiondefault getSPFSoftFailOption
  • zohomail_bookmark_getGet a single bookmark's details from a Zoho Mail bookmark group.Read-only

    Get Bookmark

    Get a single bookmark's details from a Zoho Mail bookmark group. Returns the bookmark's link URL, title, summary, collection, tags, and favorite status. Use this to look up one bookmark by ID; use zohomail_bookmark_list to browse all bookmarks in a group. Requires a group ID (from zohomail_bookmark_list_groups) and a bookmark ID (from zohomail_bookmark_list).

    Inputs

    bookmark_idstringrequired
    Numeric ID of the bookmark to look up. This is a Zoho Mail-generated internal identifier, typically a large integer such as 3542000000054321. Obtain it by calling zohomail_bookmark_list for the group first.
    group_idstringrequired
    Numeric ID of the bookmark group that owns this bookmark. This is a Zoho Mail-generated internal identifier, typically a large integer such as 3542000000012345. Obtain it by calling zohomail_bookmark_list_groups for this connection first.
  • zohomail_bookmark_listList all bookmarks in a Zoho Mail bookmark group, with pagination and optional field selection.Read-only

    List Bookmarks

    List all bookmarks in a Zoho Mail bookmark group, with pagination and optional field selection. Returns each bookmark's title, link, summary, collection name, entity ID, tags, and favorite status. Use this to browse a group's active bookmarks; use zohomail_bookmark_list_trash for deleted ones, or zohomail_bookmark_list_favourite for favorites only. Requires a group ID from zohomail_bookmark_list_groups.

    Inputs

    group_idstringrequired
    Unique ID of the bookmark group to operate on. This is a Zoho-generated identifier for a Streams bookmark group, not the group's name. Obtain it by calling zohomail_bookmark_list_groups first, which lists every group's groupId and name.
    afterinteger
    Position to start retrieving bookmarks from, where 1 is the first bookmark. Used for pagination together with limit — pass the position immediately after the last bookmark returned on the previous page. Omit to start from the first bookmark.
    fieldsstring
    Comma-separated list of bookmark detail fields to include in the response. Valid values: title, summary, link, linkMetaInfo, collectionName. Omit to return all fields. Example: "title,link,summary".
    is_prevboolean
    Sort order for the returned bookmarks based on creation time. true returns bookmarks in ascending order (oldest first); false (the default) returns them in descending order (newest first).default false
    limitinteger
    Maximum number of bookmarks to retrieve in this call, from 1 to 399. Defaults to 20 when omitted.default 20