From a8b6f0605bdea393757ab2f1d9f5acac212b5ddc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Thu, 17 Sep 2026 09:57:58 -0300 Subject: [PATCH 01/11] Add the New answer v2 trigger and deprecate the old one 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 --- .../power_automate/apiDefinition.swagger.json | 162 +++++++++++++++++- .../power_automate/connector_guide_en.html.md | 54 +++++- .../power_automate/connector_guide_es.html.md | 55 +++++- .../power_automate/connector_guide_pt.html.md | 55 +++++- 4 files changed, 300 insertions(+), 26 deletions(-) diff --git a/source/power_automate/apiDefinition.swagger.json b/source/power_automate/apiDefinition.swagger.json index 4f87a06e07d..3a1d5b2e76c 100644 --- a/source/power_automate/apiDefinition.swagger.json +++ b/source/power_automate/apiDefinition.swagger.json @@ -46,6 +46,43 @@ "x-ms-visibility": "internal" } }, + "/new_answer_v2_schema/{formId}": { + "get": { + "responses": { + "200": { + "description": "Get new answer v2 schema", + "schema": { + "type": "object", + "description": "Description of the answer payload of a selected form.", + "properties": { + "schema": { + "type": "object", + "description": "Field schema of the selected form, used to describe the trigger payload." + } + } + } + } + }, + "summary": "Get new answer v2 schema", + "description": "Retrieves the payload schema of a selected form for the New answer v2 trigger.", + "operationId": "Get-new-answer-v2-schema", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "formId", + "type": "string", + "in": "path", + "description": "Form whose answer schema is returned.", + "x-ms-url-encoding": "single", + "required": true, + "x-ms-summary": "Select Form" + } + ], + "x-ms-visibility": "internal" + } + }, "/hooks_flow/{formId}": { "x-ms-notification-content": { "schema": { @@ -90,10 +127,16 @@ } } }, - "summary": "New answer (Forms)", - "description": "Triggers when a new answer is submitted. Only one active connection per form is supported.", + "summary": "New answer (Forms) (deprecated)", + "description": "Triggers when a new answer is submitted. Only one active connection per form is supported. (deprecated)", "operationId": "Form-answer", "x-ms-trigger": "single", + "deprecated": true, + "x-ms-api-annotation": { + "status": "Production", + "family": "FormAnswer", + "revision": 1 + }, "parameters": [ { "name": "body", @@ -2144,6 +2187,121 @@ ] } }, + "/hooks/power_automate/new_answer_v2": { + "x-ms-notification-content": { + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "Get-new-answer-v2-schema", + "parameters": { + "formId": { + "parameter": "form_id" + } + }, + "value-path": "schema" + } + } + }, + "post": { + "responses": { + "201": { + "description": "Subscription registered successfully.", + "schema": { + "type": "object", + "description": "Result of the subscription registration.", + "properties": { + "result": { + "type": "string", + "description": "Registration outcome reported by the platform." + } + } + } + }, + "400": { + "description": "The subscription could not be registered.", + "schema": { + "type": "object", + "description": "Error returned when the subscription cannot be registered.", + "properties": { + "error": { + "type": "string", + "description": "Description of the reason the registration failed." + } + } + } + } + }, + "operationId": "NewFormAnswerV2", + "summary": "New answer v2 (Forms)", + "description": "Triggers when a new answer is submitted. Only one active connection per form is supported.", + "x-ms-trigger": "single", + "x-ms-api-annotation": { + "status": "Preview", + "family": "FormAnswer", + "revision": 2 + }, + "parameters": [ + { + "name": "event", + "in": "query", + "required": true, + "type": "string", + "default": "new_answer_v2", + "x-ms-visibility": "internal", + "description": "Event name that identifies the subscription type." + }, + { + "name": "form_id", + "in": "query", + "type": "string", + "description": "Form to monitor for this trigger.", + "x-ms-dynamic-values": { + "operationId": "Form-list", + "value-path": "key", + "value-title": "label" + }, + "required": true, + "x-ms-summary": "Select Form", + "x-ms-visibility": "important" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "subscription_url": { + "type": "string", + "description": "Callback URL generated by the platform to receive notifications.", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + }, + "version": { + "type": "string", + "description": "Payload version used by the notification contract.", + "x-ms-visibility": "internal", + "default": "2.0.0" + }, + "platform": { + "type": "string", + "description": "Platform that registers the subscription.", + "x-ms-visibility": "internal", + "default": "power_automate" + } + }, + "x-ms-visibility": "internal", + "required": [ + "version", + "subscription_url", + "platform" + ] + }, + "x-ms-visibility": "internal" + } + ] + } + }, "/assign_task": { "post": { "summary": "Assign Task (Tasks)", diff --git a/source/power_automate/connector_guide_en.html.md b/source/power_automate/connector_guide_en.html.md index 29781b21cf6..cae0bb0033d 100644 --- a/source/power_automate/connector_guide_en.html.md +++ b/source/power_automate/connector_guide_en.html.md @@ -89,7 +89,8 @@ The connector provides the following triggers: | Trigger | Fires when | |---|---| -| New answer | A form answer is submitted | +| New answer v2 | A form answer is submitted, with every question available as its own dynamic content | +| New answer (deprecated) | A form answer is submitted. Kept so flows already built on it keep running | | New PDF | A PDF document is generated | | Status changed | A form answer changes status | | New assigned task | A task is assigned | @@ -112,6 +113,41 @@ The connector also provides the following actions, so a flow can act back on Dat | Send Data | Generates a new form answer and its PDF from an existing template | | Create Ticket | Creates a new ticket | +## The New answer v2 trigger + +**New answer v2** is the trigger to use when you build a new flow on a +submitted form answer. It fires when the answer is submitted, and its fields +arrive as dynamic content you can pick directly in the following steps, with no +**Parse JSON** step to add and no schema to paste. Repeatable tables come +through as a list of answer items: put an **Apply to each** over that list, and +the table's columns are available as dynamic content inside the loop. + +The earlier **New answer** trigger is deprecated, not removed. Flows already +built on it keep running exactly as they do today, and there is no deadline to +move off it. What changes is that it is no longer offered when you build a new +flow, so new work starts on v2. + +To move an existing flow, build the new one alongside it, confirm it does what +you expect, and only then delete the old one. + + + +Two things to plan around: + +- **`pdf_url` is opportunistic.** The field is there, but it carries a value + only when the PDF already exists at the moment the answer is delivered. The + trigger does not wait for the document to be generated, so a flow that binds + `pdf_url` can work every time in testing and then arrive with it empty in + production. If the flow needs the document, build it on the **New PDF** + trigger instead. +- **The field list is a snapshot.** The per-question dynamic content a flow + sees is captured when the trigger is configured. If questions are added to or + removed from the form afterwards, the flow does not see them until you reopen + the trigger and save the flow again. The header fields and the list of answer + items are not affected, only the per-question shortcuts. + ## Important considerations - **One active connection per form.** Triggers associated with a form support @@ -124,14 +160,16 @@ The connector also provides the following actions, so a flow can act back on Dat enabled on your account. - **The connector works in the environment where you created it.** If you work with several environments, repeat the import in each one. -- **The "New answer" trigger doesn't clean up on its own.** If you turn off or - delete a flow that uses the "New answer" trigger (`hooks_flow`), the - subscription is not automatically removed on DataScope's side. To fully - stop it, you also need to go to +- **The deprecated "New answer" trigger doesn't clean up on its own.** If you + turn off or delete a flow that uses it (`hooks_flow`), the subscription is + not automatically removed on DataScope's side. To fully stop it, you also + need to go to app.mydatascope.com/integrations - and delete the connection there. Every other trigger (forms, PDFs, tasks, - tickets, signatures) does clean up automatically when the flow is turned - off in Power Automate. + and delete the connection there. The other triggers, **New answer v2** + included, are unsubscribed on DataScope's side when the flow is deleted or + its trigger is edited, which is what Power Automate guarantees. If you stop a + flow in any other way and want to be sure nothing is left subscribed, delete + its connection on that same page. ## If something doesn't work diff --git a/source/power_automate/connector_guide_es.html.md b/source/power_automate/connector_guide_es.html.md index dd01491b95a..74fc040ef6b 100644 --- a/source/power_automate/connector_guide_es.html.md +++ b/source/power_automate/connector_guide_es.html.md @@ -88,7 +88,8 @@ El conector entrega los siguientes disparadores: | Disparador | Se activa cuando | |---|---| -| Nueva respuesta | Se envía una respuesta de formulario | +| Nueva respuesta v2 | Se envía una respuesta de formulario, con cada pregunta disponible como su propio contenido dinámico | +| Nueva respuesta (obsoleto) | Se envía una respuesta de formulario. Se mantiene para que los flujos ya armados sobre él sigan funcionando | | Nuevo PDF | Se genera un documento PDF | | Cambio de estado | Una respuesta de formulario cambia de estado | | Nueva tarea asignada | Se asigna una tarea | @@ -112,6 +113,42 @@ El conector también entrega las siguientes actions, para que un flujo pueda act | Send Data | Genera una nueva respuesta de formulario y su PDF a partir de una plantilla existente | | Create Ticket | Crea un nuevo ticket | +## El disparador New answer v2 + +**New answer v2** es el disparador que conviene usar al armar un flujo nuevo +sobre una respuesta de formulario. Se activa cuando la respuesta se envía, y +sus campos llegan como contenido dinámico que puedes elegir directamente en los +pasos siguientes, sin agregar un paso **Parse JSON** ni pegar un esquema. Las +tablas repetibles llegan como una lista de ítems de la respuesta: pon un +**Apply to each** sobre esa lista y las columnas de la tabla quedan disponibles +como contenido dinámico dentro del ciclo. + +El disparador anterior, **New answer**, queda obsoleto, pero no se elimina. Los +flujos que ya están armados sobre él siguen funcionando igual que hoy, y no hay +plazo para dejarlo. Lo que cambia es que ya no se ofrece al armar un flujo +nuevo, así que lo nuevo parte en v2. + +Para pasar un flujo existente, arma el nuevo en paralelo, confirma que hace lo +que esperas y solo entonces elimina el antiguo. + + + +Dos cosas para tener en cuenta: + +- **`pdf_url` es oportunista.** El campo está, pero trae un valor solo cuando + el PDF ya existe en el momento en que se entrega la respuesta. El disparador + no espera a que el documento se genere, así que un flujo que usa `pdf_url` + puede funcionar siempre en las pruebas y llegar vacío en producción. Si el + flujo necesita el documento, ármalo sobre el disparador **New PDF**. +- **La lista de campos es una instantánea.** El contenido dinámico por pregunta + que ve un flujo se captura cuando se configura el disparador. Si después se + agregan o se eliminan preguntas del formulario, el flujo no las ve hasta que + vuelvas a abrir el disparador y guardes el flujo de nuevo. Los campos de + cabecera y la lista de ítems de la respuesta no se ven afectados, solo los + accesos directos por pregunta. + ## Consideraciones importantes - **Una conexión activa por formulario.** Los disparadores asociados a un @@ -124,14 +161,16 @@ El conector también entrega las siguientes actions, para que un flujo pueda act funcionalidades están habilitadas en tu cuenta. - **El conector funciona en el entorno donde lo creaste.** Si trabajas con varios entornos, repite la importación en cada uno. -- **El disparador "Nueva respuesta" no se limpia solo al apagarlo.** Si detienes - o eliminas un flow que usa el disparador "Nueva respuesta" (`hooks_flow`), la - suscripción no se elimina automáticamente del lado de DataScope. Para - detenerlo por completo, también debes ir a +- **El disparador obsoleto "Nueva respuesta" no se limpia solo.** Si detienes + o eliminas un flow que lo usa (`hooks_flow`), la suscripción no se elimina + automáticamente del lado de DataScope. Para detenerlo por completo, también + debes ir a app.mydatascope.com/integrations - y eliminar ahí la conexión correspondiente. El resto de los disparadores - (formularios, PDFs, tareas, tickets, firmas) sí se limpian automáticamente - al apagar el flow en Power Automate. + y eliminar ahí la conexión correspondiente. En el resto de los disparadores, + incluido **New answer v2**, la suscripción se elimina del lado de DataScope + cuando se borra el flow o se edita su disparador, que es lo que garantiza + Power Automate. Si detienes un flow de otra manera y quieres asegurarte de + que no quede nada suscrito, elimina su conexión en esa misma página. ## Si algo no funciona diff --git a/source/power_automate/connector_guide_pt.html.md b/source/power_automate/connector_guide_pt.html.md index c1b37c89c2f..d43fd9f18a1 100644 --- a/source/power_automate/connector_guide_pt.html.md +++ b/source/power_automate/connector_guide_pt.html.md @@ -89,7 +89,8 @@ O conector oferece os seguintes disparadores: | Disparador | É acionado quando | |---|---| -| Nova resposta | Uma resposta de formulário é enviada | +| Nova resposta v2 | Uma resposta de formulário é enviada, com cada pergunta disponível como seu próprio conteúdo dinâmico | +| Nova resposta (obsoleto) | Uma resposta de formulário é enviada. Mantido para que os fluxos já criados sobre ele continuem funcionando | | Novo PDF | Um documento PDF é gerado | | Mudança de status | Uma resposta de formulário muda de status | | Nova tarefa atribuída | Uma tarefa é atribuída | @@ -113,6 +114,42 @@ O conector também oferece as seguintes actions, para que um fluxo possa agir so | Send Data | Gera uma nova resposta de formulário e seu PDF a partir de um modelo existente | | Create Ticket | Cria um novo ticket | +## O disparador New answer v2 + +O **New answer v2** é o disparador a usar quando você cria um fluxo novo sobre +uma resposta de formulário. Ele é acionado quando a resposta é enviada, e seus +campos chegam como conteúdo dinâmico que você escolhe direto nas próximas +etapas, sem precisar adicionar uma etapa **Parse JSON** nem colar um schema. As +tabelas repetíveis chegam como uma lista de itens da resposta: coloque um +**Apply to each** sobre essa lista e as colunas da tabela ficam disponíveis +como conteúdo dinâmico dentro do loop. + +O disparador anterior, **New answer**, ficou obsoleto, mas não foi removido. Os +fluxos já criados sobre ele continuam rodando exatamente como hoje, e não há +prazo para sair dele. O que muda é que ele deixa de ser oferecido quando você +cria um fluxo novo, então o que for novo começa na v2. + +Para migrar um fluxo existente, crie o novo em paralelo, confirme que ele faz o +que você espera e só então exclua o antigo. + + + +Dois pontos para levar em conta: + +- **O `pdf_url` é oportunista.** O campo existe, mas só traz um valor quando o + PDF já existe no momento em que a resposta é entregue. O disparador não + espera a geração do documento, então um fluxo que usa o `pdf_url` pode + funcionar sempre nos testes e chegar vazio em produção. Se o fluxo precisa do + documento, crie-o sobre o disparador **New PDF**. +- **A lista de campos é um retrato do momento.** O conteúdo dinâmico por + pergunta que um fluxo enxerga é capturado quando o disparador é configurado. + Se depois disso perguntas forem adicionadas ou removidas do formulário, o + fluxo não as enxerga até você reabrir o disparador e salvar o fluxo de novo. + Os campos de cabeçalho e a lista de itens da resposta não são afetados, + apenas os atalhos por pergunta. + ## Considerações importantes - **Uma conexão ativa por formulário.** Os disparadores associados a um @@ -126,14 +163,16 @@ O conector também oferece as seguintes actions, para que um fluxo possa agir so somente se essas funcionalidades estiverem habilitadas na sua conta. - **O conector funciona no ambiente em que foi criado.** Se você trabalha com vários ambientes, repita a importação em cada um. -- **O disparador "Nova resposta" não se limpa sozinho.** Se você desativar ou - excluir um flow que usa o disparador "Nova resposta" (`hooks_flow`), a - assinatura não é removida automaticamente do lado do DataScope. Para - interrompê-lo por completo, também é necessário acessar +- **O disparador obsoleto "Nova resposta" não se limpa sozinho.** Se você + desativar ou excluir um flow que o usa (`hooks_flow`), a assinatura não é + removida automaticamente do lado do DataScope. Para interrompê-lo por + completo, também é necessário acessar app.mydatascope.com/integrations - e excluir a conexão correspondente ali. Os demais disparadores - (formulários, PDFs, tarefas, tickets, assinaturas) se limpam - automaticamente ao desativar o flow no Power Automate. + e excluir a conexão correspondente ali. Nos demais disparadores, incluindo o + **New answer v2**, a assinatura é removida do lado do DataScope quando o flow + é excluído ou seu disparador é editado, que é o que o Power Automate garante. + Se você parar um flow de outra forma e quiser ter certeza de que nada ficou + assinado, exclua a conexão nessa mesma página. ## Se algo não funcionar From 03dedc7d157c4a8afbde9cc07d59c63cf7d54bd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Thu, 17 Sep 2026 10:32:07 -0300 Subject: [PATCH 02/11] Name triggers as the designer names them, in all three guides 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 --- .../power_automate/connector_guide_en.html.md | 55 ++++++++-------- .../power_automate/connector_guide_es.html.md | 64 ++++++++++--------- .../power_automate/connector_guide_pt.html.md | 61 +++++++++--------- 3 files changed, 92 insertions(+), 88 deletions(-) diff --git a/source/power_automate/connector_guide_en.html.md b/source/power_automate/connector_guide_en.html.md index cae0bb0033d..d300a56313c 100644 --- a/source/power_automate/connector_guide_en.html.md +++ b/source/power_automate/connector_guide_en.html.md @@ -85,20 +85,21 @@ A few things worth knowing before you do this: ## What you can automate -The connector provides the following triggers: +The connector provides the following triggers. The names are the ones you see +in Power Automate's trigger list: | Trigger | Fires when | |---|---| -| New answer v2 | A form answer is submitted, with every question available as its own dynamic content | -| New answer (deprecated) | A form answer is submitted. Kept so flows already built on it keep running | -| New PDF | A PDF document is generated | -| Status changed | A form answer changes status | -| New assigned task | A task is assigned | -| New ticket | A ticket is registered | -| Ticket status changed | A ticket changes status | -| Completed signature | A document signature is completed | -| Rejected signature | A signature request is rejected | -| Updated signature | The signatures on a document are updated | +| New answer v2 (Forms) | A form answer is submitted, with every question available as its own dynamic content | +| New answer (Forms) (deprecated) | A form answer is submitted. Kept so flows already built on it keep running | +| New PDF (Forms) | A PDF document is generated | +| Status changed (Forms) | A form answer changes status | +| New assigned task (Tasks) | A task is assigned | +| New ticket (Tickets) | A ticket is registered | +| Status changed (Tickets) | A ticket changes status | +| Completed signature (Signatures) | A document signature is completed | +| Rejected signature (Signatures) | A signature request is rejected | +| Updated signature (Signatures) | The signatures on a document are updated | Each trigger delivers the event data as dynamic content, ready to use in the following steps of the flow without having to parse the JSON manually. @@ -115,17 +116,17 @@ The connector also provides the following actions, so a flow can act back on Dat ## The New answer v2 trigger -**New answer v2** is the trigger to use when you build a new flow on a +**New answer v2 (Forms)** is the trigger to use when you build a new flow on a submitted form answer. It fires when the answer is submitted, and its fields arrive as dynamic content you can pick directly in the following steps, with no **Parse JSON** step to add and no schema to paste. Repeatable tables come through as a list of answer items: put an **Apply to each** over that list, and the table's columns are available as dynamic content inside the loop. -The earlier **New answer** trigger is deprecated, not removed. Flows already -built on it keep running exactly as they do today, and there is no deadline to -move off it. What changes is that it is no longer offered when you build a new -flow, so new work starts on v2. +The earlier **New answer (Forms)** trigger is deprecated, not removed. Flows +already built on it keep running exactly as they do today, and there is no +deadline to move off it. What changes is that it is no longer offered when you +build a new flow, so new work starts on v2. To move an existing flow, build the new one alongside it, confirm it does what you expect, and only then delete the old one. @@ -140,8 +141,8 @@ Two things to plan around: only when the PDF already exists at the moment the answer is delivered. The trigger does not wait for the document to be generated, so a flow that binds `pdf_url` can work every time in testing and then arrive with it empty in - production. If the flow needs the document, build it on the **New PDF** - trigger instead. + production. If the flow needs the document, build it on the + **New PDF (Forms)** trigger instead. - **The field list is a snapshot.** The per-question dynamic content a flow sees is captured when the trigger is configured. If questions are added to or removed from the form afterwards, the flow does not see them until you reopen @@ -160,16 +161,16 @@ Two things to plan around: enabled on your account. - **The connector works in the environment where you created it.** If you work with several environments, repeat the import in each one. -- **The deprecated "New answer" trigger doesn't clean up on its own.** If you - turn off or delete a flow that uses it (`hooks_flow`), the subscription is - not automatically removed on DataScope's side. To fully stop it, you also - need to go to +- **The New answer (Forms) (deprecated) trigger doesn't clean up on its own.** + If you turn off or delete a flow that uses it (`hooks_flow`), the + subscription is not automatically removed on DataScope's side. To fully stop + it, you also need to go to app.mydatascope.com/integrations - and delete the connection there. The other triggers, **New answer v2** - included, are unsubscribed on DataScope's side when the flow is deleted or - its trigger is edited, which is what Power Automate guarantees. If you stop a - flow in any other way and want to be sure nothing is left subscribed, delete - its connection on that same page. + and delete the connection there. The other triggers, + **New answer v2 (Forms)** included, are unsubscribed on DataScope's side when + the flow is deleted or its trigger is edited, which is what Power Automate + guarantees. If you stop a flow in any other way and want to be sure nothing + is left subscribed, delete its connection on that same page. ## If something doesn't work diff --git a/source/power_automate/connector_guide_es.html.md b/source/power_automate/connector_guide_es.html.md index 74fc040ef6b..4d8ea10d02a 100644 --- a/source/power_automate/connector_guide_es.html.md +++ b/source/power_automate/connector_guide_es.html.md @@ -84,20 +84,21 @@ Algunas cosas que vale la pena saber antes de hacer esto: ## Qué puedes automatizar -El conector entrega los siguientes disparadores: +El conector entrega los siguientes disparadores. Los nombres son los que ves en +la lista de disparadores de Power Automate: | Disparador | Se activa cuando | |---|---| -| Nueva respuesta v2 | Se envía una respuesta de formulario, con cada pregunta disponible como su propio contenido dinámico | -| Nueva respuesta (obsoleto) | Se envía una respuesta de formulario. Se mantiene para que los flujos ya armados sobre él sigan funcionando | -| Nuevo PDF | Se genera un documento PDF | -| Cambio de estado | Una respuesta de formulario cambia de estado | -| Nueva tarea asignada | Se asigna una tarea | -| Nuevo ticket | Se registra un ticket | -| Cambio de estado de ticket | Un ticket cambia de estado | -| Firma completada | Se completa la firma de un documento | -| Firma rechazada | Se rechaza una solicitud de firma | -| Firma actualizada | Se actualizan las firmas de un documento | +| New answer v2 (Forms) | Se envía una respuesta de formulario, con cada pregunta disponible como su propio contenido dinámico | +| New answer (Forms) (deprecated) | Se envía una respuesta de formulario. Se mantiene para que los flujos ya armados sobre él sigan funcionando | +| New PDF (Forms) | Se genera un documento PDF | +| Status changed (Forms) | Una respuesta de formulario cambia de estado | +| New assigned task (Tasks) | Se asigna una tarea | +| New ticket (Tickets) | Se registra un ticket | +| Status changed (Tickets) | Un ticket cambia de estado | +| Completed signature (Signatures) | Se completa la firma de un documento | +| Rejected signature (Signatures) | Se rechaza una solicitud de firma | +| Updated signature (Signatures) | Se actualizan las firmas de un documento | Cada disparador entrega los datos del evento como contenido dinámico, listos para usar en los pasos siguientes del flujo sin necesidad de procesar el JSON @@ -115,18 +116,18 @@ El conector también entrega las siguientes actions, para que un flujo pueda act ## El disparador New answer v2 -**New answer v2** es el disparador que conviene usar al armar un flujo nuevo -sobre una respuesta de formulario. Se activa cuando la respuesta se envía, y -sus campos llegan como contenido dinámico que puedes elegir directamente en los -pasos siguientes, sin agregar un paso **Parse JSON** ni pegar un esquema. Las -tablas repetibles llegan como una lista de ítems de la respuesta: pon un -**Apply to each** sobre esa lista y las columnas de la tabla quedan disponibles -como contenido dinámico dentro del ciclo. +**New answer v2 (Forms)** es el disparador que conviene usar al armar un flujo +nuevo sobre una respuesta de formulario. Se activa cuando la respuesta se +envía, y sus campos llegan como contenido dinámico que puedes elegir +directamente en los pasos siguientes, sin agregar un paso **Parse JSON** ni +pegar un esquema. Las tablas repetibles llegan como una lista de ítems de la +respuesta: pon un **Apply to each** sobre esa lista y las columnas de la tabla +quedan disponibles como contenido dinámico dentro del ciclo. -El disparador anterior, **New answer**, queda obsoleto, pero no se elimina. Los -flujos que ya están armados sobre él siguen funcionando igual que hoy, y no hay -plazo para dejarlo. Lo que cambia es que ya no se ofrece al armar un flujo -nuevo, así que lo nuevo parte en v2. +El disparador anterior, **New answer (Forms)**, queda obsoleto, pero no se +elimina. Los flujos que ya están armados sobre él siguen funcionando igual que +hoy, y no hay plazo para dejarlo. Lo que cambia es que ya no se ofrece al armar +un flujo nuevo, así que lo nuevo parte en v2. Para pasar un flujo existente, arma el nuevo en paralelo, confirma que hace lo que esperas y solo entonces elimina el antiguo. @@ -141,7 +142,7 @@ Dos cosas para tener en cuenta: el PDF ya existe en el momento en que se entrega la respuesta. El disparador no espera a que el documento se genere, así que un flujo que usa `pdf_url` puede funcionar siempre en las pruebas y llegar vacío en producción. Si el - flujo necesita el documento, ármalo sobre el disparador **New PDF**. + flujo necesita el documento, ármalo sobre el disparador **New PDF (Forms)**. - **La lista de campos es una instantánea.** El contenido dinámico por pregunta que ve un flujo se captura cuando se configura el disparador. Si después se agregan o se eliminan preguntas del formulario, el flujo no las ve hasta que @@ -161,16 +162,17 @@ Dos cosas para tener en cuenta: funcionalidades están habilitadas en tu cuenta. - **El conector funciona en el entorno donde lo creaste.** Si trabajas con varios entornos, repite la importación en cada uno. -- **El disparador obsoleto "Nueva respuesta" no se limpia solo.** Si detienes - o eliminas un flow que lo usa (`hooks_flow`), la suscripción no se elimina - automáticamente del lado de DataScope. Para detenerlo por completo, también - debes ir a +- **El disparador New answer (Forms) (deprecated) no se limpia solo.** Si + detienes o eliminas un flow que lo usa (`hooks_flow`), la suscripción no se + elimina automáticamente del lado de DataScope. Para detenerlo por completo, + también debes ir a app.mydatascope.com/integrations y eliminar ahí la conexión correspondiente. En el resto de los disparadores, - incluido **New answer v2**, la suscripción se elimina del lado de DataScope - cuando se borra el flow o se edita su disparador, que es lo que garantiza - Power Automate. Si detienes un flow de otra manera y quieres asegurarte de - que no quede nada suscrito, elimina su conexión en esa misma página. + incluido **New answer v2 (Forms)**, la suscripción se elimina del lado de + DataScope cuando se borra el flow o se edita su disparador, que es lo que + garantiza Power Automate. Si detienes un flow de otra manera y quieres + asegurarte de que no quede nada suscrito, elimina su conexión en esa misma + página. ## Si algo no funciona diff --git a/source/power_automate/connector_guide_pt.html.md b/source/power_automate/connector_guide_pt.html.md index d43fd9f18a1..f90fe3cd961 100644 --- a/source/power_automate/connector_guide_pt.html.md +++ b/source/power_automate/connector_guide_pt.html.md @@ -85,20 +85,21 @@ Algumas coisas que vale a pena saber antes de fazer isso: ## O que você pode automatizar -O conector oferece os seguintes disparadores: +O conector oferece os seguintes disparadores. Os nomes são os que você vê na +lista de disparadores do Power Automate: | Disparador | É acionado quando | |---|---| -| Nova resposta v2 | Uma resposta de formulário é enviada, com cada pergunta disponível como seu próprio conteúdo dinâmico | -| Nova resposta (obsoleto) | Uma resposta de formulário é enviada. Mantido para que os fluxos já criados sobre ele continuem funcionando | -| Novo PDF | Um documento PDF é gerado | -| Mudança de status | Uma resposta de formulário muda de status | -| Nova tarefa atribuída | Uma tarefa é atribuída | -| Novo ticket | Um ticket é registrado | -| Mudança de status de ticket | Um ticket muda de status | -| Assinatura concluída | A assinatura de um documento é concluída | -| Assinatura rejeitada | Uma solicitação de assinatura é rejeitada | -| Assinatura atualizada | As assinaturas de um documento são atualizadas | +| New answer v2 (Forms) | Uma resposta de formulário é enviada, com cada pergunta disponível como seu próprio conteúdo dinâmico | +| New answer (Forms) (deprecated) | Uma resposta de formulário é enviada. Mantido para que os fluxos já criados sobre ele continuem funcionando | +| New PDF (Forms) | Um documento PDF é gerado | +| Status changed (Forms) | Uma resposta de formulário muda de status | +| New assigned task (Tasks) | Uma tarefa é atribuída | +| New ticket (Tickets) | Um ticket é registrado | +| Status changed (Tickets) | Um ticket muda de status | +| Completed signature (Signatures) | A assinatura de um documento é concluída | +| Rejected signature (Signatures) | Uma solicitação de assinatura é rejeitada | +| Updated signature (Signatures) | As assinaturas de um documento são atualizadas | Cada disparador entrega os dados do evento como conteúdo dinâmico, prontos para usar nas próximas etapas do fluxo sem precisar processar o JSON @@ -116,18 +117,18 @@ O conector também oferece as seguintes actions, para que um fluxo possa agir so ## O disparador New answer v2 -O **New answer v2** é o disparador a usar quando você cria um fluxo novo sobre -uma resposta de formulário. Ele é acionado quando a resposta é enviada, e seus -campos chegam como conteúdo dinâmico que você escolhe direto nas próximas -etapas, sem precisar adicionar uma etapa **Parse JSON** nem colar um schema. As -tabelas repetíveis chegam como uma lista de itens da resposta: coloque um -**Apply to each** sobre essa lista e as colunas da tabela ficam disponíveis -como conteúdo dinâmico dentro do loop. +O **New answer v2 (Forms)** é o disparador a usar quando você cria um fluxo +novo sobre uma resposta de formulário. Ele é acionado quando a resposta é +enviada, e seus campos chegam como conteúdo dinâmico que você escolhe direto +nas próximas etapas, sem precisar adicionar uma etapa **Parse JSON** nem colar +um schema. As tabelas repetíveis chegam como uma lista de itens da resposta: +coloque um **Apply to each** sobre essa lista e as colunas da tabela ficam +disponíveis como conteúdo dinâmico dentro do loop. -O disparador anterior, **New answer**, ficou obsoleto, mas não foi removido. Os -fluxos já criados sobre ele continuam rodando exatamente como hoje, e não há -prazo para sair dele. O que muda é que ele deixa de ser oferecido quando você -cria um fluxo novo, então o que for novo começa na v2. +O disparador anterior, **New answer (Forms)**, ficou obsoleto, mas não foi +removido. Os fluxos já criados sobre ele continuam rodando exatamente como +hoje, e não há prazo para sair dele. O que muda é que ele deixa de ser +oferecido quando você cria um fluxo novo, então o que for novo começa na v2. Para migrar um fluxo existente, crie o novo em paralelo, confirme que ele faz o que você espera e só então exclua o antigo. @@ -142,7 +143,7 @@ Dois pontos para levar em conta: PDF já existe no momento em que a resposta é entregue. O disparador não espera a geração do documento, então um fluxo que usa o `pdf_url` pode funcionar sempre nos testes e chegar vazio em produção. Se o fluxo precisa do - documento, crie-o sobre o disparador **New PDF**. + documento, crie-o sobre o disparador **New PDF (Forms)**. - **A lista de campos é um retrato do momento.** O conteúdo dinâmico por pergunta que um fluxo enxerga é capturado quando o disparador é configurado. Se depois disso perguntas forem adicionadas ou removidas do formulário, o @@ -163,16 +164,16 @@ Dois pontos para levar em conta: somente se essas funcionalidades estiverem habilitadas na sua conta. - **O conector funciona no ambiente em que foi criado.** Se você trabalha com vários ambientes, repita a importação em cada um. -- **O disparador obsoleto "Nova resposta" não se limpa sozinho.** Se você - desativar ou excluir um flow que o usa (`hooks_flow`), a assinatura não é - removida automaticamente do lado do DataScope. Para interrompê-lo por +- **O disparador New answer (Forms) (deprecated) não se limpa sozinho.** Se + você desativar ou excluir um flow que o usa (`hooks_flow`), a assinatura não + é removida automaticamente do lado do DataScope. Para interrompê-lo por completo, também é necessário acessar app.mydatascope.com/integrations e excluir a conexão correspondente ali. Nos demais disparadores, incluindo o - **New answer v2**, a assinatura é removida do lado do DataScope quando o flow - é excluído ou seu disparador é editado, que é o que o Power Automate garante. - Se você parar um flow de outra forma e quiser ter certeza de que nada ficou - assinado, exclua a conexão nessa mesma página. + **New answer v2 (Forms)**, a assinatura é removida do lado do DataScope + quando o flow é excluído ou seu disparador é editado, que é o que o Power + Automate garante. Se você parar um flow de outra forma e quiser ter certeza + de que nada ficou assinado, exclua a conexão nessa mesma página. ## Se algo não funcionar From ab59dc06627b4edc42daf1b4bd118f5ecadb2f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Thu, 17 Sep 2026 15:14:27 -0300 Subject: [PATCH 03/11] Say how a question with several answers reaches the flow 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 --- source/power_automate/connector_guide_en.html.md | 11 +++++++++-- source/power_automate/connector_guide_es.html.md | 12 ++++++++++-- source/power_automate/connector_guide_pt.html.md | 11 +++++++++-- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/source/power_automate/connector_guide_en.html.md b/source/power_automate/connector_guide_en.html.md index d300a56313c..89978c10fbe 100644 --- a/source/power_automate/connector_guide_en.html.md +++ b/source/power_automate/connector_guide_en.html.md @@ -135,8 +135,15 @@ you expect, and only then delete the old one. While both flows are active the same form answer is delivered twice, in two different formats, once to each flow. Whatever the flow does happens twice: two work orders, two approvals, two emails. Keep that overlap short, and check the result before you leave both of them running. -Two things to plan around: - +Three things to plan around: + +- **A question with several answers arrives as one line of text.** The + per-question shortcut always carries a single value, so a checklist reads as + the names of what was checked, and a question over a list as `option: value` + pairs, separated in both cases by `;`. Nothing in it is escaped, so treat it + as text to show or store, not to split apart. When you need those values one + by one, use the list of answer items, which carries each one as its own field + with its option beside it. - **`pdf_url` is opportunistic.** The field is there, but it carries a value only when the PDF already exists at the moment the answer is delivered. The trigger does not wait for the document to be generated, so a flow that binds diff --git a/source/power_automate/connector_guide_es.html.md b/source/power_automate/connector_guide_es.html.md index 4d8ea10d02a..16c091152fa 100644 --- a/source/power_automate/connector_guide_es.html.md +++ b/source/power_automate/connector_guide_es.html.md @@ -136,8 +136,16 @@ que esperas y solo entonces elimina el antiguo. Mientras los dos flujos estén activos, la misma respuesta de formulario se entrega dos veces, en dos formatos distintos, una vez a cada flujo. Todo lo que haga el flujo ocurre dos veces: dos órdenes de trabajo, dos aprobaciones, dos correos. Mantén corto el periodo en que ambos están activos, y revisa el resultado antes de dejarlos corriendo en paralelo. -Dos cosas para tener en cuenta: - +Tres cosas para tener en cuenta: + +- **Una pregunta con varias respuestas llega como una sola línea de texto.** El + acceso directo por pregunta siempre trae un valor único, así que un checklist + se lee como los nombres de lo que quedó marcado, y una pregunta sobre una + lista como pares `opción: valor`, separados en ambos casos por `;`. Nada de + eso viene escapado, así que conviene tratarlo como texto para mostrar o + guardar, no para separar. Cuando necesites esos valores uno por uno, usa la + lista de ítems de la respuesta, que trae cada uno como campo propio y con su + opción al lado. - **`pdf_url` es oportunista.** El campo está, pero trae un valor solo cuando el PDF ya existe en el momento en que se entrega la respuesta. El disparador no espera a que el documento se genere, así que un flujo que usa `pdf_url` diff --git a/source/power_automate/connector_guide_pt.html.md b/source/power_automate/connector_guide_pt.html.md index f90fe3cd961..1fa87c0c833 100644 --- a/source/power_automate/connector_guide_pt.html.md +++ b/source/power_automate/connector_guide_pt.html.md @@ -137,8 +137,15 @@ que você espera e só então exclua o antigo. Enquanto os dois fluxos estiverem ativos, a mesma resposta de formulário é entregue duas vezes, em dois formatos diferentes, uma vez para cada fluxo. Tudo o que o fluxo faz acontece duas vezes: duas ordens de serviço, duas aprovações, dois emails. Deixe curto o período em que os dois estão ativos, e confira o resultado antes de deixar ambos rodando. -Dois pontos para levar em conta: - +Três pontos para levar em conta: + +- **Uma pergunta com várias respostas chega como uma única linha de texto.** O + atalho por pergunta sempre traz um valor único, então um checklist aparece + como os nomes do que foi marcado, e uma pergunta sobre uma lista como pares + `opção: valor`, separados nos dois casos por `;`. Nada disso vem escapado, + então trate como texto para mostrar ou guardar, não para separar. Quando + precisar desses valores um a um, use a lista de itens da resposta, que traz + cada um como campo próprio e com a sua opção ao lado. - **O `pdf_url` é oportunista.** O campo existe, mas só traz um valor quando o PDF já existe no momento em que a resposta é entregue. O disparador não espera a geração do documento, então um fluxo que usa o `pdf_url` pode From 6461c0aa01ad88936df6d69e1520791ff7e0f0e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Thu, 24 Sep 2026 10:54:25 -0300 Subject: [PATCH 04/11] Say that several flows can share a form on New answer v2 The connector and the three guides told makers that a form supports one active connection, which is true of the older triggers and false of v2: each flow on the same form gets its own subscription and its own delivery. The v2 description now says so, and the considerations and troubleshooting sections name it as the exception instead of sending someone to hunt for a conflicting connection that is not the problem. The same paragraph also promised two things v2 does not do. It fires once the answer reaches DataScope complete, not when it is submitted, and a repeatable table does not surface its columns as dynamic content: each item carries its question, its value and its row number. Co-Authored-By: Claude Opus 5.5 --- .../power_automate/apiDefinition.swagger.json | 2 +- .../power_automate/connector_guide_en.html.md | 25 ++++++++++------- .../power_automate/connector_guide_es.html.md | 23 ++++++++++------ .../power_automate/connector_guide_pt.html.md | 27 +++++++++++-------- 4 files changed, 48 insertions(+), 29 deletions(-) diff --git a/source/power_automate/apiDefinition.swagger.json b/source/power_automate/apiDefinition.swagger.json index 3a1d5b2e76c..5a1fe91a1ca 100644 --- a/source/power_automate/apiDefinition.swagger.json +++ b/source/power_automate/apiDefinition.swagger.json @@ -2233,7 +2233,7 @@ }, "operationId": "NewFormAnswerV2", "summary": "New answer v2 (Forms)", - "description": "Triggers when a new answer is submitted. Only one active connection per form is supported.", + "description": "Triggers when a new form answer reaches DataScope complete. Several flows can use it on the same form, and each one receives its own delivery.", "x-ms-trigger": "single", "x-ms-api-annotation": { "status": "Preview", diff --git a/source/power_automate/connector_guide_en.html.md b/source/power_automate/connector_guide_en.html.md index 89978c10fbe..7cd898ed2b5 100644 --- a/source/power_automate/connector_guide_en.html.md +++ b/source/power_automate/connector_guide_en.html.md @@ -117,11 +117,13 @@ The connector also provides the following actions, so a flow can act back on Dat ## The New answer v2 trigger **New answer v2 (Forms)** is the trigger to use when you build a new flow on a -submitted form answer. It fires when the answer is submitted, and its fields -arrive as dynamic content you can pick directly in the following steps, with no -**Parse JSON** step to add and no schema to paste. Repeatable tables come -through as a list of answer items: put an **Apply to each** over that list, and -the table's columns are available as dynamic content inside the loop. +submitted form answer. It fires once the answer reaches DataScope complete, +with its photos and files uploaded, and its fields arrive as dynamic content +you can pick directly in the following steps, with no **Parse JSON** step to +add and no schema to paste. Repeatable tables come through as a list of answer +items, one per question and repetition: put an **Apply to each** over that +list, and each item carries its question, its value and its row number +(`subform_index`, counting from 0) as dynamic content. The earlier **New answer (Forms)** trigger is deprecated, not removed. Flows already built on it keep running exactly as they do today, and there is no @@ -159,8 +161,10 @@ Three things to plan around: ## Important considerations - **One active connection per form.** Triggers associated with a form support - only one active connection at a time. If you need several flows on the - same form, chain them from a single trigger. + only one active connection at a time. If you need several flows on the same + form, chain them from a single trigger. **New answer v2 (Forms)** is the + exception: several flows can use it on the same form, and each one receives + its own delivery. - **Ticket triggers operate at the account level.** They support only one active connection per account. - **Available fields vary by configuration.** Some data, such as planning @@ -183,8 +187,11 @@ Three things to plan around: - **The connection fails to create:** check that the API Key is complete, with no leading or trailing spaces. -- **The flow doesn't trigger:** confirm there is no other active connection - on the same form, and review the flow's run history in Power Automate. +- **The flow doesn't trigger:** review the flow's run history in Power + Automate. On triggers that allow a single connection per form, also confirm + there is no other active connection on that form. With + **New answer v2 (Forms)**, the flow runs once the answer is complete, and + editing an answer does not run it again. - **Expected fields don't appear:** some fields depend on your account's configuration. Reach out to support and we'll look into it with you. diff --git a/source/power_automate/connector_guide_es.html.md b/source/power_automate/connector_guide_es.html.md index 16c091152fa..9779d594357 100644 --- a/source/power_automate/connector_guide_es.html.md +++ b/source/power_automate/connector_guide_es.html.md @@ -117,12 +117,14 @@ El conector también entrega las siguientes actions, para que un flujo pueda act ## El disparador New answer v2 **New answer v2 (Forms)** es el disparador que conviene usar al armar un flujo -nuevo sobre una respuesta de formulario. Se activa cuando la respuesta se -envía, y sus campos llegan como contenido dinámico que puedes elegir -directamente en los pasos siguientes, sin agregar un paso **Parse JSON** ni -pegar un esquema. Las tablas repetibles llegan como una lista de ítems de la -respuesta: pon un **Apply to each** sobre esa lista y las columnas de la tabla -quedan disponibles como contenido dinámico dentro del ciclo. +nuevo sobre una respuesta de formulario. Se activa cuando la respuesta llega +completa a DataScope, con sus fotos y archivos ya subidos, y sus campos llegan +como contenido dinámico que puedes elegir directamente en los pasos siguientes, +sin agregar un paso **Parse JSON** ni pegar un esquema. Las tablas repetibles +llegan como una lista de ítems de la respuesta, uno por pregunta y por +repetición: pon un **Apply to each** sobre esa lista y cada ítem trae como +contenido dinámico su pregunta, su valor y su número de fila (`subform_index`, +que cuenta desde 0). El disparador anterior, **New answer (Forms)**, queda obsoleto, pero no se elimina. Los flujos que ya están armados sobre él siguen funcionando igual que @@ -163,6 +165,8 @@ Tres cosas para tener en cuenta: - **Una conexión activa por formulario.** Los disparadores asociados a un formulario admiten una sola conexión activa a la vez. Si necesitas varios flujos sobre el mismo formulario, encadénalos desde un único disparador. + **New answer v2 (Forms)** es la excepción: varios flujos pueden usarlo sobre + el mismo formulario, y cada uno recibe su propia entrega. - **Los disparadores de tickets operan a nivel de cuenta.** Admiten una sola conexión activa por cuenta. - **Los campos disponibles varían según tu configuración.** Algunos datos, como @@ -186,8 +190,11 @@ Tres cosas para tener en cuenta: - **La conexión falla al crearse:** verifica que la API Key esté completa y sin espacios al inicio o al final. -- **El flujo no se dispara:** confirma que no exista otra conexión activa sobre - el mismo formulario, y revisa el historial del flujo en Power Automate. +- **El flujo no se dispara:** revisa el historial del flujo en Power Automate. + En los disparadores que admiten una sola conexión por formulario, confirma + además que no exista otra conexión activa sobre ese formulario. Con + **New answer v2 (Forms)**, el flujo se ejecuta cuando la respuesta llega + completa, y editar una respuesta no lo vuelve a ejecutar. - **No aparecen los campos esperados:** algunos campos dependen de la configuración de tu cuenta. Escríbenos y lo revisamos contigo. diff --git a/source/power_automate/connector_guide_pt.html.md b/source/power_automate/connector_guide_pt.html.md index 1fa87c0c833..99d08eaaf30 100644 --- a/source/power_automate/connector_guide_pt.html.md +++ b/source/power_automate/connector_guide_pt.html.md @@ -118,12 +118,14 @@ O conector também oferece as seguintes actions, para que um fluxo possa agir so ## O disparador New answer v2 O **New answer v2 (Forms)** é o disparador a usar quando você cria um fluxo -novo sobre uma resposta de formulário. Ele é acionado quando a resposta é -enviada, e seus campos chegam como conteúdo dinâmico que você escolhe direto -nas próximas etapas, sem precisar adicionar uma etapa **Parse JSON** nem colar -um schema. As tabelas repetíveis chegam como uma lista de itens da resposta: -coloque um **Apply to each** sobre essa lista e as colunas da tabela ficam -disponíveis como conteúdo dinâmico dentro do loop. +novo sobre uma resposta de formulário. Ele é acionado quando a resposta chega +completa ao DataScope, com suas fotos e arquivos já enviados, e seus campos +chegam como conteúdo dinâmico que você escolhe direto nas próximas etapas, sem +precisar adicionar uma etapa **Parse JSON** nem colar um schema. As tabelas +repetíveis chegam como uma lista de itens da resposta, um por pergunta e por +repetição: coloque um **Apply to each** sobre essa lista e cada item traz como +conteúdo dinâmico sua pergunta, seu valor e seu número de linha +(`subform_index`, que conta a partir de 0). O disparador anterior, **New answer (Forms)**, ficou obsoleto, mas não foi removido. Os fluxos já criados sobre ele continuam rodando exatamente como @@ -162,8 +164,9 @@ Três pontos para levar em conta: - **Uma conexão ativa por formulário.** Os disparadores associados a um formulário admitem apenas uma conexão ativa por vez. Se precisar de vários - fluxos sobre o mesmo formulário, encadeie-os a partir de um único - disparador. + fluxos sobre o mesmo formulário, encadeie-os a partir de um único disparador. + O **New answer v2 (Forms)** é a exceção: vários fluxos podem usá-lo sobre o + mesmo formulário, e cada um recebe sua própria entrega. - **Os disparadores de tickets operam no nível da conta.** Admitem apenas uma conexão ativa por conta. - **Os campos disponíveis variam conforme sua configuração.** Alguns dados, @@ -186,9 +189,11 @@ Três pontos para levar em conta: - **A conexão falha ao ser criada:** verifique se a API Key está completa e sem espaços no início ou no final. -- **O fluxo não é disparado:** confirme que não existe outra conexão ativa - sobre o mesmo formulário e revise o histórico de execuções do fluxo no - Power Automate. +- **O fluxo não é disparado:** revise o histórico de execuções do fluxo no + Power Automate. Nos disparadores que admitem apenas uma conexão por + formulário, confirme também que não existe outra conexão ativa sobre esse + formulário. Com o **New answer v2 (Forms)**, o fluxo é executado quando a + resposta chega completa, e editar uma resposta não o executa de novo. - **Os campos esperados não aparecem:** alguns campos dependem da configuração da sua conta. Escreva para o suporte e nós verificamos com você. From 814d7a5417ac7b83ff5b6775a266d098a2edcb23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Thu, 24 Sep 2026 11:09:24 -0300 Subject: [PATCH 05/11] Call Checkbox and Checklist by the names the form builder uses The note on per-question shortcuts called the 1/0 question a checklist. In the form builder that type is Checkbox; Checklist is the one that picks an alternative for each list item, which is the type that arrives as `item: value` pairs. A maker following the old wording would have looked for checked names on the wrong question. The note now names each type as it appears in DataScope, in all three languages. Co-Authored-By: Claude Opus 5.5 --- source/power_automate/connector_guide_en.html.md | 13 +++++++------ source/power_automate/connector_guide_es.html.md | 15 ++++++++------- source/power_automate/connector_guide_pt.html.md | 13 +++++++------ 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/source/power_automate/connector_guide_en.html.md b/source/power_automate/connector_guide_en.html.md index 7cd898ed2b5..df9570ae964 100644 --- a/source/power_automate/connector_guide_en.html.md +++ b/source/power_automate/connector_guide_en.html.md @@ -140,12 +140,13 @@ While both flows are active the same form answer is delivered twice, in two diff Three things to plan around: - **A question with several answers arrives as one line of text.** The - per-question shortcut always carries a single value, so a checklist reads as - the names of what was checked, and a question over a list as `option: value` - pairs, separated in both cases by `;`. Nothing in it is escaped, so treat it - as text to show or store, not to split apart. When you need those values one - by one, use the list of answer items, which carries each one as its own field - with its option beside it. + per-question shortcut always carries a single value, so a **Checkbox** reads + as the names of the items that were checked, and a **Checklist**, + **Number Data** or **Text Data** question as `item: value` pairs, separated + in both cases by `;`. Nothing in it is escaped, so treat it as text to show + or store, not to split apart. When you need those values one by one, use the + list of answer items, which carries each one as its own field with its list + item beside it. - **`pdf_url` is opportunistic.** The field is there, but it carries a value only when the PDF already exists at the moment the answer is delivered. The trigger does not wait for the document to be generated, so a flow that binds diff --git a/source/power_automate/connector_guide_es.html.md b/source/power_automate/connector_guide_es.html.md index 9779d594357..26f35167c2b 100644 --- a/source/power_automate/connector_guide_es.html.md +++ b/source/power_automate/connector_guide_es.html.md @@ -141,13 +141,14 @@ Mientras los dos flujos estén activos, la misma respuesta de formulario se entr Tres cosas para tener en cuenta: - **Una pregunta con varias respuestas llega como una sola línea de texto.** El - acceso directo por pregunta siempre trae un valor único, así que un checklist - se lee como los nombres de lo que quedó marcado, y una pregunta sobre una - lista como pares `opción: valor`, separados en ambos casos por `;`. Nada de - eso viene escapado, así que conviene tratarlo como texto para mostrar o - guardar, no para separar. Cuando necesites esos valores uno por uno, usa la - lista de ítems de la respuesta, que trae cada uno como campo propio y con su - opción al lado. + acceso directo por pregunta siempre trae un valor único, así que un + **Checkbox** se lee como los nombres de los elementos marcados, y un + **Checklist**, un **Número Lista Datos** o un **Texto Lista Datos** como + pares `elemento: valor`, separados en ambos casos por `;`. Nada de eso viene + escapado, así que conviene tratarlo como texto para mostrar o guardar, no + para separar. Cuando necesites esos valores uno por uno, usa la lista de + ítems de la respuesta, que trae cada uno como campo propio y con su elemento + de la lista al lado. - **`pdf_url` es oportunista.** El campo está, pero trae un valor solo cuando el PDF ya existe en el momento en que se entrega la respuesta. El disparador no espera a que el documento se genere, así que un flujo que usa `pdf_url` diff --git a/source/power_automate/connector_guide_pt.html.md b/source/power_automate/connector_guide_pt.html.md index 99d08eaaf30..98a090273f2 100644 --- a/source/power_automate/connector_guide_pt.html.md +++ b/source/power_automate/connector_guide_pt.html.md @@ -142,12 +142,13 @@ Enquanto os dois fluxos estiverem ativos, a mesma resposta de formulário é ent Três pontos para levar em conta: - **Uma pergunta com várias respostas chega como uma única linha de texto.** O - atalho por pergunta sempre traz um valor único, então um checklist aparece - como os nomes do que foi marcado, e uma pergunta sobre uma lista como pares - `opção: valor`, separados nos dois casos por `;`. Nada disso vem escapado, - então trate como texto para mostrar ou guardar, não para separar. Quando - precisar desses valores um a um, use a lista de itens da resposta, que traz - cada um como campo próprio e com a sua opção ao lado. + atalho por pergunta sempre traz um valor único, então um **Checkbox** aparece + como os nomes dos elementos marcados, e um **Checklist**, **Dados numéricos** + ou **Dados de texto** como pares `elemento: valor`, separados nos dois casos + por `;`. Nada disso vem escapado, então trate como texto para mostrar ou + guardar, não para separar. Quando precisar desses valores um a um, use a + lista de itens da resposta, que traz cada um como campo próprio e com o seu + elemento da lista ao lado. - **O `pdf_url` é oportunista.** O campo existe, mas só traz um valor quando o PDF já existe no momento em que a resposta é entregue. O disparador não espera a geração do documento, então um fluxo que usa o `pdf_url` pode From 8a4d233cfcafcdcc75881c014c2c159deae09497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Wed, 30 Sep 2026 19:34:14 -0300 Subject: [PATCH 06/11] Describe New answer v2 by its standard, loopable structure Co-Authored-By: Claude Opus 5.5 --- source/power_automate/apiDefinition.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/power_automate/apiDefinition.swagger.json b/source/power_automate/apiDefinition.swagger.json index 5a1fe91a1ca..96cb40e916d 100644 --- a/source/power_automate/apiDefinition.swagger.json +++ b/source/power_automate/apiDefinition.swagger.json @@ -2233,7 +2233,7 @@ }, "operationId": "NewFormAnswerV2", "summary": "New answer v2 (Forms)", - "description": "Triggers when a new form answer reaches DataScope complete. Several flows can use it on the same form, and each one receives its own delivery.", + "description": "Triggers when a new form answer is complete. Every form uses the same standard structure: answers arrive as a list you can loop through with Apply to each, each with its question ID, value, repeatable group row, list element and location. Several flows can use the same form.", "x-ms-trigger": "single", "x-ms-api-annotation": { "status": "Preview", From 97c765a1c59fe21dfbe82fd750e42dc42dc94553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Wed, 30 Sep 2026 19:43:21 -0300 Subject: [PATCH 07/11] Say New answer v2 fires on a completely submitted answer Drop the photos and files mention, which read as a separate condition. Co-Authored-By: Claude Opus 5.5 --- source/power_automate/connector_guide_en.html.md | 4 ++-- source/power_automate/connector_guide_es.html.md | 4 ++-- source/power_automate/connector_guide_pt.html.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/source/power_automate/connector_guide_en.html.md b/source/power_automate/connector_guide_en.html.md index df9570ae964..63dc284e3a6 100644 --- a/source/power_automate/connector_guide_en.html.md +++ b/source/power_automate/connector_guide_en.html.md @@ -90,7 +90,7 @@ in Power Automate's trigger list: | Trigger | Fires when | |---|---| -| New answer v2 (Forms) | A form answer is submitted, with every question available as its own dynamic content | +| New answer v2 (Forms) | A form answer is completely submitted, with every question available as its own dynamic content | | New answer (Forms) (deprecated) | A form answer is submitted. Kept so flows already built on it keep running | | New PDF (Forms) | A PDF document is generated | | Status changed (Forms) | A form answer changes status | @@ -118,7 +118,7 @@ The connector also provides the following actions, so a flow can act back on Dat **New answer v2 (Forms)** is the trigger to use when you build a new flow on a submitted form answer. It fires once the answer reaches DataScope complete, -with its photos and files uploaded, and its fields arrive as dynamic content +and its fields arrive as dynamic content you can pick directly in the following steps, with no **Parse JSON** step to add and no schema to paste. Repeatable tables come through as a list of answer items, one per question and repetition: put an **Apply to each** over that diff --git a/source/power_automate/connector_guide_es.html.md b/source/power_automate/connector_guide_es.html.md index 26f35167c2b..a880bb46e34 100644 --- a/source/power_automate/connector_guide_es.html.md +++ b/source/power_automate/connector_guide_es.html.md @@ -89,7 +89,7 @@ la lista de disparadores de Power Automate: | Disparador | Se activa cuando | |---|---| -| New answer v2 (Forms) | Se envía una respuesta de formulario, con cada pregunta disponible como su propio contenido dinámico | +| New answer v2 (Forms) | Se termina de enviar una respuesta de formulario, con cada pregunta disponible como su propio contenido dinámico | | New answer (Forms) (deprecated) | Se envía una respuesta de formulario. Se mantiene para que los flujos ya armados sobre él sigan funcionando | | New PDF (Forms) | Se genera un documento PDF | | Status changed (Forms) | Una respuesta de formulario cambia de estado | @@ -118,7 +118,7 @@ El conector también entrega las siguientes actions, para que un flujo pueda act **New answer v2 (Forms)** es el disparador que conviene usar al armar un flujo nuevo sobre una respuesta de formulario. Se activa cuando la respuesta llega -completa a DataScope, con sus fotos y archivos ya subidos, y sus campos llegan +completa a DataScope, y sus campos llegan como contenido dinámico que puedes elegir directamente en los pasos siguientes, sin agregar un paso **Parse JSON** ni pegar un esquema. Las tablas repetibles llegan como una lista de ítems de la respuesta, uno por pregunta y por diff --git a/source/power_automate/connector_guide_pt.html.md b/source/power_automate/connector_guide_pt.html.md index 98a090273f2..51c21f35e17 100644 --- a/source/power_automate/connector_guide_pt.html.md +++ b/source/power_automate/connector_guide_pt.html.md @@ -90,7 +90,7 @@ lista de disparadores do Power Automate: | Disparador | É acionado quando | |---|---| -| New answer v2 (Forms) | Uma resposta de formulário é enviada, com cada pergunta disponível como seu próprio conteúdo dinâmico | +| New answer v2 (Forms) | Uma resposta de formulário é enviada por completo, com cada pergunta disponível como seu próprio conteúdo dinâmico | | New answer (Forms) (deprecated) | Uma resposta de formulário é enviada. Mantido para que os fluxos já criados sobre ele continuem funcionando | | New PDF (Forms) | Um documento PDF é gerado | | Status changed (Forms) | Uma resposta de formulário muda de status | @@ -119,7 +119,7 @@ O conector também oferece as seguintes actions, para que um fluxo possa agir so O **New answer v2 (Forms)** é o disparador a usar quando você cria um fluxo novo sobre uma resposta de formulário. Ele é acionado quando a resposta chega -completa ao DataScope, com suas fotos e arquivos já enviados, e seus campos +completa ao DataScope, e seus campos chegam como conteúdo dinâmico que você escolhe direto nas próximas etapas, sem precisar adicionar uma etapa **Parse JSON** nem colar um schema. As tabelas repetíveis chegam como uma lista de itens da resposta, um por pergunta e por From 6de0fb1d24b6996a5331764327a0dce0be4f3687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Wed, 30 Sep 2026 19:43:21 -0300 Subject: [PATCH 08/11] Note on the main page that New answer v2 needs export permission Co-Authored-By: Claude Opus 5.5 --- source/index.html.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/index.html.md b/source/index.html.md index 9a7d5ead3eb..4b115daab9d 100644 --- a/source/index.html.md +++ b/source/index.html.md @@ -99,6 +99,10 @@ We have had ongoing trouble keeping the connector published in the official Powe Follow the step-by-step guide to import it and create your first connection. Spanish and Portuguese versions are linked from the top of that guide. + + ## Airbyte Cloud connectors DataScope publishes ready to use low-code connector manifests for Airbyte. Each one is plain YAML: import it in the Connector Builder, fill in your token and a start date, and Airbyte handles the paging, the incremental state and the deduplication. From 7e7293ac1dd0d8131cfc16aff345b3dbce8820fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Wed, 30 Sep 2026 19:46:35 -0300 Subject: [PATCH 09/11] Declare the 403 that refuses a New answer v2 subscription Co-Authored-By: Claude Opus 5.5 --- source/power_automate/apiDefinition.swagger.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/power_automate/apiDefinition.swagger.json b/source/power_automate/apiDefinition.swagger.json index 96cb40e916d..d4225dc9a4f 100644 --- a/source/power_automate/apiDefinition.swagger.json +++ b/source/power_automate/apiDefinition.swagger.json @@ -2229,6 +2229,19 @@ } } } + }, + "403": { + "description": "The trigger is not enabled for this DataScope account, or the user of the API Key lacks export permission.", + "schema": { + "type": "object", + "description": "Error returned when the subscription is refused.", + "properties": { + "error": { + "type": "string", + "description": "Reason the subscription was refused, ready to show to the user." + } + } + } } }, "operationId": "NewFormAnswerV2", From f2ec225afa0b73a2ff7e78789bc88eda0f1efeee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Wed, 30 Sep 2026 19:46:35 -0300 Subject: [PATCH 10/11] Add the changelog entry for the New answer v2 triggers Co-Authored-By: Claude Opus 5.5 --- source/index.html.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/index.html.md b/source/index.html.md index 4b115daab9d..501ef65d920 100644 --- a/source/index.html.md +++ b/source/index.html.md @@ -2700,6 +2700,13 @@ Remember — use your own Authorization header # Changelog +**30-Sep-2026** + +- The [Microsoft Power Automate](#microsoft-power-automate-beta) connector adds the **New answer v2 (Forms)** trigger. It fires once a form answer is completely submitted, and every form uses the same standard structure: the answers arrive as a list you can loop through with Apply to each, and each question is also available as its own dynamic content, with no Parse JSON step. Several flows can use the same form. Re-import the definition file to pick it up +- **New answer (Forms)** is deprecated in the connector. Flows already built on it keep running, but it is no longer offered when you build a new flow +- The [Zapier](#zapier) app adds the **Forms: New Answer v2** trigger in version 2.2.1, with the same structure and the same freedom to use several Zaps on one form +- Both v2 triggers need export permission for the user whose API Key the connection uses + **10-Sep-2026** - Documented [Get Answer Statuses](#get-answer-statuses) and [Change Answer Status](#change-answer-status), the two endpoints behind the Change Form Status action of the [Zapier](#zapier) and [Power Automate](#microsoft-power-automate-beta) connectors. Both were already available, they were only missing from this reference From 2c754ed722200a90492e9357ab9f3e0810096b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Garc=C3=ADa=20Gonz=C3=A1lez?= Date: Wed, 30 Sep 2026 19:52:06 -0300 Subject: [PATCH 11/11] Add Forms: New Answer v2 to the Zapier guides and their changelog Co-Authored-By: Claude Opus 5.5 --- source/zapier/connector_guide_en.html.md | 67 ++++++++++++++++++++--- source/zapier/connector_guide_es.html.md | 69 ++++++++++++++++++++++-- source/zapier/connector_guide_pt.html.md | 69 ++++++++++++++++++++++-- 3 files changed, 189 insertions(+), 16 deletions(-) diff --git a/source/zapier/connector_guide_en.html.md b/source/zapier/connector_guide_en.html.md index b68491a1319..0b3cdfb317d 100644 --- a/source/zapier/connector_guide_en.html.md +++ b/source/zapier/connector_guide_en.html.md @@ -77,6 +77,7 @@ see in Zapier's trigger list: | Trigger | Fires when | Form field | |---|---|---| | Forms: New Form Entry | A form answer is submitted | Required | +| Forms: New Answer v2 | A form answer is completely submitted, with the answers in a standard structure you can loop through | Required | | Forms: New PDF | A PDF is generated by email backup or auto-notify | Optional, pick one | | Forms: Status Changed | A form answer changes status | Optional, pick one | | Tasks: New Assigned Task | A task is assigned | Required | @@ -87,9 +88,10 @@ see in Zapier's trigger list: | Tickets: Changed Status | A ticket changes status | Not applicable, account level | Each trigger delivers the event data as individual fields, ready to map into -the following steps of the Zap without having to parse the JSON yourself. For -form answers, every question arrives as its own field, with its name, its type -and its value. +the following steps of the Zap without having to parse the JSON yourself. On +`Forms: New Form Entry`, every question arrives as its own field, with its +name, its type and its value. `Forms: New Answer v2` uses a standard structure +instead, described [below](#forms-new-answer-v2). The app also provides the following actions, so a Zap can act back on DataScope instead of only reacting to it: @@ -103,6 +105,47 @@ DataScope instead of only reacting to it: | Modify Form Answer | Creates or updates a single answer inside an existing form response | | Tickets: Create Ticket | Creates a ticket, optionally taking its defaults from a Ticket Type | +### Forms: New Answer v2 + +`Forms: New Answer v2` is the trigger to use when you build a new Zap on a +submitted form answer. It fires once the answer is completely submitted, and +every form delivers it in the same standard structure: + +- **Header fields** describe the answer: its ID, code, form, status, user, + dates, assigned task and `pdf_url`. +- **`answers`** is the list of answer items, one per question and repetition, + which Zapier shows as line items. Each item carries its question ID, name + and type, its value, its row in a repeatable group (`subform_index`, + counting from 0), its list element, its location and send time, the comment + and photos of a Checklist with comments, and the times of an activity. To + act on each item separately, loop over them with Looping by Zapier. +- **`answers_by_id`** gives direct access to each question outside a + repeatable group, keyed `q_` followed by the question ID. A question with + several answers arrives there as one line of text: a **Checkbox** as the + names of the checked items, and a **Checklist**, **Number Data** or + **Text Data** question as `item: value` pairs, separated in both cases by + `;`. When you need those values one by one, use `answers`. + +Several Zaps can use `Forms: New Answer v2` on the same form, and each one +receives its own delivery. Editing an answer does not fire it again. + +`Forms: New Form Entry` keeps working. To move a Zap to the new trigger, build +the new one alongside it, confirm it does what you expect, and only then turn +off the old one. + + + +Two more things to plan around: + +- **`pdf_url` is opportunistic.** It carries a value only when the PDF already + exists at the moment the answer is delivered. If the Zap needs the document, + build it on `Forms: New PDF` instead. +- **It needs export permission.** The user whose API Key the connection uses + needs export permission in DataScope. Without it, testing the trigger or + turning the Zap on fails with an error that says so. + ### Assign Task: V1 or V2 Use **V2** for anything new. It does everything V1 does, plus: @@ -173,7 +216,7 @@ things to plan around: ## Important considerations -- **One active Zap per form and per trigger, with one exception.** +- **One active Zap per form and per trigger, with two exceptions.** `Forms: New PDF`, `Forms: Status Changed`, `Tasks: New Assigned Task` and the three signature triggers support a single active subscription per form. Turning on a second Zap with the same trigger on the same form is rejected with an @@ -181,7 +224,9 @@ things to plan around: Different triggers on the same form are fine, and so is the same trigger on different forms. **`Forms: New Form Entry` is not covered by that check**: a second Zap on the same form is accepted, and both then receive every - submission. Add steps to one Zap instead. + submission. Add steps to one Zap instead. `Forms: New Answer v2` is the + other exception, by design: several Zaps can use it on the same form, and + each one receives its own delivery. - **If you need several things to happen on one event, add steps to one Zap** rather than creating a second Zap on the same trigger and form. - **Ticket triggers work at the account level.** `Tickets: New Ticket` and @@ -209,6 +254,9 @@ things to plan around: your account, possibly built by someone else, already uses that trigger on that form. Turn the older Zap off, then turn this one on. If the error persists, contact support and we will clear the leftover subscription. +- **Testing or turning on a `Forms: New Answer v2` Zap fails with a permission + error:** the user whose API Key the connection uses needs export permission + in DataScope. Ask your account administrator to grant it, then try again. - **Test trigger returns no data:** the trigger reads recent events, so an account with none yet has nothing to show. Produce one and test again. - **The Zap never fires:** confirm that a form is selected in the trigger, @@ -254,6 +302,13 @@ what a reader can check in the app or in this guide. Never publish per-version user or task counts. Add a date only when the release date is known. --> +**2.2.1** (default for new Zaps) + +- Adds the trigger `Forms: New Answer v2`. It fires once a form answer is + completely submitted and delivers every form in the same standard structure, + with the answers as line items you can loop through. Several Zaps can use it + on the same form. See [Forms: New Answer v2](#forms-new-answer-v2). + **2.1.3** (released to selected accounts) - Adds the `Location Type` field to `Tasks: Assign Task V2` and to @@ -277,7 +332,7 @@ user or task counts. Add a date only when the release date is known. `Tasks: Assign Task V1 [Legacy]` now says in its description that V2 is the one to use. -**2.1.2** (default for new Zaps) +**2.1.2** - Adds the action `Tasks: Assign Task V2`, and relabels the previous one `Tasks: Assign Task V1 [Legacy]`. V2 accepts user email addresses that contain diff --git a/source/zapier/connector_guide_es.html.md b/source/zapier/connector_guide_es.html.md index 83d48c434e7..5fbcee6ce2c 100644 --- a/source/zapier/connector_guide_es.html.md +++ b/source/zapier/connector_guide_es.html.md @@ -79,6 +79,7 @@ que ves en la lista de disparadores de Zapier: | Disparador | Se activa cuando | Campo Form | |---|---|---| | Forms: New Form Entry | Se envía una respuesta de formulario | Obligatorio | +| Forms: New Answer v2 | Se termina de enviar una respuesta de formulario, con las respuestas en una estructura estándar que puedes recorrer | Obligatorio | | Forms: New PDF | Se genera un PDF por respaldo por email o por autonotificación | Opcional, elige uno | | Forms: Status Changed | Una respuesta de formulario cambia de estado | Opcional, elige uno | | Tasks: New Assigned Task | Se asigna una tarea | Obligatorio | @@ -90,8 +91,9 @@ que ves en la lista de disparadores de Zapier: Cada disparador entrega los datos del evento como campos individuales, listos para mapear en los pasos siguientes del Zap sin tener que procesar el JSON -manualmente. En el caso de las respuestas de formulario, cada pregunta llega -como su propio campo, con su nombre, su tipo y su valor. +manualmente. En `Forms: New Form Entry`, cada pregunta llega como su propio +campo, con su nombre, su tipo y su valor. `Forms: New Answer v2` usa en cambio +una estructura estándar, que se describe [más abajo](#forms-new-answer-v2). La app también entrega las siguientes actions, para que un Zap pueda actuar sobre DataScope y no solo reaccionar a sus eventos: @@ -105,6 +107,49 @@ sobre DataScope y no solo reaccionar a sus eventos: | Modify Form Answer | Crea o modifica una respuesta puntual dentro de un formulario ya enviado | | Tickets: Create Ticket | Crea un ticket, opcionalmente tomando sus valores por defecto de un Ticket Type | +### Forms: New Answer v2 + +`Forms: New Answer v2` es el disparador que conviene usar al armar un Zap nuevo +sobre una respuesta de formulario. Se activa cuando la respuesta se termina de +enviar, y todos los formularios la entregan con la misma estructura estándar: + +- **Los campos de cabecera** describen la respuesta: su ID, su código, el + formulario, el estado, el usuario, las fechas, la tarea asignada y `pdf_url`. +- **`answers`** es la lista de ítems de la respuesta, uno por pregunta y por + repetición, que Zapier muestra como line items. Cada ítem trae el ID, el + nombre y el tipo de su pregunta, su valor, su fila en un grupo de preguntas + repetibles (`subform_index`, contando desde 0), su elemento de la lista, su + ubicación y hora de envío, el comentario y las fotos de un Checklist con + comentarios, y los tiempos de una actividad. Para actuar sobre cada ítem por + separado, recórrelos con Looping by Zapier. +- **`answers_by_id`** da acceso directo a cada pregunta que no está en un grupo + de preguntas repetibles, con la clave `q_` seguida del ID de la pregunta. Una + pregunta con varias respuestas llega ahí como una sola línea de texto: un + **Checkbox** como los nombres de los elementos marcados, y un **Checklist**, + un **Número Lista Datos** o un **Texto Lista Datos** como pares + `elemento: valor`, separados en ambos casos por `;`. Cuando necesites esos + valores uno por uno, usa `answers`. + +Varios Zaps pueden usar `Forms: New Answer v2` sobre el mismo formulario, y +cada uno recibe su propia entrega. Editar una respuesta no lo vuelve a activar. + +`Forms: New Form Entry` sigue funcionando. Para pasar un Zap al nuevo +disparador, arma el nuevo al lado, confirma que hace lo que esperas y solo +después apaga el antiguo. + + + +Dos cosas más a tener en cuenta: + +- **`pdf_url` es oportunista.** Trae un valor solo cuando el PDF ya existe en el + momento en que se entrega la respuesta. Si el Zap necesita el documento, + ármalo sobre `Forms: New PDF`. +- **Necesita el permiso de exportar.** El usuario de la API Key de la conexión + necesita permiso para exportar datos en DataScope. Sin él, probar el + disparador o activar el Zap falla con un error que lo explica. + ### Assign Task: V1 o V2 Usa **V2** para todo lo nuevo. Hace todo lo que hace V1, y además: @@ -177,7 +222,7 @@ en otra parte. Tres cosas que conviene tener en cuenta: ## Consideraciones importantes -- **Un Zap activo por formulario y por disparador, con una excepción.** +- **Un Zap activo por formulario y por disparador, con dos excepciones.** `Forms: New PDF`, `Forms: Status Changed`, `Tasks: New Assigned Task` y los tres disparadores de firma admiten una sola suscripción activa por formulario. Activar un segundo Zap con el mismo disparador sobre el mismo formulario se @@ -186,7 +231,9 @@ en otra parte. Tres cosas que conviene tener en cuenta: tampoco el mismo disparador sobre formularios distintos. **`Forms: New Form Entry` no pasa por esa validación**: un segundo Zap sobre el mismo formulario se acepta, y después los dos reciben todos los envíos. Agrega - pasos a un solo Zap en vez de eso. + pasos a un solo Zap en vez de eso. `Forms: New Answer v2` es la otra + excepción, a propósito: varios Zaps pueden usarlo sobre el mismo formulario, + y cada uno recibe su propia entrega. - **Si necesitas que pasen varias cosas con un mismo evento, agrega pasos a un solo Zap** en vez de crear un segundo Zap con el mismo disparador y formulario. @@ -217,6 +264,10 @@ en otra parte. Tres cosas que conviene tener en cuenta: cuenta, quizás armado por otra persona, ya usa ese disparador sobre ese formulario. Apaga el Zap más antiguo y luego activa este. Si el error persiste, escríbenos y limpiamos la suscripción que quedó. +- **Probar o activar un Zap con `Forms: New Answer v2` falla con un error de + permiso:** el usuario de la API Key de la conexión necesita permiso para + exportar datos en DataScope. Pide a quien administra tu cuenta que lo + otorgue y vuelve a intentarlo. - **Test trigger no devuelve datos:** el disparador lee eventos recientes, así que una cuenta que todavía no tiene ninguno no tiene nada que mostrar. Genera uno y prueba de nuevo. @@ -265,6 +316,14 @@ app o en esta guía. Nunca publiques la cantidad de usuarios ni de tareas por versión. Agrega una fecha solo si se conoce la fecha de publicación. --> +**2.2.1** (predeterminada para los Zaps nuevos) + +- Agrega el disparador `Forms: New Answer v2`. Se activa cuando se termina de + enviar una respuesta de formulario y entrega todos los formularios con la + misma estructura estándar, con las respuestas como line items que puedes + recorrer. Varios Zaps pueden usarlo sobre el mismo formulario. Ver + [Forms: New Answer v2](#forms-new-answer-v2). + **2.1.3** (liberada a cuentas seleccionadas) - Agrega el campo `Location Type` en `Tasks: Assign Task V2` y en @@ -290,7 +349,7 @@ versión. Agrega una fecha solo si se conoce la fecha de publicación. `From Code` a `Form Code`, y la descripción de `Tasks: Assign Task V1 [Legacy]` ahora dice que la V2 es la que hay que usar. -**2.1.2** (predeterminada para los Zaps nuevos) +**2.1.2** - Agrega la action `Tasks: Assign Task V2` y renombra la anterior como `Tasks: Assign Task V1 [Legacy]`. La V2 acepta direcciones de email de usuario diff --git a/source/zapier/connector_guide_pt.html.md b/source/zapier/connector_guide_pt.html.md index c499789343a..372ee270e43 100644 --- a/source/zapier/connector_guide_pt.html.md +++ b/source/zapier/connector_guide_pt.html.md @@ -81,6 +81,7 @@ vê na lista de disparadores do Zapier: | Disparador | É acionado quando | Campo Form | |---|---|---| | Forms: New Form Entry | Uma resposta de formulário é enviada | Obrigatório | +| Forms: New Answer v2 | Uma resposta de formulário é enviada por completo, com as respostas em uma estrutura padrão que você pode percorrer | Obrigatório | | Forms: New PDF | Um PDF é gerado por backup por email ou por autonotificação | Opcional, escolha um | | Forms: Status Changed | Uma resposta de formulário muda de status | Opcional, escolha um | | Tasks: New Assigned Task | Uma tarefa é atribuída | Obrigatório | @@ -92,8 +93,9 @@ vê na lista de disparadores do Zapier: Cada disparador entrega os dados do evento como campos individuais, prontos para mapear nas etapas seguintes do Zap sem precisar processar o JSON -manualmente. No caso das respostas de formulário, cada pergunta chega como seu -próprio campo, com o nome, o tipo e o valor. +manualmente. No `Forms: New Form Entry`, cada pergunta chega como seu próprio +campo, com o nome, o tipo e o valor. O `Forms: New Answer v2` usa uma estrutura +padrão, descrita [mais abaixo](#forms-new-answer-v2). O app também oferece as seguintes actions, para que um Zap possa agir sobre o DataScope e não apenas reagir aos seus eventos: @@ -107,6 +109,49 @@ DataScope e não apenas reagir aos seus eventos: | Modify Form Answer | Cria ou modifica uma resposta pontual dentro de um formulário já enviado | | Tickets: Create Ticket | Cria um ticket, opcionalmente herdando os valores padrão de um Ticket Type | +### Forms: New Answer v2 + +`Forms: New Answer v2` é o disparador a usar quando você cria um Zap novo sobre +uma resposta de formulário. Ele é acionado quando a resposta é enviada por +completo, e todos os formulários a entregam com a mesma estrutura padrão: + +- **Os campos de cabeçalho** descrevem a resposta: o ID, o código, o + formulário, o status, o usuário, as datas, a tarefa atribuída e o `pdf_url`. +- **`answers`** é a lista de itens da resposta, um por pergunta e por + repetição, que o Zapier mostra como line items. Cada item traz o ID, o nome e + o tipo da pergunta, o valor, a linha em um grupo de perguntas repetíveis + (`subform_index`, contando a partir de 0), o elemento da lista, a localização + e a hora de envio, o comentário e as fotos de um Checklist com comentários, e + os tempos de uma atividade. Para agir sobre cada item separadamente, + percorra-os com o Looping by Zapier. +- **`answers_by_id`** dá acesso direto a cada pergunta que não está em um grupo + de perguntas repetíveis, com a chave `q_` seguida do ID da pergunta. Uma + pergunta com várias respostas chega ali como uma única linha de texto: um + **Checkbox** como os nomes dos elementos marcados, e um **Checklist**, + **Dados numéricos** ou **Dados de texto** como pares `elemento: valor`, + separados nos dois casos por `;`. Quando precisar desses valores um a um, use + `answers`. + +Vários Zaps podem usar `Forms: New Answer v2` sobre o mesmo formulário, e cada +um recebe sua própria entrega. Editar uma resposta não o aciona de novo. + +`Forms: New Form Entry` continua funcionando. Para passar um Zap para o novo +disparador, crie o novo ao lado, confirme que ele faz o que você espera e só +depois desative o antigo. + + + +Mais duas coisas a considerar: + +- **O `pdf_url` é oportunista.** Só traz um valor quando o PDF já existe no + momento em que a resposta é entregue. Se o Zap precisa do documento, crie-o + sobre `Forms: New PDF`. +- **Precisa da permissão de exportar.** O usuário da API Key da conexão precisa + de permissão para exportar dados no DataScope. Sem ela, testar o disparador ou + ativar o Zap falha com um erro que explica isso. + ### Assign Task: V1 ou V2 Use a **V2** para tudo que for novo. Ela faz tudo o que a V1 faz, e além disso: @@ -179,7 +224,7 @@ capturados em outro lugar. Três pontos para levar em conta: ## Considerações importantes -- **Um Zap ativo por formulário e por disparador, com uma exceção.** +- **Um Zap ativo por formulário e por disparador, com duas exceções.** `Forms: New PDF`, `Forms: Status Changed`, `Tasks: New Assigned Task` e os três disparadores de assinatura admitem uma única assinatura ativa por formulário. Ativar um segundo Zap com o mesmo disparador sobre o mesmo formulário é @@ -188,7 +233,9 @@ capturados em outro lugar. Três pontos para levar em conta: o mesmo disparador sobre formulários diferentes também não. **`Forms: New Form Entry` não passa por essa validação**: um segundo Zap sobre o mesmo formulário é aceito, e depois os dois recebem todos os envios. - Adicione etapas a um único Zap em vez disso. + Adicione etapas a um único Zap em vez disso. `Forms: New Answer v2` é a + outra exceção, de propósito: vários Zaps podem usá-lo sobre o mesmo + formulário, e cada um recebe sua própria entrega. - **Se você precisa que várias coisas aconteçam com um mesmo evento, adicione etapas a um único Zap** em vez de criar um segundo Zap com o mesmo disparador e formulário. @@ -219,6 +266,10 @@ capturados em outro lugar. Três pontos para levar em conta: conta, talvez montado por outra pessoa, já usa esse disparador sobre esse formulário. Desative o Zap mais antigo e depois ative este. Se o erro persistir, escreva para o suporte e nós limpamos a assinatura que ficou. +- **Testar ou ativar um Zap com `Forms: New Answer v2` falha com um erro de + permissão:** o usuário da API Key da conexão precisa de permissão para + exportar dados no DataScope. Peça ao administrador da sua conta que a + conceda e tente novamente. - **O Test trigger não retorna dados:** o disparador lê eventos recentes, então uma conta que ainda não tem nenhum não tem nada para mostrar. Gere um e teste novamente. @@ -268,6 +319,14 @@ ou neste guia. Nunca publique a quantidade de usuários nem de tarefas por versão. Inclua uma data somente quando a data de publicação for conhecida. --> +**2.2.1** (padrão para os Zaps novos) + +- Adiciona o disparador `Forms: New Answer v2`. Ele é acionado quando uma + resposta de formulário é enviada por completo e entrega todos os formulários + com a mesma estrutura padrão, com as respostas como line items que você pode + percorrer. Vários Zaps podem usá-lo sobre o mesmo formulário. Veja + [Forms: New Answer v2](#forms-new-answer-v2). + **2.1.3** (liberada para contas selecionadas) - Adiciona o campo `Location Type` na `Tasks: Assign Task V2` e na @@ -293,7 +352,7 @@ versão. Inclua uma data somente quando a data de publicação for conhecida. `Form Code`, e a descrição da `Tasks: Assign Task V1 [Legacy]` agora diz que a V2 é a que deve ser usada. -**2.1.2** (padrão para os Zaps novos) +**2.1.2** - Adiciona a action `Tasks: Assign Task V2` e renomeia a anterior como `Tasks: Assign Task V1 [Legacy]`. A V2 aceita endereços de email de usuário