Skip to content

Add the New answer v2 trigger and deprecate the old one - #36

Open
felipegarcia98 wants to merge 3 commits into
mainfrom
feat/newanswer-trigger-v2-connector
Open

felipegarcia98 wants to merge 3 commits into
mainfrom
feat/newanswer-trigger-v2-connector

Conversation

@felipegarcia98

Copy link
Copy Markdown

What this does

Exposes the rebuilt form-answer trigger in the Power Automate connector and deprecates the old one.

The new New answer v2 (Forms) trigger binds its payload description dynamically per form, so the questions of the selected form arrive as dynamic content and a repeatable table's columns are available inside an Apply to each — no Parse JSON step, which is the friction this replaces.

The old New answer (Forms) trigger is marked deprecated through Microsoft's documented operational versioning. The designer stops offering it when building new flows while every flow already built on it keeps running. Nothing is migrated or removed, and the operation is otherwise byte-identical.

A second commit fixes an unrelated inconsistency the first one made visible: the Spanish and Portuguese trigger tables translated each trigger's name while the action tables beside them did not, and all three guides dropped the category suffix the connector's labels carry. That suffix is load-bearing — two triggers are called Status changed, one for forms and one for tickets, and without it those rows were indistinguishable.

⚠️ Do not merge before the backend is deployed and the flag is on

This connector is a single artifact shared by every tenant. Publishing it hides the old trigger for all accounts, while the v2 trigger is gated per account by PowerAutomateNewAnswerV2. An account without the flag would see the new trigger, be refused when it saves, and no longer find the old one — with no usable option, in the middle of onboarding.

Order: merge and deploy DScope/datascope-rails#2785, enable the flag for eligible accounts, then merge this.

The schema shape was verified, not assumed

Microsoft does not document what an array's items must declare for the designer to offer element-level fields. A throwaway connector with two triggers identical except for that typing settled it: the typed one offers 23 fields, the untyped control 17, and the difference is exactly the six item properties. The measurement is written up in the backend repo at docs/solutions/integration-issues/power-automate-array-item-tokens-need-typed-items-2026-09-16.md.

Still to verify manually

Import this connector once the backend is on staging and confirm: a flow reading a repeatable needs no Parse JSON step; deleting a flow removes its subscription while another subscription on the same form survives; and the deprecated trigger is hidden for new flows while an existing one keeps running.

Note

The nine pre-existing trigger operations declare 200 on subscribe while the backend returns 201. The new operation declares 201, which is correct — the platform only registers the unsubscribe URL from a 201. The existing nine are left alone here; they are documentation-only and deserve their own PR rather than a drive-by edit in this one.

🤖 Generated with Claude Code

felipegarcia98 and others added 2 commits September 17, 2026 09:57
Exposes the rebuilt form-answer trigger in the connector. Its payload
description is bound dynamically per form, so the questions of the selected
form arrive as dynamic content and a repeatable table's columns are available
inside an Apply to each, with no Parse JSON step. The trigger declares 201 on
subscribe, which is what the backend returns and what makes the platform
register the unsubscribe URL.

The old trigger is marked deprecated through the documented operational
versioning, so the designer stops offering it for new flows while every flow
already built on it keeps running. Nothing about it is migrated or removed, and
its operation is otherwise untouched.

The three guides describe the new trigger, the build-verify-then-delete
migration order, and the double delivery that happens while both flows are
active, which is the part most likely to duplicate a customer's work orders or
approvals. They also record that pdf_url is populated only when the document
already exists, and that the per-question field list is a snapshot taken when
the trigger is configured.

The cleanup note now states only what the platform guarantees, an unsubscribe
when the flow is deleted or its trigger edited, rather than the blanket claim
it carried before.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The Spanish and Portuguese trigger tables translated each trigger's name while
the action tables beside them did not, and the connector's own labels carry a
category suffix the tables dropped. Both are now fixed together: the name
column reproduces the connector's summary string exactly, in all three guides.

The suffix is not decoration. Two triggers are called Status changed, one for
forms and one for tickets, so without it those rows were indistinguishable to a
reader looking for the right one. The English guide had the same gap and told
them apart only by renaming one of them, which no longer matched the designer.

Prose mentions that send a reader to find a trigger now use the full label, and
the Spanish and Portuguese tables gained a clause saying the names are the ones
Power Automate shows, so ten English strings in an otherwise translated page
read as deliberate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@felipegarcia98 felipegarcia98 self-assigned this Sep 17, 2026
The per-question shortcut now renders a checklist as the names of what was
checked and a list question as `option: value` pairs, which is not something a
maker can guess from the designer. The bullet also says the line carries no
escapes, so nobody builds a flow that splits it apart.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant