IP Library Granted Patent US 11,750,574
Granted Patent B1
US 11,750,574 · App. 17/092,519 · Granted Sep 5, 2023

End-to-end encrypted interactive messaging using message templates

Inventors: Aman Jain (San Francisco, CA); Sanat Sourav Rath (San Francisco, CA); Anand Prasad (Fremont, CA)
Assignee: WhatsApp LLC
H04L63/0428H04L63/0421H04W4/14H04W12/02H04W12/033
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,750,574
App. No.
17/092,519
Granted
Sep 5, 2023
Kind
B1
Abstract

Exemplary embodiments relate to techniques for end-to-end encrypted interactive messaging between users of a communication system. For example, the interactive messaging may be based on a message template. An end-to-end encrypted message may be sent to a recipient. The encrypted message may contain at least a template identifier associated with the message template and one or more dynamic parameters. The receiving device may decrypt the message and hydrate the message template with the one or more dynamic parameters.

Claims (52)

1. A computer-implemented method comprising:

determining whether a pack is available by checking local memory or cache to determine if the pack has been downloaded or retrieved from one or more remote computing devices, the pack including at least a plurality of approved message templates and corresponding message template identifiers;

in response to the pack not being in the local memory or the cache, calling the one or more remote computing devices to retrieve the pack;

obtaining a message template identifier and a message template associated with the message template identifier in the pack, the message template containing static and dynamic portions;

validating that the dynamic portions of the message template match or correspond to one or more dynamic parameters to be sent to a client device;

encrypting at least the one or more dynamic parameters and the message template identifier as an encrypted message; and

sending the encrypted message to the client device.

2. The method of claim 1 , wherein the encrypted message is sent end-to-end encrypted to the client device.

3. The method of claim 1 , further comprising:

performing an application programming interface (API) call to a client application, the API call indicating intent to send the message template identifier and the one or more dynamic parameters to the client device.

4. The method of claim 1 , wherein the message template comprises:

a header, a footer, message content, media, and/or one or more action elements, and

wherein the one or more action elements comprises a call button, a visit website button, and/or a quick reply button.

5. The method of claim 1 , wherein the one or more dynamic parameters comprises recipient-specific information,

wherein the encrypted message content is decrypted at the client device and the dynamic portions of the message template are filled in with the recipient-specific information derived from the decrypted message, and

wherein the client device renders and displays the message template as an interactive message.

6. The method of claim 5 , wherein the recipient-specific information is sensitive or private information comprising: (i) a legal name of a user associated with a second client device, (ii) an address of the user, (iii) medical information associated with the user, and/or (iv) any personally identifiable information associated with the user.

7. At least one non-transitory computer-readable storage medium comprising instructions that, when executed, cause at least one processor to:

determine whether a pack is available by checking local memory or cache to determine if the pack has been downloaded or retrieved from one or more remote computing devices, the pack including at least a plurality of approved message templates and corresponding message template identifiers;

in response to the pack not being in the local memory or the cache, call the one or more remote computing devices to retrieve the pack;

obtain a message template identifier and a message template associated with the message template identifier in the pack, the message template containing static and dynamic portions;

validate that the dynamic portions of the message template match or correspond to one or more dynamic parameters to be sent to a client device;

encrypt at least the one or more dynamic parameters and the message template identifier as an encrypted message; and

send the encrypted message to the client device.

8. The medium of claim 7 , wherein the encrypted message is sent end-to-end encrypted to the client device.

9. The medium of claim 7 , wherein the instructions further cause the at least one processor to:

perform an application programming interface (API) call to a client application, the API call indicating intent to send the message template identifier and the one or more dynamic parameters to the client device.

10. The medium of claim 7 , wherein the message template comprises:

a header, a footer, message content, media, and/or one or more action elements, and

wherein the one or more action elements comprises a call button, a visit website button, and/or a quick reply button.

11. The medium of claim 7 , wherein the one or more dynamic parameters comprises recipient-specific information,

wherein the encrypted message content is decrypted at the client device and the dynamic portions of the message template are filled in with the recipient-specific information derived from the decrypted message, and

wherein the client device renders and displays the message template as an interactive message.

12. The medium of claim 11 , wherein the recipient-specific information is sensitive or private information comprising: (i) a legal name of a user associated with a second client device, (ii) an address of the user, (iii) medical information associated with the user, and/or (iv) any personally identifiable information associated with the user.

13. An apparatus comprising:

memory; and

at least one processor operable to execute stored instructions that, when executed, causes the at least one processor to:

determine whether a pack is available by checking local memory or cache to determine if the pack has been downloaded or retrieved from one or more remote computing devices, the pack including at least a plurality of approved message templates and corresponding message template identifiers;

in response to the pack not being in the local memory or the cache, call the one or more remote computing devices to retrieve the pack;

obtain a message template identifier and a message template associated with the message template identifier in the pack, the message template containing static and dynamic portions;

validate that the dynamic portions of the message template match or correspond to one or more dynamic parameters to be sent to a client device;

encrypt at least the one or more dynamic parameters and the message template identifier as an encrypted message; and

send the encrypted message to the client device.

14. The apparatus of claim 13 , wherein the encrypted message is sent end-to-end encrypted to the client device.

15. The apparatus of claim 13 , wherein the at least one processor is further caused to:

perform an application programming interface (API) call to a client application, the API call indicating intent to send the message template identifier and the one or more dynamic parameters to the client device.

16. The apparatus of claim 13 , wherein the message template comprises:

a header, a footer, message content, media, and/or one or more action elements, and

wherein the one or more action elements comprises a call button, a visit website button, and/or a quick reply button.

17. The apparatus of claim 13 , wherein the one or more dynamic parameters comprises recipient-specific information,

wherein the encrypted message content is decrypted at the client device and the dynamic portions of the message template are filled in with the recipient-specific information derived from the decrypted message, and

wherein the client device renders and displays the message template as an interactive message.

Assignments (2)
CHANGE OF NAME Recorded Jun 22, 2021
From: WHATSAPP INC.
To: WHATSAPP LLC
Reel/Frame 056646/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2021
From: JAIN, AMAN; RATH, SANAT SOURAV; PRASAD, ANAND
To: WHATSAPP INC.
Reel/Frame 055334/0113 →