A system for modifying a number of opportunities in a customer relationship management (CRM) system, the system comprising a computer with a processor, memory and a network interface, the computer, with the processor and memory, implementing all of:
- an obtaining engine, to obtain, from a customer relationship management (CRM) system, data for a number of opportunities, wherein each of the opportunities is represented by a record structure in the CRM system, including a number of fields of metadata;
- a comparing engine, to compare the metadata associated with the opportunities with a number of archived opportunity templates to create a comparison that indicates, based on the templates, whether a corresponding opportunity is to be split into multiple opportunities or merged with another opportunity to reduce a total number of opportunities in the CRM system, each archived opportunity template containing more data than an opportunity from the CRM so as to indicate through the comparison whether a corresponding opportunity is to be split into multiple opportunities or merged with another opportunity to reduce a total number of opportunities in the CRM system;
- and
- a modifying engine, to modify, based on the comparison of the opportunity metadata to the archived opportunity templates, the record structures of the opportunities to create at least one new opportunity thereby automatically updating an opportunity database of the CRM system, wherein the modifying engine, based on the comparison, selectively splits at least one opportunity to create two opportunities including a new opportunity, thereby making the CRM system self-expanding, or selectively merges at least two opportunities into a single new opportunity, thereby making the CRM system self-regulating, including discarding redundant metadata in a merged record for the new opportunity;
- and a storing engine to store the at least one new opportunity in the CRM system.