There are three different kinds of entities, to simplify: Conditions, Actions, Targets, which needs to be connected together into triads:
condition-2345 - action-5 - target-4534
And there may be many such triples needed to be created in a "bag", but they can be formed one at a time, if it simplifies matters.
There are many conditions (by many I understand may be too much even for a dropdown), which may be long or complex, say, "quantityA1 > quantityA2 > -1", etc, and more can be added if there is no suitable one. May be labelled by shortened labels though.
There are not so many actions, say, max 15.
And again a lot of targets, known by names and URLs.
Conditions are "consumed" in the triples, that is, can be used only once, if this matters. The number of triples in one "bag" is limited only by number of conditions, can be large too.
I want to get maximum usability from the authoring interface.
So far my best idea is to have typeaheads text inputs and dropdowns, depending on the number of underlying sets ( similar to combination of (One to many) to many form? and Many to many form with hundreds of items ) :
(typeahead condition) - (dropdown action) - (typeahead target)
Another idea is to drag and drop after selecting "a tool", which corresponds to one of the actions. (Simpler, unanswered case: One-to-many list items in trigger-response model )
I think, the UX will be even better if many triples for the same "bag" can be done on one and the same screen. If it were on paper, I would arrange entities in three columns and connect corresponding entities with lines. Not sure what to do with some many of them though.
I do not even hope this will be usable on narrow screen, but nice if it will.
Note: the user may think from condition to target as well as from target to condition. One direction or the other can not be fixed beforehand.
Conditions are almost equal, and user-defined. More than that, some conditions are simply in the form (item=something), when some others my be more elaborate. Most recent / most popular are not applicable either.
However, some conditions may use 2D spatial coordinates, kind of location, and can be grouped by nearness. But I have not mentioned this because it is not 100%. Previous groupings (for previous bags) may induce groupings (and then the grouping is strong - "others" can be used), but many times existing "bags" do have nothing to do with new one.