Optimizing the Customer Experience with Programmable Communications