Ir al contenido

Crear Workflow

Crea una nueva plantilla de flujo de trabajo personalizada con nombre, descripción y metodología.

  1. Clic en “Nuevo Workflow” (botón negro a la derecha) — se abre el diálogo de creación.
  2. Completa los campos del formulario (ver tabla abajo).
  3. Clic en “Crear” — el workflow se guarda y aparece en la lista.
CampoObligatorioDescripciónEjemplo
NombreNombre identificativo del workflowDesarrollo Web
DescripciónNoPropósito o casos de usoFlujo para proyectos de desarrollo frontend
MetodologíaEnfoque del flujoÁgil, Cascada, Kanban o Personalizado
ValorEtiquetaCuándo usarla
agileÁgilProyectos iterativos con sprints
waterfallCascadaProyectos secuenciales con fases fijas
kanbanKanbanFlujo continuo de tareas
customPersonalizadoCualquier otro enfoque
  • El workflow aparece en la lista con su nombre y metodología.
  • Badge “Personalizado” (o metodología seleccionada) visible.
  • Toast de confirmación: “Workflow creado exitosamente”.
  • Puedes agregar estados haciendo clic en ”+ Agregar Estado”.
MensajeCausaSolución
Botón “Crear” deshabilitadoCampo “Nombre” vacíoEscribe un nombre para el workflow
”Error al crear workflow”Error de base de datos o permisosVerifica tu conexión y que eres propietario
Mutación de creación

Función: createWorkflow en WorkflowManager.tsx

const createWorkflow = useMutation({
mutationFn: async (workflow: typeof workflowForm) => {
if (!user) throw new Error("User not authenticated");
const { data, error } = await supabase
.from("workflow_templates")
.insert({
user_id: user.id,
name: workflow.name,
description: workflow.description,
methodology: workflow.methodology,
is_system: false,
})
.select()
.single();
if (error) throw error;
return data;
},
onSuccess: () => {
toast({ title: "Workflow creado exitosamente" });
queryClient.invalidateQueries({ queryKey: ["workflows"] });
setDialogOpen(false);
resetWorkflowForm();
},
});

Validaciones:

  • name NOT NULL
  • methodology IN (‘agile’, ‘waterfall’, ‘kanban’, ‘custom’)
  • user_id NOT NULL (auto-asignado)
  • is_system = false (siempre)
Query de diagnóstico
-- Ver workflow recién creado
SELECT
id,
name,
description,
methodology,
is_default,
is_system,
created_at
FROM workflow_templates
WHERE user_id = '<user_id>'
AND is_system = false
ORDER BY created_at DESC
LIMIT 5;