report generation workflow