IP Library Granted Patent US 12,367,082
Granted Patent B2
US 12,367,082 · App. 17/664,259 · Granted Jul 22, 2025

Dynamically integrating a client application with third-party services

Inventors: Rajneesh Kesavan (Bangalore, IN); Niranjan Paramashivaiah (Bangalore, IN); Pavan Rajkumar Rangain (Bangalore, IN); Vasu Narayanappa (Bangalore, IN); Sachin Vas (Bangalore, IN); Nirmalya Ganguly (Bangalore, IN)
Assignee: Omnissa, LLC
G06F9/541H04L67/53H04L67/34
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,367,082
App. No.
17/664,259
Granted
Jul 22, 2025
Kind
B2
Abstract

Disclosed are various approaches for dynamically integrating a client application with multiple third-party services. An integration service receives a request to perform an action relative to a particular third-party service from a client device. The request is received through a first application programming interface (API) generic to a plurality of third-party services. The integration service communicates with the particular third-party service to perform the action using a second API specific to the particular third-party service. The integration service sends a response to the client device through the first API. The response is based at least in part on a result of the action and includes an indication of one of a plurality of predefined user interfaces.

Claims (36)

1. A system for dynamically integrating client applications with third-party services, comprising:

at least one computing device comprising a processor and a memory; and

program instructions executable by the at least one computing device, the program instructions causing the at least one computing device to at least:

send, to a client device, a configuration profile that specifies (i) a user interface element associated with an action executable by a third-party service, (ii) a set of executable code that is configured to be installed on the client device, wherein upon invocation of the user interface element, the executable code communicates with an integration service to cause the third-party service to execute the action, and (iii) an authentication credential that authenticates a user of the client device to the third-party service;

send at least one user interface template to the client device, wherein the at least one user interface template includes code for rendering the user interface element, wherein the code for rendering the user interface element includes code that implements at least one callback to native code executed in the client device;

receive, by the integration service from the client device, a request to perform the action relative to the third-party service, the request being received through a first application programming interface (API) generic to a plurality of third-party services, wherein the request is initiated by invocation of the user interface element on the client device;

communicate with the third-party service to perform the action using a second API specific to the third-party service, wherein the communicating includes sending the authentication credential to the third-party service; and

send a response to the client device through the first API, the response being based at least in part on a result of the action.

2. The system of claim 1 wherein a user interaction with the user interface element rendered by the client device causes the request to perform the action to be sent to the integration service.

3. The system of claim 1 , wherein the client device is configured by a management service with a plurality of web code templates respectively implementing a plurality of user interface elements including the user interface element.

4. The system of claim 1 , wherein the request to perform the action includes a uniform resource locator (URL) and at least one parameter.

5. The system of claim 1 , wherein the response further includes a status code and a status message.

6. The system of claim 1 , wherein the request is generated by a client application executed on the client device, the client application being managed by a management service.

7. The system of claim 6 , wherein the client application is an email client application, and the action is relative to an email message.

8. The system of claim 1 , wherein the configuration profile is sent to the client device from a management service upon enrolling the client device for management with the management service, wherein during enrollment of the client device, the management service assigns the authentication credential to the user of the client device.

9. A method for dynamically integrating client applications with third-party services, comprising:

sending, to a client device, a configuration profile that specifies (i) a user interface element associated with an action executable by a third-party service, (ii) a set of executable code that is configured to be installed on the client device, wherein upon invocation of the user interface element, the executable code communicates with an integration service to cause the third-party service to execute the action, and (iii) an authentication credential that authenticates a user of the client device to the third-party service;

sending at least one user interface template to the client device, wherein the at least one user interface template includes code for rendering the user interface element, wherein the code for rendering the user interface element includes code that implements at least one callback to native code executed in the client device;

receiving, by the integration service from the client device, a request to perform the action relative to the third-party service, the request being received through a first application programming interface (API) generic to a plurality of third-party services, wherein the request is initiated by invocation of the user interface element on the client device;

communicating with the third-party service to perform the action using a second API specific to the particular third-party service, wherein the communicating includes sending the authentication credential to the third-party service; and

sending a response to the client device through the first API, the response being based at least in part on a result of the action.

10. The method of claim 9 , further comprising configuring the client device, based at least in part on the response, to render the one of a plurality of predefined user interfaces on a display.

11. The method of claim 9 , wherein the at least one user interface template is sent to the client device in response to the client device requesting the at least one user interface template as a result of processing the configuration profile.

12. The method of claim 11 , wherein sending the configuration profile to the client device is performed as part of a device management enrollment process.

13. The method of claim 9 , further comprising sending data encoding at least one regular expression to the client device before receiving the request to perform the action, wherein the at least one regular expression identifies at least one entity to which the action can be applied.

14. A non-transitory computer-readable medium comprising machine-readable instructions, wherein when executed by a processor of a computing device, the machine-readable instructions cause the computing device to at least:

send, to a client device, a configuration profile that specifies (i) a user interface element associated with an action executable by a third-party service, (ii) a set of executable code that is configured to be installed on the client device, wherein upon invocation of the user interface element, the executable code communicates with an integration service to cause the third-party service to execute the action, and (iii) an authentication credential that authenticates a user of the client device to the third-party service;

send at least one user interface template to the client device, wherein the at least one user interface template includes code for rendering the user interface element, wherein the code for rendering the user interface element includes code that implements at least one callback to native code executed in the client device;

receive, by the integration service from the client device, a request to perform the action relative to the third-party service, the request being received through a first application programming interface (API) generic to a plurality of third-party services, wherein the request is initiated by invocation of the user interface element on the client device;

communicate with the third-party service to perform the action using a second API specific to the particular third-party service, wherein the communicating includes sending the authentication credential to the third-party service; and

send a response to the client device through the first API, the response being based at least in part on a result of the action.

15. The non-transitory computer-readable medium of claim 14 , wherein the configuration profile is sent to the client device as part of a device management enrollment process; and

wherein the at least one user interface template is provided to the client device in response to the client device requesting the at least one user interface template as a result of processing the configuration profile.

16. The non-transitory computer-readable medium of claim 14 , wherein the machine-readable instructions further cause the computing device to at least send data encoding at least one regular expression to the client device before receiving the request to perform the action, wherein the at least one regular expression identifies at least one entity to which the action can be applied.

17. The non-transitory computer-readable medium of claim 14 , wherein the request to perform the action includes a uniform resource locator (URL) and at least one parameter, and wherein the response further includes a status code and a status message.

18. The non-transitory computer-readable medium of claim 14 , wherein a client application that generates the request is independent of the second API.

Assignments (2)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: AIRWATCH LLC
To: OMNISSA, LLC
Reel/Frame 068327/0670 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →