We study the staffing and shift scheduling problem in a multi-skill multi-channel contact center, containing calls, emails and chats. Due to the fact that each channel has its own operating characteristics, the existing solutions developed for multi-skill call centers are not applicable to our problem. In this paper, we first build a high fidelity simulation model at a weekly level to evaluate various Quality of Service (QoS) measurements for a given schedule. Then we propose a simulation-based optimization algorithm to solve the staffing and shift scheduling problem integrally to minimize the total costs of agents under certain QoS requirements. In the numerical experiments, we show the effectiveness of the proposed approach with realistic instances.