IP Library › Granted Patent US 12,381,792
Granted Patent B2
US 12,381,792 · App. 18/618,624 · Granted Aug 5, 2025

Software service platform

Inventor: Ramashish Ramprakash Vishwakarma (Pune, IN)
Assignee: Avalara, Inc.
H04L41/5096G06F9/547G06F16/148H04L41/5045
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,381,792
App. No.
18/618,624
Granted
Aug 5, 2025
Kind
B2
Abstract

Some embodiments of the present disclosure may relate generally to platforms for providing software services. Other embodiments may be disclosed and/or claimed.

Claims (67)

1. A system comprising:

a processor; and

memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:

presenting a user interface on a display screen of a client computing device;

receiving user input via the user interface, the user input including an identifier for a customized extension, the customized extension being used to indicate one or more additional processes, wherein each process includes at least one hook associated with a service;

storing the customized extension identifier in a configuration file stored in the memory;

receiving, from the client computing device over a network, a request to perform the service;

retrieving the configuration file stored in the memory;

identifying parameters associated with a response to the request;

identifying, based on the parameters associated with the response to the request, the customized extension;

identifying a customized process based on the customized extension;

determining whether the customized process is to be executed before performing the service or after performing the service;

performing the service using the customized extension;

performing the customized process based on the determination of whether the customized process is to be executed before performing the service or after performing the service;

generating the response to the request to perform the service, wherein the response is formatted based on parameters in an update mapping node; and

transmitting the response to the request to perform the service to the client computing device over the network.

2. The system of claim 1 , wherein a plurality of nodes in the configuration file includes a feature node identifying an application program interface (API) to be used in conjunction with performing the service.

3. The system of claim 1 , wherein an object component in the configuration file includes a query node that includes information for performing a query for an attribute of the object component.

4. The system of claim 3 , wherein the information for performing the query includes object query language (OQL) for performing the query.

5. The system of claim 4 , wherein the memory further stores instructions for causing the system to:

present a user interface on a display screen of the client computing device;

receiving user input via the user interface, the user input including OQL for performing the query; and

storing the OQL for performing the query within the query node in the configuration file.

6. The system of claim 3 , wherein the object component further includes a parameter node that includes parameters for performing the query for the attribute.

7. The system of claim 6 , wherein the memory further stores instructions for causing the system to:

present a user interface on a display screen of the client computing device;

receiving user input via the user interface, the user input including the parameters for performing the query; and

storing the parameters for performing the query within the parameter node in the configuration file.

8. The system of claim 3 , wherein the object component further includes a mapping node that includes parameters associated with the request to perform the service.

9. The system of claim 1 , wherein the configuration file comprises an identifier for an object and validation parameters for the object, and wherein performing the service includes validating the object based on the validation parameters.

10. The system of claim 9 , wherein the object is an account, and wherein the validation parameters include an account identifier and address information associated with the account.

11. The system of claim 10 , wherein the validation parameters include a mapping node that includes parameters associated with a request to validate the account.

12. The system of claim 10 , wherein the validation parameters include an update mapping node that includes parameters associated with a response to the request to validate the account.

13. The system of claim 9 , wherein the memory further stores instructions for causing the system to:

present a user interface on a display screen of the client computing device;

receiving user input via the user interface, the user input including the identifier for the object;

generating the validation parameters for the object based on the object identifier; and

storing the object identifier and the validation parameters for the object in the configuration file.

14. The system of claim 1 , wherein the memory further stores instructions for causing the system to:

present the user interface on the display screen of the client computing device, in which the user interface includes an identifier for a hook associated with the service;

receive additional user input via the user interface, the additional user input including a definition for the customized extension; and

store the definition for the customized extension in the configuration file.

15. The system of claim 1 , wherein performing the service includes:

executing a first process associated with the service; and

executing a second process associated with the customized extension.

16. A method comprising:

presenting a user interface on a display screen of a client computing device;

receiving user input via the user interface, the user input including an identifier for a customized extension of a computer service, the customized extension being used to indicate one or more additional processes, wherein each process includes at least one hook associated with a service;

storing the customized extension identifier in a configuration file stored in memory coupled to a computer system;

receiving, by the computer system from the client computing device over a network, a request to perform the service;

retrieving, by the computer system, the configuration file stored in memory coupled to the computer system;

identifying, by the computer system, parameters associated with a response to the request;

identifying, by the computer system and based on the parameters associated with the response to the request, the customized extension;

performing the service, by the computer system, using the customized extension;

generating, by the computer system, the response to the request to perform the service, wherein the response is formatted based on parameters in an update mapping node; and

transmitting, by the computer system, the response to the request to perform the service to the client computing device over the network.

17. A non-transitory computer-readable medium storing instructions that, when executed by a computer system, cause the computer system to perform operations comprising:

presenting a user interface on a display screen of a client computing device;

receiving user input via the user interface, the user input including an identifier for a customized extension of a computer service, the customized extension being used to indicate one or more additional processes, wherein each process includes at least one hook associated with a service;

storing the customized extension identifier in a configuration file stored in memory coupled to the computer system;

receiving, from the client computing device over a network, a request to perform the service;

retrieving the configuration file stored in memory coupled to the computer system;

identifying parameters associated with a response to the request;

identifying, based on the parameters associated with the response to the request, the customized extension;

performing the service using the customized extension;

generating the response to the request to perform the service, wherein the response is formatted based on parameters in an update mapping node; and

transmitting the response to the request to perform the service to the client computing device over the network.

Assignments (2)
SECURITY INTEREST Recorded Mar 28, 2025
From: AVALARA, INC.; EDISON VAULT, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 070671/0097 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2024
From: VISHWAKARMA, RAMASHISH RAMPRAKASH
To: AVALARA, INC.
Reel/Frame 066925/0661 →
Priority Claims (1)
IN 201941014453 · Apr 10, 2019 · national
Continuity (2)
Continuation 16380914 · Apr 10, 2019
Related Publication 20240283715A1 · Aug 22, 2024
References Cited (36)
US 7783536B2 · William et al. · 2010 [cited by applicant]
US 7933803B1 · Nadler et al. · 2011 [cited by applicant]
US 8620578B1 · Brown et al. · 2013 [cited by applicant]
US 8725407B2 · Hurley et al. · 2014 [cited by applicant]
US 8938061B1 · Dendy et al. · 2015 [cited by applicant]
US 9037735B1 · Fallows · 2015 [cited by examiner]
US 9075687B1 · Liu et al. · 2015 [cited by applicant]
US 9462089B1 · Fallows · 2016 [cited by applicant]
US 9760915B2 · Pavlou et al. · 2017 [cited by applicant]
US 10425295B1 · Hazen et al. · 2019 [cited by applicant]
US 10445818B1 · Chowdhary · 2019 [cited by applicant]
US 10469330B1 · Roth et al. · 2019 [cited by applicant]
US 10769611B2 · McNeel · 2020 [cited by applicant]
US 20020138765A1 · Fishman et al. · 2002 [cited by applicant]
US 20040187096A1 · Dumont · 2004 [cited by examiner]
US 20040194053A1 · Bonsma · 2004 [cited by examiner]
US 20050055279A1 · Baur · 2005 [cited by examiner]
US 20060041665A1 · Karnik · 2006 [cited by examiner]
US 20070136158A1 · Rawlings et al. · 2007 [cited by applicant]
US 20070136159A1 · Rawlings et al. · 2007 [cited by applicant]
US 20090259683A1 · Murty · 2009 [cited by examiner]
US 20100106772A1 · Gupta et al. · 2010 [cited by applicant]
US 20120330699A1 · Allgaier · 2012 [cited by examiner]
US 20130013471A1 · Fishman · 2013 [cited by applicant]
US 20150011311A1 · Relan et al. · 2015 [cited by applicant]
US 20150089476A1 · Dhoolia et al. · 2015 [cited by applicant]
US 20150229521A1 · Mayer et al. · 2015 [cited by applicant]
US 20150317147A1 · Nachimuthu et al. · 2015 [cited by applicant]
US 20160048383A1 · Nachimuthu et al. · 2016 [cited by applicant]
US 20160165004A1 · Tennie et al. · 2016 [cited by applicant]
US 20160335067A1 · Narayanan · 2016 [cited by applicant]
US 20170011135A1 · Srivastava · 2017 [cited by examiner]
US 20170168783A1 · Liu · 2017 [cited by examiner]
US 20180167437A1 · Kumar N · 2018 [cited by examiner]
US 20190065553A1 · Young et al. · 2019 [cited by applicant]
US 20190098071A1 · Bitincka · 2019 [cited by examiner]