DCT

3:23-cv-05047

Vilox Tech LLC v. Salesforce Inc

I. Executive Summary and Procedural Information

  • Parties & Counsel:
  • Case Identification: 3:23-cv-05047, N.D. Cal., 07/08/2024
  • Venue Allegations: Plaintiff alleges venue is proper in the Northern District of California because Defendant has 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 Salesforce customer relationship management (CRM) platform, including its search and report generation features, infringes patents related to methods for dynamically searching databases and generating reports.
  • Technical Context: The technology at issue addresses methods for simplifying user interaction with complex databases, allowing for "on-the-fly" searching and reporting without requiring the user to know the underlying database structure.
  • Key Procedural History: The complaint alleges that Plaintiff and Defendant engaged in licensing discussions between 2016 and 2017, during which Plaintiff provided Defendant with information regarding the patents-in-suit, including detailed claim charts. The complaint also notes that shortly after these meetings, a third party filed a petition for Inter Partes Review against a related, but not asserted, Vilox patent.

Case Timeline

Date Event
2000-02-25 Earliest Priority Date for ’720 and ’100 Patents
2004-07-06 ’720 Patent Issued
2007-03-06 ’100 Patent Issued
2016-Fall Vilox attorneys allegedly approached Salesforce with a license offer
2017-02-15 Vilox attorneys allegedly met with Salesforce attorneys to discuss a license
2017-03 Vilox allegedly provided Salesforce with detailed claim charts
2017-06 Vilox representatives allegedly met with Salesforce’s head of IP
2024-07-08 Plaintiffs’ Amended Complaint Filed

II. Technology and Patent(s)-in-Suit Analysis

U.S. Patent No. 6,760,720 - "Search-on-the-Fly/Sort-on-the-Fly Search Engine for Searching Databases"

  • Patent Identification: U.S. Patent No. 6,760,720, “Search-on-the-Fly/Sort-on-the-Fly Search Engine for Searching Databases,” issued July 6, 2004.

The Invention Explained

  • Problem Addressed: The patent’s background section describes the difficulty for users and applications to retrieve information from databases without having detailed knowledge of the database’s specific structure or schema, a problem compounded in environments with diverse databases like the World Wide Web (’720 Patent, col. 2:1-22). It also identifies the problem of conventional search engines returning excessively large data sets that are difficult for a user to review on a display (’720 Patent, col. 2:23-29).
  • The Patented Solution: The invention is a "search-on-the-fly" engine that allows users to intuitively search databases through an iterative process, often using dynamically generated menus, without needing prior knowledge of the database structure (’720 Patent, col. 2:31-36, 55-68). A key aspect is a "truncation routine" that automatically reduces the size of a result set if it is too large to be conveniently displayed, for instance, by reducing the number of characters shown for each entry until the list is manageable (’720 Patent, col. 7:10-43).
  • Technical Importance: The technology aimed to make interaction with complex, heterogeneous databases more efficient and user-friendly for non-technical users, a critical challenge for the usability of early web-based applications.

Key Claims at a Glance

  • The complaint asserts independent method claim 3 (Compl. ¶16).
  • Essential elements of claim 3 include:
    • generating a list of data fields;
    • receiving a first data field selection from the list of data fields;
    • determining a first quantity indicative of a number of entries of the selected data field;
    • if the first quantity exceeds a specified limit, reducing a size of data to be displayed from the selected data field, wherein the reducing reduces characters in one or more entries in the selected data field, and the size-reduced data represents each of the entries in the selected data field; and
    • displaying data from the selected data field.
  • The complaint reserves the right to assert claims 1-39 (Compl. ¶10).

U.S. Patent No. 7,188,100 - "Search-on-the-Fly Report Generator"

  • Patent Identification: U.S. Patent No. 7,188,100, “Search-on-the-Fly Report Generator,” issued March 6, 2007.

The Invention Explained

  • Problem Addressed: The patent addresses the same underlying problem as its parent '720 Patent: the difficulty of querying databases with unknown or varied schemas ('100 Patent, col. 2:1-42). It extends this problem to the specific challenge of generating useful and reusable reports from database search results.
  • The Patented Solution: The invention describes a system for creating data reports from an "on-the-fly" search. A central element is a "query tweaker" that receives a user's search request and automatically performs "transformations and corrections" to generate a defined query appropriate for the target database ('100 Patent, Abstract; col. 36:4-10). After accessing the database and generating a result, the system creates a "template" of the search result containing links to the underlying data categories. This template acts as a "road map" that enables the dynamic generation of subsequent reports using updated data from the database ('100 Patent, Abstract; col. 38:6-12).
  • Technical Importance: The invention sought to automate and simplify the creation of dynamic, reusable reports from database queries, a core function of modern business intelligence and CRM platforms.

Key Claims at a Glance

  • The complaint asserts independent method claim 1 (Compl. ¶35).
  • Essential elements of claim 1 include:
    • receiving a query for an on-the-fly search;
    • a query tweaker generating a defined query from the received query by performing transformations and corrections;
    • accessing one or more databases using a search engine with the defined query;
    • generating a search result with descriptors indicating data categories; and
    • creating a template of the search result that comprises links to the data categories described by the descriptors.
  • The complaint reserves the right to assert claims 1-38 (Compl. ¶25).

III. The Accused Instrumentality

Product Identification

The accused instrumentalities are features within the Salesforce CRM platform (Compl. ¶17). Specifically, the complaint identifies functionalities for data "retrieval, search, generation of results, and truncation of displayed characters" for the '720 Patent (Compl. ¶14), and the "Salesforce Report Builder, the Lightning Platform, List Views, and Visualforce" for the '100 Patent (Compl. ¶32).

Functionality and Market Context

  • The complaint describes the accused product as a cloud-based server system that allows customers to store and search data organized into objects such as "Accounts" and "Contacts" (Compl. ¶¶ 17-18). It allegedly uses a search function to find records and display results to the user (Compl. ¶18). For report generation, it provides a "Report Builder" tool with a drag-and-drop interface for creating reports from database fields (Compl. ¶36). The complaint alleges that Salesforce uses its proprietary Salesforce Object Query Language (SOQL) and a "Query Optimizer" to process search requests and generate search plans for accessing its databases (Compl. ¶¶ 38, 40).
  • The complaint alleges that Salesforce is the "world's #1 CRM company" and its platform is the "world's leading enterprise cloud ecosystem" (Compl. ¶17).

IV. Analysis of Infringement Allegations

’720 Patent Infringement Allegations

Claim Element (from Independent Claim 3) Alleged Infringing Functionality Complaint Citation Patent Citation
generating a list of data fields The Salesforce system allegedly generates a list of "Data fields descriptors" (e.g., Accounts, Contacts, Opportunities) in a search results interface. ¶19 col. 4:63-65
receiving a first data field selection from the list of data fields A user provides a keyword in the search interface, which is received by the database to generate a result set. ¶20 col. 2:35-36
determining a first quantity indicative of a number of entries of the selected data field The system determines the number of results to be displayed based on the user's search selection. ¶21 col. 17:10-12
if the first quantity exceeds a specified limit, reducing a size of data... wherein the reducing reduces characters in one or more entries in the selected data field... When search result entries contain more characters than can be displayed, the characters are allegedly truncated and represented by ellipses ("..."). The complaint provides a screenshot showing that entries with data exceeding a specified limit are truncated by reducing characters (Compl. p. 14). ¶22 col. 7:17-25
displaying data from the selected data field The Salesforce system displays the search results, which are either shown in their entirety or in a truncated form. ¶23 col. 7:25-27
  • Identified Points of Contention:
    • Scope Questions: A potential issue is whether the term "generating a list of data fields" requires displaying the database's structural fields (e.g., column names), or if it can be read on the accused functionality of displaying categories of search results (e.g., "Accounts (4)").
    • Technical Questions: The infringement theory for truncation rests on the visual output. A question for the court may be what evidence demonstrates that the Salesforce system first "determin[es] a first quantity" and then, based on that quantity exceeding a "specified limit," performs character reduction, as required by the claim's sequential logic.

’100 Patent Infringement Allegations

Claim Element (from Independent Claim 1) Alleged Infringing Functionality Complaint Citation Patent Citation
receiving a query... wherein the database is searched using an on-the-fly search A user initiates a search request via the Salesforce Report Builder or by using Salesforce Object Query Language (SOQL). ¶37 col. 30:15-17
a query tweaker generating a defined query... performing transformations and corrections on the received query The Salesforce "Query Optimizer" is alleged to be the "query tweaker." The complaint alleges it performs "transformations" by generating a search plan and calculating costs for operations like indexed filters and table scans. The complaint provides a diagram illustrating the "Optimizer Process" (Compl. p. 20). ¶38 col. 36:4-10
accessing one or more databases, using a search engine, per the defined query The optimized query generated by the Query Optimizer is used to search one or more Salesforce databases. ¶40 col. 36:10-12
generating a search result based on the database access, wherein the search result includes one or more descriptors indicating corresponding data categories The system presents search results as records with named data fields ("descriptors"), which correspond to data categories. ¶40 col. 30:22-24
creating a template of the search result, wherein the template comprises links to the data categories described by the one or more descriptors The system allegedly creates a "template" when a user saves a report, which stores the operations performed. Separately, a "Visualforce page" is alleged to be a template containing an SOQL query with links to data descriptors. ¶¶ 42-43 col. 38:6-12
  • Identified Points of Contention:
    • Scope Questions: A central dispute may be whether the term "query tweaker" can be construed to cover a standard, cost-based database query optimizer, or if it is limited to a narrower function of correcting user input or adapting a query to a specific, unknown schema as described in the patent.
    • Technical Questions: The complaint identifies a saved report build or a Visualforce page as the claimed "template." It may be a point of contention whether these accused instrumentalities "comprise links to the data categories" in a way that enables the dynamic re-querying functionality described in the patent's specification.

V. Key Claim Terms for Construction

’720 Patent

  • The Term: "reducing a size of data" (from claim 3)
  • Context and Importance: This term is central to the infringement allegation against the '720 Patent. Its definition will determine whether the accused character-truncation feature meets the claim limitation. Practitioners may focus on this term because the complaint's entire infringement theory for this element relies on interpreting "reducing a size of data" as reducing character count rather than reducing the number of results.
  • Intrinsic Evidence for Interpretation:
    • Evidence for a Broader Interpretation: The claim language itself qualifies the term: "wherein the reducing reduces characters in one or more entries" ('720 Patent, claim 3). The specification provides a specific example where, if a result list of city names is too long, "some part of the name-the first n letters-is checked against the database" to create a shorter, displayable list ('720 Patent, col. 7:17-23).
    • Evidence for a Narrower Interpretation: A party might argue that in the general context of database searching, "reducing a size of data" commonly refers to filtering, i.e., reducing the number of records returned. The patent's summary describes narrowing search results, which could support an interpretation focused on reducing the quantity of entries rather than the characters within them ('720 Patent, col. 2:45-47).

’100 Patent

  • The Term: "query tweaker" (from claim 1)
  • Context and Importance: The patentability of the claim over the prior art and the infringement analysis may depend on whether "query tweaker" is construed as a novel software construct with specific functionality or as a generic term for any query processor. The complaint equates it with Salesforce's "Query Optimizer," making its definition critical to the dispute.
  • Intrinsic Evidence for Interpretation:
    • Evidence for a Broader Interpretation: The claim defines the "query tweaker" by its function: "generating a defined query... by performing transformations and corrections on the received query" ('100 Patent, claim 1). The specification describes these transformations as including setting up JOINs, applying filters, and applying GROUP BY clauses ('100 Patent, col. 36:4-10), functions which a modern query optimizer also performs.
    • Evidence for a Narrower Interpretation: The term "tweaker" and the function of performing "corrections" suggests a role in modifying a potentially flawed or generic user query to make it suitable for a specific database schema. A party could argue the term should not cover standard, performance-based query optimization, but rather a specific, adaptive function described as being novel at the time ('100 Patent, col. 36:23-26).

VI. Other Allegations

  • Indirect Infringement: The complaint alleges both induced and contributory infringement for both patents. Inducement is based on allegations that Salesforce actively encourages and instructs its customers on how to use the accused search and report-building features (Compl. ¶¶ 27, 47). Contributory infringement is based on the allegation that there are no substantial non-infringing uses for the accused products and services (Compl. ¶¶ 28, 48).
  • Willful Infringement: Willfulness is alleged for both patents based on pre-suit knowledge. The complaint asserts that Salesforce knew of the patents and the underlying technology from at least February 15, 2017, as a result of meetings with Plaintiff's representatives where claim charts were allegedly presented to Salesforce's legal team (Compl. ¶¶ 9, 27, 47).

VII. Analyst’s Conclusion: Key Questions for the Case

  • A core issue will be one of definitional scope: can the claim term "reducing a size of data" in the '720 Patent, which is further defined as "reduc[ing] characters," be construed to read on the accused product's functionality of truncating long text strings for display purposes, or is it limited to a different database sizing operation?
  • A key technical question will be one of functional correspondence: does the accused Salesforce "Query Optimizer," which performs cost-based optimization of database queries, perform the specific "transformations and corrections" required by the "query tweaker" limitation in the '100 Patent, or is there a fundamental mismatch between a conventional optimizer and the claimed inventive function?
  • A threshold legal question will be one of patent eligibility: as foreshadowed by the complaint's detailed arguments, the court will likely need to determine whether the asserted claims are directed to a specific, technological improvement in computer database searching and reporting, or to the patent-ineligible abstract idea of organizing and presenting data.