1. A computer-implemented method of labeling data associated with data records stored in a database of a system, said system comprising a server system and a user interface in communication with the server system, the server system comprising one or more processors and a memory, the method comprising: receiving data associated with said data records, said data comprising labeled data and unlabeled data; generating a self-organizing map of the data, said self-organizing map comprising a plurality of nodes each comprising one or more of said data records; identifying each node in the self-organizing map that comprises at least one data record having a label, and for each said node, assigning said label of said at least one data record of said node to each unlabeled data record in said node; self-labeling data records, said self-labeling comprising, for each selected node in the self-organizing map that comprises at least one data record having a label: identifying a first plurality of nodes in said self-organizing map, each node of said first plurality being adjacent to said selected node; identifying a second plurality of nodes in said self-organizing map, each node of said second plurality being either adjacent to said selected node or adjacent to a node of said first plurality other than said selected node; where there are no nodes in said first plurality or in said second plurality comprising at least one data record having a label different from the label of the at least one data record in said selected node, assigning the label of the at least one data record in said selected node to each unlabeled data record in each node of said first plurality; where there is at least one node in said first plurality comprising at least one data record having a label different from the label of the at least one data record in said selected node, not assigning the label of the at least one data record in said selected node to each unlabeled data record in each node of said first plurality; and where there are no nodes in said first plurality comprising at least one data record having a label different from the label of said selected node but there is at least one node in said second plurality comprising at least one data record having a label different from the label of said selected node, assigning the label of the at least one data record in said selected node to each unlabeled data record in each node of said first plurality that is not adjacent to the at least one node in said second plurality comprising at least one data record having a label different from the label of said selected node, and not assigning the label of the at least one data record in said selected node to each unlabeled data record in each node of said first plurality that is adjacent to the at least one node in said second plurality comprising at least one data record having a label different from the label of said selected node; and after said self-labeling, training a classifier for data classification in a customer relationship management system, wherein said classifier is trained based on data of data records having a label in said self-organizing map; wherein said one or more processors are configured to perform said method.