What you want to do
You have one message and a list of people. You want each person to receive it in their own private one-to-one Teams chat, with their name or other details filled in, and coming from you. Teams itself has no built-in way to do that for a whole list. These are the common ways around it.
Your options and their limits
1. A channel post with @mentions
Free and immediate, but a channel post is a shared conversation that everyone in the channel can see. It is not a private one-to-one chat, and it cannot be personalized per person.
2. A Power Automate flow
The Teams connector can post a message to a chat. You build and maintain the flow yourself, including the recipient list and the personalization. Three things to check in Microsoft's connector reference:
- Who the message comes from. The reference names two poster options, Flow bot and User. Check which one your flow uses, because a message from the flow bot does not come from you.
- Throttling. Microsoft publishes limits per connection, for example 100 API calls per 60 seconds, so a long list takes planning.
- Message size. The reference gives a message size limit of approximately 28 KB.
Whether you can message people outside your own organization depends on your tenant's external access settings. Check your tenant's policy.
3. The Microsoft Graph API with delegated permissions
This is the most flexible route and needs a developer. Microsoft's reference for sending a chat message supports work or school accounts, not personal Microsoft accounts, and lists only a migration permission for sending without a signed-in user. In practice you send as a signed-in user with delegated permissions, and you build the consent, token refresh, personalization and retry handling. Teams requests are throttled, so read Microsoft's current limits for Teams before sending in volume.
4. Email mail merge
If Teams is not a requirement, a mail merge is the simplest option and works with a list of any size. The message arrives in the inbox, not in a Teams chat, and replies go to email.
5. A ready-made tool
A tool takes over the list, the personalization, the scheduling and the tracking, so you do not build or maintain any of it. The trade-off is that you give it access to your account and rely on it.
When a ready-made tool makes sense
It makes sense when you send to many people regularly and do not want to maintain a flow or code. MonitorSky is one such tool. Here is what it does, as plainly as we can put it:
- You sign in with Microsoft. The sender needs Microsoft 365 Business Basic or higher; recipients need no license.
- It uses four delegated permissions and acts only as you, inside your own account. The details, and how to revoke access, are on the Security & trust page.
- Messages are sent through the Microsoft Graph API from your own Teams account, with your name, picture and Teams identity. It is not a bot.
- One personalized message per recipient, in their own one-to-one chat. You can send now or schedule it.
- It syncs the Teams contacts who have replied to you, so it works with people you already have a chat with.
- Delivery and replies are tracked per recipient. It does not show open or read rates, because Teams gives no dependable read signal.
- Every message carries an unsubscribe link. Someone who unsubscribes is removed from that group and no longer receives its campaigns.
- New accounts start with a 14-day free trial. See Pricing.
Checklist before you send
- Test with a few recipients first, ideally colleagues, and check how the message looks in their chat.
- Ask your Microsoft 365 admin about your external-access policy if any recipient is outside your organization.
- Respect consent and opt-outs: message only people who expect to hear from you, and honor every request to stop.
- Keep the message short, and personal in substance, not only by name.
This is not legal advice.
Next steps
Read the F.A.Q. for common questions, or sign up to try it with a few contacts.
Microsoft documentation used for this guide: