3:21-cv-02001
Express Mobile Inc v. Slack Tech Inc
I. Executive Summary and Procedural Information
- Parties & Counsel:
- Plaintiff: Express Mobile, Inc. (Delaware)
- Defendant: Slack Technologies, Inc. (Delaware)
- Plaintiff’s Counsel: Feinberg Day Kramer Alberti Lim Tonkovich & Belloli LLP
- Case Identification: 3:21-cv-02001, N.D. Cal., 03/23/2021
- Venue Allegations: Plaintiff alleges venue is proper in the Northern District of California because Defendant maintains a regular and established place of business in the district and has committed the alleged acts of infringement there.
- Core Dispute: Plaintiff alleges that Defendant’s Slack collaboration platform, including its Workflow Builder feature, infringes four U.S. patents related to browser-based website creation, cross-platform application development, and dynamic content presentation.
- Technical Context: The patents address methods for simplifying the creation of web applications and ensuring their consistent display and functionality across a diverse and evolving landscape of user devices, including mobile phones and desktop computers.
- Key Procedural History: The complaint notes that the asserted U.S. Patent No. 6,546,397 has been the subject of prior litigation where multiple defendants’ motions to dismiss on patent-ineligibility grounds under 35 U.S.C. § 101 were denied by district courts. For the other three patents, the complaint alleges that Defendant was provided notice of infringement on December 19, 2019, which may form a basis for allegations of willful infringement.
Case Timeline
| Date | Event |
|---|---|
| 1999-12-02 | ’397 Patent Priority Date |
| 2003-04-08 | ’397 Patent Issue Date |
| 2008-04-07 | ’755, ’287, and ’044 Patents Priority Date |
| 2015-06-23 | ’755 Patent Issue Date |
| 2016-10-18 | ’287 Patent Issue Date |
| 2018-03-27 | ’044 Patent Issue Date |
| 2019-12-19 | Notice of Infringement provided to Slack for ’044, ’287, and ’755 Patents |
| 2021-03-23 | Complaint Filing Date |
II. Technology and Patent(s)-in-Suit Analysis
U.S. Patent No. 6,546,397 - "Browser Based Web Site Generation Tool and Run Time Engine"
The Invention Explained
- Problem Addressed: The patent’s background describes conventional website building tools as reliant on direct manipulation of HTML and scripting languages, which are identified as being inefficient, having limited capabilities, and requiring significant programming skill, particularly for creating dynamic and interactive websites (’397 Patent, col. 1:8-50).
- The Patented Solution: The invention proposes a browser-based "build tool" that allows a user to visually construct a website by selecting elements and defining their properties, without writing code. This information is stored in a database, separating the site's design logic from its content. A corresponding "run time engine," also operating in the browser, retrieves the stored information from the database to dynamically generate and display the final website for a visitor (’397 Patent, Abstract; col. 2:51-68).
- Technical Importance: This approach enabled a "what you see is what you get" (WYSIWYG) editing experience directly within a web browser, aiming to simplify website creation and make it accessible to users without deep technical expertise (Compl. ¶22).
Key Claims at a Glance
- The complaint asserts at least independent claim 1 (Compl. ¶49).
- The essential elements of Claim 1 (a method claim) include:
- presenting a viewable menu of a user selectable panel of settings to describe website elements, presented through a browser;
- accepting multiple selectable settings from a user in said panel;
- wherein the user-selectable settings correspond to commands for a virtual machine;
- generating a display in accordance with the user-selected settings substantially contemporaneously with the selection;
- storing information representative of the user-selected settings in a database; and
- generating a website at least in part by retrieving the stored information from the database and using at least one run time file to generate virtual machine commands for the display.
- The complaint does not explicitly reserve the right to assert dependent claims.
U.S. Patent No. 9,928,044 - "Systems and Methods for Programming Mobile Devices"
The Invention Explained
- Problem Addressed: The complaint states the invention addresses technical problems associated with providing more efficient ways of generating, storing, and retrieving code to display content uniformly across different kinds of devices (e.g., PCs, mobile phones, tablets) (Compl. ¶26).
- The Patented Solution: The invention describes a system where an "authoring tool" creates a device-independent "Application" by associating UI objects (e.g., widgets) with web service components using "symbolic names." This application is then delivered to a client device along with a device-dependent "player." The player interprets the device-independent application and renders the content correctly for the specific device, platform, or browser, thus abstracting the application logic from the device-specific implementation details (’044 Patent, Abstract; Compl. ¶26).
- Technical Importance: This architecture provides a data-efficient and flexible method for creating applications that can be deployed across a wide range of devices and platforms without needing to be rewritten for each specific environment (Compl. ¶28).
Key Claims at a Glance
- The complaint asserts at least independent claim 1 (Compl. ¶82).
- The essential elements of Claim 1 (a system claim) include:
- computer memory for storing a registry of symbolic names and web service addresses;
- an authoring tool configured to define a UI object, access memory to select the corresponding symbolic name, associate the name with the UI object, store information in a database, and build an application;
- the application consists of one or more web page views from the database and utilizes at least one player; and
- the application and player code are provided to client devices to be executed on said devices.
- The complaint does not explicitly reserve the right to assert dependent claims.
Multi-Patent Capsule: U.S. Patent No. 9,471,287
- Patent Identification: 9,471,287, "Systems and Methods for Integrating Widgets on Mobile Devices," issued October 18, 2016.
- Technology Synopsis: This patent addresses technical problems in efficiently generating and displaying content, such as dynamic content, uniformly across different devices (Compl. ¶32). The solution involves a data-efficient and flexible association between a "symbolic name" and a UI object (e.g., a widget), which is used to produce a device-independent application that is provided to a device along with a device-dependent player for rendering (Compl. ¶32).
- Asserted Claims: At least independent claim 1 (Compl. ¶98).
- Accused Features: The complaint accuses Slack’s platform, including the Slack Workflow Builder, of infringement (Compl. ¶97).
Multi-Patent Capsule: U.S. Patent No. 9,063,755
- Patent Identification: 9,063,755, "Systems and Methods for Presenting Information on Mobile Devices," issued June 23, 2015.
- Technology Synopsis: This patent describes inventive concepts to solve technical problems in displaying content across different devices by providing more efficient ways to generate code for uniform display (Compl. ¶39). The invention allows a data-efficient association between a symbolic name and a UI object, which is then used to generate a device-independent application that works with a device-dependent player; it also describes communicating input and output values via symbolic names (Compl. ¶¶39-40).
- Asserted Claims: At least independent claim 1 (Compl. ¶119).
- Accused Features: The complaint accuses Slack’s platform, including the Slack Workflow Builder, of infringement (Compl. ¶118).
III. The Accused Instrumentality
Product Identification
- The Accused Instrumentalities are identified as Slack’s platform, which includes Slack.com, the Slack Workflow Builder, and the associated web, desktop (for macOS, Windows, Linux), and mobile (for iOS, Android) applications, along with related software and servers (Compl. ¶¶49, 52, 81).
Functionality and Market Context
- The Slack platform is a collaboration tool. The infringement allegations center on the "Workflow Builder" feature, which allows users to create automated routines within Slack (Compl. ¶57). Through a browser-based interface, users can define a trigger (e.g., a new user joining a channel) and add steps (e.g., "Send a message" or "Send a form") (Compl. ¶¶60, 63). These user-configured workflows are then saved to a database (allegedly MySQL) and are executed by the platform to perform the automated tasks (Compl. ¶¶73-74). The complaint alleges that this functionality is delivered to users via a web application in a browser, which uses technologies like JavaScript, React, and Electron (Compl. ¶¶51, 54, 62). A screenshot provided in the complaint shows the architecture of the accused system, including clients, a webapp backend, and a MySQL database (Compl. ¶83, p. 33).
IV. Analysis of Infringement Allegations
’397 Patent Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| presenting a viewable menu of a user selectable panel of settings describing elements on a website... | The Workflow Builder presents users with a selectable panel of settings, such as the "Add a workflow step" menu, which offers options like "Send a message" or "Send a form." | ¶63 | col. 65:42-49 |
| said panel of settings being presented through a browser on a computer... | The Accused Instrumentalities are provided to users as a web application within a browser. | ¶51 | col. 65:50-52 |
| ...adapted to accept multiple selectable settings in said panels as inputs therefrom... | The interface allows users to select steps and then further configure them by inserting formatted text and variables into a message. A screenshot shows the interface for adding and customizing a "Send a message" step in a workflow (Compl. ¶64, p. 21). | ¶64 | col. 65:52-54 |
| ...said user selectable settings in said panel corresponds to commands to a virtual machine... | The complaint alleges that all modern browsers include an ECMAScript (JavaScript) virtual machine and that user-selected formatting options are processed by this virtual machine. | ¶¶62, 69 | col. 65:55-57 |
| generating a display in accordance with one or more user selected settings substantially contemporaneously with the selection thereof... | When a user selects formatting settings (e.g., bold, italic) for text in a workflow message, the appearance of the text in the editing window is updated to reflect the new setting. | ¶71 | col. 65:58-61 |
| storing information representative of said one or more user selected settings in a database... | After a user configures a workflow and clicks "Publish Changes," the Accused Instrumentalities save the changes to a database, which the complaint identifies as MySQL. | ¶¶73-74 | col. 65:62-64 |
| generating a web site at least in part by retrieving said information... | When a workflow is triggered, the system sends a new message reflecting the settings saved in the database, such as custom formatting and variables. | ¶¶75-76 | col. 65:65-68 |
- Identified Points of Contention:
- Scope Questions: A central dispute may arise over the scope of the term "virtual machine." The complaint alleges this term reads on a standard browser's JavaScript engine (Compl. ¶62). Defendant may argue that the patent, which repeatedly discusses a "build engine" and "run time engine" and communication with JAVA applets, requires a more specific software architecture than a general-purpose script interpreter. Another question is whether posting a formatted, automated message in a chat channel constitutes "generating a web site" as contemplated by the patent.
’044 Patent Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| computer memory to store a registry of: a) symbolic names required for evoking one or more web components... and b) the address of the web service... | Slack's Workflow Builder allegedly uses symbolic names (e.g., parameter names) to evoke web components. The complaint provides a list of web service addresses used by Slack (e.g., api.slack.com, app.slack.com). |
¶¶84, 86 | col. 37:5-18 |
| an authoring tool configured to: define a UI object for presentation on the display... | The Slack Workflow Builder is alleged to be the authoring tool, which allows users to define UI objects such as forms for presentation. | ¶¶85, 87 | col. 37:19-22 |
| access said computer memory to select the symbolic name corresponding to the web component... | When a user creates a workflow, the authoring tool allegedly accesses computer memory to select the associated UI objects and their corresponding symbolic names. | ¶88 | col. 37:23-26 |
| associate the selected symbolic name with the defined UI object... | Slack allegedly associates the symbolic name (parameter name) with the defined UI object, and this name is only available to corresponding UI objects. | ¶88 | col. 37:27-33 |
| an authoring tool configured to: build an application consisting of one or more web page views from at least a portion of the database utilizing at least one player... | The Workflow Builder is alleged to build an "application" (the workflow) consisting of web page views generated from a database. This application is used by a "player" (e.g., a browser's virtual machine) to generate the display. | ¶¶89-90 | col. 37:34-40 |
| wherein the application and the player code are provided to the client devices to be executed on the client devices. | When a user accesses Slack in a browser, the application (e.g., the workflow logic) and the player code are provided to the client device for local execution. | ¶91 | col. 37:41-44 |
- Identified Points of Contention:
- Technical Questions: The infringement theory relies on mapping the patent's terms to Slack's technology. Key questions will be whether Slack's use of "parameter names" in its API calls constitutes the claimed "symbolic name" architecture and whether a user-created workflow constitutes an "application" that is distinct from the underlying Slack platform itself.
- Scope Questions: The case may turn on whether the patent’s system of a device-independent "application" paired with a device-dependent "player" can be read to cover a standard web application architecture where a browser (the alleged "player") renders data and logic (the alleged "application") sent from a server.
V. Key Claim Terms for Construction
The Term: "virtual machine" (’397 Patent, Claim 1)
Context and Importance: Plaintiff's infringement theory for the ’397 Patent depends on this term being construed broadly to encompass a standard JavaScript engine found in modern web browsers. A narrower construction limited to a specific type of engine, such as a Java Virtual Machine, could present a significant challenge to the infringement allegations.
Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: The claim itself is not limited to any specific type of virtual machine (e.g., Java). The specification's discussion of communication between JavaScript and a "JAVA engine" could be argued to represent one embodiment of a broader concept of a browser-based execution environment (’397 Patent, col. 2:62-65).
- Evidence for a Narrower Interpretation: The specification extensively describes a "build engine" and a "run time engine" as core components of the invention, which are described as being implemented in a "JAVA wrapper" or as applets (’397 Patent, col. 5:1-12, col. 9:8-12). A defendant may argue that the term "virtual machine" must be understood in the context of this specific, disclosed architecture.
The Term: "symbolic name" (’044 Patent, Claim 1)
Context and Importance: The core of the infringement allegation for the ’044, ’287, and ’755 patents is that Slack's use of "parameter names" in its Workflow Builder meets the definition of a "symbolic name." The viability of this theory will depend on how the court construes this term.
Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: The claim defines the term as "character strings that do not contain either a persistent address or pointer to an output value accessible to the web service" (’044 Patent, Claim 1). Plaintiff will likely argue this functional definition is broad and covers the parameter names used by Slack. The complaint alleges this directly (Compl. ¶84).
- Evidence for a Narrower Interpretation: The specification of the parent ’755 patent, from which the ’044 patent derives, describes the invention in the context of a Portable Description Language (PDL) that serves as a device-independent format (’755 Patent, col. 6:4-11). A defendant may argue that a "symbolic name" must be understood as a component of this specific PDL-based abstraction layer, distinguishing it from conventional parameters used in standard web API calls.
VI. Other Allegations
- Indirect Infringement: For the ’044, ’287, and ’755 patents, the complaint alleges both induced and contributory infringement. Inducement is based on Slack allegedly having knowledge of the patents since at least December 19, 2019, and actively encouraging infringement by providing customers with instructions, tutorials, and support services for using the accused Workflow Builder (Compl. ¶¶93, 114, 134). Contributory infringement is alleged on the basis that the Accused Instrumentalities are a material component of the invention and are not a staple article of commerce suitable for substantial non-infringing use (Compl. ¶¶94, 115, 135).
- Willful Infringement: The complaint alleges that Slack’s infringement of the ’044, ’287, and ’755 patents has been willful since at least December 19, 2019, the date on which Plaintiff allegedly provided notice to Slack’s General Counsel (Compl. ¶¶93, 114, 134).
VII. Analyst’s Conclusion: Key Questions for the Case
- A central issue will be one of technological scope and aging: can the claims of the ’397 patent, which describe a "virtual machine" and the "generation of a web site" in the context of early 2000s browser technology (e.g., Java applets), be construed to cover the architecture of a modern, JavaScript-based collaboration platform like Slack?
- A key question of technical mapping will determine the outcome for the three more recent patents: does Slack's system, which uses API parameter names within its Workflow Builder, practice the patented method of using "symbolic names" to link UI objects to a device-independent "application" that is rendered by a device-dependent "player," or is there a fundamental architectural distinction?
- An important ancillary question will be one of intent and damages: given the allegation that Slack was on notice of the ’044, ’287, and ’755 patents since late 2019, the court will need to evaluate the evidence supporting willful infringement, which could significantly impact any potential damages award.