# US 10,320,731 B2 · System and method for threading electronic messages

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,731 B2
- Document ID: US10320731B2
- Status: Granted
- Kind: B2
- Application number: 14/613,642
- Filed: 2015-02-04
- Published: 2015-09-03
- Granted: 2019-06-11
- Earliest claimed: 2014-02-28
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Xiaobin Lu; Elaine Chien
- Web page: https://patentgrep.com/patent/US10320731B2

## CPC

- H04L 51/42: Mailbox-related aspects, e.g. synchronisation of mailboxes
- G06F 16/284: {Relational databases}
- G06Q 10/107: Computer-aided management of electronic mailing [e-mailing]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A system and method includes a network interface device to receive and retransmit electronic messages between a first user and a second user, an electronic data storage configured to store database entries related to electronic messages as received and retransmitted by the network interface device, at least some of the database entries including a latest message in thread flag identifying a latest electronic message in a thread of multiple electronic messages, and a processor. The processor may create a database entry corresponding to a first electronic message, the database entry including the latest message in thread flag indicating that the first electronic message is a latest electronic message of a thread, and change a status of a latest message in thread flag of a database entry corresponding to a second electronic message of the thread to indicate that the second electronic message is not a latest message in the thread.

## Claims

### Claim 1

A system, comprising:
a network interface device to receive and retransmit electronic messages between a first user and a second user;
an electronic data storage comprising a first database and a second database, each database configured to store database entries related to electronic messages as received and retransmitted by the network interface device, at least some of the database entries including a binary latest message in thread flag identifying a latest electronic message in a thread of multiple electronic messages as stored in a respective one of the first database and the second database, wherein the first database corresponds to electronic messages received from and retransmitted to the first user and the second database corresponds to electronic messages received from and retransmitted to the second user; and
a processor, coupled to the electronic data storage; and
a computer readable medium comprising instructions which, when implemented by the processor, cause the processor to perform operations comprising:
create, in at least one of the first database and the second database, in response to receipt of a first electronic message by one of the first user and the second user, a database entry corresponding to the first electronic message as received or retransmitted to a respective one of the first user and the second user, the database entry including the latest message in thread flag indicating that the first electronic message is a latest electronic message of a thread corresponding to the first electronic message, the thread including electronic messages exchanged between the first user and the second user;
change a status of a latest message in thread flag of a database entry in the one of the first database and the second database corresponding to a second electronic message of the thread from indicating that the second electronic message is the latest message in the thread to indicating that the second electronic message is not a latest message in the thread; and
cause a user interface to display, to at least one of the first user or the second user:
the first electronic message as the latest message in the thread based on the entry corresponding to the first electronic message including the latest message in thread flag indicating that the first electronic message is a latest electronic message of the thread; and
the second electronic message as being received before the first message based on the entry corresponding to the second electronic message including the latest message in thread flag indicating that the second electronic message is not a latest electronic message of the thread.

### Claim 2 (depends on 1)

The system of claim 1, wherein the database entries further include a message identification field and a thread identification field, wherein each database entry corresponding to an electronic message of the thread includes a unique message identifier in its respective message identifier field and a common thread identifier in its respective thread identifier field.

### Claim 3 (depends on 2)

The system of claim 2, wherein the thread includes an initial electronic message, wherein the common thread identifier of the thread is based, at least in part, on a message identifier of the initial electronic message.

### Claim 4 (depends on 3)

The system of claim 3, wherein the common thread identifier is the same as the message identifier of the initial electronic message.

### Claim 5 (depends on 2)

The system of claim 2, wherein the common thread identifier is common to electronic messages corresponding to the thread in both the first and second databases.

### Claim 6 (depends on 1)

The system of claim 1, wherein the each of the first and second databases include at least one database entry having a latest message in thread flag indicating that a corresponding electronic message is the latest message in the thread.

### Claim 7 (depends on 1)

The system of claim 1, wherein at least some of the database entries include at least one of a timestamp field and a thread sequence field, wherein the computer readable medium further comprises instructions to resolve conflicting latest message in thread flag statuses based, at least in part, on at least one of the timestamp field and the thread sequence field of the respective database entries.

### Claim 8

A method, comprising:
creating, with a processor, in response to receipt of a first electronic message by one of a first user and the second user, a database entry in at least one of a first database and a second database stored in an electronic data storage, the database entry corresponding to the first electronic message as received or retransmitted by a network interface device between a first user and a second user, the database entry including a binary latest message in thread flag indicating that the first electronic message is a latest electronic message of a thread corresponding to the first electronic message as stored in a respective one of the first database and the second database, wherein the first database corresponds to electronic messages received from and retransmitted to the first user and the second database corresponds to electronic messages received from and retransmitted to the second user, the thread including electronic messages exchanged between the first user and the second user;
changing, with the processor, in the one of the first database and the second database, a status of a latest message in thread flag of a database entry corresponding to a second electronic message of the thread from indicating that the second electronic message is the latest message in the thread to indicating that the second electronic message is not a latest message in the thread; and
causing, with the processor, a user interface to display to at least one of the first user and the second user:
the first electronic message as the latest message in the thread based on the entry corresponding to the first electronic message including the latest message in thread flag indicating that the first electronic message is a latest electronic message of the thread; and
the second electronic message as being received before the first message based on the entry corresponding to the second electronic message including the latest message in thread flag indicating that the second electronic message is not a latest electronic message of the thread.

### Claim 9 (depends on 1)

The method of claim 1, wherein the database entries further include a message identification field and a thread identification field, wherein each database entry corresponding to an electronic message of the thread includes a unique message identifier in its respective message identifier field and a common thread identifier in its respective thread identifier field.

### Claim 10 (depends on 9)

The method of claim 9, wherein the thread includes an initial electronic message, wherein the common thread identifier of the thread is based, at least in part, on a message identifier of the initial electronic message.

### Claim 11 (depends on 10)

The method of claim 10, wherein the common thread identifier is the same as the message identifier of the initial electronic message.

### Claim 12 (depends on 9)

The method of claim 9, wherein the common thread identifier is common to electronic messages corresponding to the thread in both the first and second databases.

### Claim 13 (depends on 9)

The method of claim 9, wherein each of the first and second databases include at least one database entry having a latest message in thread flag indicating that a corresponding electronic message is the latest message in the thread.

### Claim 14 (depends on 8)

The method of claim 8, wherein at least some of the database entries include at least one of a timestamp field and a thread sequence field, further comprising;
resolving, with the processor, conflicting latest message in thread flag statuses based, at least in part, on at least one of the timestamp field and the thread sequence field of the respective database entries.

### Claim 15

A computer readable medium comprising instructions which, when implemented by a processor, cause the processor to perform operations comprising:
create, in at least one of a first database and a second database, in response to receipt of a first electronic message by one of a first user and the second user, a database entry corresponding to the first electronic message as received or retransmitted to a respective one of a first user and a second user, the database entry including a latest message in thread flag indicating that the first electronic message is a latest electronic message of a thread corresponding to the first electronic message, wherein each database stores database entries related to electronic messages as received and retransmitted by a network interface device, at least some of the database entries including the latest message in thread flag identifying a latest electronic message in a thread of multiple electronic messages as stored in a respective one of the first database and the second database, wherein the first database corresponds to electronic messages received from and retransmitted to the first user and the second database corresponds to electronic messages received from and retransmitted to the second user, the thread including electronic messages exchanged between the first user and the second user;
change a status of a latest message in thread flag of a database entry in the one of the first database and the second database corresponding to a second electronic message of the thread from indicating that the second electronic message is the latest message in the thread to indicating that the second electronic message is not a latest message in the thread; and
cause a user interface to display to at least one of the first user and the second user:
the first electronic message as the latest message in the thread based on the entry corresponding to the first electronic message including the latest message in thread flag indicating that the first electronic message is a latest electronic message of the thread; and
the second electronic message as being received before the first message based on the entry corresponding to the second electronic message including the latest message in thread flag indicating that the second electronic message is not a latest electronic message of the thread.

### Claim 16 (depends on 15)

The computer readable medium of claim 15, wherein the database entries further include a message identification field and a thread identification field, wherein each database entry corresponding to an electronic message of the thread includes a unique message identifier in its respective message identifier field and a common thread identifier in its respective thread identifier field.

### Claim 17 (depends on 16)

The computer readable medium of claim 16, wherein the thread includes an initial electronic message, wherein the common thread identifier of the thread is based, at least in part, on a message identifier of the initial electronic message.

### Claim 18 (depends on 17)

The computer readable medium of claim 17, wherein the common thread identifier is the same as the message identifier of the initial electronic message.

### Claim 19 (depends on 16)

The computer readable medium of claim 16, wherein the common thread identifier is common to electronic messages corresponding to the thread in both the first and second databases.

### Claim 20 (depends on 15)

The computer readable medium of claim 15, wherein the each of the first and second databases include at least one database entry having a latest message in thread flag indicating that a corresponding electronic message is the latest message in the thread.
