# US 2016/0110405 A1 · Systems and methods for updating native contact information

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

- Number: US 2016/0110405 A1
- Document ID: US20160110405A1
- Status: Published application
- Kind: A1
- Application number: 14/927,294
- Filed: 2015-10-29
- Published: 2016-04-21
- Earliest claimed: 2014-10-17
- Assignees: ConnectID Limited
- Applicants: ConnectID Limited
- Inventors: Anastasios Papantoniou
- Web page: https://patentgrep.com/patent/US20160110405A1

## CPC

- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/275: {Synchronous replication}
- G06F 16/289: {Object oriented databases}
- G06F 16/951: Indexing; Web crawling techniques
- 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)

## Abstract

Systems and methods for automatically updating contact information in a native contacts application of a device are provided. A contact synchronization engine executing on one or more processors can store a first plurality of contacts received from a first agent running on a first device, store a second plurality of contacts received from a second agent on a second device, receive a change to one or more contact fields of a contact of a user of the second device, determine that the contact of the user of the second device is in the first export, and transmit, responsive to the determination, the change to the first agent.

## Claims

### Claim 1

A method for automatically updating a contact stored in a native contact application of a device, the method comprising:
storing, in a database of the server, a first export of a first plurality of contacts received from a first agent executed on a first device;
storing, in the database, a second export of a second plurality of contacts received from a second agent executed on a second device;
receiving, by the server from the second agent, a change to one or more contact fields of a contact of a user of the second device;
determining, by the server, that the contact of the user of the second device is in the first export; and
transmitting, by the server, responsive to the determination, the change to the first agent.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining, by the server, that the contact of the user of the second device is in each of a plurality of exports received from a plurality of agents; and
transmitting, by the server, the change to each agent.

### Claim 3 (depends on 1)

The method of claim 1, comprising:
receiving, by the server from a third agent executed on a third device, a change to the one or more contact fields of the contact of the user of the second device; and
transmitting, by the server, the change to the first agent.

### Claim 4 (depends on 1)

The method of claim 1, comprising:
receiving, by the server from a third agent executed on a third device, a change to a first contact field of the one or more contact fields of the contact of the user of the second device;
receiving, by the server from a fourth agent executed on a fourth device, a change to a second contact field of the one or more contact fields of the contact of the user of the second device;
determining, by the server, that the contact of the user of the second device is in the first export; and
transmitting, by the server to the first agent, responsive to the determination, the change in the first contact field and the change in the second contact field.

### Claim 5 (depends on 1)

The method of claim 1, comprising:
receiving, by the server from the first agent, an instruction to a third agent that subsequent communications directed to a first communication address are to be directed to a second communication address different from the first communication address; and
transmitting, from the server to the third agent, the instruction.

### Claim 6 (depends on 1)

The method of claim 1, comprising:
identifying, by the server, a third agent on a third device;
receiving, by the server, a third export of a third plurality of contacts received from the third agent;
identifying, by the server, a fourth agent on a fourth device, the third device and the fourth device belonging to the same user;
determining, by the server, that the contact of the user of the second device is in the third export; and
transmitting, by the server, responsive to the determination, the change to the third agent and the fourth agent.

### Claim 7 (depends on 1)

The method of claim 1, comprising:
receiving, at the server, an invitation from the first agent to connect with a second contact of the plurality of contacts;
transmitting, from the server, the invitation to a third agent on a third device, the third device associated with the second contact;
receiving, at the server, an acceptance of the invitation from the third agent;
transmitting, from the server to the first agent, a first pointer linking to the second contact in the database; and
transmitting, from the server to the third agent, a second pointer linking to a home contact in the database, the home contact associated with the first device.

### Claim 8 (depends on 7)

The method of claim 7, comprising:
receiving, at the server, an update to one or more fields of the second contact; and
transmitting, from the server to the first agent, the update.

### Claim 9

A system comprising:
one or more processors; and
a contact synchronization engine configured to execute on the one or more processors and to:
store, in a database of a server, a first export of a first plurality of contacts received by the contact synchronization engine from a first agent executed on a first device;
store, in the database, a second export of a second plurality of contacts received by the contact synchronization engine from a second agent executed on a second device;
receive, from the second agent, a change to one or more contact fields of a contact of a user of the second device;
determine that the contact of the user of the second device is in the first export; and
transmit, responsive to the determination, the change to the first agent.

### Claim 10 (depends on 9)

The system of claim 9, the contact synchronization further configured to:
determine that the contact is in each of a plurality of exports received from a plurality of agents; and
transmit the change to each agent.

### Claim 11 (depends on 9)

The system of claim 9, the contact synchronization further configured to:
receive, from a third agent executed on a third device, a change to the one or more contact fields of the contact of the user of the second device; and
transmit the change to the first agent.

### Claim 12 (depends on 9)

The system of claim 9, the contact synchronization further configured to:
receive, from a third agent executed on a third device, a change to a first contact field of the one or more contact fields of the contact of the user of the second device;
receive, from a fourth agent executed on a fourth device, a change to a second contact field of the one or more contact fields of the contact of the user of the second device;
determine that the contact of the user of the second device is in the first export; and
transmit, to the first agent, responsive to the determination, the change in the first contact field and the change in the second contact field.

### Claim 13 (depends on 9)

The system of claim 9, the contact synchronization further configured to:
receive, from the first agent, an instruction to a third agent that subsequent communications directed to a first communication address are to be directed to a second communication address different from the first communication address; and
transmit, to the third agent, the instruction.

### Claim 14 (depends on 9)

The system of claim 9, the contact synchronization further configured to:
identify a third agent on a third device;
receiving a third export of a third plurality of contacts received from the third agent;
identify a fourth agent on a fourth device, the third device and the fourth device belonging to the same user;
determine that the contact of the user of the second device is in the third export; and
transmit, responsive to the determination, the change to the third agent and the fourth agent.

### Claim 15 (depends on 9)

The system of claim 9, the contact synchronization further configured to:
receive an invitation from the first agent to connect with a second contact of the plurality of contacts;
transmit the invitation to a third agent on a third device, the third device associated with the second contact;
receive an acceptance of the invitation from the third agent;
transmit, to the first agent, a first pointer linking to the second contact in the database; and
transmit, to the third agent, a second pointer linking to a home contact in the database, the home contact associated with the first device.

### Claim 16 (depends on 15)

The system of claim 15, the contact synchronization further configured to:
receive an update to one or more fields of the second contact; and
transmit the update to the first agent.

### Claim 17

A method for automatically managing updates to a contact stored in a native contact application of a device, the method comprising:
identifying, by a first agent executed on a first device, a plurality of contacts of a user of the first device stored in a native contact application of the first device, each of the plurality of contacts comprising contact information for a different third person;
transmitting, by the first agent via a network to a server, an export of the plurality of contacts;
receiving, by the first agent from the server, a change in one or more contact fields of a contact of the plurality of contacts received by the server from a second agent executed on a second device of a user of the second device; and
storing, by the first agent, responsive to a confirmation of the user of the first device, the change in the one or more contact fields to the native contact application.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
transmitting, by the agent to the server, in response to a communication from a user of a third device directed to a first communication address of the contact of the user of the first device, an instruction to direct subsequent communications from the user of the third device to a second communication address different from the first communication address.

### Claim 19 (depends on 17)

The method of claim 17, further comprising:
transmitting, by the first agent to the server, an invitation to connect via the server with a contact of a user of a third device, the contact of the user of the third device present in the plurality of contacts;
receiving, by the agent via the server, an acceptance of the invitation from a third agent on the third device; and
receiving, by the first agent, a pointer from the server, the pointer linking to the contact of the user of the third device stored in a database of the server.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
receiving, by the first agent, an update to one or more fields of the contact of the user of the third device; and
updating, by the first agent, the one or more fields of the contact of the user of the third device in an instance of the contact of the user of the third device stored in the native contact application of the first device.

### Claim 21 (depends on 17)

The method of claim 17, further comprising:
identifying, by the first agent, a second change in a contact field of a contact of the user of the first device; and
transmitting, by the first agent, the second change to the server to distribute to a plurality of agents executed on a plurality of devices having the contact of the user of the first device stored in a respective native contact application.

### Claim 22

A device comprising:
one or more processors; and
an agent configured to execute on the one or more processors and to:
identify a plurality of contacts of a user of the device stored in a native contact application of the device, each of the plurality of contacts comprising contact information for a different third person;
transmit, to a server, an export of the plurality of contacts;
receive, from the server, a change in one or more contact fields of a contact of the plurality of contacts received by the server from a second agent executed on a second device; and
store, responsive to a confirmation of the user of the device, the change in the one or more contact fields to the native contact application.

### Claim 23 (depends on 22)

The communication device of claim 22, the agent further configured to:
transmit, by the agent to the server, in response to a communication from a user of a third device directed to a first communication address of the contact of the user of the device, an instruction to direct subsequent communications from the user of the third device to a second communication address different from the first communication address.

### Claim 24 (depends on 22)

The communication device of claim 22, the agent further configured to:
transmit, by the agent to the server, an invitation to connect via the server with a contact of a user of a third device, the contact of the user of the third device present in the plurality of contacts;
receive, by the agent via the server, an acceptance of the invitation from a third agent on the third device; and
receive, by the agent, a pointer from the server, the pointer linking to the contact of the user of the third device stored in a database of the server.

### Claim 25 (depends on 24)

The communication device of claim 24, the agent further configured to:
receive, by the agent, an update to one or more fields of the contact of the user of the third device; and
update, by the agent, the one or more fields of the contact of the user of the third device in an instance of the contact of the user of the third device stored in the native contact application of the device.

### Claim 26 (depends on 22)

The communication device of claim 22, the agent further configured to:
identify, by the first agent, a second change in a contact field of a contact of the first user of the first device; and
transmit, by the first agent, the second change to the server to distribute to a plurality of agents executed on a plurality of devices having the contact of the user of the device stored in a respective native contact application.
