A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations of managing electronic communication channels using a data processing system, the operations comprising:
- querying, via a first application programming interface (API), a database to obtain a first list of data entities, wherein each of the data entities includes information of a task expected to be completed within a predetermined period of time, and wherein each task is processed according to a plurality of predetermined states that are in a sequential order and define a life cycle of the corresponding task;
- using a background thread running in the data processing system, automatically selecting a subset of the data entities from the first list based on at least one of the following criteria:
- each data entity in the subset of data entities includes an attribute indicating that the data entity is flagged, each data entity in the subset of data entities is in a first state of the plurality of predetermined states, each data entity in the subset of data entities has reached the first state within a same period of time, or each data entity in the subset of data entities has an estimated time frame in which the data entity is to move from the first state to a second state in the plurality of predetermined states;
- for each data entity in the subset of data entities,
- automatically identifying a first list of a plurality of electronic communication channels associated with the corresponding data entity, wherein the electronic communication channels include at least one of an instant messaging system, an email group, a group chat, or a social network community, wherein each of the plurality of electronic communication channels enables electronic communication over an electronic network,
- automatically determining whether a first user is in a first user role associated with the first state of the corresponding data entity,
- automatically identifying a first electronic communication channel of the plurality of electronic communication channels of which the first user is not a member,
- in response to determining that the first user is not a member of the first electronic communication channel and that the first user is in the first user role, determining whether a number of existing members of the first electronic communication channel exceeds a first predetermined threshold and a number of electronic communication channels associated with the user is below a second predetermined threshold;
- in response to determining that the number of existing members of the first electronic communication channel does not exceed the first predetermined threshold, and that the number of electronic communication channels associated with the first user is below a second predetermined threshold, automatically adding the first user as a member to the first electronic communication channel, such that the first user can communicate with another member of the first electronic communication channel,
- automatically determining whether the data entity has reached the second state in the plurality of predetermined states, and in response to determining that the data entity has reached the second state, automatically identifying a second electronic communication channel of the plurality of electronic communication channels, wherein the second electronic communication channel includes a second user as a member of the second electronic communication channel,
- automatically determining that the second user is in a second user role associated with the second state,
- automatically determining that an amount of activities performed by the second user is below a predetermined amount, and
- automatically removing the second user from the second communication channel, in response to determining that the second user is in the second user role and the amount of activities is below the predetermined amount;
- updating the database and an electronic communications system via a second API regarding the added first user and the removed second user.