Soporte

El objeto Issue

Los issues representan tickets de soporte creados por tu organización. Cada issue tiene un estado, una prioridad y un historial de actividades.

Atributos

idID

Identificador único del ticket.

friendlyIdInt

Número de ticket legible, secuencial por organización.

titleStringnulo permitido

Descripción breve del ticket.

statusIssueStatus

Estado actual del ciclo de vida del ticket.

Posibles valores de la enumeración IssueStatus
QUEUED_BACKLOGAplazado
QUEUED_READYPor iniciar
ONGOING_REQUESTEREsperando a el solicitante
ONGOING_ASSIGNEEEn manos de Nebux
ONGOING_REVIEWEn revisión por el solicitante
ONGOING_EXTERNALBloqueado
CLOSED_RESOLVEDResuelto
CLOSED_DISMISSEDDescartado
priorityIssuePriority

Nivel de prioridad asignado al ticket.

Posibles valores de la enumeración IssuePriority
CRITICALCrítica
HIGHAlta
MEDIUMMedia
LOWBaja
summaryStringnulo permitido

Descripción detallada del ticket.

createdAtString

Marca de tiempo ISO 8601 de cuándo se creó el ticket.

updatedAtString

Marca de tiempo ISO 8601 de la última actualización del ticket.

lastActivityAtStringnulo permitido

Marca de tiempo ISO 8601 de la actividad más reciente.

organizationOrganizationProfile

La organización a la que pertenece este ticket.

idID

Identificador único de la organización.

nameString

Nombre visible de la organización.

isVerifiedBoolean

Si la organización ha sido verificada.

participationsIssueParticipationConnection

Los usuarios implicados en el ticket: el solicitante y los asignados. El node de cada arista es un IssueParticipation con:

idID

Identificador único de la participación.

roleIssueParticipationRole

El rol del usuario en el ticket.

Posibles valores de la enumeración IssueParticipationRole
REQUESTERLa persona que abrió el ticket.
ASSIGNEEUn miembro del equipo de Nebux que atiende el ticket.
WATCHERSigue el ticket sin estar asignado.
NONESin un rol concreto.
userUserProfile

El usuario participante.

idID

Identificador único del usuario.

firstNameString

El nombre del usuario.

lastNameString

Los apellidos del usuario.

avatarUrlString

URL de la imagen de avatar del usuario.

isStaffBoolean

Si el usuario es miembro del equipo de Nebux.

firstActivityIssueActivitynulo permitido

La actividad de apertura del ticket, normalmente el primer mensaje del solicitante.

inboundLinksIssueLinkConnection

Tickets que enlazan con este. El nodo de cada edge es un IssueLink con:

kindIssueLinkKind

El tipo de relación entre los dos tickets.

inboundIssueIdID

ID del ticket en el lado entrante del enlace.

outboundIssueIdID

ID del ticket en el lado saliente del enlace.

outboundLinksIssueLinkConnection

Tickets con los que enlaza este. El nodo de cada edge es un IssueLink con:

kindIssueLinkKind

El tipo de relación entre los dos tickets.

inboundIssueIdID

ID del ticket en el lado entrante del enlace.

outboundIssueIdID

ID del ticket en el lado saliente del enlace.

RESPUESTA
{
  "id": "rprdbtyvc51ys7g7xq9xwra8cm",
  "friendlyId": 42,
  "title": "Cannot access billing dashboard",
  "status": "ONGOING_ASSIGNEE",
  "priority": "HIGH",
  "summary": "Getting a 403 Forbidden error when navigating to the billing section.",
  "createdAt": "2026-05-15T10:23:41Z",
  "updatedAt": "2026-05-15T14:07:22Z",
  "lastActivityAt": "2026-05-15T14:07:22Z",
  "organization": {
    "id": "k4p9m2vr8st1ynx7q3wzc5hjd6",
    "name": "Acme Corp"
  },
  "participations": {
    "edges": [
      {
        "node": {
          "id": "prt9k2m8vr4st1ynx7q3wzc5hd",
          "role": "REQUESTER",
          "user": {
            "id": "bm3pq9rv5wy2k8tn7xj4cs1hd0",
            "firstName": "Jane",
            "lastName": "Doe"
          }
        }
      }
    ]
  }
}
Consulta

Listar tickets

Devuelve una lista paginada de tickets de una organización. Puedes filtrar por estado o prioridad y ordenar por varios campos.

Parámetros

idIDobligatorio

El ID de la organización cuyos tickets quieres listar.

firstIntopcional

Número de tickets a devolver (por defecto 20, máximo 100).

afterCursoropcional

Cursor para paginación hacia delante. Usa el endCursor de una respuesta anterior.

where.statusIn[IssueStatus!]opcional

Filtra por uno o más estados.

Posibles valores de la enumeración IssueStatus
QUEUED_BACKLOGAplazado
QUEUED_READYPor iniciar
ONGOING_REQUESTEREsperando a el solicitante
ONGOING_ASSIGNEEEn manos de Nebux
ONGOING_REVIEWEn revisión por el solicitante
ONGOING_EXTERNALBloqueado
CLOSED_RESOLVEDResuelto
CLOSED_DISMISSEDDescartado
where.priorityIn[IssuePriority!]opcional

Filtra por una o más prioridades.

Posibles valores de la enumeración IssuePriority
CRITICALCrítica
HIGHAlta
MEDIUMMedia
LOWBaja
where.statusNotIn[IssueStatus!]opcional

Excluye uno o más estados.

Posibles valores de la enumeración IssueStatus
QUEUED_BACKLOGAplazado
QUEUED_READYPor iniciar
ONGOING_REQUESTEREsperando a el solicitante
ONGOING_ASSIGNEEEn manos de Nebux
ONGOING_REVIEWEn revisión por el solicitante
ONGOING_EXTERNALBloqueado
CLOSED_RESOLVEDResuelto
CLOSED_DISMISSEDDescartado
where.priorityNotIn[IssuePriority!]opcional

Excluye una o más prioridades.

Posibles valores de la enumeración IssuePriority
CRITICALCrítica
HIGHAlta
MEDIUMMedia
LOWBaja
where.titleContainsFoldStringopcional

Filtra por tickets cuyo título contenga este texto (sin distinguir mayúsculas).

orderBy.fieldIssueOrderFieldopcional

Campo por el que ordenar.

Posibles valores de la enumeración IssueOrderField
CREATED_ATCreado
LAST_ACTIVITY_ATÚltima actividad
PRIORITYPrioridad
orderBy.directionOrderDirectionopcional

Dirección de ordenación.

Posibles valores de la enumeración OrderDirection
ASCAscendente
DESCDescendente

Devuelve

Devuelve un objeto IssueConnection con una lista de aristas Issue, información de paginación y el recuento total.

Errores

NOT_FOUNDEl recurso no existe o tu organización no puede acceder a él.
VALIDATIONLa entrada no cumple las reglas requeridas (por ejemplo, un campo es demasiado largo o un valor no está permitido).
listIssues.ts
const res = await fetch("https://api.nebux.cloud", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key",
  },
  body: JSON.stringify({
    query: `query ListIssues(
  $orgId: ID!
  $first: Int
  $after: Cursor
  $where: IssueWhereInput
  $orderBy: IssueOrder
) {
  organization(id: $orgId) {
    issues(
      first: $first
      after: $after
      where: $where
      orderBy: $orderBy
    ) {
      edges {
        node {
          id
          friendlyId
          title
          status
          priority
          createdAt
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
      totalCount
    }
  }
}`,
    variables: {
      orgId: "k4p9m2vr8st1ynx7q3wzc5hjd6",
      first: 20,
      where: { statusIn: ["ONGOING_ASSIGNEE", "ONGOING_REVIEW"] },
    },
  }),
})
const { data } = await res.json()
RESPUESTA
{
  "data": {
    "organization": {
      "id": "k4p9m2vr8st1ynx7q3wzc5hjd6",
      "issues": {
        "edges": [
          {
            "node": {
              "id": "rprdbtyvc51ys7g7xq9xwra8cm",
              "friendlyId": 42,
              "title": "Cannot access billing dashboard",
              "status": "ONGOING_ASSIGNEE",
              "priority": "HIGH",
              "createdAt": "2026-05-15T10:23:41Z"
            }
          }
        ],
        "pageInfo": {
          "hasNextPage": false,
          "endCursor": null
        },
        "totalCount": 1
      }
    }
  }
}
Consulta

Recuperar un ticket

Recupera un único ticket por su ID, incluyendo su organización, participaciones e historial completo de actividades.

Parámetros

idIDobligatorio

El ID del ticket a recuperar.

Devuelve

Devuelve un objeto Issue.

Errores

NOT_FOUNDEl recurso no existe o tu organización no puede acceder a él.
getIssue.ts
const res = await fetch("https://api.nebux.cloud", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key",
  },
  body: JSON.stringify({
    query: `query GetIssue($id: ID!) {
  issue(id: $id) {
    id
    friendlyId
    title
    status
    priority
    summary
    createdAt
    updatedAt
    lastActivityAt
    organization {
      id
      name
    }
    participations(first: 20) {
      edges {
        node {
          id
          role
          user {
            id
            firstName
            lastName
            avatarUrl
          }
        }
      }
    }
  }
}`,
    variables: { id: "rprdbtyvc51ys7g7xq9xwra8cm" },
  }),
})
const { data } = await res.json()
RESPUESTA
{
  "data": {
    "issue": {
      "id": "rprdbtyvc51ys7g7xq9xwra8cm",
      "friendlyId": 42,
      "title": "Cannot access billing dashboard",
      "status": "ONGOING_ASSIGNEE",
      "priority": "HIGH",
      "summary": "Getting a 403 Forbidden error when navigating to the billing section.",
      "createdAt": "2026-05-15T10:23:41Z",
      "updatedAt": "2026-05-15T14:07:22Z",
      "lastActivityAt": "2026-05-15T14:07:22Z",
      "organization": {
        "id": "k4p9m2vr8st1ynx7q3wzc5hjd6",
        "name": "Acme Corp"
      },
      "participations": {
        "edges": [
          {
            "node": {
              "id": "prt9k2m8vr4st1ynx7q3wzc5hd",
              "role": "REQUESTER",
              "user": {
                "id": "bm3pq9rv5wy2k8tn7xj4cs1hd0",
                "firstName": "Jane",
                "lastName": "Doe",
                "avatarUrl": "https://..."
              }
            }
          }
        ]
      }
    }
  }
}
Mutación

Crear un ticket

Abre un nuevo ticket de soporte en tu organización. Por defecto se encola para atenderse lo antes posible (QUEUED_READY); pasa otro status para cambiarlo. Esta mutación no incluye ningún mensaje; para publicar el primero, usa la mutación de añadir un comentario.

Parámetros

input.organizationIdIDobligatorio

El ID de la organización en la que se creará el ticket.

input.titleStringopcional

Descripción breve del ticket (máximo 500 caracteres). Si se omite, se genera un título automáticamente a partir de la conversación.

input.priorityIssuePriorityopcional

Prioridad inicial del ticket.

Posibles valores de la enumeración IssuePriority
CRITICALCríticaExclusivamente para incidencias que afectan a la disponibilidad del servicio en producción; se atiende con urgencia. Se aplican las tarifas de respuesta a incidencias según tu contrato.
HIGHAlta
MEDIUMMedia
LOWBaja
input.statusIssueStatusopcional

Cuándo se debe atender el ticket.

Posibles valores de la enumeración IssueStatus
QUEUED_READYpredeterminadoEl equipo de Nebux lo atenderá lo antes posible.
QUEUED_BACKLOGLo añadiremos al backlog hasta que cambies su estado.

Devuelve

Devuelve un objeto IssueCreatePayload que contiene la Issue recién creada.

Errores

VALIDATIONLa entrada no cumple las reglas requeridas (por ejemplo, un campo es demasiado largo o un valor no está permitido).
INPUTLa entrada está mal formada o tiene un tipo incorrecto (por ejemplo, un ID mal formado o falta un campo requerido).
NOT_FOUNDEl recurso no existe o tu organización no puede acceder a él.
createIssue.ts
const res = await fetch("https://api.nebux.cloud", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key",
  },
  body: JSON.stringify({
    query: `mutation CreateIssue($input: IssueCreateInput!) {
  issueCreate(input: $input) {
    issue {
      id
      friendlyId
      title
      status
      priority
      createdAt
    }
  }
}`,
    variables: {
      input: {
        organizationId: "k4p9m2vr8st1ynx7q3wzc5hjd6",
        title: "Cannot access billing dashboard",
        priority: "HIGH",
      },
    },
  }),
})
const { data } = await res.json()
RESPUESTA
{
  "data": {
    "issueCreate": {
      "issue": {
        "id": "np4kr7mt2vx9q8j3wz6ys1hcd5",
        "friendlyId": 43,
        "title": "Cannot access billing dashboard",
        "status": "QUEUED_READY",
        "priority": "HIGH",
        "createdAt": "2026-06-02T09:11:05Z"
      }
    }
  }
}
Mutación

Editar un ticket

Actualiza los campos editables de uno de tus tickets. Como llamante no-staff puedes cambiar el título, la prioridad y moverlo entre los dos estados en cola; el resto del ciclo de vida lo gestiona el equipo de Nebux.

Parámetros

input.idIDobligatorio

El ID del ticket a actualizar.

input.titleStringopcional

Nueva descripción breve del ticket (máximo 500 caracteres).

input.priorityIssuePriorityopcional

Nueva prioridad del ticket.

Posibles valores de la enumeración IssuePriority
HIGHAlta
MEDIUMMedia
LOWBaja
input.statusIssueStatusopcional

Cambia el estado del ticket. Cada valor solo puede establecerse desde ciertos estados actuales; consulta abajo.

Posibles valores de la enumeración IssueStatus
QUEUED_READYCuando el ticket está en la cola de pendientes (QUEUED_BACKLOG), para marcarlo como listo para que el equipo lo atienda.
ONGOING_ASSIGNEECuando el ticket espera tu respuesta (ONGOING_REQUESTER), para devolverlo al equipo de Nebux; o cuando está en revisión (ONGOING_REVIEW), para reabrirlo como aún no resuelto.
CLOSED_RESOLVEDCuando el ticket está en revisión (ONGOING_REVIEW), para confirmar que está resuelto.

Devuelve

Devuelve un objeto IssueUpdatePayload que contiene la Issue actualizada.

Errores

NOT_FOUNDEl recurso no existe o tu organización no puede acceder a él.
VALIDATIONLa entrada no cumple las reglas requeridas (por ejemplo, un campo es demasiado largo o un valor no está permitido).
INPUTLa entrada está mal formada o tiene un tipo incorrecto (por ejemplo, un ID mal formado o falta un campo requerido).
updateIssue.ts
const res = await fetch("https://api.nebux.cloud", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key",
  },
  body: JSON.stringify({
    query: `mutation UpdateIssue($input: IssueUpdateInput!) {
  issueUpdate(input: $input) {
    issue {
      id
      friendlyId
      title
      status
      priority
      updatedAt
    }
  }
}`,
    variables: {
      input: {
        id: "rprdbtyvc51ys7g7xq9xwra8cm",
        title: "Cannot access billing dashboard (still blocked)",
        priority: "HIGH",
        status: "QUEUED_READY",
      },
    },
  }),
})
const { data } = await res.json()
RESPUESTA
{
  "data": {
    "issueUpdate": {
      "issue": {
        "id": "rprdbtyvc51ys7g7xq9xwra8cm",
        "friendlyId": 42,
        "title": "Cannot access billing dashboard (still blocked)",
        "status": "QUEUED_READY",
        "priority": "HIGH",
        "updatedAt": "2026-06-02T09:25:00Z"
      }
    }
  }
}

El objeto IssueActivity

Las actividades componen el historial de un ticket: comentarios, archivos subidos, cambios de campos y entradas de auditoría. Cada una lleva una acción que indica de qué tipo de entrada se trata.

Atributos

idID

Identificador único de la actividad.

actionIssueActivityAction

El tipo de actividad.

Posibles valores de la enumeración IssueActivityAction
COMMENTUn comentario publicado en el ticket.
FILEUn archivo adjunto al ticket. Opcionalmente se puede incluir también un comentario.
FIELD_UPDATEUn cambio en uno de los campos del ticket.
commentStringnulo permitido

Texto del comentario, presente cuando la acción es COMMENT.

commentEditedAtStringnulo permitido

Marca de tiempo ISO 8601 de la última edición del comentario, o null si nunca se editó.

fileNameStringnulo permitido

Nombre del archivo adjunto, presente cuando la acción es FILE.

fileUrlStringnulo permitido

URL de descarga del archivo adjunto, presente cuando la acción es FILE.

isBotBoolean

Si la actividad fue generada por un agente automatizado.

isFeaturedBoolean

Si el equipo de Nebux ha destacado la actividad.

createdAtString

Marca de tiempo ISO 8601 de cuándo se creó la actividad.

userUserProfilenulo permitido

El usuario que produjo la actividad, o null para usuarios del sistema o eliminados.

idID

Identificador único del usuario.

firstNameString

El nombre del usuario.

lastNameString

Los apellidos del usuario.

avatarUrlString

URL de la imagen de avatar del usuario.

isStaffBoolean

Si el usuario es miembro del equipo de Nebux.

reactionsIssueActivityReactionConnection

Reacciones (emoji) en la actividad. El nodo de cada edge es un IssueActivityReaction con:

bodyStringnulo permitido

El emoji de la reacción.

userUserProfile

El usuario que reaccionó.

idID

Identificador único del usuario.

firstNameString

El nombre del usuario.

lastNameString

Los apellidos del usuario.

avatarUrlString

URL de la imagen de avatar del usuario.

isStaffBoolean

Si el usuario es miembro del equipo de Nebux.

RESPUESTA
{
  "id": "8m3kq7v2wr9yt4xn1p6cs0hjda",
  "action": "COMMENT",
  "comment": "We are looking into this now.",
  "commentEditedAt": null,
  "isBot": false,
  "createdAt": "2026-05-15T11:02:13Z",
  "user": {
    "id": "bm3pq9rv5wy2k8tn7xj4cs1hd0",
    "firstName": "Jane",
    "lastName": "Doe"
  }
}
Consulta

Listar actividades

Devuelve el historial de actividad de un ticket —comentarios, archivos subidos, cambios de estado y entradas de auditoría— en orden cronológico.

Parámetros

idIDobligatorio

El ID del ticket cuyas actividades quieres listar.

firstIntopcional

Número de actividades a devolver (por defecto 20, máximo 100).

afterCursoropcional

Cursor para paginación hacia delante. Usa el endCursor de una respuesta anterior.

where.commentContainsFoldStringopcional

Filtra por actividades cuyo comentario contenga este texto (sin distinguir mayúsculas).

orderBy.fieldIssueActivityOrderFieldopcional

Campo por el que ordenar las actividades.

Posibles valores de la enumeración IssueActivityOrderField
CREATED_ATCreado
orderBy.directionOrderDirectionopcional

Dirección de ordenación.

Posibles valores de la enumeración OrderDirection
ASCAscendente
DESCDescendente

Devuelve

Devuelve un objeto IssueActivityConnection con una lista de aristas IssueActivity, información de paginación y el recuento total.

Errores

NOT_FOUNDEl recurso no existe o tu organización no puede acceder a él.
listActivities.ts
const res = await fetch("https://api.nebux.cloud", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key",
  },
  body: JSON.stringify({
    query: `query ListActivities($issueId: ID!, $first: Int, $after: Cursor) {
  issue(id: $issueId) {
    activities(
      first: $first
      after: $after
      orderBy: { field: CREATED_AT, direction: ASC }
    ) {
      edges {
        node {
          id
          action
          comment
          commentEditedAt
          isBot
          createdAt
          user {
            id
            firstName
            lastName
          }
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
      totalCount
    }
  }
}`,
    variables: {
      issueId: "rprdbtyvc51ys7g7xq9xwra8cm",
      first: 20,
    },
  }),
})
const { data } = await res.json()
RESPUESTA
{
  "data": {
    "issue": {
      "activities": {
        "edges": [
          {
            "node": {
              "id": "8m3kq7v2wr9yt4xn1p6cs0hjda",
              "action": "COMMENT",
              "comment": "We are looking into this now.",
              "commentEditedAt": null,
              "isBot": false,
              "createdAt": "2026-05-15T11:02:13Z",
              "user": {
                "id": "bm3pq9rv5wy2k8tn7xj4cs1hd0",
                "firstName": "Jane",
                "lastName": "Doe"
              }
            }
          }
        ],
        "pageInfo": {
          "hasNextPage": false,
          "endCursor": null
        },
        "totalCount": 1
      }
    }
  }
}
Mutación

Añadir un comentario

Publica un comentario en un ticket creando una actividad con la acción COMMENT. También puedes adjuntar un archivo usando la acción FILE con el campo file.

Parámetros

input.issueIdIDobligatorio

El ID del ticket en el que comentar.

input.actionIssueActivityActionobligatorio

La acción de la actividad: COMMENT para publicar un comentario, o FILE para adjuntar un archivo.

Posibles valores de la enumeración IssueActivityAction
COMMENTUn comentario publicado en el ticket.
FILEUn archivo adjunto al ticket. Opcionalmente se puede incluir también un comentario.
input.commentStringopcional

El texto del comentario (obligatorio para la acción COMMENT).

input.fileUploadopcional

El archivo a adjuntar (obligatorio para la acción FILE). Las subidas de archivos usan la especificación multipart de GraphQL (multipart/form-data), no el cuerpo JSON. Para más información, consulta esta especificación.

Devuelve

Devuelve un objeto IssueActivityCreatePayload que contiene la IssueActivity recién creada.

Errores

NOT_FOUNDEl recurso no existe o tu organización no puede acceder a él.
VALIDATIONLa entrada no cumple las reglas requeridas (por ejemplo, un campo es demasiado largo o un valor no está permitido).
addComment.ts
const res = await fetch("https://api.nebux.cloud", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key",
  },
  body: JSON.stringify({
    query: `mutation AddComment($input: IssueActivityCreateInput!) {
  issueActivityCreate(input: $input) {
    issueActivity {
      id
      action
      comment
      createdAt
    }
  }
}`,
    variables: {
      input: {
        issueId: "rprdbtyvc51ys7g7xq9xwra8cm",
        action: "COMMENT",
        comment: "Thanks for the update, still seeing the error.",
      },
    },
  }),
})
const { data } = await res.json()
RESPUESTA
{
  "data": {
    "issueActivityCreate": {
      "issueActivity": {
        "id": "8m3kq7v2wr9yt4xn1p6cs0hjda",
        "action": "COMMENT",
        "comment": "Thanks for the update, still seeing the error.",
        "createdAt": "2026-06-02T09:15:40Z"
      }
    }
  }
}
Mutación

Editar un comentario

Actualiza el texto de un comentario existente. Solo el autor puede editar sus propios comentarios; commentEditedAt se establece con la hora de la edición.

Parámetros

input.idIDobligatorio

El ID de la actividad (comentario) a editar.

input.commentStringobligatorio

El nuevo texto del comentario.

Devuelve

Devuelve un objeto IssueActivityUpdatePayload que contiene la IssueActivity actualizada.

Errores

NOT_FOUNDEl recurso no existe o tu organización no puede acceder a él.
VALIDATIONLa entrada no cumple las reglas requeridas (por ejemplo, un campo es demasiado largo o un valor no está permitido).
editComment.ts
const res = await fetch("https://api.nebux.cloud", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key",
  },
  body: JSON.stringify({
    query: `mutation EditComment($input: IssueActivityUpdateInput!) {
  issueActivityUpdate(input: $input) {
    issueActivity {
      id
      comment
      commentEditedAt
    }
  }
}`,
    variables: {
      input: {
        id: "8m3kq7v2wr9yt4xn1p6cs0hjda",
        comment: "Thanks for the update, the error is gone now.",
      },
    },
  }),
})
const { data } = await res.json()
RESPUESTA
{
  "data": {
    "issueActivityUpdate": {
      "issueActivity": {
        "id": "8m3kq7v2wr9yt4xn1p6cs0hjda",
        "comment": "Thanks for the update, the error is gone now.",
        "commentEditedAt": "2026-06-02T09:20:11Z"
      }
    }
  }
}