IP Library Granted Patent US 12,399,607
Granted Patent B1
US 12,399,607 · App. 18/326,862 · Granted Aug 26, 2025

Complex action parameter support in a visual playbook editor

Inventors: Matthew Hanson (San Jose, CA); Jacob Davis (Campbell, CA); Zhi Peng Zhou (Vancouver, CA); James Harris (Maple, CA); Jacob Andrew Edward Moore (Burlington, CA); Austin Tyler Hariri (Windsor, CO); Shiying Tu (Burnaby, CA); Daniel Trenkner (Encinitas, CA); Kavita Varadarajan (Cupertino, CA)
Assignee: SPLUNK Inc.
G06F3/04842G06F8/34G06F21/56
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,399,607
App. No.
18/326,862
Granted
Aug 26, 2025
Kind
B1
Abstract

Described herein are techniques are provided for enabling a security orchestration, automation, and response (SOAR) service to automatically manage apps used to interface with an integrated security operations service and other related devices and services. Further described herein is a SOAR app generator service or application used to automate the creation of apps for a SOAR service based on application programming interfaces (API) specifications for related devices or services, as well as visual playbook editor interfaces for a SOAR service that enable the configuration of complex action input parameters including arrays and objects.

Claims (55)

1. A computer-implemented method, comprising:

receiving, by a visual playbook editor interface of a security, orchestration, and automated response (SOAR) service, a request to add an action block to a playbook under development in the visual playbook editor interface, wherein the action block identifies an action to be performed by the SOAR service upon encountering the action block during execution of the playbook, and wherein the action is implemented in part by an app providing a client interface to an application programming interface (API) for a device or service related to the SOAR service;

identifying, based on data describing actions provided by the app, an input parameter associated with the action block, wherein the data indicates that the input parameter is one of: an array representing an ordered collection of values, or an object representing an unordered collection of name-value pairs;

causing display, in the visual playbook editor interface, of one or more graphical interface elements corresponding to the input parameter;

receiving, via the one or more graphical interface elements, one or more input values for the input parameter;

generating a representation of the one or more input values according to a data interchange format; and

providing, to the app, the representation of the one or more input values.

2. The method of claim 1 , wherein the data describing the actions provided by the app is generated by an app generator service based on an API specification for the device or service.

3. The method of claim 1 , wherein the input parameter is an array, and wherein the method further comprises:

receiving, via the visual playbook editor interface, input requesting to increase a number of graphical interface elements displayed for providing input parameter values; and

causing display of an additional graphical interface element for providing input parameter values.

4. The method of claim 1 , wherein the input parameter is an object representing an unordered collection of name-value pairs, wherein the visual playbook editor interface includes a first graphical interface element representing the object, and wherein the method further comprises:

receiving, via the visual playbook editor interface, input selecting the first graphical interface element representing the object;

causing display, in the visual playbook editor interface, of a second graphical interface element including input fields for providing values associated with name-value pairs of the unordered collection of name-value pairs represented by the object; and

receiving, via the input fields, values for the name-value pairs of the unordered collection of name-value pairs represented by the object.

5. The method of claim 1 , wherein the input parameter is an array representing an ordered collection of values, and wherein the ordered collection of values includes a plurality of objects.

6. The method of claim 1 , wherein the input parameter is an object, and wherein the object includes an array of values.

7. The method of claim 1 , wherein the input parameter is a first object representing a first unordered collection of name-value pairs, wherein the first object includes a second object, and wherein the second object includes a second unordered collection of name-value pairs.

8. The method of claim 1 , wherein the input parameter is an array, and wherein a value in the array is one of: a string, a number, a Boolean, or a null value.

9. The method of claim 1 , wherein the input parameter is a first input parameter, and wherein the method further comprises obtaining, by the SOAR service, an enumerated list of values from the device or service for a second input parameter, wherein the enumerated list of values is obtained via an endpoint defined by the app.

10. The method of claim 1 , further comprising sending, by the app, a request to the device or service to execute the action, wherein the request includes the representation of the one or more input values.

11. A computing device, comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations including:

receiving, by a visual playbook editor interface of a security, orchestration, and automated response (SOAR) service, a request to add an action block to a playbook under development in the visual playbook editor interface, wherein the action block identifies an action to be performed by the SOAR service upon encountering the action block during execution of the playbook, and wherein the action is implemented in part by an app providing a client interface to an application programming interface (API) for a device or service related to the SOAR service;

identifying, based on data describing actions provided by the app, an input parameter associated with the action block, wherein the data indicates that the input parameter is one of: an array representing an ordered collection of values, or an object representing an unordered collection of name-value pairs;

causing display, in the visual playbook editor interface, of one or more graphical interface elements corresponding to the input parameter;

receiving, via the one or more graphical interface elements, one or more input values for the input parameter;

generating a representation of the one or more input values according to a data interchange format; and

providing, to the app, the representation of the one or more input values.

12. The computing device of claim 11 , wherein the data describing the actions provided by the app is generated by an app generator service based on an API specification for the device or service.

13. The computing device of claim 11 , wherein the input parameter is an array, and wherein the instructions, when executed by the processor, further cause the processor to perform operations including:

receiving, via the visual playbook editor interface, input requesting to increase a number of graphical interface elements displayed for providing input parameter values; and

causing display of an additional graphical interface element for providing input parameter values.

14. The computing device of claim 11 , wherein the input parameter is an object representing an unordered collection of name-value pairs, wherein the visual playbook editor interface includes a first graphical interface element representing the object, and wherein the instructions, when executed by the processor, further cause the processor to perform operations including:

receiving, via the visual playbook editor interface, input selecting the first graphical interface element representing the object;

causing display, in the visual playbook editor interface, of a second graphical interface element including input fields for providing values associated with name-value pairs of the unordered collection of name-value pairs represented by the object; and

receiving, via the input fields, values for the name-value pairs of the unordered collection of name-value pairs represented by the object.

15. The computing device of claim 11 , wherein the input parameter is an array representing an ordered collection of values, and wherein the ordered collection of values includes a plurality of objects.

16. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:

receiving, by a visual playbook editor interface of a security, orchestration, and automated response (SOAR) service, a request to add an action block to a playbook under development in the visual playbook editor interface, wherein the action block identifies an action to be performed by the SOAR service upon encountering the action block during execution of the playbook, and wherein the action is implemented in part by an app providing a client interface to an application programming interface (API) for a device or service related to the SOAR service;

identifying, based on data describing actions provided by the app, an input parameter associated with the action block, wherein the data indicates that the input parameter is one of: an array representing an ordered collection of values, or an object representing an unordered collection of name-value pairs;

causing display, in the visual playbook editor interface, of one or more graphical interface elements corresponding to the input parameter;

receiving, via the one or more graphical interface elements, one or more input values for the input parameter;

generating a representation of the one or more input values according to a data interchange format; and

providing, to the app, the representation of the one or more input values.

17. The non-transitory computer-readable medium of claim 16 , wherein the data describing the actions provided by the app is generated by an app generator service based on an API specification for the device or service.

18. The non-transitory computer-readable medium of claim 16 , wherein the input parameter is an array, and wherein the instructions, when executed by one or more processors, cause the one or more processors to perform operations including:

receiving, via the visual playbook editor interface, input requesting to increase a number of graphical interface elements displayed for providing input parameter values; and

causing display of an additional graphical interface element for providing input parameter values.

19. The non-transitory computer-readable medium of claim 16 , wherein the input parameter is an object representing an unordered collection of name-value pairs, wherein the visual playbook editor interface includes a first graphical interface element representing the object, and wherein the instructions, when executed by one or more processors, further cause the one or more processors to perform operations including:

receiving, via the visual playbook editor interface, input selecting the first graphical interface element representing the object;

causing display, in the visual playbook editor interface, of a second graphical interface element including input fields for providing values associated with name-value pairs of the unordered collection of name-value pairs represented by the object; and

receiving, via the input fields, values for the name-value pairs of the unordered collection of name-value pairs represented by the object.

20. The non-transitory computer-readable medium of claim 16 , wherein the input parameter is an array representing an ordered collection of values, and wherein the ordered collection of values includes a plurality of objects.

Assignments (3)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2023
From: HANSON, MATTHEW; DAVIS, JACOB; ZHOU, ZHI PENG; HARRIS, JAMES; MOORE, JACOB ANDREW EDWARD; HARIRI, AUSTIN TYLER; TU, SHIYING; TRENKER, DANIEL; VARADARAJAN, KAVITA
To: SPLUNK INC.
Reel/Frame 065375/0914 →
References Cited (33)
US 7752655B2 · Ohto · 2010 [cited by applicant]
US 7937344B2 · Baum et al. · 2011 [cited by applicant]
US 8112425B2 · Baum et al. · 2012 [cited by applicant]
US 8510762B1 · Gregorio et al. · 2013 [cited by applicant]
US 8751529B2 · Zhang et al. · 2014 [cited by applicant]
US 8788525B2 · Neels et al. · 2014 [cited by applicant]
US 9215240B2 · Merza et al. · 2015 [cited by applicant]
US 9286413B1 · Coates et al. · 2016 [cited by applicant]
US 9753744B1 · Wells et al. · 2017 [cited by applicant]
US 10127258B2 · Lamas et al. · 2018 [cited by applicant]
US 10545730B2 · McCune · 2020 [cited by applicant]
US 10585683B2 · Wells et al. · 2020 [cited by applicant]
US 11050793B2 · Jeyakumar et al. · 2021 [cited by applicant]
US 11252189B2 · Reiser et al. · 2022 [cited by applicant]
US 11269694B2 · Aspro et al. · 2022 [cited by applicant]
US 11475013B2 · Parker · 2022 [cited by applicant]
US 11563755B2 · Narula · 2023 [cited by examiner]
US 12141272B2 · Saliba · 2024 [cited by examiner]
US 20190098106A1 · Mungel et al. · 2019 [cited by applicant]
US 20190339947A1 · McCune · 2019 [cited by applicant]
US 20210166227A1 · Tiwari et al. · 2021 [cited by applicant]
US 20210297427A1 · Narula et al. · 2021 [cited by applicant]
US 20210306352A1 · Narula et al. · 2021 [cited by applicant]
US 20220070180A1 · Friedrich · 2022 [cited by applicant]
US 20220075674A1 · Miedema et al. · 2022 [cited by applicant]
US 20230068946A1 · McCarthy et al. · 2023 [cited by applicant]
US 20230146804A1 · Narula et al. · 2023 [cited by applicant]
Splunk Enterprise 8.0.0 Overview, available online, retrieved May 20, 2020 from docs.splunk.com. [cited by applicant]
Splunk Cloud 8.0.2004 User Manual, available online, retrieved May 20, 2020 from docs.splunk.com. [cited by applicant]
Splunk Quick Reference Guide, updated 2019, available online at https://www.splunk.com/pdfs/solution-guides/splunk-quick-reference-guide.pdf, retrieved May 20, 2020. [cited by applicant]
Carasso, David, “Exploring Splunk,” published by CITO Research, New York, NY, Apr. 2012. [cited by applicant]
Bitincka, Ledion et al., “Optimizing Data Analysis with a Semi-structured Time Series Database,” self-published, first presented at “Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML)”… [cited by applicant]
Notice of Allowance, U.S. Appl. No. 18/326,830, Oct. 19, 2023, 10 pages. [cited by applicant]