iblai/api

iblai-api-agent-support

Manage an ibl.ai agent's human-support tickets via the platform API — list and filter the tickets users raised with an agent (by agent, requester, status, session), read a ticket's conversation thread, reply as the support team, change ticket status, and close or delete tickets.

First seen Jul 27, 2026

Installation

$ npx skills add iblai/api --skill iblai-api-agent-support

Summary

  • Manage an ibl.ai agent's human-support tickets via the platform API — list and filter the tickets users raised with an agent (by agent, requester, status, session), read a ticket's conversation thread, reply as the support team, change ticket status, and close or delete tickets.
  • Use when triaging or responding to support requests escalated from agent chats.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from iblai/api · top by installs.

npx skills add iblai/api

Browse all from iblai/api

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 15
License LICENSE
Default branch main
Open issues 1
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,924 B
  • docs SUMMARY.md 392 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

iblai-api-agent-support

Manage an agent's human-support tickets through the API: list and filter the tickets users raised with an agent, read a ticket's reply thread, respond as the support team, move tickets through their lifecycle, and close or delete them. Use when triaging or responding to support requests escalated from agent chats.

Auth & conventions

  • Base URL: https://api.iblai.app
  • Header: Authorization: Api-Token $IBLAIAPIKEY on every request.
  • Path vars: {org} = $IBLAIORG, {username} = $IBLAIUSERNAME,

{mentor} = the agent's unique id (e.g. d17dc729-60fd-4363-81a0-f67d9318b03e).

  • Prefix: every route below hangs off

https://api.iblai.app/dm/api/ai-mentor/orgs/{org}/users/{username} (written {u} below). The path token is named user_id on the wire but takes the username.

  • Not connected yet? Run /iblai-api-login first to populate IBLAI_ORG,

IBLAIUSERNAME, and IBLAIAPI_KEY.

  • DELETE calls are destructive — confirm with the user first.

Concepts

  • Tickets are opened by the agent, not by this API. When a user asks an agent

for human help mid-chat, the agent's human-support tool files a HumanSupportTicket — there is no POST create endpoint here. The requester fields (username, email, full_name, user) and the source session are resolved server-side from that chat; subject and description are authored by the agent (the description is often HTML or Markdown, not plain text).

  • Visibility: org admins see every ticket in the org; other users see only the

tickets they raised themselves.

  • Lifecycle: status walks open → in_progress → closed. The dedicated

close/ endpoint both sets status: closed and stamps resolved_at.

  • Conversation thread: each ticket has TicketMessage replies. sender is the

numeric user id of the author — the requester's replies carry their user id, support-team replies carry the responder's id, and null marks a system-generated message.

  • Prerequisite: the agent only offers escalation while its human-support tool

is enabled — toggle it with /iblai-api-agent-tool (pull the exact slug from that skill's available-tools/ read).

Reads

Tickets

  • GET {u}/support-tickets/?mentorid={mentor}&status={open|inprogress|closed}&username={requester}&session={session}&page={n}&pagesize={n} — paged ticket list. Filters stack: mentorid scopes to one agent, username to one requester, session to the chat session that raised the ticket.
  • GET {u}/support-tickets/{id}/ — one ticket.

Messages

  • GET {u}/support-ticket-messages/?ticket={ticketId}&sender={userId}&page={n}&page_size={n} — paged message list; pass ticket to load one ticket's conversation thread.
  • GET {u}/support-ticket-messages/{id}/ — one message.

Writes

Tickets

  • PUT {u}/support-tickets/{id}/ — replace a ticket's editable fields:

``json { "subject": "string (required, ≤255 chars)", "description": "string (required)", "status": "open | in_progress | closed" } ``

  • PATCH {u}/support-tickets/{id}/ — edit a subset (e.g. { "status": "in_progress" }).
  • POST {u}/support-tickets/{id}/close/ — close a ticket (no body): sets status: closed and stamps resolved_at. Prefer this over patching status to closed.
  • DELETE {u}/support-tickets/{id}/ — delete a ticket (no body). Destructive — confirm with the user first.

Messages

  • POST {u}/support-ticket-messages/ — reply on a ticket:

``json { "ticket": "integer (required, ticket id)", "message": "string (required)", "sender": "integer | null (optional; defaults to the caller)" } ``

  • PUT {u}/support-ticket-messages/{id}/ — replace a message (same fields as create).
  • PATCH {u}/support-ticket-messages/{id}/ — edit a subset (e.g. { "message": "string" }).
  • DELETE {u}/support-ticket-messages/{id}/ — delete a message (no body). Destructive — confirm with the user first.

Example

List one agent's open tickets, newest page first, then reply on ticket 42:

curl -s \
  "https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/support-tickets/?mentor_id=$MENTOR&status=open&page=1&page_size=10" \
  -H "Authorization: Api-Token $IBLAI_API_KEY"

curl -X POST \
  "https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/support-ticket-messages/" \
  -H "Authorization: Api-Token $IBLAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ticket": 42, "message": "We are looking into this now."}'

Notes

  • List reads return a DRF page envelope — `{ "count": n, "next": url|null,

"previous": url|null, "results": [...] }; iterate results. DELETEs return 204`.

  • There is no ticket-create endpoint — tickets only come from agent chats (see

Concepts). To test the flow end-to-end, enable the human-support tool and ask the agent to escalate.

  • mentor_id filters by the agent's unique id, not its name; username

filters by the requester, independent of the {username} path token (the caller).

  • description is agent-authored and frequently arrives as a full HTML document

or Markdown — don't assume plain text when displaying or diffing it.

  • Closing via close/ is what stamps resolved_at; a plain PATCH to

status: closed flips the status without the resolution timestamp.

  • To load a conversation thread, filter messages by ticket and sort by

timestamp ascending; match sender against the ticket's user to tell requester replies from support replies.

Schema

Ticket object (HumanSupportTicket):

field mode notes
id ro integer
username, email, full_name, user ro requester identity; user is the numeric user id
session ro chat session the ticket was raised from
subject rw ≤255 chars
description rw agent-authored body; often HTML/Markdown
status rw open \ in_progress \ closed
mentor_id ro unique id of the agent the ticket belongs to
createdat, updatedat ro ISO 8601
resolved_at ro ISO 8601 or null; stamped by close/

Message object (TicketMessage): id (ro), ticket (ticket id), sender (numeric user id or null for system messages), message, timestamp (ro, ISO 8601).