Microsoft Teams OAuth in Retool: User.Read works, but adding ChannelMessage.Send always triggers “Admin approval required” (even though consent is granted)

Hi all,

I’m trying to set up a Microsoft Teams connection in Retool via the Microsoft Teams resource (OAuth). The goal is simple: post a message to a specific Teams channel on a Retool event.

:white_check_mark: What works

If I keep the OAuth scopes limited to only:

  • User.Read

…the OAuth flow completes successfully and the resource connects.

:cross_mark: What doesn’t work

As soon as I add any additional scope, specifically:

  • ChannelMessage.Send

…the Microsoft login/consent screen always shows “Admin approval required / request approval” again, and I cannot complete the OAuth connection unless I request approval (again).

This keeps happening even though our admins already granted consent for ChannelMessage.Send.

:magnifying_glass_tilted_right: Evidence: Admin consent is already granted

In Entra, the Enterprise Application permissions show:

  • User.Read (Delegated) – Granted via Admin consent

  • ChannelMessage.Send (Delegated) – Granted via Admin consent

image

image1462×661 48.9 KB

:white_check_mark: What we already checked / tried

  • Confirmed we’re using delegated permissions

  • Confirmed admins granted consent for ChannelMessage.Send

  • Retool resource setup uses OAuth and the intended scope list

  • With User.Read only, connection succeeds every time

  • Adding ChannelMessage.Send immediately triggers the approval screen again

:red_question_mark:Questions

  1. Has anyone seen this behaviour where Retool OAuth works with User.Read, but adding Graph scopes forces a new approval prompt despite admin consent already being granted?

  2. Could Retool be using a different Entra app / client_id depending on scopes (even though it looks like the same “Retool Official” branding), causing consent to not match?

  3. Are there any known restrictions or required additional scopes/steps when using ChannelMessage.Send via Retool’s Teams integration?

Any help or pointers would be greatly appreciated. Happy to provide more details (e.g. the exact consent URL parameters, client_id, scope string, etc.) if needed.

Thanks!

Screenshot 2026-01-05 at 11.36.00

Screenshot 2026-01-05 at 11.36.00993×658 48.2 KB

3 Likes

+1

1 Like

Hi there,

We've shared this bug report with our team internally, and I will follow up here once I have an update.

For the time being, I recommend working around this by using a generic REST API resource instead of the Microsoft Teams integration. The REST API resource exposes the Authorization URL and Token URL fields for manual configuration.