Build a Support Agent
Create a customer support agent trained on your help documentation and past tickets.
This guide walks through building a fine-tuned model that can answer customer questions about your product, trained on your actual help docs and support history.
What you'll need
- Help documentation — your knowledge base, FAQs, or help center articles
- Past support tickets (optional but recommended) — resolved conversations between your team and customers
- Product documentation — feature descriptions, guides, changelogs
Step by step
Export your data
Help docs: Export from your help center (Zendesk, Intercom, Notion, etc.) as Markdown, HTML-to-text, or PDF.
Support tickets: Export resolved conversations. The ideal format is JSONL with conversation pairs:
{"messages": [{"role": "user", "content": "How do I cancel my subscription?"}, {"role": "assistant", "content": "You can cancel anytime from Settings > Billing > Cancel Plan. Your access continues until the end of the billing period."}]}
{"messages": [{"role": "user", "content": "What happens to my data if I downgrade?"}, {"role": "assistant", "content": "Your data is preserved. You'll just lose access to premium features until you upgrade again."}]}Product docs: Export as Markdown or PDF.
Remove any sensitive customer information (names, emails, account numbers) from support tickets before uploading.
Upload and describe
Upload all your files and use a description like:
"Create a customer support assistant for [product name]. It should answer questions about features, billing, account management, and troubleshooting. It should use a professional but friendly tone, similar to how our support team writes. When it doesn't know something, it should say so rather than guessing."
The more specific your description, the better the model handles edge cases.
Choose a base model
- GPT-4.1 Mini — best default for support agents (fast, accurate, cost-effective)
- Gemini 2.5 Flash — good if your help docs are very long
- GPT-4.1 — if you need the highest quality for complex product questions
Test thoroughly
Test with real customer questions — pull from recent tickets or common FAQs:
- "How do I reset my password?" (basic FAQ)
- "Can I use feature X with plan Y?" (product knowledge)
- "I'm getting error Z when I try to..." (troubleshooting)
- "What's the difference between plan A and plan B?" (comparison)
- "Something completely unrelated to your product" (should gracefully deflect)
Integrating into your support workflow
Once you're happy with the model, integrate it via the API:
from openai import OpenAI
client = OpenAI(
base_url="https://app.commissioned.tech/v1",
api_key="your-api-key",
)
def answer_ticket(question: str, context: list = []) -> str:
messages = [
{"role": "system", "content": "You are a helpful support assistant."},
*context,
{"role": "user", "content": question},
]
response = client.chat.completions.create(
model="your-support-model-id",
messages=messages,
)
return response.choices[0].message.contentUse this in your existing support tools — as a draft generator for agents, an auto-responder for common questions, or a chatbot on your help center.
Keeping it current
As your product evolves, your support agent needs updating:
- Export new help docs and recent tickets periodically
- Create a new fine-tune with the updated data
- Swap the model ID in your integration
- Retire the old model
On the Pro plan, you have 15 model slots — plenty for maintaining current and previous versions.