| name | acme-helpdesk |
| description | Call the Acme Helpdesk internal ticketing API (list, filter, create, update tickets) via the auth0-tv CLI and Auth0 Token Vault. Use when the user asks about acme-helpdesk, "my tickets", open incidents, helpdesk tickets, or wants to triage or update tickets on behalf of the logged-in user. Pairs with the auth0-token-vault skill, which handles the auth side. |
Acme Helpdesk
Sits on top of the auth0-token-vault skill. Assumes the connection is registered in Auth0 under the exact name acme-helpdesk.
Host lookup
The host is not hardcoded. Look it up from the connection's allowed domains (shell variables don't always persist across Bash calls, so capture the value and substitute it literally as <host> in the URLs below):
auth0-tv --json connections \
| jq -r '.connections[] | select(.connection == "acme-helpdesk") | .allowedDomains[0]'
If allowedDomains is empty, ask the user for the base URL.
Response envelope
Always use --json. auth0-tv --json fetch wraps the upstream response as {"status": <http code>, "body": <api json>}. Parse .body, not the top level.
Endpoints
GET /tickets (requires read:tickets)
Query params (all optional, combinable):
| Param | Values |
|---|
assignee | me (caller's sub) or a user_id |
status | open, in_progress, resolved, closed |
team | payments, platform, data (seeded; API accepts others but they won't match) |
priority | P1, P2, P3, P4 |
auth0-tv --json fetch acme-helpdesk "https://<host>/tickets?assignee=me&status=open"
GET /tickets/:id (requires read:tickets)
POST /tickets (requires write:tickets)
Body: required title, priority, team; optional description, assignee_id. reporter_id is auto-set from the JWT.
auth0-tv --json fetch acme-helpdesk "https://<host>/tickets" \
-X POST -H "Content-Type: application/json" \
-d '{"title":"Checkout 500s spiking","priority":"P1","team":"payments"}'
PATCH /tickets/:id (requires write:tickets)
Body: any subset of title, description, status, priority, assignee_id, team.
auth0-tv --json fetch acme-helpdesk "https://<host>/tickets/42" \
-X PATCH -H "Content-Type: application/json" \
-d '{"status":"resolved"}'
Seeded user_ids for assignee_id: user_alice, user_bob, user_carol (or any user_id returned by the API).
Error recovery
- Exit code 4 from
auth0-tv: connection missing. Tell the user to run auth0-tv connect acme-helpdesk --scopes "openid,profile,read:tickets,write:tickets" --allowed-domains "<host>".
.body.error == "insufficient_scope" (status 403): token lacks read:tickets or write:tickets. Re-run the same connect command to re-consent.
.body.error == "invalid_request" with bad status or bad priority: value outside the enum above; remap and retry.