En la publicación inicial del toolkit, presenté las funcionalidades de exportación de envíos. En v1.0.0-beta.3, el toolkit también incluye un nuevo flujo de clonación de formularios.

Esta versión agrega una acción de Clone form directamente en el listado de formularios, para que los administradores puedan duplicar un formulario existente sin tener que reconstruirlo manualmente.

Instalar o Actualizar

dotnet add package XperienceCommunity.FormsToolkit --version 1.0.0-beta.3

Luego, asegúrate de registrar el toolkit como siempre:

builder.Services.AddFormsToolkit();

// Más adelante, al mapear endpoints:
app.MapControllers();

Clonar un Formulario

Desde Forms, abre las acciones de una fila y selecciona Clone form.

Acción Clone form en el listado de Forms (placeholder)

El diálogo de clonación se abre con un nombre prellenado en formato <nombre original> (copy). Puedes mantenerlo o editarlo antes de confirmar.

Diálogo de clonación con nombre prellenado (placeholder)

Después de clonar correctamente, el listado se refresca y muestra un mensaje de éxito.

Qué se Copia

El clon mantiene la estructura y la configuración soportada del formulario de origen, incluyendo:

  • Diseño de Form Builder
  • Definición y orden de campos
  • Configuración de validación y visibilidad
  • Mapeos de contacto
  • Acceso de roles autorizados

Qué No se Copia

Por diseño, el clon inicia limpio:

  • No se copian envíos
  • No se copian referencias de uso en páginas/widgets
  • No se copian relaciones de notificaciones, autoresponders ni automatizaciones

Esto mantiene el formulario clonado independiente y seguro para ajustarlo antes de usarlo en producción.

Por Qué se Excluyen Estas Relaciones

Este comportamiento es intencional. Evitamos explícitamente el uso de APIs internas y usamos solo APIs públicas soportadas de Xperience.

En el caso de autoresponders, existe una API pública para crear procesos de autoresponder, pero no existe una API pública soportada para leer la configuración existente de autoresponder de un formulario y clonarla de forma segura. Replicar ese comportamiento requeriría depender de APIs internas, que pueden cambiar sin garantías de compatibilidad.

Por la misma razón, las relaciones de notificaciones y automatización no se clonan automáticamente. Mantener estas relaciones de ejecución solo en el formulario de origen evita efectos secundarios ocultos y hace que el clon sea predecible, compatible y seguro en las versiones soportadas de Xperience.

Permisos y Configuración

Los usuarios necesitan el permiso Create en Forms para clonar formularios.

La clonación está habilitada por defecto. Si lo necesitas, puedes deshabilitar solo la clonación y mantener las exportaciones habilitadas:

builder.Services.AddFormsToolkit(options =>
{
    options.EnableFormCloning = false;
});

Para más detalles de instalación y uso, revisa el README y la guía de uso.

Eso es todo por hoy.

¡Hasta la próxima publicación!