# Microsoft Forms to Teams Notification Flow with Power Automate

> Post a Teams channel message every time someone submits a Microsoft Form, using the Forms trigger, Get response details and the Teams post action.

Source: https://www.epifive.com/blog/forms-response-to-teams-notification-flow · Published 2026-10-25 · EpiFive

## Key takeaways

- The Microsoft Forms trigger returns a response ID, so a Get response details action is needed to read the answers.
- Group forms do not appear in the Form dropdown and need the Form Id pasted in manually.
- The Microsoft Forms connector works only with organizational accounts.
- The Teams post action fails with Request Entity too large above about 28 KB, and posting to private channels is not supported.
- The Workflows app must be allowed in the Teams admin center for the Teams post actions to work.

To send Microsoft Forms responses to Teams, build an automated cloud flow in Power Automate with the Forms trigger When a new response is submitted, add Get response details to fetch the answers, and finish with the Teams action Post message in a chat or channel. The whole flow uses standard connectors, so it runs under a Microsoft 365 licence. This guide covers each step, the two Forms-specific quirks that surprise people, and the limits and errors to expect.

## Who this is for and what you will have

This is for teams that collect requests, feedback or incident reports with Microsoft Forms and want the right people notified in Teams immediately. By the end you will have a working flow that posts a readable summary of each response to a channel, with checks for formatting, permissions and message size.

## Prerequisites

- A Microsoft Forms form owned by a work or school account. The Forms connector works only with organizational accounts.
- Access to the target Teams team and a standard channel. Posting to private channels is not supported.
- The Workflows app allowed in the Teams admin center. Microsoft states the Teams post actions require the Workflows app to be available and set to the allow state.
- Access to the Power Automate portal. The Microsoft Forms connector is listed as Standard for Power Automate; confirm the class of the Teams connector on its Learn page before you roll the flow out.

## Step 1: Create the flow with the Forms trigger

1. Sign in to the Power Automate portal and select Create, then Automated cloud flow.
2. Name the flow and search for the trigger When a new response is submitted from Microsoft Forms.
3. Select Create.
4. In Form Id, pick your form from the list.

### Group forms

Group forms do not appear in the dropdown. Open the form for editing, copy the Form Id from the address bar, and paste only the part after `FormId=` into the Form Id field.

## Step 2: Get the response details

The trigger returns a notification payload that contains the response ID, not the answers. Microsoft describes the response ID as the value to use with the Get response details action.

1. Select New step and add Get response details from Microsoft Forms.
2. Set Form Id to the same form. For a group form, paste the same Form Id.
3. Set Response Id to the Response Id dynamic content from the trigger.

The outputs of this action are dynamic. They include one field per question, so what you see in the dynamic content panel depends on the questions in your form. Run the flow once, or submit a test response, if the fields do not show up while you build.

## Step 3: Post to Teams

1. Add a new step and search for Microsoft Teams.
2. Select Post message in a chat or channel.
3. Set Post as. The options include Flow bot and User. The Flow bot option is available only in commercial tenants; in Government Cloud tenants it fails with BotNotInConversationRoster and you must use User.
4. Set Post in to Channel, and then select the Team and the Channel.
5. In Message, write a short template and insert dynamic content from Get response details.

A sample message layout:

```text
New response to the IT request form

Submitted by: <responder from Get response details>
Request type: <answer to question 1>
Details: <answer to question 2>
```

Replace the angle-bracket placeholders with dynamic content tokens from the panel. If the form records names, the responder's details appear among the outputs.

### Mention someone

A single message can mention up to 20 users and 20 tags. Use the Teams connector's mention features for the people who handle requests, and keep the list short.

### Post as the flow bot or as a user

Posting as Flow bot posts from the bot rather than from a person. Posting as User posts under the connection owner's identity and ties the flow to that person's access. For notifications that the business depends on, consider the Flow bot where it is available and keep a co-owner on the flow.

## Step 4: Save and test

1. Select Save.
2. Open the form and submit a test response.
3. In the flow's details page, check the run history. A successful run shows green steps.
4. Confirm that the message appears in the channel with the expected values.

If the run does not start, give it a minute and refresh the run history, then check the form ID and that the form belongs to an organizational account.

## Limits and known issues

| Item | Value |
| --- | --- |
| Forms connector accounts | Organizational accounts only |
| Forms API calls | 300 per connection per 60 seconds |
| Teams message size | About 28 KB including HTML elements |
| Mentions per message | Up to 20 users and 20 tags |
| Private channels | Posting not supported |
| Group forms | Form Id entered manually |

Teams posts above about 28 KB fail with Request Entity too large. Long free-text answers, tables and images count toward that size, so truncate long answers with an expression such as `substring(variables('answer'), 0, 500)` after checking that the string is at least 500 characters long, or link to the response instead of embedding it.

## Troubleshooting

### The flow never triggers

Confirm that the flow is turned on, the Form Id is correct and the connection account can access the form. For group forms, use the manually copied Form Id.

### CannotDisableTriggerConcurrency error

Microsoft notes this error when the Forms trigger's concurrency control has been turned on and then off, because that cannot be undone in the designer. The workaround is to export the flow, remove the concurrency control section from the JSON and import it again.

### Post fails with a Teams error

Check that the Workflows app is allowed in the Teams admin center, that the connection account can post in the team, that the channel is not private, and that the message is under the size limit. For Flow bot errors in Government Cloud tenants, switch Post as to User.

### Authentication errors

Errors that say Unauthorized, 401 or 403 mean the connection needs repair. Open the failed step, use Fix connection, and Resubmit. If the flow works in the portal but fails when it is run from Teams or SharePoint, review Conditional Access as described in [Power Automate flow failed: read run history and fix common errors](https://www.epifive.com/blog/power-automate-flow-failed-troubleshooting).

### Answers appear as blank

If a question was optional and the respondent skipped it, the dynamic content is empty. Add a Condition or use the `coalesce()` expression to supply default text.

## Improve the flow

- Add an Approval or a follow-up task if the notification should result in action; see [Power Automate approval workflow with SharePoint](https://www.epifive.com/blog/power-automate-approval-workflow-sharepoint).
- Store each response in a SharePoint list for reporting before posting to Teams.
- Wrap the Teams action in a Scope with a Catch branch so a failed post alerts you, as in [Power Automate error handling with try-catch scopes](https://www.epifive.com/blog/power-automate-error-handling-try-catch).
- Use a shared service account or the Flow bot, and name a co-owner.

## Closing checklist

- Form owned by an organizational account.
- Workflows app allowed in the Teams admin center.
- Trigger set with the correct Form Id, entered manually for group forms.
- Get response details uses the trigger's Response Id.
- Teams post targets a standard channel and stays under the size limit.
- Test response submitted and message verified.
- Failure alert and co-owner in place.

## References

- Microsoft Forms connector reference: https://learn.microsoft.com/en-us/connectors/microsoftforms/
- Microsoft Teams connector reference: https://learn.microsoft.com/en-us/connectors/teams/
- Troubleshoot a cloud flow: https://learn.microsoft.com/en-us/power-automate/fix-flow-failures
- Limits of automated, scheduled, and instant flows: https://learn.microsoft.com/en-us/power-automate/limits-and-config

## Frequently asked questions

### How do I send Microsoft Forms responses to Teams?

Create an automated cloud flow with the When a new response is submitted trigger, add Get response details to read the answers, and add Post message in a chat or channel from the Microsoft Teams connector. Choose the team and channel, and insert the answers into the message.

### Why does the trigger only give me a response ID?

The trigger returns a notification that includes the response ID, not the answers. Use the Get response details action with the Form Id and that Response Id to fetch the content of the response.

### Why can't I find my group form in the dropdown?

Group forms do not show up in the dropdown. Enter the Form Id manually. You can find it in the address bar when you edit the form; paste only the part after FormId=.

### Can the flow post to a private channel?

Microsoft's Teams connector notes say posting a message or card to a private channel is not currently supported. Post to a standard channel, a group chat or a chat with the Flow bot instead.

