A computer-implemented method , comprising: receiving , at a client computing device , a reply message that is intended to be delivered to another client computing device that sent a message to the client computing device over a first communication channel; identifying , by the client computing device , a unique identifier in the reply message; generating , by the client computing device , an identified reply message that includes the unique identifier; sending , by the client computing device , the identified reply message to a computer system ; receiving the reply message at the computer system ; selecting , by the computer system , the unique identifier in the reply message; determining , by the computer system , that the message is not a duplicate based on a comparison of the unique identifier with a repository of unique message identifiers; storing , in response to the determining, the unique identifier in the repository of unique message identifiers; generating , by the computer system , a modified message that comprises the message with at least a portion of the unique identifier removed; sending , by the computer system , the modified reply message to the sender device ; receiving the modified reply message and outputting the modified reply message by the other client computing device ; receiving at the computer system , a second instance of the reply message that has been sent to the other client computing device over a second communication channel that is different to the first communication channel; determining whether said second instance of the reply message is a duplicate based on a comparison of a unique identifier in the second instance of the reply message with the repository of unique message identifiers; and if it is determined that said second instance of the reply message is a duplicate discarding the second instance of the reply message without transmitting said second instance of the reply message to the other client computing device . receiving , at a client computing device , a reply message that is intended to be delivered to another client computing device that sent a message to the client computing device over a first communication channel; identifying , by the client computing device , a unique identifier in the reply message; generating , by the client computing device , an identified reply message that includes the unique identifier; sending , by the client computing device , the identified reply message to a computer system ; receiving the reply message at the computer system ; selecting , by the computer system , the unique identifier in the reply message; determining , by the computer system , that the message is not a duplicate based on a comparison of the unique identifier with a repository of unique message identifiers; storing , in response to the determining, the unique identifier in the repository of unique message identifiers; generating , by the computer system , a modified message that comprises the message with at least a portion of the unique identifier removed; sending , by the computer system , the modified reply message to the sender device ; receiving the modified reply message and outputting the modified reply message by the other client computing device ; receiving at the computer system , a second instance of the reply message that has been sent to the other client computing device over a second communication channel that is different to the first communication channel; determining whether said second instance of the reply message is a duplicate based on a comparison of a unique identifier in the second instance of the reply message with the repository of unique message identifiers; and if it is determined that said second instance of the reply message is a duplicate discarding the second instance of the reply message without transmitting said second instance of the reply message to the other client computing device . <EOS>