task icon Task

Analyze Support Tickets

Requirements
CSV file with support ticket data including category, priority, or issue type columns
1

If the CSV path was not already provided, ask the user for it.
Common sources: Zendesk, Intercom, Freshdesk, Salesforce Service Cloud, or custom exports.
The output path is defined by uiSession Customer Success Data.

5

VALIDATION: If 0 rows, stop and tell user the CSV has no data. If <20 rows, note for warning.

Interpret columns semantically. Look for: ticket IDs, categories/types, customers, dates,
priority/severity, resolution time, status. Write enriched output back to uiSession Customer Success Data
with: source, rowCount, columns, interpretations, detected (by type), possibleAnalyses, data array.

7

Analyze the ticket data:

  1. Use detected.categoryColumns for top issues ranking (if none, ask user which column)
  2. Count tickets by category, calculate percentages
  3. Identify trends over time if date columns exist
  4. Analyze by priority/severity if available
  5. Identify high-ticket customers (>1 ticket = high-ticket per thresholds)
  6. Calculate resolution time averages by category if resolution time exists

OPEN TICKETS: Exclude from resolution time averages. Report separately how many remain open.

Present using Support Ticket Analysis template. Include ranked issue tables.
Add sample size warning if <20 rows.

8

Provide 2-3 actionable recommendations:

  • Address root causes of top issues
  • Reduce ticket volume proactively
  • Outreach to high-ticket customers
    Be specific: name issues, customers, quantify expected impact.
                    To run this task you must have the following required information:

> CSV file with support ticket data including category, priority, or issue type columns

If you don't have all of this information, exit here and respond asking for any extra information you require, and instructions to run this task again with ALL required information.

---

You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple read steps in a row, read them all at once (in parallel).

Add all steps to your todo list now and begin executing.

## Steps

1. If the CSV path was not already provided, ask the user for it.
Common sources: Zendesk, Intercom, Freshdesk, Salesforce Service Cloud, or custom exports.
The output path is defined by `./documents/tmp/success-data.json`.


2. [Gather Arguments: Parse CSV] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `inputPath`: CSV file path from user
- `outputPath`: ui:session.success.data path
- `hasHeaders` (default: "true") - Whether first row is headers: true, false
- `delimiter` - Field delimiter (auto-detected if empty)
- Packages: papaparse

3. [Run Code: Parse CSV]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/stdlib.csv.parse/preview,
    "args": [
      "inputPath",
      "outputPath",
      "hasHeaders",
      "delimiter"
    ]
  },
  "packages": ["papaparse"]
}
```

4. [Read CSV Column Interpretation Guide]: Read the documentation in: `./skills/sauna/[skill_id]/references/stdlib.csv.interpretation.md` (Semantic column type detection guidance)

5. [Read Session Customer Success Data]: Read the file at `./documents/tmp/success-data.json` and analyze its contents (Load parsed CSV data)

6. VALIDATION: If 0 rows, stop and tell user the CSV has no data. If <20 rows, note for warning.

Interpret columns semantically. Look for: ticket IDs, categories/types, customers, dates,
priority/severity, resolution time, status. Write enriched output back to `./documents/tmp/success-data.json`
with: source, rowCount, columns, interpretations, detected (by type), possibleAnalyses, data array.


7. [Read Customer Success Analytics Guide]: Read the documentation in: `./skills/sauna/[skill_id]/references/success.analytics.guide.md` (Support ticket analysis output format and thresholds)

8. Analyze the ticket data:
1. Use detected.categoryColumns for top issues ranking (if none, ask user which column)
2. Count tickets by category, calculate percentages
3. Identify trends over time if date columns exist
4. Analyze by priority/severity if available
5. Identify high-ticket customers (>1 ticket = high-ticket per thresholds)
6. Calculate resolution time averages by category if resolution time exists

OPEN TICKETS: Exclude from resolution time averages. Report separately how many remain open.

Present using Support Ticket Analysis template. Include ranked issue tables.
Add sample size warning if <20 rows.


9. Provide 2-3 actionable recommendations:
- Address root causes of top issues
- Reduce ticket volume proactively
- Outreach to high-ticket customers
Be specific: name issues, customers, quantify expected impact.