Service Desk Partner API

Staff Replies

Record a staff reply your own tool already delivered to the customer, so DevStride counts it for SLA without emailing it again.

POST /service-desk/items/{itemNumber}/staff-replies records a reply that your support tool has already delivered to the customer. DevStride stores it as a customer-visible reply on the ticket, so it shows in the ticket's conversation and in the customer's view of it, and counts it for first response and next response the moment it is saved. It sends no email.

Needs: Send Public Replies and comment access to the ticket. Attributing the reply to another member (authorUsername) also needs Manage Requesters.

Request

FieldRequiredMeaning
message.htmlYesThe reply exactly as delivered. @-mentions notify members as on any comment.
externalIdNoYour id for this message; makes retries safe.
authorUsernameNoThe active member who wrote it, so one key can attribute replies to each specialist. Without it the reply is authored by the key's owner.
curl -X POST "https://api.devstride.com/v1/organizations/$ORG_ID/service-desk/items/I123/staff-replies" \
  -u "$DEVSTRIDE_API_KEY:$DEVSTRIDE_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "message": { "html": "<p>We have reset your password; please try again.</p>" },
    "externalId": "msg-7731",
    "authorUsername": "jane.doe"
  }'

The response is the stored comment (data.id, data.visibility: "public", data.channel: "api"). Keep data.id: it is what you send delivery receipts against.

What to know

  • The SLA clock stops at save time. A staff reply counts as answered when DevStride stores it, not when your tool sent it.
  • It cannot be edited afterwards. Like every customer-visible reply on a ticket, it is a record of what the customer received.
  • Retries: the same externalId returns the first reply. A key used on another ticket is refused with 400.
  • Replies typed in DevStride are still emailed as usual. Only replies posted through this route are not.

Refusals

StatusWhen
400authorUsername is not an active member, or the externalId was used on another ticket.
401 / 403No comment access to the ticket (401), or missing Send Public Replies or (with authorUsername) Manage Requesters (403).
409The item is not a Service Desk ticket.