> ## Documentation Index
> Fetch the complete documentation index at: https://hellotars.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Enable and use actions

> Enable toolkit actions on the toolkit detail page, then call them from a tool gambit in the builder in agent mode or Workflow Mode.

export const Browser = ({url, children}) => <div className="tars-browser">
    <div className="tars-browser-bar">
      <span className="tars-browser-dots">
        <i />
        <i />
        <i />
      </span>
      {url ? <span className="tars-browser-url">{url}</span> : null}
    </div>
    <div className="tars-browser-view">{children}</div>
  </div>;

export const img = {
  activity: {
    activityTimeline: "/docs/guides/activity/images/activity-timeline.png",
    capturedVariablesPanel: "/docs/guides/activity/images/captured-variables-panel.png",
    dataViewCards: "/docs/guides/activity/images/data-view-cards.png",
    exportDataDialog: "/docs/guides/activity/images/export-data-dialog.png",
    tasksPanelExportReady: "/docs/guides/activity/images/tasks-panel-export-ready.png"
  },
  analytics: {
    analyticsOverview: "/docs/guides/analytics/images/analytics-overview.png",
    exploreGallery: "/docs/guides/analytics/images/explore-gallery.png",
    exploreTab: "/docs/guides/analytics/images/explore-tab.png",
    goalForm: "/docs/guides/analytics/images/goal-form.png",
    goalsTab: "/docs/guides/analytics/images/goals-tab.png",
    improveDiagnostics: "/docs/guides/analytics/images/improve-diagnostics.png",
    improveTab: "/docs/guides/analytics/images/improve-tab.png",
    teamTab: "/docs/guides/analytics/images/team-tab.png"
  },
  billing: {
    billingOverview: "/docs/guides/billing/images/billing-overview.png",
    buyConversationsDialog: "/docs/guides/billing/images/buy-conversations-dialog.png",
    buySeatsDialog: "/docs/guides/billing/images/buy-seats-dialog.png",
    livechatSeatsTab: "/docs/guides/billing/images/livechat-seats-tab.png",
    organizationDeletionLifecycle: "/docs/guides/billing/images/organization-deletion-lifecycle.svg",
    organizationSwitcher: "/docs/guides/billing/images/organization-switcher.png",
    rolesAndAccessMatrix: "/docs/guides/billing/images/roles-and-access-matrix.png"
  },
  building: {
    agentBehaviorGuardrails: "/docs/guides/building/images/agent-behavior-guardrails.png",
    agentCardMenu: "/docs/guides/building/images/agent-card-menu.png",
    agentConfigure: "/docs/guides/building/images/agent-configure.png",
    agentExitRoutesDialog: "/docs/guides/building/images/agent-exit-routes-dialog.png",
    agentLibrary: "/docs/guides/building/images/agent-library.png",
    agentModelParameters: "/docs/guides/building/images/agent-model-parameters.png",
    aiAgentGambitLoop: "/docs/guides/building/images/ai-agent-gambit-loop.svg",
    builderBasics: "/docs/guides/building/images/builder-basics.png",
    builderConnectHandlePanel: "/docs/guides/building/images/builder-connect-handle-panel.png",
    builtInToolsDialog: "/docs/guides/building/images/built-in-tools-dialog.png",
    configureDebugTab: "/docs/guides/building/images/configure-debug-tab.png",
    configureLanguage: "/docs/guides/building/images/configure-language.png",
    configureNotifications: "/docs/guides/building/images/configure-notifications.png",
    createAgentDialog: "/docs/guides/building/images/create-agent-dialog.png",
    draftPublishRollbackPinning: "/docs/guides/building/images/draft-publish-rollback-pinning.svg",
    draftSwitcherChip: "/docs/guides/building/images/draft-switcher-chip.png",
    duplicateAgentDialog: "/docs/guides/building/images/duplicate-agent-dialog.png",
    flowConditions: "/docs/guides/building/images/flow-conditions.png",
    gambitPalette: "/docs/guides/building/images/gambit-palette.png",
    gambits: {
      gambitAiAgent: "/docs/guides/building/gambits/images/gambit-ai-agent.png",
      gambitApiCall: "/docs/guides/building/gambits/images/gambit-api-call.png",
      gambitAutoSuggestion: "/docs/guides/building/gambits/images/gambit-auto-suggestion.png",
      gambitButton: "/docs/guides/building/gambits/images/gambit-button.png",
      gambitCard: "/docs/guides/building/gambits/images/gambit-card.png",
      gambitChannel: "/docs/guides/building/gambits/images/gambit-channel.png",
      gambitCustomCode: "/docs/guides/building/gambits/images/gambit-custom-code.png",
      gambitDateTime: "/docs/guides/building/gambits/images/gambit-date-time.png",
      gambitGeoLocation: "/docs/guides/building/gambits/images/gambit-geo-location.png",
      gambitLanguage: "/docs/guides/building/gambits/images/gambit-language.png",
      gambitLiveChat: "/docs/guides/building/gambits/images/gambit-live-chat.png",
      gambitMediaUpload: "/docs/guides/building/gambits/images/gambit-media-upload.png",
      gambitNoInput: "/docs/guides/building/gambits/images/gambit-no-input.png",
      gambitRedirect: "/docs/guides/building/gambits/images/gambit-redirect.png",
      gambitStarRating: "/docs/guides/building/gambits/images/gambit-star-rating.png",
      gambitStartAndEnd: "/docs/guides/building/gambits/images/gambit-start-and-end.png",
      gambitText: "/docs/guides/building/gambits/images/gambit-text.png",
      gambitTrigger: "/docs/guides/building/gambits/images/gambit-trigger.png"
    },
    languagesTranslateGambit: "/docs/guides/building/images/languages-translate-gambit.png",
    languageSystemMessages: "/docs/guides/building/images/language-system-messages.png",
    newDraftDialog: "/docs/guides/building/images/new-draft-dialog.png",
    outputComponentsGrid: "/docs/guides/building/images/output-components-grid.png",
    publishDialog: "/docs/guides/building/images/publish-dialog.png",
    systemPromptDialog: "/docs/guides/building/images/system-prompt-dialog.png",
    testModeEventLog: "/docs/guides/building/images/test-mode-event-log.png",
    testModePanel: "/docs/guides/building/images/test-mode-panel.png",
    validationProblemsPanel: "/docs/guides/building/images/validation-problems-panel.png",
    variablePickerPanel: "/docs/guides/building/images/variable-picker-panel.png",
    variablePillInserted: "/docs/guides/building/images/variable-pill-inserted.png",
    versionsDraftsPanel: "/docs/guides/building/images/versions-drafts-panel.png"
  },
  campaigns: {
    campaignFlavorsTriggers: "/docs/guides/campaigns/images/campaign-flavors-triggers.svg",
    campaignReplyRouting: "/docs/guides/campaigns/images/campaign-reply-routing.svg",
    campaignSendAnatomy: "/docs/guides/campaigns/images/campaign-send-anatomy.svg",
    createACampaign: "/docs/guides/campaigns/images/create-a-campaign.png",
    walletReserveSettleRefund: "/docs/guides/campaigns/images/wallet-reserve-settle-refund.svg",
    webhookCampaignContractLocking: "/docs/guides/campaigns/images/webhook-campaign-contract-locking.svg",
    webhookCampaignLifecycleStates: "/docs/guides/campaigns/images/webhook-campaign-lifecycle-states.svg",
    webhookCampaignOneCallOneDelivery: "/docs/guides/campaigns/images/webhook-campaign-one-call-one-delivery.svg"
  },
  channels: {
    distributeWhatsappConnect: "/docs/guides/channels/images/distribute-whatsapp-connect.png",
    whatsappConnectDialogWaiting: "/docs/guides/channels/images/whatsapp-connect-dialog-waiting.png",
    whatsappEmptyState: "/docs/guides/channels/images/whatsapp-empty-state.png"
  },
  deploy: {
    bridgeEventGambitSection: "/docs/guides/deploy/images/bridge-event-gambit-section.png",
    deploymentSurfacesAndChannels: "/docs/guides/deploy/images/deployment-surfaces-and-channels.svg",
    designAgentTab: "/docs/guides/deploy/images/design-agent-tab.png",
    designLauncherTab: "/docs/guides/deploy/images/design-launcher-tab.png",
    embedIframeTab: "/docs/guides/deploy/images/embed-iframe-tab.png",
    embedTheWidget: "/docs/guides/deploy/images/embed-the-widget.png",
    mobileAppIntegration: "/docs/guides/deploy/images/mobile-app-integration.png",
    onYourDomain: "/docs/guides/deploy/images/on-your-domain.png",
    shareYourAgentLink: "/docs/guides/deploy/images/share-your-agent-link.png"
  },
  developer: {
    api: {
      channelSendTemplateVsMessage: "/docs/developer/api/images/channel-send-template-vs-message.svg",
      endUsers: {
        endUsersListCursorPagination: "/docs/developer/api/end-users/images/end-users-list-cursor-pagination.svg"
      },
      triggerCallConversationLifecycle: "/docs/developer/api/images/trigger-call-conversation-lifecycle.svg"
    },
    developerSurfacesMap: "/docs/developer/images/developer-surfaces-map.svg",
    embed: {
      embedConfigToWidgetContext: "/docs/developer/embed/images/embed-config-to-widget-context.svg",
      hostPageBridgeFlow: "/docs/developer/embed/images/host-page-bridge-flow.svg",
      identitySigningFlow: "/docs/developer/embed/images/identity-signing-flow.svg",
      scriptVsIframeEmbed: "/docs/developer/embed/images/script-vs-iframe-embed.svg"
    },
    mobile: {
      bridgeMessageProtocol: "/docs/developer/mobile/images/bridge-message-protocol.svg",
      webviewBridgeArchitecture: "/docs/developer/mobile/images/webview-bridge-architecture.svg"
    }
  },
  endUsers: {
    anonymousToIdentifiedProfile: "/docs/guides/end-users/images/anonymous-to-identified-profile.svg",
    bulkActionBar: "/docs/guides/end-users/images/bulk-action-bar.png",
    campaignConsentGate: "/docs/guides/end-users/images/campaign-consent-gate.svg",
    consentPerChannelStates: "/docs/guides/end-users/images/consent-per-channel-states.svg",
    dynamicVsStaticSegments: "/docs/guides/end-users/images/dynamic-vs-static-segments.svg",
    endUserDirectory: "/docs/guides/end-users/images/end-user-directory.png",
    endUserProfileAcrossChannels: "/docs/guides/end-users/images/end-user-profile-across-channels.svg",
    endUserProfilePanes: "/docs/guides/end-users/images/end-user-profile-panes.png",
    profileMergeAndTakeoverProtection: "/docs/guides/end-users/images/profile-merge-and-takeover-protection.svg",
    segmentBuilder: "/docs/guides/end-users/images/segment-builder.png",
    segmentsPage: "/docs/guides/end-users/images/segments-page.png"
  },
  getStarted: {
    agentStates: "/docs/get-started/images/agent-states.svg",
    buildToLivePath: "/docs/get-started/images/build-to-live-path.svg",
    dashboardSidebarMap: "/docs/get-started/images/dashboard-sidebar-map.png",
    organizationOwnershipAndRoles: "/docs/get-started/images/organization-ownership-and-roles.svg",
    quickstart: {
      step1CreateYourAccount: "/docs/get-started/images/quickstart/step-1-create-your-account.png",
      step3ConnectTheAiAgent: "/docs/get-started/images/quickstart/step-3-connect-the-ai-agent.png",
      step4TestMode: "/docs/get-started/images/quickstart/step-4-test-mode.png"
    },
    quickstartCanvas: "/docs/get-started/images/quickstart-canvas.png"
  },
  knowledge: {
    addASource: "/docs/guides/knowledge/images/add-a-source.png",
    addRetrieverPicker: "/docs/guides/knowledge/images/add-retriever-picker.png",
    attachKnowledgeGambit: "/docs/guides/knowledge/images/attach-knowledge-gambit.png",
    configureARetriever: "/docs/guides/knowledge/images/configure-a-retriever.png",
    createKnowledgeBaseDialog: "/docs/guides/knowledge/images/create-knowledge-base-dialog.png",
    customRetrieverDialog: "/docs/guides/knowledge/images/custom-retriever-dialog.png",
    datasetTab: "/docs/guides/knowledge/images/dataset-tab.png",
    documentChangeReindexLifecycle: "/docs/guides/knowledge/images/document-change-reindex-lifecycle.svg",
    documentsTabPreview: "/docs/guides/knowledge/images/documents-tab-preview.png",
    importAWebsite: "/docs/guides/knowledge/images/import-a-website.png",
    kbList: "/docs/guides/knowledge/images/kb-list.png",
    retrieverIndexStates: "/docs/guides/knowledge/images/retriever-index-states.svg",
    retrieverQueryPipeline: "/docs/guides/knowledge/images/retriever-query-pipeline.svg",
    standardVsParentChildChunking: "/docs/guides/knowledge/images/standard-vs-parent-child-chunking.svg",
    syncManagement: "/docs/guides/knowledge/images/sync-management.png",
    testRetriever: "/docs/guides/knowledge/images/test-retriever.png"
  },
  liveChat: {
    agentWorkspace: "/docs/guides/live-chat/images/agent-workspace.png",
    assignedAgentPicker: "/docs/guides/live-chat/images/assigned-agent-picker.png",
    automaticAssignmentRouting: "/docs/guides/live-chat/images/automatic-assignment-routing.svg",
    availabilityDropdown: "/docs/guides/live-chat/images/availability-dropdown.png",
    cannedResponses: "/docs/guides/live-chat/images/canned-responses.png",
    composerPreferences: "/docs/guides/live-chat/images/composer-preferences.png",
    copilotPanel: "/docs/guides/live-chat/images/copilot-panel.png",
    filterConversationsDialog: "/docs/guides/live-chat/images/filter-conversations-dialog.png",
    inboxAnalyticsTab: "/docs/guides/live-chat/images/inbox-analytics-tab.png",
    inboxAvailabilityTab: "/docs/guides/live-chat/images/inbox-availability-tab.png",
    inboxesSettings: "/docs/guides/live-chat/images/inboxes-settings.png",
    inboxRoutingTab: "/docs/guides/live-chat/images/inbox-routing-tab.png",
    labelsSettings: "/docs/guides/live-chat/images/labels-settings.png",
    newAttributeDialog: "/docs/guides/live-chat/images/new-attribute-dialog.png",
    newCannedResponseDialog: "/docs/guides/live-chat/images/new-canned-response-dialog.png",
    notificationPreferences: "/docs/guides/live-chat/images/notification-preferences.png",
    notificationsPage: "/docs/guides/live-chat/images/notifications-page.png",
    pickupTargetCard: "/docs/guides/live-chat/images/pickup-target-card.png",
    resolveMenu: "/docs/guides/live-chat/images/resolve-menu.png",
    searchDialog: "/docs/guides/live-chat/images/search-dialog.png",
    seatGateConversation: "/docs/guides/live-chat/images/seat-gate-conversation.png",
    seatsSettings: "/docs/guides/live-chat/images/seats-settings.png",
    workTheInbox: "/docs/guides/live-chat/images/work-the-inbox.png"
  },
  security: {
    addOpenRouterKeyDialog: "/docs/guides/security/images/add-open-router-key-dialog.png",
    auditChainVerified: "/docs/guides/security/images/audit-chain-verified.png",
    auditEventDrawer: "/docs/guides/security/images/audit-event-drawer.png",
    auditExportDialog: "/docs/guides/security/images/audit-export-dialog.png",
    auditLogViewer: "/docs/guides/security/images/audit-log-viewer.png",
    auditRecordLifecycle: "/docs/guides/security/images/audit-record-lifecycle.svg",
    logPrivacyRedactionEnabled: "/docs/guides/security/images/log-privacy-redaction-enabled.png",
    modelProviderEmptyState: "/docs/guides/security/images/model-provider-empty-state.png",
    privacySettings: "/docs/guides/security/images/privacy-settings.png",
    siemConnectWizard: "/docs/guides/security/images/siem-connect-wizard.png",
    supportActorMasking: "/docs/guides/security/images/support-actor-masking.svg"
  },
  tools: {
    addToolModal: "/docs/guides/tools/images/add-tool-modal.png",
    addToolsPanel: "/docs/guides/tools/images/add-tools-panel.png",
    codekitActionEditor: "/docs/guides/tools/images/codekit-action-editor.png",
    codekitConnectToolkitsDialog: "/docs/guides/tools/images/codekit-connect-toolkits-dialog.png",
    codekitSchemaDialog: "/docs/guides/tools/images/codekit-schema-dialog.png",
    codekitToolkit: "/docs/guides/tools/images/codekit-toolkit.png",
    codekitToolkitAnatomy: "/docs/guides/tools/images/codekit-toolkit-anatomy.svg",
    createActionDialog: "/docs/guides/tools/images/create-action-dialog.png",
    createCodekitDialog: "/docs/guides/tools/images/create-codekit-dialog.png",
    responseFilteringDialog: "/docs/guides/tools/images/response-filtering-dialog.png",
    toolGambitEditorAgentMode: "/docs/guides/tools/images/tool-gambit-editor-agent-mode.png",
    toolGambitEditorWorkflowMode: "/docs/guides/tools/images/tool-gambit-editor-workflow-mode.png",
    toolkitDetail: "/docs/guides/tools/images/toolkit-detail.png",
    toolsConnected: "/docs/guides/tools/images/tools-connected.png",
    toolsDirectory: "/docs/guides/tools/images/tools-directory.png",
    viewActionsModal: "/docs/guides/tools/images/view-actions-modal.png",
    workflowModeResponse: "/docs/guides/tools/images/workflow-mode-response.png"
  }
};

export const urls = {
  app: "https://dashboard.hellotars.com",
  site: "https://hellotars.com",
  support: "mailto:support@hellotars.com",
  status: "https://status.hellotars.com"
};

At the end of this page, your agent calls a toolkit action from a tool gambit, either through an AI Agent gambit or as a flow step.

## Before you start

Before you start, sign in to <a href={urls.app}>the dashboard</a> and select the organization you want to work in.

* You need a connected toolkit. See [Connect a toolkit](/docs/guides/tools/connect-a-toolkit).
* You need an agent with a flow open on the **Make** page. See [Builder basics](/docs/guides/building/builder-basics).

Actions matter in two places. The toolkit detail page holds the organization-wide switch for each action. The tool gambit editor in the builder decides which actions one gambit offers to an AI Agent gambit, or which single action a flow step runs.

## The Subtools panel

Open **Tools**, then select **Configure** on a connected toolkit card. The toolkit detail page opens with the connection cards on the left and the **Subtools** panel on the right. The connection cards are covered in [Connect a toolkit](/docs/guides/tools/connect-a-toolkit).

<Browser url={urls.app}>
  <img src={img.tools.toolkitDetail} alt="The Gmail toolkit detail page with the Tool Info, Authorization, and Log privacy cards on the left, and the Subtools panel on the right with quick filters and per-action switches" />
</Browser>

The panel heading shows how many actions are enabled out of the total. Actions start disabled when you connect a toolkit.

| Control                                  | What it does                                                                                                                                                                                                               |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Search subtools**                      | Filters the list by name, slug, and description as you type.                                                                                                                                                               |
| **All**, **Recommended**, **Categories** | Quick filters, shown when the toolkit tags or highlights actions. **Recommended** appears when the toolkit marks important actions. **Categories** opens a popover with **Search categories...** and **Clear categories**. |
| **Enabled** and **Disabled**             | Chips that filter by switch state, each with a count.                                                                                                                                                                      |
| **Toggle all**                           | Switches every action in the current filtered set on or off.                                                                                                                                                               |
| Per-action switch                        | Enables or disables one action.                                                                                                                                                                                            |
| **Discard**                              | Appears when you have unsaved changes and drops them.                                                                                                                                                                      |
| **Save**                                 | Applies your changes. A **Changes saved** message confirms.                                                                                                                                                                |

Expand an action row to read its **Description**, its **Input Properties**, and its **Output Properties**. On this page they are read only. You edit them per gambit in the builder, in the [Sub-tools section](#sub-tools).

If the toolkit has several accounts, the account picker at the top of the page selects which connection you are editing.

The **Tool Info** card on the left labels the selected connection. Select **Display Name** or **Description** to edit the value in place, then select **Save**. The **Account** picker in the tool gambit editor and the card on the **Connected** tab both show the display name.

## Enable actions for a toolkit

<Warning>
  Every switch in the panel is disabled unless the selected connection is active and your role can manage resources. Repair the connection from the **Authorization** card first.
</Warning>

<Steps>
  <Step title="Open Tools and select Configure on the toolkit card">
    Pick the right account in the account picker if the toolkit has several.
  </Step>

  <Step title="Find the action in the Subtools panel">
    Search the list, or narrow it with the quick filters and the **Enabled** and **Disabled** chips.
  </Step>

  <Step title="Turn on the action's switch">
    Use **Toggle all** to switch the whole filtered set at once.
  </Step>

  <Step title="Select Save">
    Changes apply only after saving. **Discard** drops unsaved edits.

    <Check>
      A **Changes saved** message confirms, and the enabled count in the heading updates.
    </Check>
  </Step>
</Steps>

## Add a tool gambit in the builder

A tool gambit is the flow's handle on one toolkit connection. There are two ways to add one.

<Steps>
  <Step title="Open the Tools tab in the gambit palette">
    The tab lists **Connected** tools first, including **Knowledge Retrieval** and **CodeKit**. **Custom Tools**, **Featured**, and the toolkit categories follow.
  </Step>

  <Step title="Drag a toolkit onto the builder">
    A tool gambit appears with the toolkit's name and logo. Select it to open its editor.
  </Step>
</Steps>

Or start from the AI Agent gambit that will call the tool:

<Steps>
  <Step title="Select the wrench on the left of the AI Agent gambit">
    Its tooltip reads **Add tool**. A panel opens with an **Add Gambits** tab and a **Connect** tab. It opens on **Connect** when the flow already holds a tool gambit, and on **Add Gambits** when it holds none.
  </Step>

  <Step title="Pick a tool on the Add Gambits tab">
    **Knowledge Retrieval** and third-party toolkits appear under **Integrations**, and CodeKit toolkits under **Custom Tools**. The new tool gambit is wired to the agent at once.

    <Browser url={urls.app}>
      <img src={img.tools.addToolsPanel} alt="The Add Tools panel open beside an AI Agent gambit, with its Add Gambits and Connect tabs, a tool search box, and a grid of integrations led by Knowledge Retrieval" />
    </Browser>
  </Step>

  <Step title="Or pick an existing tool gambit on the Connect tab">
    The tab lists tool gambits in agent mode that are already on the flow.
  </Step>
</Steps>

You can also drag from the handle on the right of a tool gambit to the tool handle on the left of the AI Agent gambit. Connected tool gambits appear as badges in the agent's **Tools & Capabilities** region. See [AI Agent gambit](/docs/guides/building/gambits/ai-agent).

## The tool gambit editor

Select a tool gambit to open its editor on the right. The header shows the toolkit's name and logo, and the sections below change with the mode.

### Workflow Mode

The **Workflow Mode** switch sits at the top of the editor. It appears for a third-party toolkit, and for a CodeKit tool gambit once you pick a CodeKit toolkit.

| State              | What the gambit does                                                                                                               |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| Off (agent mode)   | Offers a set of actions to the AI Agent gambit it is wired to. The agent decides which action to call and fills its inputs.        |
| On (Workflow Mode) | Runs one fixed action as a flow step, with explicit input values and output mapping, then continues on a success or failure route. |

For a third-party toolkit, the switch is disabled until you select an account. Turning it on removes the link to the AI Agent gambit. Turning it off clears the success and failure routes.

### Tool Selection

| Control                               | What it does                                                                                                                                       |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Account**                           | Picks the connection this gambit uses. Each entry shows its display name and connection status.                                                    |
| **Add {"{toolkit name}"} Connection** | The last entry in the **Account** list. It opens a dialog with a **Display Name (optional)** field and a **Connect to {"{toolkit name}"}** button. |
| **Configure**                         | Opens the toolkit detail page in a new browser tab.                                                                                                |
| Connection card                       | Shows the state of the selected account with the same actions as the **Authorization** card.                                                       |

The connection buttons are shown only to members who can manage resources. See [Change the connected account](/docs/guides/tools/connect-a-toolkit#change-the-connected-account).

If the toolkit has no connection yet, the section shows **Not connected** and a **Connect** button that starts authorization in a new browser tab.

### Sub-tools

This section appears in agent mode. Its badge counts how many actions this gambit includes. The selection belongs to this gambit alone, so two tool gambits on the same toolkit can offer different actions.

<Note>
  Actions you include here are offered to the AI Agent gambit even if their switch on the toolkit detail page is off.
</Note>

| Control                | What it does                                                                              |
| ---------------------- | ----------------------------------------------------------------------------------------- |
| **Search subtools...** | Filters the list by name, slug, and description.                                          |
| Status filter          | A button that switches between **All**, **Enabled**, and **Disabled**, each with a count. |
| **Toggle all**         | Includes or removes every action in the current filtered set.                             |
| Per-action switch      | Includes or removes one action.                                                           |

Until you select an account, the section reads **Select an account to load its sub-tools.** While the account is not active, every switch is disabled. A tooltip on each switch explains why.

Expand an included action row to shape how the agent sees it:

| Field                  | What it does                                                                                              |
| ---------------------- | --------------------------------------------------------------------------------------------------------- |
| **Description**        | Overrides the action's description for this gambit. The agent reads it to decide when to call the action. |
| **Delivery tracking**  | Records what a successful call means for analytics. See [Delivery tracking](#delivery-tracking).          |
| **Input Properties**   | One text field per input, so you can tell the agent what to send.                                         |
| **Output Properties**  | The action's response fields, read only.                                                                  |
| **Response Filtering** | Limits which response fields reach the agent. See [Response Filtering](#response-filtering).              |

Clear descriptions matter. The AI Agent gambit reads the action description and the input descriptions to decide when to call the action and what to send. For a third-party toolkit, the gambit cannot be saved until every included action and every edited input property has a description.

### Delivery tracking

The **Delivery tracking** dropdown appears on each included action in agent mode, and once per gambit in Workflow Mode. It has four options: **Delivers a goal (lead, booking…)**, **Notification**, **Data sync**, and **Other**. Choosing the goal option adds a **Goal** dropdown that lists your goals.

Goals are created under **Configure**, then **Goals**. See [Track goals](/docs/guides/analytics/goals).

### Response Filtering

The **Response Filtering** control shows whether filtering is on. With filtering off, the full response is returned. Select **Configure** to open the **Response Filtering** dialog.

<Frame>
  <img src={img.tools.responseFilteringDialog} alt="The Response Filtering dialog with the Select all fields checkbox, a selected count, and a tree of response fields with checkboxes" />
</Frame>

Check the fields the agent should receive. Checking a field also returns everything nested inside it. **Select all fields** checks every top-level field. With nothing checked, the full response is returned unfiltered.

Select **Done** to close the dialog. The control then reads **Active · {"{n}"} of {"{total}"} fields**, and only those fields reach the agent.

### Configure Action

This section appears in Workflow Mode.

<Frame>
  <img src={img.tools.toolGambitEditorWorkflowMode} alt="The tool gambit editor in Workflow Mode, with the Configure Action section showing the Action dropdown, Input Parameters, and the Response subsection, followed by the Settings and Routing sections" />
</Frame>

**Action** opens a searchable list of the toolkit's actions. Only actions enabled on the toolkit page can be selected. An action that is switched off shows an **Enable** button that turns it on for the toolkit without leaving the builder. The selected action's description appears under the dropdown.

Members who cannot manage resources see **Not enabled** in place of the **Enable** button.

A CodeKit action that is not live carries a **Not deployed**, **Deploying**, or **Deploy failed** badge. Its **Enable** button stays disabled, with the tooltip **Deploy this action before enabling it**. See [Save and deploy](/docs/guides/tools/write-a-custom-action#save-and-deploy).

A CodeKit action in Workflow Mode needs the `object` type for `data` in its output schema. Without it, a warning under the dropdown links to **Configure the action schema**.

#### Input Parameters

The subsection lists the action's inputs, with required ones marked with an asterisk. Each input shows its name and type, and an info icon with its description. Enter a fixed value, or type `@` to insert a flow variable from an earlier step. Number and boolean inputs offer a toggle to switch between a direct value and a variable.

Object and array inputs open a JSON editor, and the value must be valid JSON of the input type. A variable inside the JSON is sent as one text value, even when it contains line breaks or quotes. See [Variables](/docs/guides/building/variables).

When the whole input is one variable, Tars sends the variable value as data. If that variable is empty, the input uses its default value. With no default, Tars leaves the input out.

If the input is not valid JSON, or is the wrong type, the step fails with `INVALID_WORKFLOW_INPUT` before the action runs. The conversation then follows the **On Failure** route.

#### Response

The subsection shows the response schema and how later steps read it. The full response is captured under the gambit's name in the `api` scope, for example `{{api.GambitName.field}}`. Four access path cards, **raw**, **status**, **ok**, and **error**, copy their variable reference when selected.

<Frame>
  <img src={img.tools.workflowModeResponse} alt="The Response subsection in Workflow Mode with the Response Filtering card, the four access path cards, the response schema, and the Output Mapping control" />
</Frame>

**Response Filtering** works here as in agent mode. See [Response Filtering](#response-filtering).

**Output Mapping (optional)** stores single response fields under names of your choice. Select **Add**, enter a **Variable name**, then pick the response field it **Maps from**. Objects and arrays let you drill further into the path. The value is stored under that name in the `flow` scope, so later steps can read it through the `@` menu.

### Settings

| Field                 | What it does                                                                                                                                                                                                        |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Retries**           | How many times to re-run the tool if a call fails, capped at 2 in agent mode and 4 in Workflow Mode. Set it to 0 to disable retries. A CodeKit action is retried only when the call failed before its code started. |
| **Rate limit (/min)** | The most calls allowed per minute, from a minimum of 10 up to a cap of 150, and 60 by default. Shown only in Workflow Mode.                                                                                         |

### Routing

Shown only in Workflow Mode. **On Success** and **On Failure** each open a **Jump to...** dropdown of gambits. Point **On Success** at the step that continues with the result. Point **On Failure** at a recovery step, such as a message that offers a retry or a handoff.

The tool gambit shows the two routes as **Success** and **Failure** handles.

## Verify

Select **Test** in the toolbar and run the flow into the tool gambit. In agent mode, the AI Agent gambit calls the action when the conversation needs it. In Workflow Mode, the call runs and the conversation follows the **On Success** route.

See [Test your agent](/docs/guides/building/testing-your-agent) for the test run.

## Related pages

* [Connect a toolkit](/docs/guides/tools/connect-a-toolkit)
* [AI Agent gambit](/docs/guides/building/gambits/ai-agent)
* [Variables](/docs/guides/building/variables)
* [Test your agent](/docs/guides/building/testing-your-agent)
* [CodeKit overview](/docs/guides/tools/codekit-overview)
