Before you begin: scope and permissions
- Select a task, approved support queues and language/date scope with the service owner.
- Approve treatment of internal notes, customer uploads, security incidents and sensitive support categories.
- Approve the intended scope and use with the business owner; export access alone does not establish licensing rights.
- Use an approved encrypted working environment with restricted access and a retention deadline.
Choose one support task per example design
Triage, response generation, retrieval and outcome evaluation require different records. A triage example may use only the initial customer request; a resolution study may need the full exchange and later confirmation. Define what the model would know at the decision time and what evidence is used only to judge the result.
Use content-capable exports from Zendesk, Freshdesk or Intercom. Their reporting exports are not interchangeable conversation archives. The Zendesk incremental reference distinguishes changed tickets and ticket events; the Freshdesk reference documents ticket and conversation resources. Verify the actual source before designing a common schema.
Separate ticket state, messages and evidence
Create a ticket table for business context, a message table for chronology and an asset inventory for attachments. Keep stable source keys internally. In a prepared release, use approved surrogate identifiers and preserve role, visibility, timestamp and relation fields. Do not infer an author role from the writing style.
Store public replies and internal notes separately. An internal agent instruction can be useful for a permitted workflow task but must not be quietly presented as something the customer saw. Keep automation and AI-generated answers labeled separately from human responses.
Build a realistic schema
The following is synthetic and platform-neutral:
{"example_id":"case-21","task":"resolution_evaluation","messages":[{"role":"customer","visibility":"public","text":"The export is empty."},{"role":"agent","visibility":"public","text":"Clear the status filter and retry."},{"role":"customer","visibility":"public","text":"That returned the expected rows."}],"outcome":{"label":"confirmed_resolution","evidence_message":2},"assets":[],"context_complete":true}
Define whether evidence references use zero-based array positions or stable message IDs; this example uses a zero-based position. In production, stable IDs can avoid broken pointers when messages are filtered. Describe the schema and null rules in the manifest.
Create evidence-based outcome labels
Distinguish customer-confirmed resolution, agent-marked solved, automated closure, unresolved and unknown. A reopened ticket may contradict an earlier success label. Preserve failed attempts because they can explain what the successful answer corrected. Do not convert customer silence into a verified positive outcome.
Use a small reviewed label set with written instructions and disagreements recorded. Check whether reviewers can locate the supporting message. Sample difficult cases such as escalations, merged tickets and multi-issue exchanges. A large number of automatically closed tickets is not equivalent to a large number of trustworthy answer targets.
Normalize text and create safe partitions
Remove repeated signatures and quotes in a derived field while preserving meaningful technical context. Keep code snippets, product versions and error descriptions when authorized. Review customer identifiers, credentials, screenshots and attachment text independently. Do not rely on removal of a profile name to clear a whole conversation.
Deduplicate repeated exports and group shared incidents or ticket merges before splitting. Where feasible, separate customer or product families when the evaluation asks about generalization. Document residual overlap. Keep future resolution text out of inputs for a next-response task.
Troubleshoot and prepare an assessment
Why do examples contain agent-only text? Check role mapping, export completeness and public/internal-note handling before assigning labels.
Why are many “solved” examples unusable? Closure may not include a documented fix or the context needed to understand it. Count complete evidence-backed exchanges separately.
Support data may contain employee, customer and third-party material with distinct rights. Review confidentiality and permitted use before transferring samples. Potential buyer fit depends on domain, language, completeness and reliable evidence; no acceptance or valuation follows automatically from a standardized schema.
Release checklist
- Validate message roles and visibility and separate observed success from administrative closure.
- Group related tickets, incident duplicates and all messages of a conversation into one split.
- Reconcile source counts and date coverage; record excluded or unavailable records.
- Validate identifiers, relationships, timestamps and field types after transformation.
- Document provenance, privacy review, third-party restrictions and the authorized release approver.
- Scan the release files for personal information, secrets and confidential material; test a reviewed sample before transfer.
Have a proprietary dataset?
Find out whether it may be suitable for AI licensing. Start with a high-level description of the source, date range, volume, rights status, and preparation work still needed.
Assess dataset readinessUse the existing buyer application when ready. Share only authorized information. Do not submit raw confidential records, credentials, or personal data in the initial assessment.
Sources & verification
Official documentation reviewed 2026-10-15. Procedures and access rules can change. These are documentation-based instructions, not a live export from your account. Verify your product version, permissions and retention settings before running a job.