IP Library Granted Patent US 12,271,847
Granted Patent B2
US 12,271,847 · App. 17/660,085 · Granted Apr 8, 2025

Multi-service business platform system having custom workflow actions systems and methods

Inventors: Jesse Tremblay (Cambridge, MA); John Russell (Acton, MA)
Assignee: HubSpot, Inc.
G06Q10/06316G06F3/0482G06Q10/0633
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,271,847
App. No.
17/660,085
Filed
Apr 21, 2022
Granted
Apr 8, 2025
Kind
B2
Art Unit
3624
USPC
705/7.26
Abstract

The disclosure is directed to various ways of improving the functioning of computer systems, information networks, data stores, search engine systems and methods, and other advantages. Among other things, provided herein are methods, systems, components, processes, modules, blocks, circuits, sub-systems, articles, and other elements (collectively referred to in some cases as the “platform” or the “system”) that collectively enable, in one or more datastores and systems. A system and method (e.g., a custom workflow actions system and related processes) for creating and using a custom action (e.g., custom code action). The custom code action may be created and added to a workflow. The workflow may be executed based on the occurrence of one or more events such that the new custom code action may be triggered as part of the workflow (e.g., resulting in an occurrence of a customized action corresponding with a custom instruction code).

Claims (45)

1. A computer-implemented method, comprising:

creating a new workflow associated with one or more events;

creating a new custom code action that is added to the new workflow based upon user input through a custom workflow actions system, wherein the new custom code action is defined as an action name, action inputs, input options defining a set of valid values for the action inputs, and an action web address;

receiving, through a code editor related to one or more actions in the new workflow, a custom instruction code for a customized action associated with the new custom code action;

enrolling an object, within a customer relationship management (CRM) system, into the new workflow as an enrolled object;

executing the new workflow based on an occurrence of the one or more events to trigger the new custom code action to execute the custom instruction code that:

sends a request to the action web address when the custom workflow actions system executes the new workflow, wherein the request specifies a user for which the customized action is being performed on behalf of and values to enter for the action inputs; and

triggers, based upon the request, the customized action against the enrolled object, wherein an input field for the new workflow is populated with a value pulled from a property on the enrolled object, wherein the property of the enrolled object is designated for workflows.

2. The method of claim 1 , further comprising the custom workflow actions system for controlling, configuring, and executing the new workflow in a platform, wherein the custom workflow actions system utilizes an automation application programming interface (API) to provide at least one of a “Get” functionality, a “Post” functionality, a “Put” functionality, or a “Delete” functionality with respect to the new workflow.

3. The method of claim 1 , further comprising defining the new custom code action with at least one input and the action web address such that when the new custom code action is triggered, at least one request is sent to the action web address with a payload.

4. The method of claim 1 , further comprising defining the new custom code action with workflow-related information for the new workflow, a preferred request format for requests received, the action name, and at least one action input.

5. The method of claim 1 , comprising:

passing the enrolled object from the customized action to a next action within the new workflow.

6. The method of claim 1 , further comprising determining a success of the new custom code action being triggered by examining a status code returned that indicates at least one of: an action completed successfully, an action failed, or a temporary problem with service.

7. The method of claim 1 , wherein the one or more events are defined as a change in a platform such that the platform provides one or more actions including at least one of configuring or setting properties, sending emails, sending notifications, or calling one or more web addresses based, at least partially, on the change in the platform.

8. The method of claim 1 , comprising:

unenrolling the enrolled object from the new workflow.

9. The method of claim 8 , wherein the new custom code action includes a function that when executed allows for a platform to operate on data that is associated with the new workflow, and wherein the data relates to enrollment of one or more objects, and wherein the one or more objects include at least one of a core object or a custom object such that object-related data is available for operation when the new workflow is executed.

10. The method of claim 1 , wherein the new custom code action provides at least one of: a process for keeping user data organized by reformatting data or a process for driving other processes.

11. The method of claim 1 , wherein the new custom code action provides at least one of: data cleanup, data formatting and reformatting, advanced lead rotation, service level agreement (SLA) management, verification of customer data inputs based on an external service, or advanced customer onboarding automation.

12. A computer-implemented method for creating and using a custom action, the method comprising:

opening a previously created workflow associated with one or more events;

selecting a custom code action from a list of actions;

creating a new custom code action that is added to the previously created workflow based upon user input through a custom workflow actions system, wherein the new custom code action is defined as an action name, action inputs, input options defining a set of valid values for the action inputs, and an action web address;

receiving, through a code editor related to one or more actions in the previously created workflow, a custom instruction code for a customized action associated with the new custom code action;

enrolling an object, within a customer relationship management (CRM) system, into the previously created workflow as an enrolled object;

executing the previously created workflow based on an occurrence of the one or more events to trigger the new custom code action to execute the custom instruction code:

sends a request to the action web address when the custom workflow actions system executes the previously created workflow, wherein the request specifies a user for which the customized action is being performed on behalf of and values to enter for the action inputs; and

triggers, based upon the request, the customized action against the enrolled object, wherein an input field for the previously created workflow is populated with a value pulled from a property on the enrolled object, wherein the property of the enrolled object is designated for workflows.

13. The method of claim 12 , further comprising the custom workflow actions system for controlling, configuring, and executing the previously created workflow in a platform, wherein the custom workflow actions system utilizes an automation application programming interface (API) to provide at least one of a “Get” functionality, a “Post” functionality, a “Put” functionality, or a “Delete” functionality with respect to the previously created workflow.

14. The method of claim 12 , further comprising defining the new custom code action with workflow-related information for the previously created workflow, a preferred request format for requests received, the action name, and at least one action input.

15. The method of claim 12 , further comprising determining a success of the new custom code action being triggered by examining a status code returned that indicates at least one of: an action completed successfully, an action failed, or a temporary problem with service.

16. The method of claim 12 , wherein the one or more events are defined as a change in a platform such that the platform provides one or more actions including at least one of configuring or setting properties, sending emails, sending notifications, or calling one or more web addresses based, at least partially, on the change in the platform.

17. The method of claim 12 , wherein the new custom code action includes a function that when executed allows for a platform to operate on data that is associated with the previously created workflow.

18. The method of claim 17 , wherein the data relates to enrollment of one or more objects, and wherein the one or more objects include at least one of a core object or a custom object such that object-related data is available for operation when the previously created workflow is executed.

19. The method of claim 12 , wherein the new custom code action provides at least one of: a process for keeping user data organized by reformatting data, a process for driving other processes, a data cleanup process, data formatting and reformatting processes, an advanced lead rotation process, a service level agreement (SLA) management process, a verification process of customer data inputs based on an external service, or an advanced customer onboarding automation process.

20. A non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed across one or more processors, causes at least a portion of the one or more processors to perform operations comprising:

creating a new workflow associated with one or more events;

creating a new custom code action that is added to the new workflow based upon user input through a custom workflow actions system, wherein the new custom code action is defined as an action name, action inputs, input options defining a set of valid values for the action inputs, and an action web address;

receiving, through a code editor related to one or more actions in the new workflow, a custom instruction code for a customized action associated with the new custom code action;

enrolling an object, within a customer relationship management (CRM) system, into the new workflow as an enrolled object;

executing the new workflow based on an occurrence of the one or more events to trigger the new custom code action to execute the custom instruction code that;

sends a request to the action web address when the custom workflow actions system executes the new workflow, wherein the request specifies a user for which the customized action is being performed on behalf of and values to enter for the action inputs; and

triggers, based upon the request, the customized action against the enrolled object, wherein an input field for the new workflow is populated with a value pulled from a property on the enrolled object, wherein the property of the enrolled object is designated for workflows.

21. The computer readable storage medium of claim 20 , wherein the new custom code action provides at least one of: a process for keeping user data organized by reformatting data, a process for driving other processes, a data cleanup process, data formatting and reformatting processes, an advanced lead rotation process, a service level agreement (SLA) management process, a verification process of customer data inputs based on an external service, or an advanced customer onboarding automation process.

Assignments (2)
SECURITY INTEREST Recorded Feb 12, 2026
From: HUBSPOT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 074818/0036 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2022
From: TREMBLAY, JESSE; RUSSELL, JOHN
To: HUBSPOT, INC.
Reel/Frame 060621/0398 →
Continuity (2)
Provisional Application 63201274 · Apr 21, 2021
Related Publication 20220343250A1 · Oct 27, 2022
References Cited (194)
US 7136941B2 · Nguyen et al. · 2006 [cited by applicant]
US 7580982B2 · Owen et al. · 2009 [cited by applicant]
US 7584114B2 · Estrada et al. · 2009 [cited by applicant]
US 7792835B2 · Bohannon et al. · 2010 [cited by applicant]
US 7831676B1 · Nagar · 2010 [cited by applicant]
US 7984297B2 · Bohannon et al. · 2011 [cited by applicant]
US 7992145B2 · Emerson et al. · 2011 [cited by applicant]
US 8006261B1 · Haberman et al. · 2011 [cited by applicant]
US 8224902B1 · Glasser et al. · 2012 [cited by applicant]
US 8442969B2 · Gross · 2013 [cited by applicant]
US 8594618B2 · Meyer et al. · 2013 [cited by applicant]
US 8706800B1 · Ahmed et al. · 2014 [cited by applicant]
US 8719356B2 · Dillingham et al. · 2014 [cited by applicant]
US 9304862B2 · Simon et al. · 2016 [cited by applicant]
US 9305104B2 · Wu et al. · 2016 [cited by applicant]
US 9317816B2 · Zeng et al. · 2016 [cited by applicant]
US 9356947B2 · Shraim et al. · 2016 [cited by applicant]
US 10115060B2 · Chestnut et al. · 2018 [cited by applicant]
US 10217058B2 · Gamon et al. · 2019 [cited by applicant]
US 10387559B1 · Wendt et al. · 2019 [cited by applicant]
US 10771425B2 · Kebinger et al. · 2020 [cited by applicant]
US 10826866B2 · Kramer et al. · 2020 [cited by applicant]
US 10853082B1 · Aleti et al. · 2020 [cited by applicant]
US 10867003B2 · O'Donnell et al. · 2020 [cited by applicant]
US 10911394B2 · Kramer et al. · 2021 [cited by applicant]
US 10931623B2 · O'Brien et al. · 2021 [cited by applicant]
US 10992780B1 · Rudrappa et al. · 2021 [cited by applicant]
US 11070511B2 · O'Brien et al. · 2021 [cited by applicant]
US 11165741B2 · O'Brien et al. · 2021 [cited by applicant]
US 11200581B2 · Williams et al. · 2021 [cited by applicant]
US 11240193B2 · O'Brien et al. · 2022 [cited by applicant]
US 20020099697A1 · Jensen-Grey · 2002 [cited by applicant]
US 20020152254A1 · Teng · 2002 [cited by applicant]
US 20020199194A1 · Ali · 2002 [cited by applicant]
US 20030097617A1 · Goeller et al. · 2003 [cited by applicant]
US 20030208472A1 · Pham · 2003 [cited by applicant]
US 20040034652A1 · Hofmann · 2004 [cited by applicant]
US 20040111327A1 · Kidd · 2004 [cited by applicant]
US 20040122803A1 · Dom et al. · 2004 [cited by applicant]
US 20040260621A1 · Foster · 2004 [cited by applicant]
US 20050160166A1 · Kraenzel · 2005 [cited by applicant]
US 20050188028A1 · Brown, Jr. et al. · 2005 [cited by applicant]
US 20050210111A1 · Fukudome · 2005 [cited by applicant]
US 20050265319A1 · Clegg et al. · 2005 [cited by applicant]
US 20060095556A1 · Arnold et al. · 2006 [cited by applicant]
US 20060212931A1 · Shull et al. · 2006 [cited by applicant]
US 20060224673A1 · Stern et al. · 2006 [cited by applicant]
US 20060242140A1 · Wnek · 2006 [cited by applicant]
US 20070011073A1 · Gardner et al. · 2007 [cited by applicant]
US 20070136430A1 · Qureshi et al. · 2007 [cited by applicant]
US 20070203996A1 · Davitz et al. · 2007 [cited by applicant]
US 20070299777A1 · Shraim et al. · 2007 [cited by applicant]
US 20080027951A1 · Bohannon et al. · 2008 [cited by applicant]
US 20080034432A1 · Bohannon et al. · 2008 [cited by applicant]
US 20080168269A1 · Wilson · 2008 [cited by applicant]
US 20080172606A1 · White · 2008 [cited by applicant]
US 20090013041A1 · Farmer et al. · 2009 [cited by applicant]
US 20090019003A1 · Bohannon et al. · 2009 [cited by applicant]
US 20090119268A1 · Bandaru et al. · 2009 [cited by applicant]
US 20090138711A1 · Heimbigner · 2009 [cited by applicant]
US 20090248813A1 · Sawhney · 2009 [cited by applicant]
US 20100161506A1 · Bosenick et al. · 2010 [cited by applicant]
US 20100161735A1 · Sharma · 2010 [cited by applicant]
US 20100186088A1 · Banerjee et al. · 2010 [cited by applicant]
US 20100228777A1 · Imig et al. · 2010 [cited by applicant]
US 20100235915A1 · Memon et al. · 2010 [cited by applicant]
US 20100312837A1 · Bodapati et al. · 2010 [cited by applicant]
US 20110029504A1 · King et al. · 2011 [cited by applicant]
US 20110149725A1 · Zhao et al. · 2011 [cited by applicant]
US 20110179067A1 · Dalvi et al. · 2011 [cited by applicant]
US 20110258218A1 · Hayes et al. · 2011 [cited by applicant]
US 20120053887A1 · Nurmi · 2012 [cited by applicant]
US 20120191546A1 · Phelan et al. · 2012 [cited by applicant]
US 20120197862A1 · Woytowitz et al. · 2012 [cited by applicant]
US 20120198056A1 · Shama et al. · 2012 [cited by applicant]
US 20120202449A1 · Meyer et al. · 2012 [cited by applicant]
US 20120316904A1 · Eder · 2012 [cited by applicant]
US 20120324580A1 · Glasser et al. · 2012 [cited by applicant]
US 20130007627A1 · Monaco · 2013 [cited by applicant]
US 20130047034A1 · Ssalomon et al. · 2013 [cited by applicant]
US 20130054622A1 · Karmarkar et al. · 2013 [cited by applicant]
US 20130073336A1 · Heath · 2013 [cited by applicant]
US 20130138555A1 · Shishkov · 2013 [cited by applicant]
US 20130238715A1 · Sanyal et al. · 2013 [cited by applicant]
US 20130339456A1 · Nikolayev et al. · 2013 [cited by applicant]
US 20140006139A1 · Aggarwal et al. · 2014 [cited by applicant]
US 20140025683A1 · Howland et al. · 2014 [cited by applicant]
US 20140025763A1 · Furlong et al. · 2014 [cited by applicant]
US 20140105508A1 · Arora · 2014 [cited by applicant]
US 20140108309A1 · Frank et al. · 2014 [cited by applicant]
US 20140156681A1 · Lee et al. · 2014 [cited by applicant]
US 20140214974A1 · Kurzanski et al. · 2014 [cited by applicant]
US 20140236663A1 · Smith · 2014 [cited by applicant]
US 20140258169A1 · Wong et al. · 2014 [cited by applicant]
US 20140279622A1 · Bharadwaj et al. · 2014 [cited by applicant]
US 20140280453A1 · Mattison et al. · 2014 [cited by applicant]
US 20140280614A1 · Alakuijala et al. · 2014 [cited by applicant]
US 20140328172A1 · Kumar et al. · 2014 [cited by applicant]
US 20140372363A1 · Chestnut et al. · 2014 [cited by applicant]
US 20140372566A1 · Milne et al. · 2014 [cited by applicant]
US 20150006647A1 · Steinberg et al. · 2015 [cited by applicant]
US 20150019910A1 · Simon et al. · 2015 [cited by applicant]
US 20150032826A1 · Gunaratnam · 2015 [cited by applicant]
US 20150032827A1 · Tyler et al. · 2015 [cited by applicant]
US 20150081611A1 · Shivakumar · 2015 [cited by applicant]
US 20150100896A1 · Shmarovoz et al. · 2015 [cited by applicant]
US 20150154664A1 · Dawson et al. · 2015 [cited by applicant]
US 20150170088A1 · Rizk · 2015 [cited by examiner]
US 20150188874A1 · Feinstein · 2015 [cited by applicant]
US 20150237061A1 · Shraim et al. · 2015 [cited by applicant]
US 20150248490A1 · Myslinski · 2015 [cited by applicant]
US 20150286357A1 · Penha et al. · 2015 [cited by applicant]
US 20150312187A1 · Menna et al. · 2015 [cited by applicant]
US 20150324469A1 · Keyngnaert et al. · 2015 [cited by applicant]
US 20150347924A1 · Zeng et al. · 2015 [cited by applicant]
US 20150379018A1 · Gur et al. · 2015 [cited by applicant]
US 20150381552A1 · Vijay et al. · 2015 [cited by applicant]
US 20160012364A1 · Filgueiras · 2016 [cited by applicant]
US 20160020917A1 · Tuatini et al. · 2016 [cited by applicant]
US 20160026720A1 · Lehrer et al. · 2016 [cited by applicant]
US 20160036750A1 · Yuan · 2016 [cited by applicant]
US 20160063560A1 · Hameed et al. · 2016 [cited by applicant]
US 20160078455A1 · O'Donnell et al. · 2016 [cited by applicant]
US 20160119260A1 · Ghafourifar et al. · 2016 [cited by applicant]
US 20160180248A1 · Regan · 2016 [cited by applicant]
US 20160226808A1 · Lin · 2016 [cited by applicant]
US 20160232540A1 · Gao et al. · 2016 [cited by applicant]
US 20160156858A1 · Tees · 2016 [cited by applicant]
US 20160307191A1 · Turgeman et al. · 2016 [cited by applicant]
US 20160315969A1 · Goldstein · 2016 [cited by applicant]
US 20160335414A1 · Isaacs · 2016 [cited by examiner]
US 20160359793A1 · Kraios · 2016 [cited by applicant]
US 20170005954A1 · Shaltiel et al. · 2017 [cited by applicant]
US 20170031894A1 · Bettersworth et al. · 2017 [cited by applicant]
US 20170068982A1 · Vangala et al. · 2017 [cited by applicant]
US 20170103439A1 · Kolb et al. · 2017 [cited by applicant]
US 20170103441A1 · Kolb et al. · 2017 [cited by applicant]
US 20170186042A1 · Wong et al. · 2017 [cited by applicant]
US 20170221089A1 · Zhu et al. · 2017 [cited by applicant]
US 20170264577A1 · Ganin et al. · 2017 [cited by applicant]
US 20170289287A1 · Modi et al. · 2017 [cited by applicant]
US 20170317962A1 · Chen · 2017 [cited by applicant]
US 20170337569A1 · Sasson · 2017 [cited by applicant]
US 20170353410A1 · Gonzales · 2017 [cited by applicant]
US 20180039696A1 · Zhai et al. · 2018 [cited by applicant]
US 20180053328A1 · Simonovic · 2018 [cited by examiner]
US 20180097759A1 · Brechbuhl et al. · 2018 [cited by applicant]
US 20180097828A1 · Coskun · 2018 [cited by applicant]
US 20180121986A1 · Akkiraju et al. · 2018 [cited by applicant]
US 20180137203A1 · Hennekey et al. · 2018 [cited by applicant]
US 20180219818A1 · Kramer et al. · 2018 [cited by applicant]
US 20180219819A1 · O'Brien et al. · 2018 [cited by applicant]
US 20180219820A1 · Kramer et al. · 2018 [cited by applicant]
US 20180219829A1 · Kebinger et al. · 2018 [cited by applicant]
US 20180219830A1 · O'Brien et al. · 2018 [cited by applicant]
US 20180336495A1 · Chestnut et al. · 2018 [cited by applicant]
US 20190347668A1 · Williams et al. · 2019 [cited by applicant]
US 20200036673A1 · O'Brien et al. · 2020 [cited by applicant]
US 20200065857A1 · Lagi et al. · 2020 [cited by applicant]
US 20200067861A1 · Leddy et al. · 2020 [cited by applicant]
US 20200210867A1 · Banis et al. · 2020 [cited by applicant]
US 20200244615A1 · O'Brien et al. · 2020 [cited by applicant]
US 20200326988A1 · Lee · 2020 [cited by examiner]
US 20210073026A1 · Myers · 2021 [cited by examiner]
US 20210349960A1 · Hennekey et al. · 2021 [cited by applicant]
US 20210352037A1 · O'Brien et al. · 2021 [cited by applicant]
US 20210357375A1 · Urdiales et al. · 2021 [cited by applicant]
US 20210357378A1 · Urdiales et al. · 2021 [cited by applicant]
US 20220067750A1 · Williams et al. · 2022 [cited by applicant]
US 20220092028A1 · Layton et al. · 2022 [cited by applicant]
WO 2016156858A1 · 2016 [cited by applicant]
WO 2018089619A1 · 2018 [cited by applicant]
WO 2018140975A1 · 2018 [cited by applicant]
WO 2018209254A1 · 2018 [cited by applicant]
WO WO2022140650A2 · 2022 [cited by examiner]
Timothy Kinsman, Mairieli Wessel, Marco A. Gerosa, and Christoph Treude, How Do Software Developers Use GitHub Actions to Automate Their Workflows?, University of Adelaide, Australia, University of Sao Paulo, Brazil, No… [cited by examiner]
U.S. Appl. No. 17/121,300, filed Dec. 14, 2020, Pending. [cited by applicant]
U.S. Appl. No. 17/655,320, filed Mar. 17, 2022, Pending. [cited by applicant]
U.S. Appl. No. 17/657,687, filed Apr. 1, 2022, Pending. [cited by applicant]
U.S. Appl. No. 17/654,519, filed Mar. 11, 2022, Pending. [cited by applicant]
U.S. Appl. No. 17/654,535, filed Mar. 11, 2022, Pending. [cited by applicant]
U.S. Appl. No. 17/654,542, filed Mar. 11, 2022, Pending. [cited by applicant]
U.S. Appl. No. 17/654,544, filed Mar. 11, 2022, Pending. [cited by applicant]
Givens, Brien , “Bounded Knapsack Algorithm”, www.codeproject.com,https://www.codeproject.com/Articles/706838/Bounded-Knapsack-Algorithm, Jan. 8, 2014, 5 pages. [cited by applicant]
Godiksen, Brian , “Best Practices with Sender Policy Framework (SPF)”, www.socketlabs.com,https://www.socketlabs.com/blog/best-practices-sender-policy-framework-spf/, Sep. 14, 2017, 16 pages. [cited by applicant]
Gorrell, Amy , “How to Build Your SPF Record in 5 Simple Steps”, validity.com, https://www.validity.com/blog/how-to-build-your-spf-record-in-5-simple-steps/, Feb. 9, 2019, 3 pages. [cited by applicant]
PCT/US18/32348 , “International Application Serial No. PCT/US18/32348, International Preliminary Report on Patentability mailed Nov. 21, 2019”, HubSpot, Inc., 9 pages. [cited by applicant]
PCT/US18/32348 , “International Application Serial No. PCT/US18/32348, International Search Report and Written Opinion mailed Jul. 30, 2018”, HubSpot, Inc., 10 Pages. [cited by applicant]
PCT/US2017/060835 , “International Application Serial No. PCT/US2017/060835, International Preliminary Report on Patentability mailed May 23, 2019”, HubSpot, Inc., 7 pages. [cited by applicant]
PCT/US2017/060835 , “International Application Serial No. PCT/US2017/060835, International Search Report and Written Opinion mailed Feb. 14, 2018”, HubSpot Inc., 12 pages. [cited by applicant]
PCT/US2018/016038 , “International Application Serial No. PCT/US2018/016038, International Preliminary Report on Patentability mailed Aug. 8, 2019”, HubSpot, Inc., 8 pages. [cited by applicant]
PCT/US2018/016038 , “International Application Serial No. PCT/US2018/016038, International Search Report and the Written Opinion mailed May 29, 2018.”, Hubspot Inc., 12 pages. [cited by applicant]
PCT/US2018/016038 , “International Application Serial No. PCT/US2018/016038, Invitation to Pay Additional Fees and, Where Applicable, Protest Fee mailed on Apr. 2, 2018”, Hubspot Inc., 3 pages. [cited by applicant]
Qureshi , et al., “Improving the Performance of Crawler Using Body Text Normalization”, 2 Compusoft 7, 2013, pp. 215, 216. [cited by applicant]
Cited By (1)
US 12,676,788