Praesenti
API

Avisos

Los avisos permiten comunicar información importante a los empleados de forma directa. Puedes crear avisos masivos o individuales.

Obtener todos los avisos

Obtiene la lista completa de avisos de la organización.

Método: GET /notifications

Respuesta exitosa (200)

[
  {
    "id": 3,
    "createdAt": "2026-07-03T13:12:55.314Z",
    "updatedAt": "2026-07-03T13:12:55.314Z",
    "deletedAt": null,
    "message": "Hola",
    "notifyFrom": "2025-09-30T11:00:00Z",
    "notifyWhen": "enter",
    "notifyTo": null,
    "repeat": false,
    "employeeNotifications": [
      {
        "sent": false,
        "sentAt": null,
        "sentWhen": "",
        "employee": {
          "id": 158,
          "createdAt": "2026-04-14T19:07:49.037Z",
          "updatedAt": "2026-06-18T18:38:58.466Z",
          "deletedAt": null,
          "name": "Juan Perez",
          "mobileID": "3595c6b9-f3ef-430d-a465-bc8b72d1b449",
          "mobileEnabled": true,
          "faceRecognition": null,
          "internalID": null,
          "dni": 212121,
          "email": null,
          "phoneNumber": null,
          "category": {
            "id": 78,
            "createdAt": "2026-04-14T19:07:48.957Z",
            "updatedAt": "2026-04-14T19:07:48.957Z",
            "deletedAt": null,
            "name": "SECRETARIA",
            "areaID": 42,
            "area": {
              "id": 42,
              "createdAt": "2026-04-14T19:07:48.946Z",
              "updatedAt": "2026-04-14T19:07:48.946Z",
              "deletedAt": null,
              "name": "ADMINISTRACION",
              "colorCode": "#D4E3C7"
            }
          },
          "archived": false
        }
      }
    ],
    "createdBy": "Ana Gómez",
    "sent": false,
    "organization": {
      "id": 0,
      "name": "",
      "photoColor": ""
    }
  }
]

createdBy es el nombre del usuario que creó o modificó el aviso por última vez. Si la última operación se hizo a través de la API, viene vacío.

Códigos de respuesta

CódigoDescripción
200Exitoso
401No autorizado
500Error interno del servidor

Obtener un aviso específico

Obtiene los detalles completos de un aviso. A diferencia del listado, la categoría de cada empleado no incluye el área.

Método: GET /notifications/:id

Parámetros

ParámetroTipoDescripción
idstringID del aviso

Respuesta exitosa (200)

{
  "id": 3,
  "createdAt": "2026-07-03T13:12:55.314Z",
  "updatedAt": "2026-07-03T13:12:55.314Z",
  "deletedAt": null,
  "message": "Hola",
  "notifyFrom": "2025-09-30T11:00:00Z",
  "notifyWhen": "enter",
  "notifyTo": null,
  "repeat": false,
  "employeeNotifications": [
    {
      "sent": false,
      "sentAt": null,
      "sentWhen": "",
      "employee": {
        "id": 158,
        "createdAt": "2026-04-14T19:07:49.037Z",
        "updatedAt": "2026-06-18T18:38:58.466Z",
        "deletedAt": null,
        "name": "Juan Perez",
        "mobileID": "3595c6b9-f3ef-430d-a465-bc8b72d1b449",
        "mobileEnabled": true,
        "faceRecognition": null,
        "internalID": null,
        "dni": 212121,
        "email": null,
        "phoneNumber": null,
        "category": {
          "id": 78,
          "createdAt": "2026-04-14T19:07:48.957Z",
          "updatedAt": "2026-04-14T19:07:48.957Z",
          "deletedAt": null,
          "name": "SECRETARIA",
          "areaID": 42
        },
        "archived": false
      }
    }
  ],
  "createdBy": "Ana Gómez",
  "sent": false,
  "organization": {
    "id": 0,
    "name": "",
    "photoColor": ""
  }
}

Retorna un objeto de aviso detallado.

Códigos de respuesta

CódigoDescripción
200Exitoso
404Aviso no encontrado
500Error interno del servidor

Crear avisos

Crea un aviso para empleados específicos de la organización o para todos. El campo notifyWhen indica cuándo se muestra el aviso y puede tener estos 3 valores: enter (al fichar entrada), exit (al fichar salida) o both (en cualquiera de los 2 casos anteriores).

  • message, notifyFrom y notifyWhen son obligatorios.
  • Si createToAllEmployees es true, el aviso se crea para todos los empleados de la organización. Si es false, hay que enviar en employeeID la lista de IDs de los empleados. Los IDs que no pertenecen a la organización se ignoran.
  • repeat solo se aplica si se envía notifyTo.

Método: POST /notifications

Body requerido

{
  "createToAllEmployees": false,
  "employeeID": [158, 161],
  "message": "Hola",
  "notifyFrom": "2025-09-30T11:00:00Z",
  "notifyTo": null,
  "notifyWhen": "enter",
  "repeat": false
}

Respuesta exitosa (201)

No retorna contenido, solo confirma la creación.

Códigos de respuesta

CódigoDescripción
201Aviso creado exitosamente
400Solicitud inválida, falta employeeID o ningún empleado coincide con los IDs enviados
500Error interno del servidor

Actualizar un aviso

Actualiza un aviso que todavía no está activo (su notifyFrom es posterior al momento de la solicitud). Se deben enviar message, notifyFrom, notifyTo, notifyWhen y repeat, que reemplazan los valores actuales. En employees se indican los empleados a agregar (add) o quitar (delete) del aviso. El aviso tiene que quedar con al menos un empleado.

Método: PUT /notifications/:id

Parámetros

ParámetroTipoDescripción
idstringID del aviso

Body

{
  "message": "Recordá firmar el recibo",
  "notifyFrom": "2026-11-02T08:00:00-03:00",
  "notifyTo": "2026-11-06T20:00:00-03:00",
  "notifyWhen": "both",
  "repeat": true,
  "employees": [
    { "action": "add", "employeeID": 170 },
    { "action": "delete", "employeeID": 158 }
  ]
}

Respuesta exitosa (204)

No retorna contenido.

Códigos de respuesta

CódigoDescripción
204Actualizado exitosamente
400Solicitud inválida, el aviso ya está activo, el empleado ya está (o no está) en el aviso, o el aviso quedaría sin empleados
404Aviso o empleado no encontrado
500Error interno del servidor

Eliminar un aviso

Elimina un aviso de forma permanente.

Método: DELETE /notifications/:id

Respuesta exitosa (200)

{
  "message": "deleted successfuly",
  "deleted": true
}

Códigos de respuesta

CódigoDescripción
200Eliminado exitosamente
404Aviso no encontrado
500Error interno del servidor