Tools

By default, your agent answers questions from your Knowledge Base. Tools (the apps and systems your agent can look things up in or change; you may know them as integrations or plugins) let it do things too - look up an order or a payment, place a replacement order, create a ticket, or call your own systems. You choose exactly which tools your agent can use on the Tools tab of the agent configuration page.

How Tools Work

When your agent is in a conversation, it decides - based on the visitor's question - whether a tool would help. If you have enabled a "look up order" tool, the agent can call it, read the result, and use it in its answer. You stay in control of which tools exist and what they are allowed to do.

The agent Tools tab showing one tool list with type filter chips (All, Built-in, MCP, Apps, API, Mock), the Connect an app button, and the built-in tool catalog

The agent Tools tab showing one tool list with type filter chips (All, Built-in, MCP, Apps, API, Mock), the Connect an app button, and the built-in tool catalog

Built-in Tools

DeskClone ships a catalog of safe, ready-to-use tools you can switch on with a single toggle. Common ones include:

  • Search Knowledge Base - find relevant content to answer a question
  • Read a file - open a specific Knowledge Base file
  • Save a memory - remember a detail for later in the conversation
  • Get the current time - useful for deadlines and "how long ago" questions
  • List uploaded files - see the files and images a visitor attached in the chat
  • Confirm resolution - mark a question as resolved
  • Hand over to a person - pass the conversation on when the agent cannot resolve the request

Each tool shows its risk as a badge - Read-only tools change nothing; Makes changes tools act on your connected systems. You enable a tool with its toggle.

Skills

Skills (also known as AI actions) are things your agent completes for visitors during a conversation - capture an interested lead, book a callback, issue a refund - each delivered through a tool you connect, with your guardrails enforced and a verified receipt of what actually happened. Skills live on their own Skills tab (right after Knowledge), which also lists your agent's built-in capabilities - the full answer to "what can my agent do?".

A skill has these parts: a name (like "Capture a lead"), a plain-language line saying when to use it, optional guidance on how to go about it, the fields it collects in conversation (a name, an email, an order number), and the destination it sends to - a connected tool (your automation platform, a webhook, a spreadsheet, any API connection) or an email to an address you set. That email address is fixed when you save the skill; the agent can never choose or change it, each conversation can send at most a few, and test runs are labeled [TEST] in the subject.

1

Create the skill

On the Skills tab, create a skill: name it, say when the agent should use it, list the fields to collect, and pick the destination. Your first skill can simply email you what it collects - no app connection needed; saving it switches skills on for the agent automatically.

2

Connect an app when you want one

To deliver into a spreadsheet, your automation platform (Pabbly Connect, Zapier, Make), a webhook, or any API, connect it on the Tools tab with Connect an app, then point the skill at it.

3

Optionally, say how to go about it

The skill's guidance field tells the agent how to behave while running it - "answer their question first, collect details conversationally, never as a form". Leave it blank for sensible defaults, or click the wand next to either text field to draft it with AI (it proposes; your own words are never overwritten - you choose Use this or Keep mine). The guidance lives on the skill, so removing the skill removes it everywhere.

4

Test it for real

Test runs the skill through the real chain - your connected tool actually receives the data, marked as a test (a source: "test" field and header) so your workflow or sheet can filter it. The receipt shows on the card.

Honesty guarantees, the same ones behind refunds:

  • The agent confirms a skill to the visitor only from the verified receipt - details come from your tool's actual response. For destinations that don't confirm success in their responses (many webhooks acknowledge with plain text), the skill form offers the honest choice: receipts then say sent, not completed, and your workflow's own history is the completion record.
  • If a skill fails or is blocked, the agent says plainly that it was not completed and brings in your team. Repeated failures - say a workflow deleted in your automation platform - email you with what's failing, since when, and the fix; the alert clears itself on the next success.
  • Test runs and preview conversations are always marked as tests in the delivered data, so your real records stay clean.

New agents start with a sensible default tool set, so they can answer from your Knowledge Base immediately.

Custom API Tools

Custom API tools connect your agent to your own systems. Point the agent at any web address (an HTTP endpoint) and it can call it during a conversation.

1

Filter to API tools

Go to Agents, click your agent card, open the Tools tab, and select the API filter. The Tools tab shows every tool your agent has in one list - the filter chips (All, Built-in, MCP, Apps, API, Mock) narrow it by type.

2

Add a new API tool

Click New API tool. Give it a clear name and description - the description tells the agent when to use it.

3

Configure the request

Set the method (GET, POST, PUT, PATCH, or DELETE), the URL, and any path, query, or body parameters the agent should fill in.

4

Add authentication

Choose how the tool authenticates: bearer token, header key, basic username and password, or OAuth. Credentials are stored encrypted.

5

Test it

Use the Test button to send a sample request and confirm the connection works before going live.

Creating a custom API tool: give it an ID, name, web address, and method, and it's added to your agent.

Write the tool's description for the agent, not for yourself. "Look up a customer's subscription status by their email" tells the agent exactly when to reach for it. A vague description leads to the tool being used at the wrong time, or not at all.

Ready-Made Apps

If you use a popular service, you do not have to wire it up by hand. Connecting a ready-made app from the catalog (also called a preset or one-click Shopify) sets up the right tools for you in a couple of clicks. Ready-made apps are available for:

  • Zendesk - create and update tickets
  • HubSpot - look up contacts, create and read tickets
  • Salesforce - run lookups, create and update cases
  • Shopify - look up order status and tracking, cancel unshipped orders, change shipping addresses, remove items, refund orders and send replacements, with the shopper confirming every change (see Order changes in chat)
  • Stripe - check payments
  • PayPal - check transactions
  • Slack - post messages
  • Jira - search, create, and comment on issues
  • Linear - search, create, and comment on issues
  • GitHub - read and create issues
  • PagerDuty - page the on-call, create and read incidents
  • Notion - read pages
  • Calendly - check availability and bookings
  • Pabbly Connect - trigger a workflow you already run
  • Zapier - trigger a Zap you already run
  • Make - trigger a scenario you already run
  • Webhook - send data to any webhook link
  • Google Sheets - append rows and read ranges in your spreadsheets

The automation-platform apps (Pabbly Connect, Zapier, Make, Webhook) take one input - your workflow's webhook link - and it is stored encrypted like any credential, because webhook links carry access in the link itself. They pair naturally with a skill: the skill collects the details, your workflow does the rest (add a row, send yourself an email, update your CRM - anything your platform can do).

Google Sheets connects with a service account: paste the sheet's URL and the service-account key file (the connect screen walks you through both, and tells you the one manual step Google requires - sharing the sheet with the service account's email address). Rows land straight in your sheet; the sheet's own notification rules in Google Sheets (Tools → Notification settings) can email you on every change, so a lead-capture skill plus one toggle in your sheet is a complete pipeline with nothing else to maintain.

Connecting an app: Connect an app, pick a service (Calendly here), paste the credential, and its tools are added to your agent.

1

Open the app catalog

On the Tools tab, click Connect an app.

2

Pick a service

Choose the app for the service you want (for example, Shopify). Use the search box or the category filters (Support, CRM, Development, and so on) to find it quickly.

3

Connect your account

Enter the credentials the service asks for (an API key, token, or OAuth login). Each field says where to find its value, and the form links to the credentials guide below. The relevant tools are added to your agent automatically.

4

Review the result

After connecting, DeskClone checks your credentials against the service and shows the outcome. (Webhook connections are the one exception - they are never test-fired on connect, because a probe would run your real workflow; use a skill's Test button instead.) The same screen tells you the new tools start out employee-only (your public chat window will not use them yet) and offers one click to allow customer chats to use the read-only tools. Tools that make changes stay employee-only - create a skill that uses them. Shopify is different: its order changes have their own panel, described in Order changes in chat.

Where to get each service's credentials

  • Zendesk - API token: Admin Center → Apps and integrations → APIs. Connect with your Zendesk subdomain and agent email.
  • HubSpot - private app access token: Settings → Integrations → Private Apps. Grant the contacts read and tickets read/write scopes.
  • Salesforce - consumer key and secret: Setup → App Manager → New Connected App. Enable OAuth and the Client Credentials flow, and set a run-as user (that user's permissions decide what the agent can reach). Connect with your My Domain name.
  • Shopify - client ID and client secret from an app you create in the Shopify Dev Dashboard (dev.shopify.com), signed in to your store's own account. Give the app the read_orders, write_orders, write_order_edits, read_merchant_managed_fulfillment_orders, read_third_party_fulfillment_orders, read_locations and read_products scopes (the read scopes let your agent see each item on the order and whether a warehouse is already handling it, so it never changes an order that is being packed), release the version and install it on your store. Orders hold your customers' details, so Shopify also asks the app to say how it uses them: in the Shopify Partner Dashboard (partners.shopify.com), open the app's API access requests, choose Request access under Protected customer data access, select Protected customer data and the Name, Email, Phone and Address fields with the reason Customer service, and save. Then copy the client ID and secret from the app's Settings. Connect with your store's .myshopify.com address (Shopify shows it under Settings > Domains). The DeskClone app from the Shopify App Store reads only your products; changing orders needs this separate connection.
  • Stripe - restricted secret key: Dashboard → Developers → API keys. Restrict it to charges and customers.
  • PayPal - client ID and secret: developer.paypal.com → Apps & Credentials. Pick sandbox or production to match the environment you select in the form.
  • Slack - bot token (xoxb-...): api.slack.com/apps → your app → OAuth & Permissions, then install the app to your workspace.
  • Jira - API token: id.atlassian.com → Security → API tokens. Connect with your Atlassian site name and account email.
  • Linear - personal API key: Settings → Security & access → Personal API keys.
  • GitHub - fine-grained personal access token: Settings → Developer settings → Personal access tokens. Scope it to the repositories and permissions the agent needs.
  • PagerDuty - REST API key: Integrations → API Access Keys. Also enter the email of a PagerDuty user; incidents the agent creates are attributed to them.
  • Notion - integration token: notion.so/my-integrations. Share the pages or databases with the integration to grant access.
  • Calendly - personal access token: Integrations → API & Webhooks.

Order changes in chat

Your agent can tell shoppers where their Shopify order is, and cancel, change, refund or replace orders in the chat, within limits you set. The shopper proves it's their order with a code sent to the order's email, and confirms every change with a button. Nothing about an order is shown before that.

What your agent can do

Connect Shopify (see where to get its credentials), then open Order changes on the Shopify card in your agent's Tools tab. Each change is off until you turn it on:

The Order changes panel on the Shopify card: (1) each change's on and off switch, (2) Let my agent do it or Approve each one first, (3) the refund limits you set (here a test store's), (4) the switch that stops every order change at once

The Order changes panel on the Shopify card: (1) each change's on and off switch, (2) Let my agent do it or Approve each one first, (3) the refund limits you set (here a test store's), (4) the switch that stops every order change at once

ChangeWhat happens
Cancel unshipped ordersCancels an order that hasn't started shipping and refunds it the way it was paid.
Change a shipping addressChanges where an unshipped order goes, within the same country unless you allow otherwise.
Remove an itemRemoves an item from an unshipped order and refunds it. The refund is checked against your limits first; if it would go over them, the item isn't removed.
Refund an orderRefunds items the way the shopper paid. Refunds of items that have already shipped wait for you by default.
Send a replacementSends a free replacement for items that shipped damaged, wrong or lost, to the address on the order. Goods leave your store, so it starts on Approve each one first. One replacement per item.

Your agent can also look up an order's status and tracking, after the shopper confirms it's theirs with the same code. This is on as soon as Shopify is connected, changes nothing, and you can turn it off in the panel.

For each one, choose Let my agent do it or Approve each one first. With Approve each one first, your agent sends the request to you as a ticket, and nothing changes until you approve it there. Orders can ship while they wait for you.

What the shopper sees

  1. The shopper asks, for example "Can I cancel order 1042?".
  2. A card asks for the email they used for the order. If it matches, we email them a 6-digit code from your store's name. They type it into the card.
  3. A second card shows the exact change, read from Shopify at that moment, for example "Cancel order #1042 (3 items, $86.40). $86.40 goes back the way you paid. This can't be undone." The change happens only when they tap the button.
  4. Your agent tells them it's done, or why it couldn't be done, and offers someone from your store when it can't help.

Shopify checks the order again at the tap. If it started shipping in between, nothing changes and the shopper is told.

Your limits

Limits are in your store's own currency. Defaults for a store in US dollars:

LimitDefault
Refund on its own, per order$100
Cancel on its own, order value$250 (above this, it waits for you)
Refunded on its own, per day across your store$300
Refunded per shopper, every 30 days$150
Replacement goods on their own, per order$100
Refunds per chat1
Order changes per chat, per shopper per day, per store per day3, 3 and 25

A change above a money limit waits for your approval instead of being refused. A store in another currency starts with every refund, removal and cancel waiting for you until you set the limits in that currency. Daily limits start again at midnight UTC. If refunds are paused after an unusual run of them, item removals and cancels wait for you too, since they also send money back.

Your agent refunds when the shopper asks, within these limits. It doesn't check a reason or your return policy. Use Approve each one first for anything you want to look at yourself.

Approving a request

A request that waits for you opens a ticket and we email you straight away. The ticket shows what the shopper asked, what Shopify says about the order now, and two buttons: Approve and Decline. Approving checks the order again before anything changes. The shopper gets an email with the outcome under your store's name, and their replies come back to the ticket.

Safety

  • A code goes to the email on the order, so only the buyer can change it. Codes expire after 10 minutes. After 8 wrong codes in one chat, the code box closes and says so, and that chat can no longer change orders. If a code doesn't arrive, the shopper is offered the store's team instead of being left waiting. Repeated wrong codes for a code that really went to an order's email lock that email out of order changes for a day. Someone typing a shopper's email into their own chat can't lock that shopper out.
  • Your agent reads the order from Shopify each time. An order that has shipped, is cancelled or was already refunded in full is refused, and the shopper is told which.
  • An instruction hidden in a message or an order note can't make a change happen: the change runs only on the shopper's tap, and only after it is checked again.
  • If something looks like an attack, for example many orders tried from one chat or a burst of refunds, we block that chat from order changes and send every change to you for approval for a while. You get an email, and a refund spike pauses refunds until you turn them back on.
  • A blocked chat, email address or network address is listed under Blocked from changing orders, with why and until when. If you know it was a real shopper, for example several people in one office sharing an internet connection, choose Lift. They can try again at once, and they still have to prove each order is theirs with a code.
  • Every request, done or refused, is listed under Recent order changes. A change the shopper never confirmed, or one you never approved or declined, shows as Not done with the reason, for example "the shopper didn't confirm it".
Recent order changes: (1) each request with its order, change and status, (2) why a change was not made, (3) the amount

Recent order changes: (1) each request with its order, change and status, (2) why a change was not made, (3) the amount

Turning it off

Use Order changes in chat: Off in the panel to stop them all at once, or turn off each change on its own. If you have a Handover to a person rule for "refund" or "cancel", a change you turn on takes priority over it, and the rule applies only when your agent can't make the change itself.

From the Chat

Jarvis can tell you which order changes are on and change them for you. Ask "What can my agent do with orders?" or "Stop refunds for now".

  • Making it safer happens straight away, for example turning a change off, lowering a limit, or choosing Approve each one first. Undo would let your agent do more again, so it shows you the same card first, and the old setting comes back only when you press Apply these changes.
  • Letting your agent do more is your click. If you ask Jarvis to turn a change on or raise a limit, it shows a card that spells out what will happen, for example "Up to $250.00 an order will go back to shoppers without you seeing it first". Nothing changes until you press Apply these changes.
  • Connecting Shopify happens in the connection form, which Jarvis opens for you. Paste the client ID and secret there, never in the chat.
  • Blocked visitors: Jarvis lists what is blocked from changing orders and why. Ask it to lift one and it puts a card on your screen to confirm; lifting lets that visitor try again. If you change your mind, Jarvis can put the block back.
  • Jarvis never changes an order itself. Shoppers change their own orders in the chat; you change orders in Shopify.

MCP Servers

If you run a Model Context Protocol (MCP) server, you can connect it to expose its tools to your agent. From the Tools tab, select the MCP filter and click Add MCP Server; add your server's URL and credentials, and DeskClone will list the tools it provides so you can enable the ones you want.

The Mock filter (visible under Tools) is coming soon. It will let you give a tool canned responses for testing, so you can try a tool's behavior before the real API is ready.

Changing Tools From the Chat

Jarvis can add and change tools from the chat, but it never does so on its own. Every tool and MCP change waits for your tap on a card.

  • Add a tool, or change its address, risk or who can use it. The card shows the address, the method, what it can do, who can use it, and the names of its keys. Nothing changes until you press the button on the card, and the change then appears in the list of changes with Undo.
  • Change an MCP server. Turn it on or off, choose which of its tools stay on, and set its default risk and who sees it. This is a card too.
  • Delete a tool or an MCP server. The card names the tool or server and the agent it comes off. The keys stored for a deleted tool are deleted with it. There is no Undo.
  • Test a tool. A test sends your tool one real request, so anything it does happens for real. The card shows the sample input it will send, and the request goes only when you press Run test. Jarvis tells you the status your tool answered with and a short summary, never the tool's reply or its keys.
  • Rename a tool or change its description. This happens straight away, with Undo, unless Jarvis has just read one of your documents, in which case it waits for your tap.
  • Refresh a connected app's tools. It brings the app's tools up to the current definitions and keeps your address, sign-in, stored keys and limits.
  • Some tools cannot be opened to customers. A tool marked team-only, one that changes money or accounts, and an MCP server that can change things all stay closed to customers.

Keys are typed on a card, never in the chat. To set a tool's keys, or connect an app that needs them, Jarvis puts a card on your screen with one masked field for each key. You type them there; they go from your screen straight to your workspace. They never pass through the conversation, so never paste one into the chat. If a tool's settings contain a key or an Authorization header, the change is refused and you are told to add it as a key instead.

Undo is careful with tools. If undoing would open a tool to more people than it is open to now, it keeps the current, narrower setting and says so.

Skills work the same way: a skill that emails someone always waits for your tap on a card that shows the address it will email.

Risk Levels and Visibility

Every tool has a risk level, and DeskClone uses it to keep your public chat window safe:

  • Read-only - looks something up, changes nothing. Example: check an order status.
  • Makes changes - changes data. Example: update a ticket, trigger a workflow.
  • Destructive - removes or irreversibly changes data. Example: issue a refund.

Customer-facing chat window conversations are locked down by default. Public chats see read-only tools, the safe built-ins (like hand over to a person), and your configured skills - the guarded path described above. Your raw change-making and destructive tools are not offered to the agent in public chats unless you explicitly set a tool's visibility to include customers; the recommended pattern is to keep them employee-only and route customer actions through skills, so every action passes your guardrails and returns a verified receipt. Employee-assisted ticket work sees all risk levels, with the approval workflow adding another check on top. Shopify order changes are never offered to the agent as a raw tool in any chat: they run only after the shopper proves the order is theirs and confirms the exact change (Order changes in chat).

On the Tools tab, any tool your public chat window will not use carries a Not in customer chats badge, so you can see at a glance which tools are employee-only. Change a tool's availability from its settings (the gear icon on its row).

Guardrails

For any tool that moves money or changes customer data, set guardrails. A guardrail (for example, a maximum refund amount, or a required field) is enforced before the request is sent - so a cleverly worded message cannot talk your agent into exceeding it. When a guardrail blocks an action, the agent is told why and can hand over to a person instead of retrying.

Always set guardrails on financial and data-changing tools. Risk gating keeps these tools out of public chats, and guardrails cap what they can do even in employee-assisted work. Together they are your safety net.

Checking Tool Health

Once you have connected apps and custom tools, click Check credentials on the Tools tab to confirm each one's credentials still work. The check tells you which tools are healthy and which need attention (for example, an expired API key), so a broken connection does not surface as a failed answer to a customer.

You do not have to keep checking manually. If a connection's credentials are rejected during a real conversation (for example, an API key expires), DeskClone alerts you automatically:

  • The workspace admin gets an email right away saying which tool failed, what the service returned, what it means for your agent, and the exact next step.
  • The tool shows a red Needs reconnect badge on the Tools tab, with a summary banner at the top, until it works again.
  • Affected conversations are handed to a person on your team in the meantime - the agent never pretends an action worked while its connection is broken.

Update the credential and the alert clears automatically on the next successful call - there is nothing to dismiss.

What's Next

Your agent now has the knowledge and the actions it needs. Time to put it in front of visitors - head to Add Your Agent to Your Website for the steps for your website's platform.

Was this page helpful?