IP Library Granted Patent US 12,231,517
Granted Patent B2
US 12,231,517 · App. 18/099,879 · Granted Feb 18, 2025

Group-based communication apparatus, method, and computer program product configured to manage draft messages in a group-based communication system

Inventors: Madeline Shortt (San Francisco, CA); Ryan Greenberg (Montclair, NJ)
Assignee: Salesforce, Inc.
H04L67/5683H04L12/1813H04L51/04H04L51/216
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 12,231,517
App. No.
18/099,879
Granted
Feb 18, 2025
Kind
B2
Abstract

Various embodiments are directed to an improved group-based communication apparatus that is configured to efficiently manage draft messaging communications in a group-based communication system. The group-based communication apparatus is configured to synchronize draft messaging communications, including creating, updating, deleting, and posting of such draft messaging communications, across multiple client devices and with a group-based communication repository. Utilizing draft message metadata associated with the draft messaging communications, the group-based communication apparatus is also configured to implement validation rules and conflict resolution procedures associated with draft messaging communications. Additionally, the group-based communication apparatus is configured to render a draft list icon or other visual indicia to a group-based communication interface to inform a user that there is a draft messaging communication associated with one or more of the group-based communication channels.

Claims (67)

1. An apparatus comprising:

a processor; and

at least one non-transitory computer-readable media storing instructions that, when executed by the processor, cause the apparatus to:

receive, by one or more servers of a communication platform at a first application programming interface (API) and via a first user interface of a first client associated with a user identifier and a group identifier, a create draft message request associated with a first draft messaging communication, wherein the first draft messaging communication comprises a draft identifier and a first version identifier, wherein the first API is configured to receive requests to at least one of create, update, delete, or sync draft messaging communications, and a second API is configured to receive requests to post messaging communications;

cause, by the one or more servers, the first draft messaging communication to be stored in a communication repository associated with the communication platform;

propagate, by the one or more servers, the first draft messaging communication to at least a second client associated with the user identifier and the group identifier;

responsive at least in part to propagating the first draft messaging communication, cause to be presented, by the one or more servers via a second user interface of the second client, an indication of creation of a new draft messaging communication;

receive, from the second client via the first API, a delete draft request associated with the draft identifier;

conduct a query of the communication repository for all draft messaging communications associated with the draft identifier;

delete all draft messaging communications associated with the draft identifier; and

propagate a delete draft message event associated with the draft identifier to all clients associated with the user identifier and the group identifier.

2. The apparatus of claim 1 , wherein the delete draft request is received via the second user interface or via a third user interface of the second client.

3. The apparatus of claim 1 , wherein the draft identifier comprises a first draft identifier, the instructions further causing the apparatus to:

receive, from the second client, an update draft message request associated with a second draft messaging communication, wherein the second draft messaging communication comprises the user identifier, a second draft identifier, and a second version identifier;

determine that the second draft messaging communication satisfies a draft message validation rule, wherein determining that the second draft messaging communication satisfies the draft message validation rule comprises determining that the first draft identifier is a same draft identifier as the second draft identifier and that the first version identifier is a same version identifier as the second version identifier;

based at least in part on determining that the second draft messaging communication satisfies the draft message validation rule, propagate the second draft messaging communication to all clients associated with the user identifier and the group identifier; and

cause storage of the second draft messaging communication in the communication repository.

4. The apparatus of claim 3 ,

wherein the first draft messaging communication comprises first message metadata that is stored in association with the first draft messaging communication in the communication repository, the first message metadata including the first draft identifier and the first version identifier,

wherein the second draft messaging communication comprises second message metadata that is stored in association with the second draft messaging communication in the communication repository, the second message metadata including the second draft identifier and the second version identifier, and

wherein the second draft messaging communication fails to satisfy the draft message validation rule based at least in part on a determination that the first draft identifier is a same draft identifier as the second draft identifier and that the first version identifier is different from the second version identifier.

5. The apparatus of claim 1 , wherein the create draft message request is received from the first client via a web-based application.

6. The apparatus of claim 1 , wherein the create draft message request is received from the first client via an application executing on the first client.

7. The apparatus of claim 1 , wherein the create draft message request is received via a draft message application programming interface.

8. The apparatus of claim 1 , the instructions further causing the apparatus to propagate the first draft messaging communication to all clients associated with the user identifier and the group identifier.

9. The apparatus of claim 1 , the instructions further causing the apparatus to propagate the first draft messaging communication to all clients associated with the user identifier and the group identifier.

10. A method comprising:

receiving, by one or more servers of a communication platform at a first application programming interface (API), and via a first user interface of a first client associated with a user identifier and a group identifier, a create draft message request associated with a first draft messaging communication, wherein the first draft messaging communication comprises a draft identifier and a first version identifier, wherein the first API is configured to receive requests to at least one of create, update, delete, or sync draft messaging communications, and a second API is configured to receive requests to post messaging communications;

causing, by the one or more servers, the first draft messaging communication to be stored in a communication repository associated with the communication platform;

propagating, by the one or more servers, the first draft messaging communication to at least a second client associated with the user identifier and the group identifier;

responsive at least in part to propagating the first draft messaging communication, causing presentation of, by the one or more servers via a second user interface of the second client, an indication of creation of a new draft messaging communication;

receiving, from the second client via the first API, a delete draft request associated with the draft identifier;

conducting a query of the communication repository for all draft messaging communications associated with the draft identifier;

deleting all draft messaging communications associated with the draft identifier; and

propagating a delete draft message event associated with the draft identifier to all clients associated with the user identifier and the group identifier.

11. The method of claim 10 , wherein causing the first draft messaging communication to be presented via the second user interface of the second client is responsive at least in part to input to the second user interface to a third user interface of the second client.

12. The method of claim 10 , wherein the draft identifier comprises a first draft identifier, and the method further comprising:

receiving, from the second client, an update draft message request associated with a second draft messaging communication, wherein the second draft messaging communication comprises the user identifier, a second draft identifier, and a second version identifier;

determining that the second draft messaging communication satisfies a draft message validation rule wherein determining that the second draft messaging communication satisfies the draft message validation rule comprises determining that the first draft identifier is a same draft identifier as the second draft identifier and that the first version identifier is a same version identifier as the second version identifier;

based at least in part on determining that the second draft messaging communication satisfies the draft message validation rule, propagating the second draft messaging communication to all clients associated with the user identifier and the group identifier; and

causing storage of the second draft messaging communication in the communication repository.

13. The method of claim 12 ,

wherein the first draft messaging communication comprises first message metadata that is stored in association with the first draft messaging communication in the communication repository, the first message metadata including the first draft identifier and the first version identifier,

wherein the second draft messaging communication comprises second message metadata that is stored in association with the second draft messaging communication in the communication repository, the second message metadata including the second draft identifier and the second version identifier, and

wherein the second draft messaging communication fails to satisfy the draft message validation rule based at least on a determination that the first draft identifier is a same draft identifier as the second draft identifier and that the first version identifier is different from the second version identifier.

14. The method of claim 10 , wherein the create draft message request is received from the first client via a web-based application.

15. The method of claim 10 , wherein the create draft message request is received from the first client via an application executing on the first client.

16. One or more non-transitory computer-readable media storing instructions executable by one or more processors, wherein the instructions causing the one or more processors to:

receive, by one or more servers of a communication platform at a first application programming interface (API), and via a first user interface of a first client associated with a user identifier and a group identifier, a create draft message request associated with a first draft messaging communication, wherein the first draft messaging communication comprises a draft identifier and a first version identifier, wherein the first API is configured to receive requests to at least one of create, update, delete, or sync draft messaging communications, and a second APIis configured to receive requests to post messaging communications;

cause, by the one or more servers, the first draft messaging communication to be stored in a communication repository associated with the communication platform;

propagate, by the one or more servers, the first draft messaging communication to at least a second client associated with the user identifier and the group identifier;

responsive at least in part to propagating the first draft messaging communication, cause to be presented, by the one or more servers via a second user interface of the second client, an indication of creation of a new draft messaging communication;

receive, from the second client via the first API, a delete draft request associated with the draft identifier;

conduct a query of the communication repository for all draft messaging communications associated with the draft identifier;

delete all draft messaging communications returned by the query; and

propagate a delete draft message event associated with the draft identifier to all clients associated with the user identifier and the group identifier.

17. The one or more non-transitory computer-readable media of claim 16 , wherein causing the first draft messaging communication to be presented via the second user interface of the second client is responsive at least in part to input to the second user interface or to a third user interface of the second client.

18. The one or more non-transitory computer-readable media of claim 16 , wherein the draft identifier comprises a first draft identifier, the instructions further causing the one or more processors to:

receive, from the second client, an update draft message request associated with a second draft messaging communication, wherein the second draft messaging communication comprises the user identifier, a second draft identifier, and a second version identifier;

determine that the second draft messaging communication satisfies a draft message validation rule wherein determining that the second draft messaging communication satisfies the draft message validation rule comprises determining that the first draft identifier is a same as the second draft identifier and that the first version identifier is a same as the second version identifier;

based at least in part on determining that the second draft messaging communication satisfies the draft message validation rule, propagating the second draft messaging communication to all clients associated with the user identifier and the group identifier; and

causing storage of the second draft messaging communication in the communication repository.

19. The one or more non-transitory computer-readable media of claim 18 ,

wherein the first draft messaging communication comprises first message metadata that is stored in association with the first draft messaging communication in the communication repository, the first message metadata including the first draft identifier and the first version identifier,

wherein the second draft messaging communication comprises second message metadata that is stored in association with the second draft messaging communication in the communication repository, the second message metadata including the second draft identifier and the second version identifier, and

wherein the second draft messaging communication fails to satisfy the draft message validation rule based at least in part on a determination that the first draft identifier is a same as the second draft identifier and that the first version identifier is different from the second version identifier.

20. The one or more non-transitory computer-readable media of claim 16 , wherein the create draft message request is received from the first client via a web-based application.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2023
From: SHORTT, MADELINE; GREENBERG, RYAN
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 062444/0428 →
MERGER AND CHANGE OF NAME Recorded Jan 20, 2023
From: SLACK TECHNOLOGIES, INC.; SALESFORCE.COM, INC.
To: SALESFORCE.COM, INC.
Reel/Frame 062444/0441 →
CHANGE OF NAME Recorded Jan 20, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062449/0740 →
Continuity (3)
Continuation 17706405 · Mar 28, 2022
Continuation 16588646 · Sep 30, 2019
Related Publication 20230164240A1 · May 25, 2023
References Cited (68)
US 8319816B1 · Swanson · 2012 [cited by examiner]
US 8605132B1 · Swanson · 2013 [cited by examiner]
US 8897177B2 · Arora · 2014 [cited by examiner]
US 9380264B1 · Vakalapudi · 2016 [cited by examiner]
US 9426182B1 · Zeljko · 2016 [cited by examiner]
US 9467542B1 · Messenger · 2016 [cited by examiner]
US 9686323B1 · Helter · 2017 [cited by examiner]
US 10440327B1 · Bytyqi · 2019 [cited by examiner]
US 10572859B1 · Evans · 2020 [cited by examiner]
US 10652286B1 · George · 2020 [cited by examiner]
US 10742649B1 · Hook, Jr. · 2020 [cited by examiner]
US 11290560B2 · Shortt · 2022 [cited by examiner]
US 20020091991A1 · Castro · 2002 [cited by applicant]
US 20050193067A1 · Ferguson · 2005 [cited by examiner]
US 20100174816A1 · Piccinini · 2010 [cited by examiner]
US 20130162753A1 · Hendrickson · 2013 [cited by examiner]
US 20130254830A1 · Moganti · 2013 [cited by examiner]
US 20140139609A1 · Lu · 2014 [cited by examiner]
US 20140195626A1 · Ruff · 2014 [cited by examiner]
US 20140344420A1 · Rjeili · 2014 [cited by examiner]
US 20150230274A1 · Sharma · 2015 [cited by examiner]
US 20150271233A1 · Bouazizi · 2015 [cited by applicant]
US 20150381594A1 · Venkatesan · 2015 [cited by examiner]
US 20160050177A1 · Cue · 2016 [cited by examiner]
US 20160094562A1 · Li · 2016 [cited by examiner]
US 20160105859A1 · Zhu · 2016 [cited by applicant]
US 20160182412A1 · Kabbes · 2016 [cited by examiner]
US 20160275303A1 · Narayanaswamy et al. · 2016 [cited by applicant]
US 20160344679A1 · Lane et al. · 2016 [cited by applicant]
US 20170046134A1 · Straub · 2017 [cited by examiner]
US 20170171200A1 · Bao · 2017 [cited by examiner]
US 20180005500A1 · Robertson · 2018 [cited by examiner]
US 20180054720A1 · Messenger · 2018 [cited by examiner]
US 20180137470A1 · Donnelly · 2018 [cited by examiner]
US 20180212903A1 · Rose · 2018 [cited by examiner]
US 20180217848A1 · Garai · 2018 [cited by examiner]
US 20180247077A1 · Barrett-Bowen · 2018 [cited by examiner]
US 20180287982A1 · Draeger et al. · 2018 [cited by applicant]
US 20190068372A1 · Bhatnagar · 2019 [cited by examiner]
US 20190082143A1 · Ren · 2019 [cited by examiner]
US 20190139002A1 · Kumar · 2019 [cited by examiner]
US 20190200177A1 · Greene et al. · 2019 [cited by applicant]
US 20190244613A1 · Jonas · 2019 [cited by examiner]
US 20200008029A1 · Cao · 2020 [cited by examiner]
US 20200097334A1 · Oliveros et al. · 2020 [cited by applicant]
US 20210044634A1 · Hughes · 2021 [cited by examiner]
US 20210099539A1 · Shortt · 2021 [cited by examiner]
US 20210173493A1 · Barzilay · 2021 [cited by examiner]
US 20220286529A1 · Shortt et al. · 2022 [cited by applicant]
US 20230164240A1 · Shortt · 2023 [cited by examiner]
David Auberbach, “Re-Animator. How Stewart Butterfield created Flickr and Slack out of the ashes of failed projects” online retrieved May 9, 2019. Retrieved from the Internet: <URL: https://slate.com/business/2014/05/st… [cited by applicant]
Michael Carney, “Slack is thriving on a cocktail of whimsy and great timing”, Pandodaily, Lexisnexis, https://advance.lexis.com/api/permalink/dd2d4ee5-2ddf-4d3a-a1d9-3bcee5e38b74/?context=1000516, (dated Feb. 6, 2015, 2… [cited by applicant]
“Die, Email, Die! A Flickr Cofounder Aims To Cut US All Some Slack”, Readwriteweb, Lexisnexis, https://advance.lexis.com/api/permalink/33dd79e2-90f5-409d-ae27-5a2c7e86bf31/?context=1000516>. (dated Aug. 14, 2013, 4:15 P… [cited by applicant]
Robert Hof, “Stewart Butterfield On How Slack Became A $2.8 Billion Unicorn”, Forbes, [online][retrieved May 9, 2019]. Retrieved from the Internet: <URL: https://www.forbes.com/sites/roberthof/2015/06/02/stewart-butterf… [cited by applicant]
“How Slack changed the way we work by putting the customer experience first”, Repeat Customer Podcast, Episode 3, [online][retrieved May 9, 2019]. Retrieved from the Internet: <URL: https://www.zendesk.com/resources/sla… [cited by applicant]
Matthew Ingram, “Flickr co-founder launches Slack, an all-in-one messaging tool designed to kill email forever”, GIGAOM, Lexisnexis, https://advance.lexis.com/api/permalink/0b676b7c-aec3-4560-861e-d030d1dd008c/?context=… [cited by applicant]
Internet Relay Chat, Wikipedia, [online][retrieved May 30, 2019]. Retrieved from the Internet: <URL: https://en.wikipedia.org/wiki/Internet_Relay_Chat>. (dated May 28, 2019) 21 pages. [cited by applicant]
Mike Issac, “Slack, a Start-Up With an App to Foster Business Collaboration, Is Valued at $1.1 Billion”, The New York Times Blogs (BITS), Lexisnexis, https://advance.lexis.com/api/permalink/3eb84b34-a8f9-4d7d-9573-89d95… [cited by applicant]
Adrienne LaFrance, “The Triumph of Email”, Atlantic Online, Lexisnexis, https://advance.lexis.com/api/permalink/32d7ddd9-d4c1-4a73-86f7-08ab5842fde6/?context=1000516, (dated Jan. 6, 2016) 6 pages. [cited by applicant]
Matsumoto, T. et al., “Chocoa Communicator—A New Communication System Based on Awareness and Text Communications”, FUJITSU Sci. Tech. J., 36, 2, (Dec. 2000) pp. 154-161. [cited by applicant]
Office Action for U.S. Appl. No. 16/588,646, mailed on Feb. 19, 2021, Shorttt, “Group-Based Communication Apparatus, Method, And Computer Program Product Configured To Manage Draft Messages In A Group-Based Communicatio… [cited by applicant]
Office Action for U.S. Appl. No. 16/588,646, mailed on Oct. 2, 2020, Shortt, “Group-Based Communication Apparatus, Method, And Computer Program Product Configured To Manage Draft Messages In A Group-Based Communication … [cited by applicant]
Office Action for U.S. Appl. No. 16/588,646, mailed on Jul. 8, 2021, Shortt, “Group-Based Communication Apparatus, Method, And Computer Program Product Configured To Manage Draft Messages In A Group-Based Communication … [cited by applicant]
Oikarinen, J. & Reed, D., “Internet Relay Chat Protocol”, Request for Comments: 1459, Network Working Group, [online][retrieved May 30, 2019]. Retrieved from the Internet: <URL: https://www.rfc-editor.org/rfc/rfc1459.tx… [cited by applicant]
Ernie Smith, “Picking Up The Slack”, Tedium, [online][retrieved May 9, 2019]. Retrieved from the Internet: <URL: https://tedium.co/2017/10/17/irc-vs-slack-chat-history/> (dated Oct. 17, 2017) 8 pages. [cited by applicant]
The Big Pivot w/ Slack's Stewart Butterfield, Masters of Scale Podcast, Episode 13 (Aired Nov. 14, 2017), https://mastersofscale.com/#/stewart-butterfield-the-big-pivot/, (dated Jan. 17, 2018) 21 pages. [cited by applicant]
Jonathan Vanian, “Why these startups think chat apps are the next big thing in workplace collaboration”, GIGAOM, Lexisnexis, https://advance.lexis.com/api/permalink/e83778c8-09c8-43aa-9ba0-88526283de69/?context=1000516,… [cited by applicant]
Rebecca Walberg, “Email biggest office waste of time: survey”, National Post, At FP10, Lexisnexis, https://advance.lexis.com/api/permalink/96268e3f-26ad-48ac-a98f-6c39804ebded/?context=1000516, (dated Mar. 4, 2014) 3 pa… [cited by applicant]