Skip to content

support

Support ticket commands for NDCLI. A ticket is a conversation between your organization and NetDefense Support: open one, follow the thread, reply, and close it when you’re done. The same tickets are in the web app’s Support area, which also describes ticket statuses and email notifications.

Every member of an organization can use these commands, whatever their role, and so can a personal access token, read-only ones included. They work on your default organization; add -o <organization> for another one. ndcli support needs ndcli 1.29.0 or later.

CommandDescription
support listList the organization’s tickets
support showShow a ticket and its messages
support createOpen a new ticket
support updateChange a ticket’s subject, priority, category or devices
support replyPost a reply visible to NetDefense Support
support notePost an internal note visible only to your organization
support closeClose a ticket
support reopenReopen a closed ticket
support messagesList a ticket’s messages
support participant addAdd an organization member to a ticket
support participant removeRemove a participant from a ticket
support attachment uploadUpload a file and print its attachment UUID
support attachment deleteDelete an upload that isn’t attached to a message yet
support downloadDownload a ticket attachment

Messages are plain text, up to 64 KiB each (counted in bytes, so text in non-Latin scripts reaches the limit sooner). A message carries at most 10 attachments of up to 25 MiB each, of any file type.


List the organization’s tickets, most recent activity first. The list holds every ticket in the organization, not only the ones you take part in.

Terminal window
ndcli support list [flags]
FlagTypeDefaultDescription
--statusstringFilter by status: OPEN, PENDING, CLOSED
--prioritystringFilter by priority: LOW, NORMAL, HIGH, URGENT
--categorystringFilter by category: BUG, QUESTION, FEATURE_REQUEST, BILLING, OTHER
--participantstringOnly tickets with this participant: me or an email address
--devicestringOnly tickets related to this device UUID
-q, --qstringOnly tickets whose subject contains this text (up to 100 characters)
--sort-bystringlast_activity_at:descFIELD:asc or FIELD:desc over last_activity_at, created_at, updated_at, priority, status, subject. A field without a direction sorts descending
--pageint1Page number
--per-pageint50Items per page, up to 100

Status, priority and category values are case-insensitive.

Terminal window
# Tickets waiting for your reply
ndcli support list --status PENDING
# Tickets you take part in
ndcli support list --participant me
# Subjects that mention backups, oldest activity first
ndcli support list -q backup --sort-by last_activity_at:asc
╭──────────┬─────────────────────────────────────────────────────┬─────────┬──────────┬──────────┬─────────────┬───────────────╮
│ CODE │ SUBJECT │ STATUS │ PRIORITY │ CATEGORY │ CREATED BY │ LAST ACTIVITY │
├──────────┼─────────────────────────────────────────────────────┼─────────┼──────────┼──────────┼─────────────┼───────────────┤
│ Kq7Xb2Lm │ Sync fails on fw-branch-01 after the 26.1.11 update │ PENDING │ HIGH │ BUG │ Alex Rivera │ 2h │
│ R4tN9pWd │ Can a template carry two software policies? │ OPEN │ NORMAL │ QUESTION │ Sam Chen │ 1d │
│ aZ3fH8yQ │ Invoice shows the wrong device count │ CLOSED │ LOW │ BILLING │ Alex Rivera │ 5d │
╰──────────┴─────────────────────────────────────────────────────┴─────────┴──────────┴──────────┴─────────────┴───────────────╯
Total: 3 ticket(s)

PENDING means NetDefense Support replied and is waiting for you. See Ticket status.


Show a ticket’s details and its message thread, oldest first.

Terminal window
ndcli support show [code] [flags]
ArgumentRequiredDescription
codeYesTicket code, as shown by support list
FlagTypeDefaultDescription
--no-messagesboolfalsePrint the ticket details only, without the thread
Terminal window
ndcli support show Kq7Xb2Lm
Kq7Xb2Lm Sync fails on fw-branch-01 after the 26.1.11 update
Status: PENDING
Priority: HIGH
Category: BUG
Created by: Alex Rivera
Created: 2026-10-20 09:14:03
Last activity: 2026-10-21 16:42:10
Web: https://app.netdefense.io/organizations/acme/tickets/Kq7Xb2Lm
Participants: alex@example.com (creator), sam@example.com
Devices: fw-branch-01 (3f8a2c1e-7b4d-4e9a-9c2f-1d5e6a7b8c90)
Messages
#1 Alex Rivera (response) 2026-10-20 09:14:03
Since the 26.1.11 update, every sync of fw-branch-01 ends FAILED with
"service restart timed out". The other devices sync fine. Agent log attached.
↳ 9b2e4d71-5c3a-4f8e-a1d6-7e0f2b9c4a53 ndagent.log 148.2 KiB text/plain
#2 Sam Chen (internal note) 2026-10-20 09:54:03
Branch office is closed on Friday; schedule any reboot for Saturday.
#3 NetDefense Support (response) 2026-10-21 16:42:10
Thanks for the log. Please run `ndcli device health fw-branch-01` and reply
with the output.
  • Web: opens the ticket in the web app.
  • Internal notes are labelled (internal note). Only your organization sees them.
  • A ↳ line is an attachment: its UUID, filename, size and type. Download it with support download.
  • The thread shows the first 100 messages. A longer one ends with a line pointing to support messages and its --page flag.

Open a new ticket with its first message.

Terminal window
ndcli support create [flags]
FlagTypeDefaultDescription
--subjectstringTicket subject: one line, up to 255 characters. Required
--messagestringMessage body
--message-filestringRead the message body from a file, or - for stdin
--prioritystringNORMALLOW, NORMAL, HIGH or URGENT
--categorystringOTHERBUG, QUESTION, FEATURE_REQUEST, BILLING or OTHER
--devicestringRelated device UUID. Repeatable, up to 20
--participantstringEmail of an organization member to add as a participant. Repeatable
--attachstringLocal file to upload and attach. Repeatable
--attachmentstringUUID of a file uploaded earlier with support attachment upload. Repeatable
Terminal window
ndcli support create \
--subject "Sync fails on fw-branch-01 after the 26.1.11 update" \
--category BUG --priority HIGH \
--device 3f8a2c1e-7b4d-4e9a-9c2f-1d5e6a7b8c90 \
--message-file report.txt \
--attach ndagent.log
# Take the message from another command's output
ndcli device health fw-branch-01 | ndcli support create --subject "Health of fw-branch-01" --message-file -
  • A message is required: pass --message or --message-file, not both.
  • ndcli device describe <device> shows a device’s UUID.
  • You become the ticket’s creator and first participant. --participant adds others: each must be an enabled member of the organization, and a ticket has at most 25 participants, you included. Participants get email notifications.
  • --attach and --attachment together take at most 10 files. --attach uploads the files before the ticket is created, and deletes them again if it can’t be.
  • The output is the new ticket, with its code. With -f json it is one JSON object, with the ticket under ticket.

Change a ticket’s subject, priority, category or related devices.

Terminal window
ndcli support update [code] [flags]
ArgumentRequiredDescription
codeYesTicket code
FlagTypeDefaultDescription
--subjectstringNew subject
--prioritystringLOW, NORMAL, HIGH or URGENT
--categorystringBUG, QUESTION, FEATURE_REQUEST, BILLING or OTHER
--devicestringRelated device UUID. Repeatable, up to 20; replaces the whole list
--clear-devicesboolfalseRemove every related device
Terminal window
ndcli support update Kq7Xb2Lm --priority URGENT
# The ticket now relates to these two devices, and no others
ndcli support update Kq7Xb2Lm \
--device 3f8a2c1e-7b4d-4e9a-9c2f-1d5e6a7b8c90 \
--device 0c6e1d2f-8a3b-4c5d-9e7f-2a1b3c4d5e6f
  • Only what you pass changes, and at least one flag is required.
  • --device replaces the ticket’s device list, so name every device it should keep. --clear-devices can’t be combined with --device.
  • Works on a closed ticket too. An update sends no email and doesn’t count as activity, so the ticket’s last activity stays as it was.

Post a reply that NetDefense Support sees.

Terminal window
ndcli support reply [code] [flags]
ArgumentRequiredDescription
codeYesTicket code
FlagTypeDefaultDescription
--messagestringMessage body
--message-filestringRead the message body from a file, or - for stdin
--attachstringLocal file to upload and attach. Repeatable
--attachmentstringUUID of a file uploaded earlier. Repeatable
Terminal window
ndcli support reply aZ3fH8yQ --message "The count is right again after this month's invoice. Thanks!"
✓ Reply posted on ticket aZ3fH8yQ; it is now OPEN
  • A message is required, and the attachment rules of support create apply.
  • A reply to a closed ticket reopens it, as in the example. The confirmation always shows the status the ticket has now.
  • The other participants get an email.

Post an internal note. Your organization sees it; NetDefense Support never does.

Terminal window
ndcli support note [code] [flags]
ArgumentRequiredDescription
codeYesTicket code

Same as support reply: --message, --message-file, --attach and --attachment.

Terminal window
ndcli support note Kq7Xb2Lm --message "Branch office is closed on Friday; schedule any reboot for Saturday."
  • A note doesn’t change the ticket’s status.
  • The other participants get an email.

Close a ticket.

Terminal window
ndcli support close [code] [flags]
ArgumentRequiredDescription
codeYesTicket code
FlagTypeDefaultDescription
--messagestringOptional closing message
--message-filestringRead the message from a file, or - for stdin
Terminal window
ndcli support close Kq7Xb2Lm --message "Fixed by the agent update. Thanks!"
✓ Ticket Kq7Xb2Lm is now CLOSED
  • A message is posted as a reply, which NetDefense Support sees, just before the ticket closes, and the other participants’ email carries it.
  • A closed ticket can’t be closed again: the command fails with TICKET_INVALID_TRANSITION.
  • A later reply, from your organization or from NetDefense Support, reopens the ticket, and so does support reopen.

Reopen a closed ticket.

Terminal window
ndcli support reopen [code] [flags]
ArgumentRequiredDescription
codeYesTicket code
FlagTypeDefaultDescription
--messagestringOptional message, posted as a reply before the ticket reopens
--message-filestringRead the message from a file, or - for stdin
Terminal window
ndcli support reopen Kq7Xb2Lm --message "The sync failures are back since this morning."
  • Only a closed ticket can be reopened. On an open or pending one the command fails with TICKET_INVALID_TRANSITION.

List a ticket’s messages, a page at a time. Use it for threads longer than the 100 messages support show prints.

Terminal window
ndcli support messages [code] [flags]
ArgumentRequiredDescription
codeYesTicket code
FlagTypeDefaultDescription
--orderstringascasc (oldest first) or desc (newest first)
--pageint1Page number
--per-pageint50Items per page, up to 100
Terminal window
# The ten newest messages
ndcli support messages Kq7Xb2Lm --order desc --per-page 10

Add an organization member to a ticket. They get an email saying so, and the ticket’s notifications from then on.

Terminal window
ndcli support participant add [code] [email]
ArgumentRequiredDescription
codeYesTicket code
emailYesEmail address of an enabled member of the organization
Terminal window
ndcli support participant add Kq7Xb2Lm sam@example.com
  • An address that isn’t an enabled member of the organization is refused with TICKET_PARTICIPANT_NOT_ELIGIBLE.
  • Adding someone who already takes part changes nothing and sends no second email.
  • A ticket has at most 25 participants, its creator included.
  • The output is the ticket’s participant list.

Remove a participant from a ticket. They stop getting its emails.

Terminal window
ndcli support participant remove [code] [email] [flags]
ArgumentRequiredDescription
codeYesTicket code
emailYesEmail address of the participant to remove
FlagTypeDefaultDescription
--forceboolfalseSkip the confirmation prompt
Terminal window
ndcli support participant remove Kq7Xb2Lm sam@example.com
  • Asks for confirmation unless you pass --force.
  • The ticket’s creator can’t be removed. You can remove yourself.
  • A removed participant can still read the ticket, like every member of the organization.

Upload a file and print its attachment UUID, for --attachment on support create, support reply or support note.

Terminal window
ndcli support attachment upload [path]
ArgumentRequiredDescription
pathYesLocal file, up to 25 MiB
Terminal window
ndcli support attachment upload config-diff.txt
✓ Attachment uploaded
UUID: c41f8a2e-0d6b-4b73-9e15-8a2d3f7c6b10
Filename: config-diff.txt
Type: text/plain
Size: 4.1 KiB
SHA-256: 5f2b8c0e9a41d7c36e8f1b2a4d9c0e7f3a6b5c8d1e2f4a7b9c0d3e6f8a1b2c4d
Unbound — reference this uuid in a ticket create or reply within 24 hours.
  • An upload that no message uses within 24 hours is deleted.
  • You can hold at most 20 such unused uploads in an organization; attach or delete some before uploading more.
  • --attach on support create, support reply and support note uploads and attaches in one step, which is usually simpler.

Delete an upload that isn’t attached to a message yet.

Terminal window
ndcli support attachment delete [uuid] [flags]
ArgumentRequiredDescription
uuidYesUUID printed by support attachment upload
FlagTypeDefaultDescription
--forceboolfalseSkip the confirmation prompt
  • Asks for confirmation unless you pass --force.
  • You can delete only your own uploads.
  • Once a file is attached to a message, it stays with that message: deleting it fails with TICKET_ATTACHMENT_ALREADY_BOUND.

Download an attachment from a ticket.

Terminal window
ndcli support download [code] [attachment-uuid] [flags]
ArgumentRequiredDescription
codeYesTicket code
attachment-uuidYesAttachment UUID, from the ↳ lines of support show
FlagTypeDefaultDescription
--deststringthe attachment’s filename, in the current directoryDestination file or directory
--overwriteboolfalseReplace an existing file at the destination
Terminal window
ndcli support download Kq7Xb2Lm 9b2e4d71-5c3a-4f8e-a1d6-7e0f2b9c4a53 --dest ~/Downloads/
  • The file’s SHA-256 is checked against the ticket before the file appears at the destination.
  • An existing file is never replaced unless you pass --overwrite.

The commands have tools in the MCP server: ndcli.support.list, ndcli.support.get (the ticket and, by default, its thread), ndcli.support.create, ndcli.support.update, ndcli.support.close, ndcli.support.reopen, ndcli.support.messages, ndcli.support.reply, ndcli.support.note, ndcli.support.participant_add, ndcli.support.participant_remove, ndcli.support.attachment_upload, ndcli.support.attachment_delete and ndcli.support.attachment_download.

  • ndcli.support.create, ndcli.support.reply and ndcli.support.note take attach_paths, local files to upload and attach in the same call.
  • ndcli.support.update, ndcli.support.participant_remove and ndcli.support.attachment_delete change nothing until they’re called with confirm=true, and return a preview without it. The device list given to ndcli.support.update replaces the whole list.
  • Files are read from, and downloads written to, the machine that runs the MCP server.