Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Wrike

Scalekit connector
Open markdown

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

Tools
61
What they doRead · write · destructive
44 · 17 · 044 read17 write0 destructive
Users sign in with
OAuth app
Your own Wrike 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 Wrike connection

    In AgentKit > Connections, create a Wrike 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

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

    Then enter the app's Client ID and Client Secret on the Wrike 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 = 'wrike'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Wrike:', 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: 'wrike_account_get',
    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
  • wrike_account_getGet the Wrike account the connected user belongs to.Read-only

    Get Account

    Get the Wrike account the connected user belongs to. Returns the account with id, name, dateFormat, firstDayOfWeek, workDays, rootFolderId, recycleBinId and, when requested, subscription and custom fields. Use wrike_account_get for account settings and the root folder ID. Use wrike_spaces_list or wrike_folders_list to browse content.

    Inputs

    fieldsstring
    Optional fields to add to the account, which Wrike leaves out by default. Pass a JSON array of field names as a string. Allowed values: metadata, customFields, subscription. Example: ["metadata","customFields"].
  • wrike_approvals_getGet one or more Wrike approvals by ID.Read-only

    Get Approvals

    Get one or more Wrike approvals by ID. Returns approvals with id, status, description, dueDate, approvers, decisions and attachments. Use wrike_approvals_get when you have approval IDs. Use wrike_approvals_list to search.

    Inputs

    approval_idsstringrequired
    One or more Wrike approval IDs separated by commas. Get them from wrike_approvals_list. Example: IEACW7SVMEABR3CQ.
  • wrike_approvals_listList approvals across the Wrike account, filtered by status, approver, pending approver, type, due date or update time.Read-only

    List Approvals

    List approvals across the Wrike account, filtered by status, approver, pending approver, type, due date or update time. Returns approvals with id, taskId or folderId, status, description, dueDate, decisions and approvers, plus nextPageToken when page_size is set. Use wrike_approvals_list to find approvals waiting on someone. Use wrike_task_approvals_list or wrike_folder_approvals_list for one item.

    Inputs

    approversstring
    Filter by approver. Pass a JSON array of IDs as a string, e.g. ["KUAFY3BJ"]. Get the IDs from wrike_contacts_list.
    due_dateobject
    Filter by approval due date. Pass an object with start and end for a range, or equal for one exact date, using dates as yyyy-MM-dd. Example: {"start":"2026-01-01","end":"2026-01-31"}.
    limitinteger
    Maximum number of approvals to return in total. Example: 50.
    next_page_tokenstring
    Token for the next page of results, from the previous response's nextPageToken. When set, Wrike ignores the other filters.
    page_sizeinteger
    Number of approvals per page. The response includes nextPageToken when more exist. Example: 100.
    pending_approversstring
    Filter by approvers who still have to decide. Pass a JSON array of IDs as a string, e.g. ["KUAFY3BJ"]. Get the IDs from wrike_contacts_list.
    statusesstring
    Return only approvals in this status: Pending, Approved, Rejected, Cancelled, Draft or NotRequired.one of DraftNotRequiredApprovedRejectedCancelledPending
    typestring
    Return only Regular approvals or FilesOnly (file review) approvals.one of FilesOnlyRegular
    updated_dateobject
    Filter by last update time. Pass an object with start and end (either may be left out for an open range), using UTC timestamps as yyyy-MM-ddTHH:mm:ssZ. Example: {"start":"2026-01-01T00:00:00Z","end":"2026-01-31T23:59:59Z"}.
  • wrike_attachment_url_getGet a temporary public download URL for one Wrike attachment.Read-only

    Get Attachment Download URL

    Get a temporary public download URL for one Wrike attachment. Returns the URL, valid for 24 hours. Use wrike_attachment_url_get to share or fetch a file without Wrike credentials. Use wrike_attachments_get for file details.

    Inputs

    attachment_idstringrequired
    ID of the Wrike attachment. Get it from wrike_task_attachments_list or wrike_folder_attachments_list. Example: IEACW7SVIYJJEUHD.
  • wrike_attachments_getGet the details of one or more Wrike attachments by ID.Read-only

    Get Attachments

    Get the details of one or more Wrike attachments by ID. Returns attachments with id, name, type, contentType, size, createdDate, authorId and taskId or folderId. Use wrike_attachments_get when you have attachment IDs. Use wrike_attachment_url_get for a download link.

    Inputs

    attachment_idsstringrequired
    One or more Wrike attachment IDs separated by commas. Get them from wrike_task_attachments_list. Example: IEACW7SVIYJJEUHD.
    versionsboolean
    Set to true to also return earlier versions of each file.
  • wrike_attachments_listList file attachments added across the Wrike account within a creation-date range shorter than 31 days.Read-only

    List Attachments

    List file attachments added across the Wrike account within a creation-date range shorter than 31 days. Returns attachments with id, name, type, size, createdDate, authorId, taskId or folderId and, when with_urls is true, a 24-hour download URL. Use wrike_attachments_list for recent files across the account. Use wrike_task_attachments_list or wrike_folder_attachments_list for one item.

    Inputs

    created_dateobjectrequired
    Filter by upload time; required, and the range must be shorter than 31 days. Pass an object with start and end (either may be left out for an open range), using UTC timestamps as yyyy-MM-ddTHH:mm:ssZ. Example: {"start":"2026-01-01T00:00:00Z","end":"2026-01-31T23:59:59Z"}.
    versionsboolean
    Set to true to also return earlier versions of each file.
    with_urlsboolean
    Set to true to include a download URL for each attachment. The URLs are valid for 24 hours.
  • wrike_comment_replies_listList the replies to one Wrike comment.Read-only

    List Comment Replies

    List the replies to one Wrike comment. Returns reply comment objects with id, authorId, text and createdDate. Use wrike_comment_replies_list to read a reply thread. Use wrike_task_comments_list for a task's top-level comments.

    Inputs

    comment_idstringrequired
    ID of the Wrike comment. Get it from wrike_task_comments_list or wrike_comments_list. Example: IEACW7SVIMJVSFUF.
    fieldsstring
    Optional fields to add to each reply, which Wrike leaves out by default. Pass a JSON array of field names as a string. Allowed values: type. Example: ["type"].
    plain_textboolean
    Set to true to return comment text as plain text with the HTML tags removed. Defaults to false (HTML).
  • wrike_comments_getGet one or more Wrike comments by ID.Read-only

    Get Comments

    Get one or more Wrike comments by ID. Returns comment objects with id, authorId, text, createdDate and the taskId or folderId they belong to. Use wrike_comments_get when you have comment IDs. Use wrike_task_comments_list to read a whole thread.

    Inputs

    comment_idsstringrequired
    One or more Wrike comment IDs separated by commas. Get them from wrike_comments_list or wrike_task_comments_list. Example: IEACW7SVIMJVSFUF.
    fieldsstring
    Optional fields to add to each comment, which Wrike leaves out by default. Pass a JSON array of field names as a string. Allowed values: type. Example: ["type"].
    plain_textboolean
    Set to true to return comment text as plain text with the HTML tags removed. Defaults to false (HTML).
    typesstring
    Comment types to include. Wrike returns Regular comments when this is left empty. Pass a JSON array as a string. Allowed values: Regular, Email. Example: ["Regular","Email"].