IP Library › Granted Patent US 12,613,719
Granted Patent B1
US 12,613,719 · App. 19/065,766 · Granted Apr 28, 2026

User device configuration specification and conflict resolution module

Inventors: Rachel Rochin (Palm Desert, CA); Michael Boylan (Bellevue, WA)
Assignee: Iru, Inc.
G06F9/451
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,613,719
App. No.
19/065,766
Filed
Feb 27, 2025
Granted
Apr 28, 2026
Kind
B1
Art Unit
2194
USPC
719/328
Abstract

In some examples, a method involves rendering a graphical user interface having an Assignment Map canvas for specifying an Assignment Map, the Assignment Map graphically representing configuration data for a set of one or more user devices. User input specifies a set of conditional logic blocks at respective graphical positions within the Assignment Map canvas, each conditional logic block comprising one or more conditional logic nodes, each conditional logic node having a respective assignment rule and a respective set of Library Items. For each user device, the set of conditional logic blocks are evaluated in an order determined by a relative graphical position of each conditional logic block along a root line within the Assignment Map canvas. Each user device is then configured using respective configuration data generated based on an evaluation outcome of the plurality of conditional logic blocks.

Claims (68)

1 . A method, comprising:

graphically rendering, by one or more processors, a graphical user interface having an Assignment Map canvas for specifying an Assignment Map, the Assignment Map graphically representing configuration data for a set of one or more user devices;

receiving, by the one or more processors, user input specifying a plurality of sets of conditional logic nodes graphically arranged within the Assignment Map canvas within a plurality of conditional logic blocks that are arranged at respective graphical positions along a root line within the Assignment Map canvas;

wherein the plurality of conditional logic blocks are graphically arranged at respective graphical positions along the root line based on an order in which the plurality of conditional logic blocks are to be evaluated;

wherein each conditional logic block comprises a set of one or more conditional logic nodes;

wherein the sets of conditional logic nodes are graphically arranged within the conditional logic blocks based on an order in which the conditional logic nodes are to be evaluated;

wherein each conditional logic node includes a respective assignment rule and one or more of the conditional logic nodes is associated with a respective set of one or more Library Items;

for each user device of the set of one or more user devices, evaluating, by the one or more processors, the plurality of conditional logic blocks in an order determined by relative graphical position of each conditional logic block along a root line within the Assignment Map canvas;

generating, by the one or more processors, respective configuration data for each user device based on an evaluation outcome of the plurality of conditional logic blocks, the respective configuration data including one or more Library Items selected for that user device;

determining, by the one or more processors, a priority hierarchy of the plurality of conditional logic blocks based on the relative graphical positions of the conditional logic blocks within the Assignment Map canvas;

resolving, by the one or more processors, conflicts between Library Items within the Assignment Map based on the determined priority hierarchy of the conditional logic blocks;

transmitting, by the one or more processors, the respective configuration data to each user device via a secure communication channel encrypted using an encryption protocol; and

applying, by a device agent on each user device, the one or more Library Items specified in the respective configuration data;

wherein the evaluating the plurality of conditional logic blocks comprises:

for each user device of the set of one or more user devices, iterating through each conditional logic block in the Assignment Map canvas in an order based on relative graphical positions therebetween;

for each conditional logic block, iterating through one or more conditional logic nodes in the conditional logic block;

determining, for each conditional logic node, whether attributes of the user device satisfy an assignment rule of that conditional logic node;

in response to determining that the assignment rule is satisfied, adding a respective set of one or more Library Items associated with that conditional logic node to the configuration data for that user device; and

ceasing evaluation of subsequent conditional logic nodes within that conditional logic block and proceeding to evaluate a next conditional logic block of the plurality of conditional logic blocks.

2 . The method of claim 1 , wherein evaluating the plurality of conditional logic blocks comprises:

identifying, by the one or more processors, the root line of the Assignment Map canvas, the root line defining a primary evaluation flow of the plurality of conditional logic blocks;

identifying, by the one or more processors, one or more nested conditional logic blocks having a secondary evaluation flow that diverges from the primary evaluation flow of the root line;

evaluating, by the one or more processors, the nested conditional logic blocks along the secondary evaluation flow; and

reconverging, by the one or more processors, the secondary evaluation flow with the primary evaluation flow of the root line after evaluation of the nested conditional logic blocks.

3 . The method of claim 2 , wherein:

the primary evaluation flow of the root line and the secondary evaluation flow of the nested conditional logic blocks are graphically distinguished within the Assignment Map canvas, and wherein the graphical distinctions include:

rendering, by the one or more processors, the root line as a continuous graphical path connecting a first set of conditional logic blocks of the plurality of conditional logic blocks;

graphically rendering, by the one or more processors, the nested conditional logic blocks as a second set of conditional logic blocks having a parallel graphical path diverging from the root line; and

visually indicating, by the one or more processors, a reconvergence point where the parallel graphical path of the nested conditional logic blocks reconnects with the root line.

4 . The method of claim 2 , further comprising:

determining, by the one or more processors, an evaluation priority for the nested conditional logic blocks based on their graphical positions within the Assignment Map canvas; and

resolving, by the one or more processors, conflicts between Library Items associated with the root line and Library Items associated with the nested conditional logic blocks based on the evaluation priority to generate the configuration data for each user device.

5 . The method of claim 1 , wherein:

the attributes of the user device comprise one or more of a user device type, an operating system version of the user device, a user profile of a user associated with the user device, and a group membership of a user associated with the user device.

6 . The method of claim 1 , wherein generating respective configuration data for each user device comprises:

identifying a conflict key associated with each Library Item of the respective set of Library Items;

determining whether Library Item data already exists at an index in the configuration data corresponding to the conflict key; and

in response to determining that Library Item data already exists at the index, flagging the respective Library Item as having a conflict.

7 . The method of claim 6 , further comprising:

storing the respective Library Item at the index in the configuration data, wherein the stored Library Item overwrites any previously existing Library Item data.

8 . The method of claim 6 , wherein:

the conflict key identifies one or both of i) mutually exclusive Library Items, and ii) variants of the same Library Item.

9 . The method of claim 1 , wherein:

the Assignment Map canvas further enables user input for adding text annotations to one or more of the conditional logic blocks, conditional logic nodes, and Library Items, the text annotations being visually rendered within the Assignment Map canvas.

10 . The method of claim 1 , further comprising:

identifying, by the one or more processors, differences between a first Assignment Map and a second Assignment Map; and

rendering, by the one or more processors, a graphical display depicting the differences between the first Assignment Map and the second Assignment Map.

11 . The method of claim 10 , further comprising:

identifying, by the one or more processors, a current configuration of a user device;

using, by the one or more processors, a committed configuration of the user device to generate the first Assignment Map; and

using, by the one or more processors, an uncommitted Assignment Map as the second Assignment Map.

12 . The method of claim 1 , further comprising:

graphically distinguishing, by the one or more processors, each conditional logic block and conditional logic node that was satisfied for a user device during the evaluation of the plurality of conditional logic blocks, in accordance with a first visual motif; and

graphically distinguishing, by the one or more processors, each conditional logic node that was not satisfied for the user device during the evaluation of the plurality of conditional logic blocks, in accordance with a second visual motif.

13 . The method of claim 1 , further comprising:

receiving user input specifying a particular user device; and

graphically displaying a logic evaluation flow of that user device through the Assignment Map within the Assignment Map canvas, the display including:

each conditional logic block and conditional logic node evaluated for that user device;

the respective Library Items assigned to or excluded from the user device; and

a graphical indication of the reasons that specific Library Items were excluded from being applied to that user device.

14 . The method of claim 1 , wherein:

the Assignment Map canvas provides a user interface for repositioning conditional logic blocks along the root line via drag-and-drop functionality.

15 . The method of claim 1 , wherein:

the graphical user interface provides a user interface for filtering Library Items by user device attributes.

16 . The method of claim 1 , further comprising:

generating, by the one or more processors, a graphical indication in the Assignment Map canvas for each Library Item that was excluded from being applied to a user device, wherein the graphical indication specifies the condition that caused the exclusion.

17 . The method of claim 1 , wherein:

the determined priority hierarchy of the plurality of conditional logic blocks is opposite to the evaluation order of the plurality of conditional logic blocks based on the relative graphical positions of the conditional logic blocks along the root line within the Assignment Map canvas.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2025
From: ROCHIN, RACHEL; BOYLAN, MICHAEL
To: KANDJI, INC.
Reel/Frame 070688/0095 →
Continuity (1)
Continuation 19050215 · Feb 11, 2025
References Cited (19)
US 12169802B1 · Eldan · 2024 [cited by examiner]
US 20070027972A1 · Agrawal et al. · 2007 [cited by applicant]
US 20090044185A1 · Krivopaltsev · 2009 [cited by applicant]
US 20100037088A1 · Krivopaltsev et al. · 2010 [cited by applicant]
US 20100180221A1 · Cloward et al. · 2010 [cited by applicant]
US 20160057020A1 · Halmstad et al. · 2016 [cited by applicant]
US 20170329506A1 · Laetham · 2017 [cited by examiner]
US 20190149325A1 · Garagiola · 2019 [cited by examiner]
US 20190392617A1 · Laetham · 2019 [cited by examiner]
US 20200186982A1 · Hardy et al. · 2020 [cited by applicant]
US 20200389525A1 · Hardy et al. · 2020 [cited by applicant]
US 20210318893A1 · Zhang · 2021 [cited by examiner]
US 20210357801A1 · Ji · 2021 [cited by examiner]
US 20220360608A1 · Raleigh · 2022 [cited by examiner]
US 20240126896A1 · Elfadel · 2024 [cited by examiner]
US 20240168966A1 · Whilden · 2024 [cited by examiner]
US 20240430164A1 · Gad · 2024 [cited by examiner]
US 20250192979A1 · Boehler · 2025 [cited by examiner]
Zapier, “The blueprint for your automations”, pp. 1-6. (Year: 2023). [cited by examiner]