Saltar al contenido
← Ideas

Cómo elegir qué acciones debe poder deshacer un usuario en una aplicación

Un marco práctico para decidir cuándo permitir deshacer, restaurar o corregir acciones, según su impacto, coste de recuperación y efectos en sistemas conectados.

Interfaz de producto digital con opciones para deshacer, restaurar o corregir una acción

Una opción para deshacer parece sencilla hasta que una acción ya ha enviado una notificación, iniciado un pago o actualizado otro sistema. En esos casos, volver al estado anterior puede ser imposible, parcial o incluso perjudicial. Por eso, decidir qué acciones son reversibles no consiste en añadir un botón a cada pantalla: exige entender qué cambia, quién depende de ese cambio y qué recuperación es viable.

Para responsables de producto, diseño y tecnología, la decisión correcta combina impacto, posibilidad de detectar un error, coste de reparación y consecuencias externas. El objetivo no es prometer que todo se puede revertir, sino dar a las personas una salida clara y segura cuando se equivocan, sin ocultar los límites reales del sistema.

Qué significa que una acción sea reversible

Qué significa que una acción sea reversible

Una acción es reversible si el producto puede recuperar un estado aceptable después de ejecutarla. Eso no siempre significa deshacer literalmente el cambio original. Borrar un registro puede ser reversible si queda en una papelera durante un periodo definido; enviar un correo, en cambio, no deja de haber ocurrido aunque se restaure el dato que lo originó.

Conviene distinguir cuatro resultados:

  • Deshacer: cancelar o contrarrestar una acción reciente, normalmente desde el mismo contexto.
  • Restaurar: recuperar una versión o estado anterior desde un historial o una papelera.
  • Corregir: registrar una acción nueva que compensa el error sin borrar el hecho previo.
  • No revertir: mantener el cambio y ofrecer una vía alternativa, como solicitar revisión o contactar con soporte.

Esta diferencia importa para las expectativas. Si el usuario selecciona “Deshacer”, espera que el efecto desaparezca. Si algunos efectos ya se propagaron, la interfaz debe decir qué se ha revertido y qué no. Un control ambiguo puede generar más daño que no ofrecer ningún control.

Clasificar por impacto, detección y coste de recuperación

Antes de elegir un patrón de interfaz, clasifica la acción en función de tres preguntas. Primero, ¿qué impacto tiene un error? Considera la cantidad de datos afectados, la sensibilidad de la información, el número de personas implicadas y las consecuencias económicas u operativas. Segundo, ¿cuánto tardará alguien en detectar que se equivocó? Tercero, ¿cuánto cuesta recuperar un estado correcto, en esfuerzo, tiempo y riesgo de inconsistencias?

Un cambio de preferencia personal suele tener impacto limitado y ser fácil de corregir. Eliminar un espacio compartido puede afectar a un equipo, y un cambio de permisos puede dejar a otras personas sin acceso. Una operación financiera o una comunicación enviada puede tener consecuencias externas que no desaparecen al restaurar el registro local.

Usa estas variables como diagnóstico, no como una puntuación universal. Si el impacto es bajo y la recuperación inmediata, puede bastar con una acción inversa visible. Si el error tarda en descubrirse o la recuperación requiere reconstruir información, conviene un historial, una papelera o un mecanismo de restauración con límites claros. Si hay efectos externos, diseña una compensación o un proceso de corrección y explica que no equivale a volver atrás.

También pregunta quién puede iniciar y completar la recuperación. Si solo una persona administradora puede restaurar una acción, la reversibilidad existe técnicamente, pero quizá no es una salida práctica para quien cometió el error.

Elegir el patrón de reversión adecuado

Deshacer inmediato funciona cuando la acción acaba de ocurrir, el estado anterior se conserva y el sistema puede cancelar el efecto con seguridad. Es apropiado para cambios locales o fácilmente compensables. La opción debe estar disponible durante un plazo comprensible y no depender de que el usuario adivine un atajo oculto.

Historial o papelera es más adecuado cuando el error puede detectarse tarde. Permite revisar qué cambió y recuperar elementos, pero requiere definir retención, permisos, visibilidad y comportamiento ante restauraciones. No llames “restaurar” a una operación que recupera solo parte de los datos sin explicar qué queda fuera.

Una nueva acción correctiva es preferible cuando borrar el rastro sería engañoso o rompería relaciones con otros sistemas. Por ejemplo, puede registrarse una corrección que compense una operación anterior, conservando el historial. El usuario necesita entender la relación entre ambas acciones y si la corrección también requiere aprobación.

No permitir reversión directa puede ser razonable cuando revertir crea un riesgo mayor que mantener el estado, o cuando un efecto externo ya es irreversible. En ese caso, ofrece una alternativa concreta: detener pasos aún pendientes, corregir los datos, iniciar una disputa o pedir revisión. Si la única respuesta es “no se puede deshacer”, traslada toda la carga al usuario.

Gestionar efectos externos y sistemas conectados

Una aplicación B2B rara vez actúa aislada. Una acción puede actualizar una integración, disparar una automatización, enviar una notificación o iniciar un proceso que otra persona ya ha consumido. Antes de ofrecer reversión, dibuja la secuencia completa: qué se modifica dentro del producto, qué se comunica fuera y qué sistemas confirman o retrasan esos cambios.

Separa, cuando sea posible, la preparación de la ejecución. Una vista previa, una confirmación contextual o una cola con opción de cancelar puede prevenir errores antes de que salgan del sistema. Pero evita confirmaciones repetitivas que no aportan información: reserva la fricción para acciones cuyo impacto la justifique y muestra detalles concretos, como el alcance o los destinatarios.

Si una sincronización ya se completó, distingue entre revertir el estado propio y enviar una operación compensatoria al sistema conectado. La segunda puede fallar o llegar tarde. Comunica el estado —pendiente, completado o con error— y evita afirmar que todo está corregido hasta tener confirmación suficiente. Define también qué hacer si el sistema externo está inaccesible.

Permisos, plazos y registro de cambios

Los límites de reversión deben reflejar responsabilidades y riesgos. Decide quién puede deshacer, restaurar o corregir una acción; si se necesita una aprobación; y durante cuánto tiempo se conserva la posibilidad de recuperación. No uses un plazo arbitrario: considera requisitos operativos, sensibilidad de los datos y coste de mantener estados anteriores.

El registro debería ayudar a responder qué cambió, quién lo hizo, cuándo y qué recuperación se ejecutó. No tiene que exponer información sensible a cualquier usuario. Diseña el acceso al historial con los mismos criterios de autorización que aplicas al dato original, y considera que restaurar un elemento no debería conceder permisos que ya no corresponden.

Explica los límites antes de que sean una sorpresa. Si una acción no puede recuperarse después de cierto punto, informa de ese límite en el contexto pertinente. Una confirmación es útil cuando permite tomar una decisión informada; no sustituye a una reversión viable ni convierte al usuario en responsable de compensar una experiencia insegura.

Probar concurrencia y cambios posteriores

La reversión suele fallar en escenarios que no aparecen en una demostración lineal. Prueba qué ocurre si otra persona edita el mismo objeto entre la acción original y la restauración. Si se restaura una versión antigua sin revisar los cambios posteriores, el sistema puede borrar trabajo legítimo. Define si se bloquea la operación, se muestran diferencias o se restaura solo una parte.

Prueba también reversiones parciales, reintentos después de un fallo, acciones duplicadas y dependencias eliminadas o modificadas. En flujos conectados, comprueba qué ocurre cuando una parte tiene éxito y otra no. La interfaz debe describir el resultado real, no presentar una operación como completa cuando solo se recuperó el estado local.

Observa señales de diagnóstico después del lanzamiento: uso frecuente de “deshacer”, restauraciones fallidas, contactos con soporte, correcciones repetidas y tiempo hasta detectar errores. Una tasa alta de reversión puede indicar que el control es útil, pero también una acción confusa, una vista previa insuficiente o un valor predeterminado peligroso. Investiga el contexto antes de añadir más confirmaciones.

Lista de comprobación antes de lanzar

Lista de comprobación antes de lanzar
  1. ¿Qué datos y personas afecta la acción, y cuál es el peor error plausible?
  2. ¿Cuánto puede tardar en detectarse un fallo y quién lo detectará?
  3. ¿Se puede restaurar el estado anterior sin perder cambios posteriores?
  4. ¿Hay notificaciones, pagos, automatizaciones o sincronizaciones externas?
  5. ¿Corresponde deshacer, restaurar, corregir o explicar que no existe reversión?
  6. ¿Quién puede recuperar la acción y durante qué periodo?
  7. ¿La interfaz comunica con precisión qué se recuperó y qué no?
  8. ¿Se han probado concurrencia, fallos parciales, permisos y reintentos?
  9. ¿Qué señales se revisarán para detectar errores de diseño tras el lanzamiento?

La mejor política de reversibilidad no maximiza el número de botones: reduce el daño probable y ofrece una recuperación comprensible. Cuando no se pueda volver atrás, una corrección trazable y honesta suele ser mejor que una promesa de deshacer que el sistema no puede cumplir.

Fuentes y referencias

  1. Web standardsW3C
  2. OWASP Cheat Sheet SeriesOWASP Foundation
  3. Web performanceweb.dev