Intercom interview question

Design and implement an agent assignment system that distributes conversations across agents based on availability and capacity limits.