Add work package comment
add_work_package_commentPost a comment on a work package to reply in a ticket thread, record a decision, or leave a handover note. Returns the created journal entry for reuse.
Instructions
Post a comment on a work package.
Use this to reply in a ticket's thread, record a decision, or leave a
handover note. Returns the created journal entry (activity id, author,
markdown text, internal flag, timestamps) — the same shape
list_work_package_comments returns, so the id can be reused.
Pitfalls. Every call creates a new comment; it is not idempotent, so do
not retry blindly after a timeout — read the thread first.
internal=true is refused on OpenProject below 16.0 because those
versions accept the flag and publish the comment anyway; upgrade or post
publicly, deliberately. notify=false suppresses notifications only,
the comment is still visible to everyone who can see the work package.
Cross-references: read the thread with list_work_package_comments;
change fields (status, assignee, dates) with update_work_package
rather than describing the change in prose; attach a file with
upload_attachment.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Work package id to comment on. Get it from search_work_packages or list_work_packages. | |
| notify | No | Send the usual watcher/assignee notifications. Set false for bulk or bookkeeping comments so inboxes stay quiet. | |
| comment | Yes | Comment body in markdown. OpenProject renders it; @-mentions need the user's mention syntax, plain names do not notify anyone. | |
| internal | No | Post as an internal comment, visible only to project members with the internal-comments permission. Requires OpenProject >= 16; on older instances the call fails instead of posting publicly. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Activity id. Pass it back as list_work_package_comments(activity_id=...) to read a truncated comment in full. | |
| kind | Yes | 'comment' when the entry carries comment text, 'field_change' otherwise. | |
| author | No | User who wrote the entry. | |
| comment | No | Comment body as markdown (raw); html is dropped. Cut to max_comment_chars when 'truncated' is true. | |
| details | No | Field changes recorded with this entry; always a list, empty for a comment-only entry. | |
| version | No | Journal version number of this entry within the work package. | |
| internal | No | True for internal (project-member-only) comments; OpenProject >= 16. | |
| truncated | No | True when the comment was cut to max_comment_chars. | |
| created_at | No | ISO 8601 UTC timestamp. | |
| updated_at | No | ISO 8601 UTC timestamp of the last edit. | |
| work_package | No | Work package the entry belongs to. | |
| comment_length | No | Character length of the untruncated comment; set only when truncated. |