# US 2013/0157627 A1 · Generating Conversation Threads for a Unified Messaging System

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

- Number: US 2013/0157627 A1
- Document ID: US20130157627A1
- Status: Published application
- Kind: A1
- Application number: 13/597,679
- Filed: 2012-08-29
- Published: 2013-06-20
- Earliest claimed: 2011-12-19
- Assignees: Facebook, Inc.
- Inventors: Mohit Talwar; Miladin Pavlicic; Siddharth Murlidhar
- Web page: https://patentgrep.com/patent/US20130157627A1

## CPC

- H04L 51/56: Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
- H04L 51/216: Handling conversation history, e.g. grouping of messages in sessions or threads
- H04L 51/52: for supporting social networking services
- H04W 4/14: Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
- H04W 4/16: Communication-related supplementary services, e.g. call-transfer or call-hold
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

In one embodiment, a method includes accessing a communication sent from a first user to one or more second users; searching multiple communication threads for a specific thread associated with both the first and second users; and if the specific communication thread is located, then adding the communication to the thread; and for each second user, sending the communication to the second user using a communication protocol selected determined to be appropriate.

## Claims

### Claim at position 1

1-18. (canceled)

### Claim 19

A method comprising, by one or more computing devices:
accessing a communication sent from a first user to one or more second users;
searching among a plurality of communication threads for a specific communication thread associated with both the first user and the second users, each communication thread comprising one or more communications exchanged between two or more users; and
if the specific communication thread associated with both the first user and the second users is located, then:
adding the communication to the specific communication thread; and
for each second user,
selecting a communication protocol based on a message-delivery policy of the second user; and
sending the communication to the second user using the communication protocol selected for the second user.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
if no communication thread associated with both the first user and the second users is located, then:
creating a new communication thread associated with both the first user and the second users;
adding the communication to the new communication thread; and
for each second user,
selecting a communication protocol based on a message-delivery policy of the second user; and
sending the communication to the second user using the communication protocol selected for the second user.

### Claim 21 (depends on 19)

The method of claim 19, further comprising:
selecting a plurality of data from the specific communication thread; and
sending the data to a computing device associated with the first user.

### Claim 22 (depends on 21)

The method of claim 21, wherein selecting the data from the specific communication thread comprises:
accessing local data, the local data being associated with the communication stored by the computing device associated with the first user;
accessing thread data, the thread data being associated with the specific communication thread;
comparing the thread data with the local data; and
selecting a plurality of data that is a subset of the thread data but not a subset of the local data.

### Claim 23 (depends on 19)

The method of claim 19, wherein the second users are users of a social-networking system, and the method further comprising:
for each second user,
accessing user-profile data associated with the second user stored by the social-networking system;
selecting a communication-destination identifier associated with the user-profile data and the communication protocol selected for the second user; and
sending the communication to the communication-destination identifier using the communication protocol selected for the second user.

### Claim 24 (depends on 23)

The method of claim 23, wherein the communication-destination identifier comprises:
an electronic mail (email) address;
a telephone number;
an instant messaging (IM) user identifier; or
a social-networking system user identifier.

### Claim 25 (depends on 19)

The method of claim 19, wherein the communication protocol comprises:
the Short Message Service (SMS) protocol;
the Multimedia Messaging Service (MMS) protocol;
an electronic mail (email) protocol; or an Instant Messaging (IM) protocol.

### Claim 26 (depends on 19)

The method of claim 19, wherein the message-delivery policy is pre-determined by input from each of one or more of the second users.

### Claim 27

One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
access a communication sent from a first user to one or more second users;
search among a plurality of communication threads for a specific communication thread associated with both the first user and the second users, each communication thread comprising one or more communications exchanged between two or more users; and
if the specific communication thread associated with both the first user and the second users is located, then:
add the communication to the specific communication thread; and
for each second user,
select a communication protocol based on a message-delivery policy of the second user; and
send the communication to the second user using the communication protocol selected for the second user.

### Claim 28 (depends on 27)

The media of claim 27, wherein the software is further operable when executed to create new communication threads, comprising:
if no communication thread associated with both the first user and the second users is located, then:
create a new communication thread associated with both the first user and the second users;
add the communication to the new communication thread; and
for each second user,
select a communication protocol based on a message-delivery policy of the second user; and
send the communication to the second user using the communication protocol selected for the second user.

### Claim 29 (depends on 27)

The media of claim 27, wherein the software is further operable when executed to:
select a plurality of data from the specific communication thread; and
send the data to a computing device associated with the first user.

### Claim 30 (depends on 27)

The media of claim 27, wherein the software is further operable when executed to:
access local data, the local data being associated with the communication stored by the computing device associated with the first user;
access thread data, the thread data being associated with the specific communication thread;
compare the thread data with the local data; and
select a plurality of data that is a subset of the thread data but not a subset of the local data.

### Claim 31 (depends on 27)

The media of claim 27, wherein the second users are users of a social-networking system, and the software is further operable when executed to:
for each second user,
access user-profile data associated with the second user stored by the social-networking system;
select a communication-destination identifier associated with the user-profile data and the communication protocol selected for the second user; and
send the communication to the communication-destination identifier using the communication protocol selected for the second user.

### Claim 32 (depends on 27)

The media of claim 27, wherein the message-delivery policy is pre-determined by input from each of one or more of the second users.

### Claim 33

A system comprising:
one or more processors; and
a memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:
access a communication sent from a first user to one or more second users;
search among a plurality of communication threads for a specific communication thread associated with both the first user and the second users, each communication thread comprising one or more communications exchanged between two or more users; and
if the specific communication thread associated with both the first user and the second users is located, then:
add the communication to the specific communication thread; and
for each second user,
select a communication protocol based on a message-delivery policy of the second user; and
send the communication to the second user using the communication protocol selected for the second user.

### Claim 34 (depends on 33)

The system of claim 33, wherein the processors are further operable when executing the instructions to create new communication threads, comprising:
if no communication thread associated with both the first user and the second users is located, then:
create a new communication thread associated with both the first user and the second users;
add the communication to the new communication thread; and
for each second user,
select a communication protocol based on a message-delivery policy of the second user; and
send the communication to the second user using the communication protocol selected for the second user.

### Claim 35 (depends on 33)

The system of claim 33, wherein the processors are further operable when executing the instructions to:
select a plurality of data from the specific communication thread; and
send the data to a computing device associated with the first user.

### Claim 36 (depends on 33)

The system of claim 33, wherein the processors are further operable when executing the instructions to:
access local data, the local data being associated with the communication stored by the computing device associated with the first user;
access thread data, the thread data being associated with the specific communication thread;
compare the thread data with the local data; and
select a plurality of data that is a subset of the thread data but not a subset of the local data.

### Claim 37 (depends on 33)

The system of claim 33, wherein the second users are users of a social-networking system, and the processors are further operable when executing the instructions to:
for each second user,
access user-profile data associated with the second user stored by the social-networking system;
select a communication-destination identifier associated with the user-profile data and the communication protocol selected for the second user; and
send the communication to the communication-destination identifier using the communication protocol selected for the second user.

### Claim 38 (depends on 33)

The system of claim 33, wherein the message-delivery policy is pre-determined by input from each of one or more of the second users.
