web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Power Automate — Email...
Power Automate
Suggested Answer

Power Automate — Email Monitoring Flow for Sales Team (HubSpot + Intent Detection)

(0) ShareShare
ReportReport
Posted on by 4

Hello everyone,

 

I'm building an automated Power Automate flow to help our sales team stay on top of high-priority emails in real time. The goal is simple: when an important email arrives in Outlook, immediately notify the relevant teammate via Microsoft Teams.

 

I've defined "important" as any of the following:

 

  1. An email from our CEO

  2. An email from a current or prospective customer — ideally verified via a live HubSpot contact lookup

  3. An email from an unknown sender that appears to be a genuine commercial inquiry (new business, partnership interest, project discussion, etc.)


  4.  
 

Where I'm stuck:

 

HubSpot integration — I haven't been able to get a reliable HubSpot contact lookup working within the flow. As a workaround I could hardcode known customer domains, but that feels brittle and won't catch new prospects. Has anyone successfully connected HubSpot to Power Automate for this kind of sender verification?

 

Intent detection — AI Builder's "Classify into standard categories" action categorizes emails by topic (business, finance, technology, etc.) but doesn't distinguish between a Bloomberg newsletter and a genuine buyer inquiry. I need something closer to intent classification — is this person trying to engage us commercially? Has anyone solved this with AI Builder, Azure OpenAI, or another approach inside Power Automate?

 

Any guidance or examples from those who've built something similar for a sales team would be hugely appreciated!

I have the same question (0)
  • Suggested answer
    Sunil Kumar Pashikanti Profile Picture
    1,870 Moderator on at
     
    Power Automate – Email Monitoring with HubSpot verification + Intent Detection (Best‑practice approach)
    This is a solid use case and you’re right to question the “out‑of‑the‑box” options. What you’re running into are real platform limitations, and most teams who’ve solved this use a hybrid pattern rather than relying on a single connector or AI Builder alone.
    Below is a proven approach that works well in production.
     
    1) Outlook trigger (baseline)
    Use:
    When a new email arrives (V3)
    This gives you near–real‑time execution and access to sender, subject, and body.
     
    2) Fast deterministic checks (reduce noise early)
    Before calling AI or external systems, do cheap checks:

    CEO / exec check
         Simple condition on sender email.
    Known noise domains
         Block newsletters and marketing platforms (mailchimp.com, hubspotemail.net, bloomberg.com, etc.).

    This dramatically reduces false positives and costs.
     
    3) HubSpot contact verification (recommended pattern)
    There is no reliable native HubSpot connector for live CRM lookups in this scenario.
    Recommended approach: Use HubSpot CRM Search API via HTTP.
    Endpoint:
         POST https://api.hubapi.com/crm/v3/objects/contacts/search
    Filter on sender email.
    Authenticate using a HubSpot Private App token.
    If a result is found:
         Treat as known customer/prospect
         Notify sales immediately
    If not found:
         Treat as unknown sender
         Send to intent detection
    This pattern is commonly used because it:
         Catches new prospects automatically
         Avoids brittle domain hard‑coding
         Reflects actual CRM ownership
     
    HubSpot API reference:
    https://developers.hubspot.com/docs/api/crm/search
     
    4) Intent detection (AI Builder vs LLMs)
    You’re correct that AI Builder “Classify into standard categories” is not intent detection.
         It classifies topic, not commercial intent
         It cannot reliably distinguish a newsletter from a buyer inquiry
     
    What works better: LLM‑based intent scoring
    For real buyer intent, teams are using:
         Azure OpenAI (recommended)
         or OpenAI via HTTP
    Approach:
         Pass subject + body
         Ask the model to classify commercial intent
         Return both a label and short reasoning
    This gives far better results for:
         “Interested in pricing / demo”
         Partnership outreach
         Project inquiries
         New business discussions
     
    Video walkthrough (Microsoft): https://youtu.be/1BE9b6F1k6M
     
    5)Teams notification
    Notify when any of the following is true:
         Email from CEO
         Sender found in HubSpot
         AI intent = High or Medium
    Post to a sales channel using:
         Post adaptive card in Teams
         Include sender, subject, AI explanation, and email link
    This keeps alerts actionable and avoids alert fatigue.
     
    Why this hybrid design works
     
    Problem Why this solves it
    HubSpot connector limitations Uses official Search API
    New prospect detection No domain dependency
    AI Builder too generic LLMs handle semantic intent
    Newsletter noise Early deterministic filtering
    Latency / cost Cheap checks before AI
     
    Summary
    ❌ AI Builder alone is not enough for sales intent
    ❌ Domain hard‑coding is fragile
    ✅ CRM lookup before AI works best
    ✅ LLMs are the right tool for intent detection
    This pattern is increasingly common for sales inbox supervision and scales well as volume grows.
     
    ✅ If this answer helped resolve your issue, please mark it as Accepted so it can help others with the same problem.
    👍 Feel free to Like the post if you found it useful.

    Sunil Kumar Pashikanti, Moderator
    Blog: https://sunilpashikanti.com/posts/
     
  • ZG-22041804-0 Profile Picture
    4 on at

    Hi Sunil,

    Thank you. This is really helpful and validates our thinking.

    One follow-up: when you mention blocking known “noise” domains, is that something we’d need to configure one by one at the individual user level? Ideally, I’d like to build this for our Sales VP and then scale it across the team. My concern is that maintaining a growing list of domains (e.g., @bloomberg.com, @nytimes.com) per user could become difficult to manage over time.

    Do you have any recommendations for implementing this in a more scalable way?

  • CU30121719-0 Profile Picture
    164 on at
    you can create a SharePoint list for noise domains. Only one user can modify it, the whole team can read.
  • DK-24041742-0 Profile Picture
    Microsoft Employee on at
    Hi Sunil,
     
    For Option 1, how do you capturer User email address? I am trying to work on the similar task, wherein, whenever a user request access to the reports, an email is sent to Inbox, but in that email only his name is present and not the email address. How do you ensure Power Automate gets the requestors email ID so that we can send the requestor custom email? Thank you
    1) Outlook trigger (baseline)
    Use:
    When a new email arrives (V3)
    This gives you near–real‑time execution and access to sender, subject, and body.
  • Sunil Kumar Pashikanti Profile Picture
    1,870 Moderator on at
     
    Blocking “noise” domains at scale
    You don’t want to manage this per user. The recommended pattern is to centralize it:
    • Store blocked domains in a single SharePoint list, Dataverse table, or environment variable.
    • The flow checks the sender domain against that list before doing any AI or intent detection.
    • One update applies to all users, so it scales cleanly as the sales team grows.
    This keeps maintenance low and avoids duplicating logic per mailbox.
    When blocking domains (e.g., gmail.com, competitor.com), ensure your Flow uses a lowercase comparison. Power Automate is case-sensitive in many comparison operations.
    Logic Tip: toLower(triggerOutputs()?['body/from']) contains toLower(item()?['DomainName'])
    This approach will definitely keep your maintenance low as the sales team expands.
     
    Capturing the requester’s email address
    If you’re using When a new email arrives (V3), Power Automate already gives you:
    • From (Address)
    • Sender (Address)
    If the body only contains a name, but the sender email exists in the header, always rely on the sender address from the trigger, not the body text.
    If the email truly comes from a shared mailbox or system address, then you’ll need a lookup step (for example, match the name against Azure AD or a reference list) to resolve the user’s email before sending a response.
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Haque Profile Picture

Haque 541

#2
Valantis Profile Picture

Valantis 479

#3
Vish WR Profile Picture

Vish WR 470

Last 30 days Overall leaderboard