[ENGCE-57552] feat(uipath-maestro-flow): array filter + mandatory-filter guidance#587
Closed
baishalighosh wants to merge 3 commits intomainfrom
Closed
[ENGCE-57552] feat(uipath-maestro-flow): array filter + mandatory-filter guidance#587baishalighosh wants to merge 3 commits intomainfrom
baishalighosh wants to merge 3 commits intomainfrom
Conversation
… guidance [ENGCE-57552] Aligns the connector-trigger skill with the matching CLI fix (uipcli #1823 for ENGCE-57552 / RCA ENGCE-57498) so agents stop authoring freeform leaves for connector-mandated event parameters. - Removes the stale "Array-field filters are not yet supported" row from the "What NOT to generate" table — array-shaped fields now emit projection JMES ((tags[?@=='urgent']), (ParentFolders[?ID=='INBOX'])) via the CLI. - Adds an "Array-shaped fields" subsection under Filter Trees explaining filter-projection emission for [*] schema names. - Adds a "Mandatory filters (auto-emitted)" subsection clarifying that connector-mandated event parameters (Gmail folder, Slack channelId) are set via eventParameters; the CLI runs them through the same mandatory-filter pipeline SW uses and persists the result on essentialConfiguration.mandatoryFilterExpression. Adds a corresponding "What NOT to generate" row warning against duplicating mandatory clauses in the freeform tree. - Adds skill-flow-trigger-with-array-filter eval — Gmail INBOX scenario with a freeform "subject contains invoice" leaf. Asserts mandatory folder lives on eventParameters, freeform tree excludes folder/ParentFolders ids, no top-level filterExpression. Regression guard for the original 400. - Renames the existing connector_trigger eval suite from tests/tasks/uipath-maestro-flow/nodes/connector_trigger/ to the flatter tests/tasks/uipath-maestro-flow/connector_trigger/ alongside the new test. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
PR Review: ENGCE-57552 array filter + mandatory-filter guidance
|
…-flow [ENGCE-57552] Trigger filter-tree authoring (steps 1-7), the mandatory-filter contract, and array-shaped field handling are IS-generic — they describe the structured filter shape the IS SDK accepts, not anything maestro-flow specific. Move them to uipath-platform > integration-service > triggers.md so other skills (case-tool, agentic-process, …) can reference the same canonical guidance. - platform/integration-service/triggers.md gains a new "Building Filter Trees from filterFields" section covering the 7-step procedure (sourcing fields from triggers describe instead of maestro-flow's flow registry get), the mandatory-filter pipeline contract (eventParameters → CLI → essentialConfiguration.mandatoryFilterExpression), and array-shaped field projection emission. - maestro-flow connector-trigger/impl.md keeps the flow-shape-specific Tree shape, Operators, Examples, and "What NOT to generate" subsections but redirects the procedural How-to + array + mandatory subsections to the platform reference, with a maestro-flow-specific note about sourcing filterFields from flow registry get. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…rm [ENGCE-57552] Step 1 (loading filterFields.fields) is surface-specific — maestro-flow uses `flow registry get`, other consumers (case-tool, future skills) use their own command. Mentioning both in the platform doc was confusing agents reading it standalone. Move the source step back into the maestro-flow skill where it belongs; the platform doc now starts at "pick a matching name" and notes that filterFields must already be loaded by the consuming skill. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Jira: ENGCE-57552 —
[Skills][CLI] Add support for array filter in triggerRCA: ENGCE-57498 — Gmail Email Received trigger returns 400 on Debug (Confluence)
Summary
Aligns the
uipath-maestro-flow > connector-triggerskill with the matching CLI fix in uipcli #1823 so agents stop authoring freeform filter leaves for connector-mandated event parameters (the original ENGCE-57498 / Gmail folder filter footgun).Before

No mandatory filters
Eval coverage
tests/tasks/uipath-maestro-flow/connector_trigger/trigger_with_array_filter.yaml— Gmail INBOX scenario with a freeform "subject contains invoice" leaf. Asserts:eventParameters.folder === "INBOX"(mandatory source lives here, not infilter).filtertree exists for the user's subject leaf, no top-levelfilterExpression.folder/ParentFoldersleaf id (regression guard for the original 400).tests/tasks/uipath-maestro-flow/nodes/connector_trigger/to the flattertests/tasks/uipath-maestro-flow/connector_trigger/so both filter tests live alongside each other.Architecture context
When the maestro-flow skill configures a Gmail trigger, the CLI call is:
In Studio Web,
ConnectorTriggerViewModel.update()calls_setMandatoryFilterExpression()on every input-field property change and persists the result onTriggerActivityConfiguration.mandatoryFilterExpression. The translator atconnector-translator-utils.ts:152(post SW PR #18040) readstriggerConfig.combinedFilterExpression— a getter that AND-joins userfilterExpression+ persistedmandatoryFilterExpression. The CLI's uipcli #1823 ports this contract end-to-end (defects 1-3 fixed; defect 4 — wiringmandatory-filter-builder.tsintoflow-toolandcase-toolto actually compute and persist the value — is the follow-up).This skill PR ensures agents stop emitting the wrong shape (mandatory field as a freeform leaf) ahead of the CLI defect-4 fix landing, and gains the array-filter coverage the original RCA called out.
Depends on
Test plan
tests/tasks/uipath-maestro-flow/connector_trigger/trigger_with_filter.yaml— existing Outlook subject+from filter eval still passes against the renamed pathtests/tasks/uipath-maestro-flow/connector_trigger/trigger_with_array_filter.yaml— new Gmail INBOX + subject filter eval passes locallyimpl.mdrenders cleanly in the skill viewerReferences