user request flow