100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Teams and Outlook Automation

Use Power Automate's Microsoft Teams and Outlook connectors to send notifications, post adaptive cards, and process email automatically.

IntegrationsIntermediate9 min readJul 10, 2026
Analogies

Connecting Power Automate to Teams and Outlook

Microsoft Teams and Outlook are the two connectors most flows use to close the loop with a human, since most business processes eventually need to notify, ask, or remind someone. The Teams connector can post a plain chat message, post an Adaptive Card with interactive buttons, or post directly to a channel, while the Outlook connector can send mail, read a shared mailbox, and react to incoming messages via the 'When a new email arrives' trigger. A key architectural choice is whether a notification needs to be actionable (an Adaptive Card with Approve/Reject buttons that posts data back into the flow) or purely informational (a Teams message or an email that the recipient reads and acts on manually outside the flow).

🏏

Cricket analogy: Choosing between an informational Teams post and an actionable Adaptive Card is like the difference between a scoreboard update and a DRS review request: one just informs the crowd, the other requires the on-field umpire to respond before play continues.

Sending Interactive Adaptive Cards in Teams

The 'Post adaptive card and wait for a response' action pauses the flow, posts a card to a specified user or channel, and resumes execution once a button is clicked, making it the standard building block for lightweight approvals or triage decisions that don't need the full Approvals connector. Adaptive Cards are authored as JSON following the Adaptive Card schema, and the Teams connector's card designer lets you preview the layout before wiring dynamic content into text blocks and 'Action.Submit' button data. Because the action waits synchronously, it consumes a flow run for the entire waiting period, so long-lived approvals (days rather than minutes) are usually better modeled with the dedicated Approvals connector, which stores state outside the running flow instance.

🏏

Cricket analogy: A flow pausing on 'wait for a response' is like the third umpire's review pausing live play entirely until the decision comes back, holding the game state until a definitive answer arrives.

Common Teams Actions

Beyond posting messages, the Teams connector includes 'Create a team', 'Add a member to a team', 'Create a channel', and 'Get messages' actions, which are commonly combined in employee onboarding flows: a new hire record in Dataverse or SharePoint triggers a flow that creates a private channel, adds the new hire and their manager, and posts a welcome Adaptive Card with links to onboarding resources.

Processing Incoming Email with Outlook Triggers

The 'When a new email arrives (V3)' trigger supports filtering by subject, sender, importance, and whether the message has attachments, which lets you build intake flows that watch a shared mailbox like invoices@company.com and automatically extract attachments for further processing, such as feeding a PDF into AI Builder's invoice processing model. Because email polling triggers check the mailbox on an interval rather than reacting instantly like a webhook, there's typically a delay of one to a few minutes between an email arriving and the flow starting, and each polling check counts against the connector's API call quota, so overly tight polling intervals on high-volume mailboxes can hit throttling limits. When forwarding or replying is part of the automation, the 'Reply to email (V2)' action must be given the original message's 'Message Id' dynamic content, not a manually typed identifier, to thread correctly.

🏏

Cricket analogy: Polling a mailbox on an interval rather than reacting instantly is like a scorer updating the physical scoreboard every over rather than after every single ball, a small but real lag between the event and its reflection.

json
{
  "type": "AdaptiveCard",
  "version": "1.4",
  "body": [
    { "type": "TextBlock", "text": "New expense request from @{triggerBody()?['Requester']}", "weight": "Bolder" },
    { "type": "TextBlock", "text": "Amount: @{triggerBody()?['Amount']}" }
  ],
  "actions": [
    { "type": "Action.Submit", "title": "Approve", "data": { "decision": "approve" } },
    { "type": "Action.Submit", "title": "Reject", "data": { "decision": "reject" } }
  ]
}

'Post adaptive card and wait for a response' holds the flow run open for the entire waiting period, and Power Automate has a maximum run duration (30 days for most plans) after which the run times out; for approvals that may realistically take longer than a day or two, use the dedicated Approvals connector instead, since it externalizes state and doesn't tie up a running flow instance.

  • Choose an Adaptive Card when a notification needs to drive flow logic (Approve/Reject), and a plain message or email when it's purely informational.
  • 'Post adaptive card and wait for a response' pauses flow execution until a button is clicked, making it ideal for short-lived decisions.
  • For long-running approvals, use the dedicated Approvals connector instead of a live-waiting card, since it externalizes state and avoids run-duration limits.
  • The Teams connector can automate onboarding by creating channels, adding members, and posting welcome cards triggered from HR or Dataverse records.
  • 'When a new email arrives (V3)' supports filtering by sender, subject, importance, and attachments to build targeted mailbox intake flows.
  • Email triggers poll on an interval rather than reacting instantly, introducing a short delay and consuming API quota on each check.
  • Use the original message's 'Message Id' dynamic content when replying to keep email threads intact.

Practice what you learned

Was this page helpful?

Topics covered

#Programming#PowerAutomateStudyNotes#TeamsAndOutlookAutomation#Teams#Outlook#Automation#Connecting#StudyNotes#SkillVeris#ExamPrep