# US 11,310,314 B1 · Automatic data synchronization across applications installed on multiple devices via mail server

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

- Number: US 11,310,314 B1
- Document ID: US11310314B1
- Status: Granted
- Kind: B1
- Application number: 16/049,763
- Filed: 2018-07-30
- Granted: 2022-04-19
- Earliest claimed: 2017-07-28
- Assignees: Zero Cognitive Systems, Inc.
- Applicants: Zero Cognitive Systems, Inc.
- Inventors: Gevorg Karapetyan
- Web page: https://patentgrep.com/patent/US11310314B1

## CPC

- H04L 51/216: Handling conversation history, e.g. grouping of messages in sessions or threads
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- H04L 63/02: {for separating internal from external traffic, e.g. firewalls}
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 69/22: Parsing or analysis of headers
- H04L 51/08: Annexed information, e.g. attachments
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- 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

A method and system for synchronization data across applications installed on mobile and desktop devices and remote server uses a mail server. The data to be sent to applications is included in electronic message body or attachment and sent to a predefined email account. The email account is processed via listener applications according to a processing rule such as sender's email address, sender's domain, header information, or metadata. When an email matches the rule, an action is triggered that acquires data from attachment of email or body and updates local storage.

## Claims

### Claim 1

A method comprises synchronizing data across applications installed on mobile and desktop devices and remote server via an mail server wherein
data to be sent to applications is included in an electronic message body or attachment and sent to a predefined email account;
the predefined email account is being processed via listener applications according to a processing rule based on sender's email address, sender's domain, header information, metadata;
when an electronic email matches the rule an action is triggered that acquires data from an attachment of the email or body of the email and updates a local storage;
after the local storage has been updated, adding the email to a queue of M emails that triggered an action, wherein M is a predefined value greater than 1; and
deleting an email from the queue of electronic emails when a total number of emails in the queue exceeds M, wherein the email deleted is an oldest email added to the queue.

### Claim 2

A method comprising:
providing a first device comprising a first application instance and a first data storage;
providing a second device comprising a second application instance and a second data storage;
providing a mail server, coupled to the first and second devices via a network;
making a first data change by a first user at the first device in the first application instance;
including information about the first data change to a first email and sending the first email with the first data change addressed to a predefined email address to the mail server;
at the second device, receiving the first email for the predefined email address with the first data change;
making a determination whether to apply the first data change to the second application instance on the second device; and
if the determination is true, altering the second application instance using the first data change, wherein the making a determination whether to apply the first data change to the second application instance on the second device comprises
determining a data type of the first data change as being an updatable type or replaceable type, wherein when the data type is the updatable type, the altering the second application instance using the first data change comprises
updating the second application instance using the first data change.

### Claim 3 (depends on 2)

The method of claim 2 comprising:
if the determination is false, not altering the second application instance using the first data change.

### Claim 4 (depends on 2)

The method of claim 2 wherein when the data type is the replaceable type, the altering the second application instance using the first data change comprises
replacing data of the second application instance using the first data change.

### Claim 5 (depends on 2)

The method of claim 2 comprising:
after the receiving the first email for the predefined email address with the first data change at the second device, checking if the second data storage is empty, and when empty, storing the first data change in the second data storage.

### Claim 6 (depends on 2)

The method of claim 2 comprising:
after the receiving the first email for the predefined email address with the first data change at the second device, checking if the second data storage is empty, and when not empty, determining whether a date of the first data change is newer than a data change already stored in the second data storage, wherein
when the first data change is newer, replacing the data change already stored in the second data storage with the first data change, and
when the first data change is not newer, not replacing the data change already stored in the second data storage with the first data change.

### Claim 7 (depends on 2)

The method of claim 2 comprising:
after the receiving the first email for the predefined email address with the first data change at the second device, checking if the second data storage is empty, and when not empty, determining whether a date of the first data change is newer than a data change already stored in the second data storage, wherein
when the first data change is newer by a predefined threshold, replacing the data change already stored in the second data storage with the first data change, and
when the first data change is not newer by the by a predefined threshold, not replacing the data change already stored in the second data storage with the first data change.

### Claim 8 (depends on 2)

The method of claim 2 wherein the making a determination whether to apply the first data change to the second application instance on the second device comprises:
comparing a date of a second data change already stored in the second data storage to a date of the first data change received at the mail server, wherein
when the date of the first data change is newer than the second data change already stored in the second data storage, replacing the data change already stored in the second data storage with the first data change downloaded from the mail server.

### Claim 9 (depends on 8)

The method of claim 8 wherein when the date of the second data change already stored in the second data storage is newer than the first data change, sending the second data change to the mail server via a second email from the second device to the predefined email address.

### Claim 10 (depends on 2)

The method of claim 2 wherein an attachment to the first email comprises the first data change.

### Claim 11 (depends on 2)

The method of claim 2 wherein a body portion of the first email comprises the first data change.

### Claim 12 (depends on 2)

The method of claim 2 wherein a subject line portion of the first email comprises the first data change.

### Claim 13 (depends on 2)

The method of claim 2 comprising:
automatically updating the first data storage at the first device with a current state of the first application instance according to a predefined schedule;
sending the current state stored in the first data storage by a second email for the predefined email address to the mail server;
receiving the second email at the second device with the current state; and
altering the second application instance based on the current state received via the second email.

### Claim 14 (depends on 2)

The method of claim 2 comprising:
determining if a number of emails stored at the mail server for the predefined email address with change information is greater than a predefined maximum number of emails; and
if the number of emails exceeds the predefined maximum number of emails, deleting emails with change information stored at the mail server for the predefined email address, wherein the oldest emails are deleted first.

### Claim 15 (depends on 2)

The method of claim 2 wherein the first and second application instances are time-tracking applications.

### Claim 16 (depends on 2)

The method of claim 2 wherein the first device is a mobile device and the second device is a desktop computer.

### Claim 17 (depends on 2)

The method of claim 2 wherein the first device uses a first operating system and the second device uses a second operating system, different from the first operating system.

### Claim 18 (depends on 2)

The method of claim 2 wherein a first plugin to the first application instance handles the including information about the first data change to a first email and sending the first email with the first data change addressed to a predefined email address to the mail server.

### Claim 19 (depends on 18)

The method of claim 18 wherein a second plugin to the second application instance handles the
at the second device, receiving the first email for the predefined email address with the first data change,
making a determination whether to apply the first data change to the second application instance on the second device, and
if the determination is true, altering the second application instance using the first data change.

### Claim 20

A method comprising:
providing a first device comprising a first application instance and a first data storage;
providing a second device comprising a second application instance and a second data storage;
providing a mail server, coupled to the first and second devices via a network;
making a first data change by a first user at the first device in the first application instance;
including information about the first data change to a first email and sending the first email with the first data change addressed to a predefined email address to the mail server;
at the second device, receiving the first email for the predefined email address with the first data change;
making a determination whether to apply the first data change to the second application instance on the second device;
if the determination is true, altering the second application instance using the first data change;
if the determination is false, not altering the second application instance using the first data change,
wherein the making a determination whether to apply the first data change to the second application instance on the second device comprises
determining a data type of the first data change as being an updatable type or replaceable type, wherein when the data type is the updatable type, the altering the second application instance using the first data change comprises updating the second application instance using the first data change,
when the data type is the replaceable type, the altering the second application instance using the first data change comprises replacing data of the second application instance using the first data change,
comparing a date of a second data change already stored in the second data storage to a date of the first data change received at the mail server, wherein
when the date of the first data change is newer than the second data change already stored in the second data storage, replacing the data change already stored in the second data storage with the first data change downloaded from the mail server,
when the date of the second data change already stored in the second data storage is newer than the first data change, sending the second data change to the mail server via a second email from the second device to the predefined email address;
after the receiving the first email for the predefined email address with the first data change at the second device, checking if the second data storage is empty, and when not empty, determining whether a date of the first data change is newer than a data change already stored in the second data storage, wherein
when the first data change is newer, replacing the data change already stored in the second data storage with the first data change, and
when the first data change is not newer, not replacing the data change already stored in the second data storage with the first data change;
automatically updating the first data storage at the first device with a current state of the first application instance according to a predefined schedule;
sending the current state stored in the first data storage by a second email for the predefined email address to the mail server;
receiving the second email at the second device with the current state; and
altering the second application instance based on the current state received via the second email;
maintaining a queue of emails at the mail server for the predefined email address with change information is greater than a predefined maximum number of emails; and
if a number of emails in the queue exceeds the predefined maximum number of emails, deleting emails with change information stored at the mail server for the predefined email address, wherein the oldest emails are deleted first.
