# How to Send Microsoft Forms Response Alerts to a Shared Room

> Use Microsoft Forms and Power Automate to send one fixed shared-phone alert without putting response answers on the lock screen.

- Published: 2026-11-07
- Author: PingRoom
- Category: Developers
- Topics: Microsoft Forms response notifications, Microsoft Forms push notifications, Power Automate form alerts, shared phone response alert
- Canonical: https://pingroom.io/blog/microsoft-forms-response-push-notifications
- Cover image: https://pingroom.io/blog/microsoft-forms-response-push-notifications-cover.webp
- Cover description: Two PingRoom avatars keep response cards in a wooden forms box while Pingo watches one blank signal token reach a shared tray.

To send a Microsoft Forms response alert to a shared group of phones, use Power Automate's **When a new response is submitted** trigger for one form, then post fixed copy to a PingRoom incoming webhook. Build the event key from the Forms response ID so retrying the same submission does not create another Ping.

This is a Power Automate webhook recipe, not a native Microsoft Forms integration. Microsoft Forms remains the response record. PingRoom carries one small update to the people who need to look.

## Start with the notification Microsoft Forms already has

Microsoft Forms can [email the form owner for every new response](https://support.microsoft.com/en-us/forms/send-form-invitations-and-manage-notifications). Use that option when one editor watches the form and email is the right destination.

Add the shared Room only when the same fixed signal should reach an opt-in group:

| Need                                                      | Better starting point                                     |
| --------------------------------------------------------- | --------------------------------------------------------- |
| One form owner needs a message for every response         | Microsoft Forms' built-in email notification              |
| A team needs the submitted answers                        | Open Microsoft Forms through the team's authorized access |
| A workflow must branch on an answer                       | Power Automate with **Get response details**              |
| A shared group needs only “a response arrived”            | Fixed copy to a private PingRoom Room                     |
| The response starts a regulated or safety-critical action | The organization's approved system and escalation path    |

The useful privacy boundary is simple: this alert does not need the answers. It can use the response ID for retry identity without retrieving names, email addresses, uploads, or answer fields.

## Check the two plan boundaries

This setup needs:

- a work or school Microsoft account that can use the Microsoft Forms connector;
- permission to create a flow for the selected form;
- a Power Automate environment where the HTTP action is available under your tenant's connector and data policies; and
- active PingRoom Pro on the destination Room owner's account.

Microsoft lists the [Forms connector as Standard](https://learn.microsoft.com/en-us/connectors/microsoftforms/) and says it works with organizational accounts. The HTTP action used to call an external webhook may require premium connector entitlement. [Microsoft's current licensing guide](https://learn.microsoft.com/en-us/power-platform/admin/power-automate-licensing/types) explains the Standard and Premium distinction, but your designer and administrator remain authoritative for your tenant.

If the form belongs to a Microsoft 365 group, it may not appear in the trigger's list. Microsoft's connector reference says you can paste the portion after `FormId=` from the form's edit URL into the **Form Id** field.

## Create one private destination

In PingRoom, create or choose a private Room for the people who should receive the alert. Open **Settings → Connections → From another app**, add an incoming webhook named **Microsoft Forms**, keep **Quick Ping** on **Custom message**, save it, and copy the complete URL.

The Room owner needs PingRoom Pro. The URL is a credential: anyone who has it can trigger that webhook. Store it in protected flow configuration, keep it out of form questions and descriptions, and never paste it into a screenshot or shared template. The [incoming-webhook guide](/blog/webhook-to-push-notification) covers the Room-side setup; the [webhook reference](/documents/webhooks) lists current fields, errors, idempotency, and limits.

## Build the smallest useful Forms flow

In Power Automate, create an **Automated cloud flow** and choose the current Microsoft Forms trigger **When a new response is submitted**. Select exactly one form.

Do not add **Get response details** for this fixed alert. Microsoft's [Forms workflow overview](https://learn.microsoft.com/en-us/power-automate/forms/overview) explains that the action fetches the response content as dynamic data. This recipe does not need that content.

Add a **Compose** action named `Event_key`. Use this expression:

```text
concat('msforms-', string(first(triggerBody()?['value'])?['resourceData']?['responseId']))
```

The path follows Microsoft's current trigger schema: `value` is a list of response notifications, and each notification carries an integer at `resourceData.responseId`. One flow is tied to one form, so the fixed `msforms-` prefix plus that response ID is enough for this webhook's event identity.

Then add an **HTTP** action with these values:

| HTTP field               | Value                              |
| ------------------------ | ---------------------------------- |
| Method                   | `POST`                             |
| URI                      | the protected PingRoom webhook URL |
| Header `Accept`          | `application/json`                 |
| Header `Content-Type`    | `application/json`                 |
| Header `Idempotency-Key` | output of the `Event_key` Compose  |

Use a fixed body. Change `Workshop request` to a short label that identifies this one form without exposing a respondent or answer:

```json
{
  "title": "New form response",
  "message": "Workshop request received a response",
  "data": {
    "source": "microsoft-forms",
    "form": "workshop-request"
  },
  "correlation_id": "@{outputs('Event_key')}"
}
```

In the HTTP action's **Settings**, enable **Secure Inputs** and **Secure Outputs**. Microsoft documents those controls in its [sensitive-input guidance](https://learn.microsoft.com/en-us/power-automate/how-tos-use-sensitive-input). They reduce accidental exposure in run history; they do not replace careful flow access, tenant policy, or secret rotation.

## Keep the answers behind the form

The title, message, and form label above are fixed. They do not include dynamic response content. The only response-derived value is the ID used for `Idempotency-Key` and `correlation_id`.

That gives the Room a small, literal result:

> **New form response**
>
> Workshop request received a response

The team opens Microsoft Forms through its normal authorized route to review the answer. A notification does not mean the response was accepted, approved, assigned, or completed.

![Two PingRoom avatars test a wooden retry gate while Pingo watches one blank response token pass and an identical replay stop.](/blog/microsoft-forms-response-push-notifications-1.webp)

[Pingo the Pigeon](/Pingo), PingRoom's fictional Chief Marketing Officer, appears beside the miniature retry gate. The blank token passes; the sealed answer cards stay put. He cannot open the Form, enter the private Room, edit the flow, or send the Ping. People configure and own the workflow.

## Rehearse five boundaries with a disposable form

Use non-sensitive sample answers and a private test Room. This is an illustrative test plan, not a delivery guarantee.

1. **First response:** submit the disposable form once. Confirm the flow receives one response ID and Room history contains one **New form response** Ping.
2. **Exact replay:** resubmit that flow run without changing the HTTP body. The same response ID should produce the same event key, so Room history should still contain one Ping for that submission.
3. **Changed body:** in the disposable test flow, change the fixed message and resubmit the same captured response. PingRoom should return `409 idempotency_conflict` because one key cannot describe two bodies.
4. **Second response:** submit the form again. The new response ID should produce a new event key and one new Ping.
5. **Unavailable destination:** temporarily disable the test webhook and confirm the HTTP action follows the flow's failure path instead of reporting success.

Our recorded fixture used Microsoft Forms-shaped trigger bodies and a local mock of PingRoom's documented contract. It checked first acceptance, exact replay, changed-body conflict, a second response, excluded answer fields, malformed trigger data, and a disabled webhook. It did not use a live Microsoft tenant, PingRoom Room, customer response, or phone.

## Read the HTTP result correctly

HTTP `200` with `success: true` means PingRoom accepted the request and created or returned the Ping for that event key. It does not prove every phone displayed an alert. Connectivity, operating-system behavior, notification permissions, Focus modes, battery settings, and Room preferences can delay or suppress delivery.

PingRoom incoming webhooks accept one new Ping every five seconds by default. If the form can receive bursts, do not turn every response into an interruption. Keep the built-in email, send a digest through a separate approved workflow, or route only a selected state after the form has been reviewed.

For a generic final-result flow, use the broader [Power Automate phone-alert recipe](/blog/power-automate-push-notifications). When this fixed response-arrived signal is the right boundary, [create the private destination Room](/app/rooms), test one disposable response, and keep the answers in Microsoft Forms.

_The illustrations are AI-generated editorial scenes featuring Pingo the Pigeon, PingRoom's official mascot and fictional Chief Marketing Officer, and approved PingRoom avatars. The people and scenario are illustrative, not customers or product screens; the human team remains responsible for product claims and decisions._

## Sources

- [Send form invitations and manage notifications — Microsoft Support](https://support.microsoft.com/en-us/forms/send-form-invitations-and-manage-notifications)
- [Microsoft Forms connector reference — Microsoft Learn](https://learn.microsoft.com/en-us/connectors/microsoftforms/)
- [Overview of flows with Microsoft Forms — Microsoft Learn](https://learn.microsoft.com/en-us/power-automate/forms/overview)
- [Types of Power Automate licenses — Microsoft Learn](https://learn.microsoft.com/en-us/power-platform/admin/power-automate-licensing/types)
- [Webhooks — PingRoom](https://pingroom.io/documents/webhooks)
