Skip to Content
splashify CLISupport tickets

Support tickets

The support command (aliases: tickets) and ticket (singular) mirror the /support and /support/<ticket_id> pages. From the terminal you can list every ticket on the account, drill into one with its full reply thread, file a new ticket with the same category + priority taxonomy as the page, post a reply, and close a ticket.

Backed by /api/v1/app/tickets/*. No subscription or balance preflight runs on these commands — support is free for every account regardless of plan state.

Quick start

# File a ticket splashify support create \ --subject "Broadcast stuck at 80%" \ --category bug \ --priority high \ --message "Broadcast 7a32… hasn't moved past 80% for an hour." # Track it splashify support # list splashify ticket <ticket_id> # show + replies splashify ticket <ticket_id> reply --message "Trying that now…" splashify ticket <ticket_id> close

Command reference

splashify support — list

splashify support # default: all open + recently closed splashify support list # alias splashify support list --status open splashify support list --status closed splashify support list --priority urgent splashify support list --category bug
Backed byGET /api/v1/app/tickets

Filters are server-side. Response shape:

{ "success": true, "tickets": [ { "ticket_id": "uuid", "subject": "Broadcast stuck at 80%", "category": "bug", // bug | billing | feature_request | account | general "priority": "high", // low | medium | high | urgent "status": "open", // open | replied | closed "created_at": "2026-05-20T14:00:00Z", "updated_at": "2026-05-20T15:30:00Z" } ] }

splashify ticket <ticket_id> — show a ticket + thread

splashify ticket 7a32bce6-…
Backed byGET /api/v1/app/tickets/:ticket_id

Returns the ticket row plus the full message thread (initial message + every reply, ordered oldest-first).

splashify support create — file a new ticket

splashify support create \ --subject "Wallet didn't refresh after recharge" \ --category billing \ --priority medium \ --message "Recharged ₹5000 30 min ago, wallet still shows old balance."
Backed byPOST /api/v1/app/tickets
FlagRequiredNotes
--subjectyesOne-line summary
--messageyesFull description of the issue (Markdown-friendly)
--categoryyesbug | billing | feature_request | account | general
--prioritynolow | medium | high | urgent. Default: medium

Returns the new ticket_id. Support sees the ticket immediately; the reply SLA depends on your plan.

splashify ticket <id> reply — post a reply

splashify ticket <ticket_id> reply --message "Trying that now…" splashify ticket <ticket_id> reply --file ./reply.md # body from a file
Backed byPOST /api/v1/app/tickets/:ticket_id/reply

Returns the new reply row. The ticket’s status flips to replied until support comes back.

splashify ticket <id> close — close

splashify ticket <ticket_id> close
Backed byPOST /api/v1/app/tickets/:ticket_id/close

Marks the ticket closed. You can still view it; replies on a closed ticket re-open it (closedopen).

Common workflows

File a ticket from a shell script

splashify support create \ --subject "Auto-monitor: broadcast $BID stuck" \ --category bug \ --priority high \ --message "Detected by daily monitor at $(date -u). $(splashify broadcast "$BID" | jq -c .)"

Watch every open ticket

splashify support list --status open | \ jq '.tickets[] | {ticket_id, subject, priority, updated_at}'

Triage by priority

splashify support | \ jq '.tickets | group_by(.priority) | map({priority: .[0].priority, count: length}) | sort_by(.priority)'

Auto-close stale tickets (no reply in 30+ days)

CUTOFF=$(date -u -v-30d '+%Y-%m-%dT%H:%M:%SZ') # macOS # CUTOFF=$(date -u -d '30 days ago' '+%Y-%m-%dT%H:%M:%SZ') # linux splashify support list --status open | \ jq -r --arg c "$CUTOFF" '.tickets[] | select(.updated_at < $c) | .ticket_id' | \ xargs -I{} splashify ticket {} close

Reply with a Markdown file

splashify ticket <id> reply --file ./long-reply.md

The backend accepts any text — Markdown renders correctly in the support dashboard.

Troubleshooting

“Invalid category” — must be one of the five canonical values (bug, billing, feature_request, account, general). The CLI validates client-side before the round-trip.

“Invalid priority” — must be low, medium, high, or urgent. emergency / critical are not accepted — use urgent for the highest tier.

Reply 404s with “Ticket not found” — the ticket_id doesn’t belong to your account (or it was deleted by support after policy violations). Run splashify support to refresh.

close returns success but ticket reopens — that’s by design: any new reply after close flips the status back to open. To “really close” a ticket, archive it from the app’s support dashboard (no CLI equivalent — archive is admin-only).

See also