Skip to main content

Data Tools

Data tools return JSON results to ChatGPT without rendering a widget. They handle lookups, mutations, calculations, and status checks: the backend actions that power your app.

When to Use a Data Tool

Use a data tool when:
  • You need to look up a record (find an order, search products, get user details)
  • You need to create, update, or delete something (add a ticket, change a status, remove an item)
  • You need to run a calculation or aggregation (total revenue, average response time)
  • You need to check a status (is the server up, has the payment cleared)
If the result should be displayed as a visual widget, use a UI tool instead.

How Data Tools Work

1

ChatGPT calls the tool

Based on the conversation, ChatGPT decides to invoke your data tool with the appropriate parameters.
2

The tool runs

Your data tool executes its logic: querying mock data, calling an API, or performing a calculation.
3

JSON is returned

The tool returns structured JSON data to ChatGPT. No widget is rendered.
4

ChatGPT uses the result

ChatGPT reads the JSON and incorporates the information into its text response to the user.

Mock Actions

When you first create data tools, they operate against mock data. Chippy generates realistic sample data so your tools work immediately without a real API. Each data tool uses one of four mock actions.
Mock actions change data in your mock store during the session. This lets you test full create/read/update/delete workflows before connecting real APIs.

How UI Tools Call Data Tools

A common pattern is pairing a UI tool (for display) with one or more data tools (for actions). The widget rendered by a UI tool can trigger data tools when the user interacts with it.

Example: Order Dashboard

Consider an app with these tools: Here is how they work together:
1

User asks to see orders

ChatGPT invokes order_dashboard, which renders the table widget with mock order data.
2

User types in the search bar

The widget calls search_orders with the user’s query. The data tool returns matching orders, and the table updates.
3

User clicks Cancel on an order

The widget calls cancel_order with the order ID. The data tool marks the order as cancelled and returns a confirmation. The table row updates to show the new status.
To build this, describe the interaction in the builder chat:
Build an order management app with:
  1. A UI tool “order_dashboard” in fullscreen that shows orders in a table with columns for order ID, customer, total, and status. Include a search bar at the top.
  2. A data tool “search_orders” that takes a query string and returns matching orders.
  3. A data tool “cancel_order” that takes an order ID and marks the order as cancelled.
The search bar in order_dashboard should call search_orders. Each row should have a Cancel button that calls cancel_order.
Order dashboard UI tool calling search and cancel data tools

Order dashboard with search and cancel powered by data tools

Data Tools vs UI Tools: Decision Guide

Use this table to decide which type of tool to create.

Creating a Data Tool

Describe the tool in the builder chat with its name, action type, inputs, and outputs. Get example:
Create a data tool called “get_customer” that takes a customer ID and returns the customer’s name, email, plan, and account creation date.
Add example:
Create a data tool called “add_note” that takes a ticket ID and note text, then adds the note to the ticket’s history.
Update example:
Create a data tool called “update_priority” that takes a ticket ID and a new priority level (low, medium, high), then updates the ticket.
Delete example:
Create a data tool called “remove_tag” that takes a product ID and a tag name, then removes that tag from the product.

Troubleshooting

What’s Next

UI Tools

Display interactive widgets in ChatGPT.

Mock Data

Prototype with realistic sample data.

API Integrations

Replace mock data with live API connections.

Tools

General tool design principles and configuration.