A method for improving a Customer Relationship Management, "CRM", system, comprising: receiving, at the CRM system, a contact from a customer, the contact being initiated through a graphical user interface on a web page within a browser window; receiving, at the CRM system from the graphical user interface, a sequence of events captured from an interaction of the customer with the web page within the browser window, wherein the sequence of events includes keystrokes and error codes generated by the web page within the browser window; capturing, by the CRM system, a Universal Resource Locator, "URL", of the web page; mapping, by the CRM system, the URL of the web page and the sequence of events to the contact; querying, by the CRM system, a rule store having a plurality of routing rules; matching, by the CRM system, a first routing rule of the plurality of routing rules to the contact; routing, by the CRM system, the contact to a first customer service queue based on the first routing rule; providing, by the CRM system, a co-browsing preview of the browser window to a computer of a first agent associated with the first customer service queue; detecting, by the CRM system, a second routing of the contact from the first customer service queue to a second customer service queue, wherein the detecting is performed by one of detecting a notification triggered by a manual routing or periodically running a service that identifies manual routing; determining, by the CRM system, that a second agent associated with the second customer service queue resolved the contact by setting a customer contact status to resolved, and creating, by the CRM system, a new routing rule using a machine learning algorithm based on the URL of the web page, the sequence of events, the co-browsing preview, the second routing, and the determination that the second agent associated with the second customer service queue resolved the contact. receiving, at the CRM system, a contact from a customer, the contact being initiated through a graphical user interface on a web page within a browser window; receiving, at the CRM system from the graphical user interface, a sequence of events captured from an interaction of the customer with the web page within the browser window, wherein the sequence of events includes keystrokes and error codes generated by the web page within the browser window; capturing, by the CRM system, a Universal Resource Locator, "URL", of the web page; mapping, by the CRM system, the URL of the web page and the sequence of events to the contact; querying, by the CRM system, a rule store having a plurality of routing rules; matching, by the CRM system, a first routing rule of the plurality of routing rules to the contact; routing, by the CRM system, the contact to a first customer service queue based on the first routing rule; providing, by the CRM system, a co-browsing preview of the browser window to a computer of a first agent associated with the first customer service queue; detecting, by the CRM system, a second routing of the contact from the first customer service queue to a second customer service queue, wherein the detecting is performed by one of detecting a notification triggered by a manual routing or periodically running a service that identifies manual routing; determining, by the CRM system, that a second agent associated with the second customer service queue resolved the contact by setting a customer contact status to resolved, and creating, by the CRM system, a new routing rule using a machine learning algorithm based on the URL of the web page, the sequence of events, the co-browsing preview, the second routing, and the determination that the second agent associated with the second customer service queue resolved the contact.