Crear Workflow
Exportar contenido
Crea una nueva plantilla de flujo de trabajo personalizada con nombre, descripción y metodología.
- Clic en “Nuevo Workflow” (botón negro a la derecha) — se abre el diálogo de creación.
- Completa los campos del formulario (ver tabla abajo).
- Clic en “Crear” — el workflow se guarda y aparece en la lista.
Campos del formulario
Sección titulada «Campos del formulario»| Campo | Obligatorio | Descripción | Ejemplo |
|---|---|---|---|
| Nombre | Sí | Nombre identificativo del workflow | Desarrollo Web |
| Descripción | No | Propósito o casos de uso | Flujo para proyectos de desarrollo frontend |
| Metodología | Sí | Enfoque del flujo | Ágil, Cascada, Kanban o Personalizado |
Metodologías
Sección titulada «Metodologías»| Valor | Etiqueta | Cuándo usarla |
|---|---|---|
agile | Ágil | Proyectos iterativos con sprints |
waterfall | Cascada | Proyectos secuenciales con fases fijas |
kanban | Kanban | Flujo continuo de tareas |
custom | Personalizado | Cualquier otro enfoque |
Cómo sé que lo hice bien
Sección titulada «Cómo sé que lo hice bien»- 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”.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solución |
|---|---|---|
| Botón “Crear” deshabilitado | Campo “Nombre” vacío | Escribe un nombre para el workflow |
| ”Error al crear workflow” | Error de base de datos o permisos | Verifica tu conexión y que eres propietario |
Detalles técnicos — Crear Workflow
Sección titulada «Detalles técnicos — Crear Workflow»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:
nameNOT NULLmethodologyIN (‘agile’, ‘waterfall’, ‘kanban’, ‘custom’)user_idNOT NULL (auto-asignado)is_system= false (siempre)
Query de diagnóstico
-- Ver workflow recién creadoSELECT id, name, description, methodology, is_default, is_system, created_atFROM workflow_templatesWHERE user_id = '<user_id>' AND is_system = falseORDER BY created_at DESCLIMIT 5;