IP Library Granted Patent US 12,288,190
Granted Patent B2
US 12,288,190 · App. 18/232,873 · Granted Apr 29, 2025

Method, apparatus, and computer program product for authorizing and authenticating user communication within an enterprise group-based communication platform

Inventors: Ilan Frank (Los Altos Hills, CA); Daniel Stewart Butterfield (Aspen, CO); Callum Henderson-Begg (San Francisco, CA); April Underwood (San Anselmo, CA); Leah Jones (San Francisco, CA); Myles Grant (San Francisco, CA); Todd Wirth (Concord, CA); Eric Vierhaus (Oakland, CA); Samantha Stoller (San Francisco, CA); Gregory Pelly (Oakland, CA); Yongxing Deng (San Francisco, CA); Matthew Mullen (Mill Valley, CA)
Assignee: Salesforce, Inc.
G06Q10/103H04L63/101H04L63/104H04W4/08H04W12/08H04W12/76
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,288,190
App. No.
18/232,873
Granted
Apr 29, 2025
Kind
B2
Abstract

The disclosure generally relates to an enterprise group-based communication system. Group-based communication channels may be created and access by client devices associated with users within the enterprise group-based communication system that have various identifiers associated therewith.

Claims (77)

1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method of authorizing a user of a group-based communication system, the method comprising:

receiving a request, from a first user associated with a first organization, to create a communication channel,

wherein the request comprises channel settings,

wherein the first organization is associated with enterprise settings;

authorizing the first user to create the communication channel based on the enterprise settings,

wherein the communication channel is a virtual communications environment configured to display messages between channel members;

based on a comparison of the channel settings and the enterprise settings, authorizing creation of the communication channel;

creating the communication channel according to the channel settings;

receiving a channel access request from a second user,

wherein the second user is associated with a second organization that is distinct from the first organization;

obtaining a second user identifier from a client device of the second user;

verifying, by the channel settings and by the second user identifier, that the second user is authorized to access the communication channel; and

enabling the second user to access the communication channel.

2. The media of claim 1 , wherein the enterprise settings override the channel settings.

3. The media of claim 1 , wherein the method further comprises:

determining a channel type from the channel settings,

wherein the channel type is indicative of the communication channel being associated with the second organization; and

further obtaining a global identifier from the client device of the second user to verify that the second user is authorized to access the communication channel.

4. The media of claim 1 , wherein the method further comprises:

determining a channel type from the channel settings,

wherein the channel type indicates that the communication channel is one of a group-to-group channel or a private group channel; and

further obtaining a group identifier from the client device of the second user to verify that the second user is authorized to access the communication channel.

5. The media of claim 1 , wherein the method further comprises updating a user profile associated with the second user with a communication channel identifier verifying that the second user is authorized to access the communication channel.

6. The media of claim 1 , wherein the channel access request comprises one of a global identifier or a group identifier, and wherein the method further comprises verifying that the second user has access to the communication channel based on the global identifier or the group identifier.

7. The media of claim 6 , wherein the method further comprises sending an invitation comprising the global identifier or the group identifier to the second user to join the communication channel.

8. A method of authorizing a user of a group-based communication system, the method comprising:

receiving a request, from a first user associated with a first organization, to create a communication channel,

wherein the request comprises channel settings,

wherein the first organization is associated with enterprise settings;

authorizing the first user to create the communication channel based on the enterprise settings,

wherein the communication channel is a virtual communications environment configured to display messages between channel members;

based on a comparison of the channel settings and the enterprise settings, authorizing creation of the communication channel;

creating the communication channel according to the channel settings;

receiving a channel access request from a second user,

wherein the second user is associated with a second organization that is distinct from the first organization;

obtaining a second user identifier from a client device of the second user;

verifying, by the channel settings and by the second user identifier, that the second user is authorized to access the communication channel; and

enabling the second user to access the communication channel.

9. The method of claim 8 , wherein the enterprise settings override the channel settings.

10. The method of claim 8 , further comprising:

determining a channel type from the channel settings,

wherein the channel type is indicative of the communication channel being associated with the second organization; and

further obtaining a global identifier from the client device of the second user to verify that the second user is authorized to access the communication channel.

11. The method of claim 8 , further comprising:

determining a channel type from the channel settings,

wherein the channel type indicates that the communication channel is one of a group-to-group channel or a private group channel; and

further obtaining a group identifier from the client device of the second user to verify that the second user is authorized to access the communication channel.

12. The method of claim 8 , further comprising updating a user profile associated with the second user with a communication channel identifier verifying that the second user is authorized to access the communication channel.

13. The method of claim 8 , wherein the channel access request comprises one of a global identifier or a group identifier, and wherein the method further comprises verifying that the second user has access to the communication channel based on the global identifier or the group identifier.

14. The method of claim 13 , further comprising sending an invitation comprising the global identifier or the group identifier to the second user to join the communication channel.

15. A system for authorizing a user of a group-based communication system, the system comprising:

at least one processor;

a datastore; and

one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the at least one processor, perform a method of authorizing the user of the group-based communication system, the method comprising:

receiving a request, from a first user associated with a first organization, to create a communication channel,

wherein the request comprises channel settings,

wherein the first organization is associated with enterprise settings;

authorizing the first user to create the communication channel based on the enterprise settings,

wherein the communication channel is a virtual communications environment configured to display messages between channel members;

based on a comparison of the channel settings and the enterprise settings, authorizing creation of the communication channel;

creating the communication channel according to the channel settings;

receiving a channel access request from a second user,

wherein the second user is associated with a second organization that is distinct from the first organization;

obtaining a second user identifier from a client device of the second user;

verifying, by the channel settings and by the second user identifier, that the second user is authorized to access the communication channel; and

enabling the second user to access the communication channel.

16. The system of claim 15 , wherein the enterprise settings override the channel settings.

17. The system of claim 15 , wherein the method further comprises:

determining a channel type from the channel settings,

wherein the channel type is indicative of the communication channel being associated with the second organization; and

further obtaining a global identifier from the client device of the second user to verify that the second user is authorized to access the communication channel.

18. The system of claim 15 , wherein the method further comprises:

determining a channel type from the channel settings,

wherein the channel type indicates that the communication channel is one of a group-to-group channel or a private group channel; and

further obtaining a group identifier from the client device of the second user to verify that the second user is authorized to access the communication channel.

19. The system of claim 15 , wherein the method further comprises updating a user profile associated with the second user with a communication channel identifier verifying that the second user is authorized to access the communication channel.

20. The system of claim 15 , wherein the channel access request comprises one of a global identifier or a group identifier, and wherein the method further comprises verifying that the second user has access to the communication channel based on the global identifier or the group identifier.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2025
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 070055/0256 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2023
From: FRANK, ILAN; BUTTERFIELD, DANIEL STEWART; HENDERSON-BEGG, CALLUM; UNDERWOOD, APRIL; JONES, LEAH; GRANT, MYLES; WIRTH, TODD; VIERHAUS, ERIC; STOLLER, SAMANTHA; PELLY, GREGORY; DENG, YONGXING; MULLEN, MATTHEW
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 064559/0351 →
MERGER Recorded Aug 11, 2023
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 064559/0433 →