# Design skills for databases
The key to effective database skills is mapping how users naturally ask questions to the parameters your data source can use for filtering data. Use the following guidelines to design your skills:
# List user questions
Create a list of questions users ask when designing skills. For example, users in a support ticket system might ask the following questions:
How many tickets are open for Acme Corp?Show me all P1 tickets from last weekWhat tickets did Sarah close yesterday?Are there any tickets about login issues for Enterprise customers?
# Identify filter patterns
Break down each user question into underlying filters to identify patterns. For example:
| Question | Filters needed |
|---|---|
How many tickets are open for Acme Corp? | Status, Customer |
Show me all P1 tickets from last week | Priority, Date Range |
What tickets did Sarah close yesterday? | Assigned To, Status, Date Range |
Are there any tickets about login issues for Enterprise customers? | Keyword, Customer Tier |
# Design your skill inputs
Configure filters based on how users will interact with your genie:
| Consideration | Recommendation |
|---|---|
| Required vs Optional | Make filters optional when users might not specify the data. For example, Show me open tickets doesn't include a customer. |
| Data type | Use enums or drop-down menus for fixed values, such as Status or Priority. Use free text for names or IDs. Use date fields for time ranges. |
| Naming | Use skill input names that your genie can naturally map to. For example, customer_name is clearer than acct_id. |
| Default values | Consider sensible defaults. For example, the date range defaults to last 30 days if not specified. |
# Handle combined filters
Users often combine multiple filters into a single question. We recommend designing your skill to accept multiple optional parameters that work together. For example:
Skill: Search Support Tickets
Inputs:
- status (optional): Open, Closed, Pending
- priority (optional): P1, P2, P3, P4
- customer_id (optional): string
- assigned_to (optional): string
- created_after (optional): date
- created_before (optional): date
- keyword (optional): string for searching ticket subject/description
This single skill can handle dozens of question variations by combining parameters.
# Identify the output your skill returns
Review your filters and parameters carefully to identify the key data your skill returns. Consider the data your skill should return:
- For counts: Return only the number.
- For lists: Return key fields only, such as ID, title, status, and date. Ensure your output returns less than 250KB.
- For details: Create a separate
Get Ticket Detailsskill that takes a ticket ID.
USE SUMMARY AND DETAIL SKILL PATTERNS
Pair a summary skill with a detail skill. The genie can search broadly before narrowing the search to more specific information.
Last updated: 12/10/2025, 6:18:12 PM