# Comment updated

`comment:update` A Comment was updated

Endpoint: POST comment:updated
Version: v1
Security: http, oauth2

## Security:

  - `http` (unknown)
    http bearer

  - `oauth2` (unknown)
    oauth2

## Request fields (application/json):

  - `event` (string)
    the event identifier
    Example: comment:update

  - `resource` (object)

  - `resource.type` (string)
    The resource type
    Example: comment

  - `resource.id` (string)
    The resource id

  - `triggered_by` (object)

  - `triggered_by.id` (string, required)

  - `triggered_by.first_name` (string, required)

  - `triggered_by.last_name` (string, required)

  - `triggered_by.email` (string, required)

  - `triggered_by.type` (string, required)
    Enum: "user", "guest", "tax_advisor", "integration"

  - `triggered_by.space` (object, required)

  - `triggered_by.space.id` (string, required)

  - `triggered_by.space.name` (string, required)

  - `data` (object)

  - `data.id` (string, required)

  - `data.external_id` (string | null, required)

  - `data.external_origin` (string | null, required)
    If originated from external system origin is added

  - `data.parent_comment_id` (string | null, required)

  - `data.parent_comment` (any)

  - `data.task` (any)

  - `data.task.id` (string, required)

  - `data.task.project_id` (string, required)

  - `data.task.client_id` (string, required)

  - `data.task.parent_task_id` (string, required)

  - `data.task.external_id` (string | null, required)

  - `data.task.external_origin` (string | null, required)
    If originated from external system origin is added

  - `data.task.uri` (string, required)

  - `data.task.title` (string, required)

  - `data.task.description` (string | null, required)

  - `data.task.status` (string, required)
    |  |
|  --- |
| `Backlog`  |
| `New`  In Todo |
| `WIP`  In progress |
| `Completed`  |
| `Approved`  |
| `Closed`  Task was archived |
    Enum: "Backlog", "New", "WIP", "Completed", "Approved", "Closed"

  - `data.task.type` (string, required)

  - `data.task.estimated_hours` (number | null, required)

  - `data.task.is_onhold` (boolean, required)

  - `data.task.is_public` (boolean, required)
    If false, the task is only visible to the project team - not guest users

  - `data.task.due_date` (string | null, required)

  - `data.task.due_date_settings` (object, required)

  - `data.task.due_date_settings.is_hard_deadline` (boolean, required)

  - `data.task.due_date_settings.recurring_type` (any, required)

  - `data.task.due_date_settings.recurring_interval` (integer | null, required)
    Integer offset
if `recurring_type` = `daily` or `NULL` -> offset ignored 
if `recurring_type` = `weekly` -> 1 = every Monday, 2 = every Tuesday, etc 
if `recurring_type` = `monthly` -> 1 = every month, 2 = every 2 months, etc

  - `data.task.assignee` (any, required)

  - `data.task.priorityOption` (any, required)

  - `data.task.priorityOption.id` (string, required)

  - `data.task.priorityOption.label` (string, required)

  - `data.task.phase` (any)

  - `data.task.phase.id` (string, required)

  - `data.task.phase.title` (string, required)

  - `data.task.phase.po_number` (string | null, required)

  - `data.task.phase.group` (any, required)

  - `data.task.phase.group.id` (string, required)

  - `data.task.phase.group.title` (string, required)

  - `data.task.phase.group.sort_order` (integer | null, required)
    Manual sort position among top-level phases/milestones/groups.
Null when the project uses the default (date-based) ordering

  - `data.task.phase.type` (any, required)

  - `data.task.phase.type.id` (string, required)

  - `data.task.phase.type.title` (string, required)

  - `data.task.phase.type.color` (string, required)

  - `data.task.phase.dependency_phase_id` (string | null, required)

  - `data.task.phase.dependency_milestone_id` (string | null, required)

  - `data.task.phase.start_date` (string | null, required)

  - `data.task.phase.end_date` (string | null, required)

  - `data.task.phase.created_at` (string | null, required)

  - `data.task.phase.estimated_hours` (number, required)

  - `data.task.phase.sort_order` (integer | null, required)
    Manual sort position within its scope (group children, or top level).
Null when the project uses the default (date-based) ordering

  - `data.task.phase.custom_fields` (object)
    Custom field values keyed by field name/slug; the value type depends on the field type
(number: float, checkbox: bool, multi-select: JSON encoded string array, others: string).
Only filled for users of the space that owns the project, `{}` for guests and other spaces.
Returned by the project phases endpoint only

  - `data.task.phase.computed_fields` (object)

  - `data.task.milestone` (any)

  - `data.task.milestone.id` (string, required)

  - `data.task.milestone.title` (string, required)

  - `data.task.milestone.po_number` (string | null, required)

  - `data.task.milestone.group` (any, required)

  - `data.task.milestone.dependency_phase_id` (string | null, required)

  - `data.task.milestone.dependency_milestone_id` (string | null, required)

  - `data.task.milestone.date` (string, required)

  - `data.task.milestone.created_at` (string | null, required)

  - `data.task.milestone.estimated_hours` (number, required)

  - `data.task.milestone.sort_order` (integer | null, required)
    Manual sort position within its scope (group children, or top level).
Null when the project uses the default (date-based) ordering

  - `data.task.milestone.custom_fields` (object)
    Custom field values keyed by field name/slug; the value type depends on the field type
(number: float, checkbox: bool, multi-select: JSON encoded string array, others: string).
Only filled for users of the space that owns the project, `{}` for guests and other spaces.
Returned by the project milestones endpoint only

  - `data.task.milestone.computed_fields` (object)

  - `data.task.epic` (any)

  - `data.task.epic.id` (string, required)

  - `data.task.epic.title` (string, required)

  - `data.task.epic.po_number` (string | null, required)

  - `data.task.epic.estimated_hours` (number, required)

  - `data.task.epic.computed_fields` (object)

  - `data.task.parent_task` (any)

  - `data.task.attachements` (array, required)

  - `data.task.attachements.id` (string, required)

  - `data.task.attachements.file_name` (string, required)

  - `data.task.attachements.mime_type` (string, required)

  - `data.task.attachements.size` (integer, required)
    File size in bytes

  - `data.task.attachements.entity_id` (string, required)
    ID of the entity that the file belongs to

  - `data.task.attachements.entity_type` (string, required)
    Type of the entity that the file belongs to

  - `data.task.attachements.created_at` (string, required)

  - `data.task.watchers` (array)

  - `data.task.sub_tasks` (array, required)

  - `data.task.completed_at` (string | null, required)

  - `data.task.closed_at` (string | null, required)

  - `data.task.updated_at` (string | null, required)

  - `data.task.created_at` (string | null, required)

  - `data.task.list_sorting` (integer, required)

  - `data.task.custom_fields` (object, required)
    Custom field values keyed by field name/slug

  - `data.sub_comments` (array, required)

  - `data.comment` (string | null, required)

  - `data.attachements` (array, required)

  - `data.is_public` (boolean, required)
    If false, the task is only visible to the project team - not guest users

  - `data.created_at` (string | null, required)

  - `data.updated_at` (string | null, required)

## Response 200:

  - `200` (unknown)
    Return a 200 within 10 seconds to indicate a that the data was received successfully. Otherwise it will try 2 more times.

