end-to-end automation