Azure AD Integration with HubSpot

Yoli_Mmutsi
Participant

What is the most effective way to retrieve contacts that are currently in azure AD environment without adding any additional costs having the  following products Marketing Hub Enterprise - Marketing Contacts,CMS Hub Professional, Operations Hub Professional. The goal is to see the contacts currently retrieved from Azure AD in a dynamic list that keeps getting updated.

3 Accepted solutions
HubDoPete
Solution
Key Advisor | Gold Partner
Key Advisor | Gold Partner

hi @Yoli_Mmutsi  and thanks @BérangèreL  for the tag. 

With your current products, there's no native Azure AD sync to HubSpot without additional costs.

 

The built-in Outlook Contacts integration syncs personal Outlook folders only, not the Azure AD directory itself. It requires each user to install it individually. Documentation

 

Consider:

  • A Custom API approach - if you have access to developer resources, pull Azure AD users via the Microsoft Graph API and create/update HubSpot contacts via the HubSpot API. See Graph API docs | HubSpot API docs
  • or Third-party tools - for example Zapier, n8n, or Tray.io can connect with both Azure AD and HubSpot.
    Each would be an additional cost, e.g. Zapier integration | n8n integration

     

    Tip: For the dynamic list, create an active list in HubSpot filtered by a property identifying Azure AD contacts 

     

    Others may have additional alternative solutions that I am not aware of.

    I hope this helps!

    best

    Pete

View solution in original post

GRajput
Solution
Recognized Expert | Platinum Partner
Recognized Expert | Platinum Partner

Hi @Yoli_Mmutsi 

"The most effective and scalable solution for your requirement is to leverage the APIs provided by both platforms—Azure Active Directory (via Microsoft Graph API) and HubSpot. With this approach, you can automatically retrieve contacts from Azure AD and sync them into HubSpot without incurring additional licensing costs.

Using a developer and a lightweight server (or a no-code tool like Zapier/Make if preferred), you can:

1. Retrieve Contacts from Azure AD

Azure AD exposes all user and contact information through the Microsoft Graph API.
We can securely access and fetch details such as name, email, job title, phone, groups, etc.

2. Push the Contacts to HubSpot

Once the data is fetched, we can use HubSpot’s CRM API to create or update corresponding contact records in your HubSpot portal.
This ensures that your HubSpot contact list always reflects the contacts currently available in Azure AD.

3. Keep the List Automatically Updated

After syncing the data into HubSpot, you can easily create a dynamic list that updates in real time based on the properties sourced from Azure AD.
This gives you a continuously refreshed view of all Azure AD contacts without any manual work."

I hope this will help you out. Please mark it as Solution Accepted and upvote to help another Community member.

Thanks!






Gaurav Rajput
Director, MarTech( Growth Natives)

Book a meeting


View solution in original post

RubenBurdin
Solution
Top Contributor

Hi @Yoli_Mmutsi , you’re correct to be skeptical of the “Create Contact” style trigger. For Azure AD (Microsoft Entra ID), the real problem is not creation, it’s ongoing changes like disablement, department/title updates, and deletes, and most “light” connectors don’t model that well.

 

With your current HubSpot products, there isn’t a native, no-extra-cost Azure AD directory sync that will continuously reconcile the directory into HubSpot and keep a dynamic list accurate. The clean pattern is a small custom sync service that periodically pulls users from Microsoft Graph (ideally using delta queries), then upserts into HubSpot using a stable unique identifier (email is okay, but Entra objectId is better as a custom property).

 

When a user becomes inactive in Entra, you update a HubSpot property like “Entra status = inactive” or “Entra disabled date”, and your active list filters on that property so membership updates automatically (https://developers.hubspot.com/docs/api-reference/crm-contacts-v3/guide )

 

If you want it closer to real-time without waiting for a poll, the more event-driven approach is to use Graph change notifications on the Entra side and then push updates into HubSpot. HubSpot webhooks won’t help you detect Entra changes, but they can help you react to HubSpot-side changes if you need bidirectional logic (https://developers.hubspot.com/docs/api-reference/webhooks-webhooks-v3/guide )

One quick question: when a user is disabled in Entra, do you want to remove them from HubSpot entirely, or keep the contact but mark them inactive for segmentation and suppression? That choice changes the safest sync behavior.

Did my answer help? Please mark it as a solution to help others find it too.

Ruben Burdin Ruben Burdin
HubSpot Advisor
Founder @ Stacksync
Real-Time Data Sync between any CRM and Database
Stacksync Banner

View solution in original post

7 Replies 7
RubenBurdin
Solution
Top Contributor

Hi @Yoli_Mmutsi , you’re correct to be skeptical of the “Create Contact” style trigger. For Azure AD (Microsoft Entra ID), the real problem is not creation, it’s ongoing changes like disablement, department/title updates, and deletes, and most “light” connectors don’t model that well.

 

With your current HubSpot products, there isn’t a native, no-extra-cost Azure AD directory sync that will continuously reconcile the directory into HubSpot and keep a dynamic list accurate. The clean pattern is a small custom sync service that periodically pulls users from Microsoft Graph (ideally using delta queries), then upserts into HubSpot using a stable unique identifier (email is okay, but Entra objectId is better as a custom property).

 

When a user becomes inactive in Entra, you update a HubSpot property like “Entra status = inactive” or “Entra disabled date”, and your active list filters on that property so membership updates automatically (https://developers.hubspot.com/docs/api-reference/crm-contacts-v3/guide )

 

If you want it closer to real-time without waiting for a poll, the more event-driven approach is to use Graph change notifications on the Entra side and then push updates into HubSpot. HubSpot webhooks won’t help you detect Entra changes, but they can help you react to HubSpot-side changes if you need bidirectional logic (https://developers.hubspot.com/docs/api-reference/webhooks-webhooks-v3/guide )

One quick question: when a user is disabled in Entra, do you want to remove them from HubSpot entirely, or keep the contact but mark them inactive for segmentation and suppression? That choice changes the safest sync behavior.

Did my answer help? Please mark it as a solution to help others find it too.

Ruben Burdin Ruben Burdin
HubSpot Advisor
Founder @ Stacksync
Real-Time Data Sync between any CRM and Database
Stacksync Banner
Yoli_Mmutsi
Participant

Hi Ruben,

 

Yes, I want to remove the user from hubspot once user is inactive, however I can use a workflow to achieve that, that's not priority. I want to know how to this section of your suggestion, "use Graph change notifications on the Entra side and then push updates into HubSpot." I already have custom workflow with custom code to create new contacts, do I add to that logic to get graph change notifications?

Thanks

0 Upvotes
BérangèreL
Community Manager
Community Manager

Hi @Yoli_Mmutsi and thank you so much for sharing all the context!

I wanted to clarify that questions about integrating Azure AD/Entra with Microsoft Graph change notifications are a bit outside the scope of what we support here on the HubSpot Community, as this is primarily a Microsoft feature that needs to be set up on their side.
 

Here’s a quick overview of how the integration typically works:
 

- Microsoft Graph change notifications are configured within Azure/Entra, not HubSpot. You’d set up a subscription in Microsoft Graph to get webhooks whenever a user’s status changes.
- Your hosted webhook endpoint would then receive these notifications from Microsoft.
- From there, your endpoint could use HubSpot’s APIs (like the Users API or Contacts API) to update or remove users in HubSpot.

For the setup, it’s best to refer to Microsoft’s Graph API documentation on change notifications.
 

Hope this points you in the right direction!
Bérangère





loop


Loop Marketing is a new four-stage approach that combines AI efficiency and human authenticity to drive growth.

Learn More




0 Upvotes
GRajput
Solution
Recognized Expert | Platinum Partner
Recognized Expert | Platinum Partner

Hi @Yoli_Mmutsi 

"The most effective and scalable solution for your requirement is to leverage the APIs provided by both platforms—Azure Active Directory (via Microsoft Graph API) and HubSpot. With this approach, you can automatically retrieve contacts from Azure AD and sync them into HubSpot without incurring additional licensing costs.

Using a developer and a lightweight server (or a no-code tool like Zapier/Make if preferred), you can:

1. Retrieve Contacts from Azure AD

Azure AD exposes all user and contact information through the Microsoft Graph API.
We can securely access and fetch details such as name, email, job title, phone, groups, etc.

2. Push the Contacts to HubSpot

Once the data is fetched, we can use HubSpot’s CRM API to create or update corresponding contact records in your HubSpot portal.
This ensures that your HubSpot contact list always reflects the contacts currently available in Azure AD.

3. Keep the List Automatically Updated

After syncing the data into HubSpot, you can easily create a dynamic list that updates in real time based on the properties sourced from Azure AD.
This gives you a continuously refreshed view of all Azure AD contacts without any manual work."

I hope this will help you out. Please mark it as Solution Accepted and upvote to help another Community member.

Thanks!






Gaurav Rajput
Director, MarTech( Growth Natives)

Book a meeting


HubDoPete
Solution
Key Advisor | Gold Partner
Key Advisor | Gold Partner

hi @Yoli_Mmutsi  and thanks @BérangèreL  for the tag. 

With your current products, there's no native Azure AD sync to HubSpot without additional costs.

 

The built-in Outlook Contacts integration syncs personal Outlook folders only, not the Azure AD directory itself. It requires each user to install it individually. Documentation

 

Consider:

  • A Custom API approach - if you have access to developer resources, pull Azure AD users via the Microsoft Graph API and create/update HubSpot contacts via the HubSpot API. See Graph API docs | HubSpot API docs
  • or Third-party tools - for example Zapier, n8n, or Tray.io can connect with both Azure AD and HubSpot.
    Each would be an additional cost, e.g. Zapier integration | n8n integration

     

    Tip: For the dynamic list, create an active list in HubSpot filtered by a property identifying Azure AD contacts 

     

    Others may have additional alternative solutions that I am not aware of.

    I hope this helps!

    best

    Pete

BérangèreL
Community Manager
Community Manager

Hey @Yoli_Mmutsi 👋, I hope that you are well!

Thanks for reaching out to the HubSpot Community!

To start with, here are some resources that might help:

- Automation API | Custom Workflow Actions
- CRM API | Contacts
- Lists (Segments) API

Now, I'd love to put you in touch with our Top Experts: Hi @HubDoPete, @nickdeckerdevs1 and @sylvain_tirreau do you have recommendations to help @Yoli_Mmutsi, please?
 

Thanks so much and have a wonderful day! 🌞
Bérangère





loop


Loop Marketing is a new four-stage approach that combines AI efficiency and human authenticity to drive growth.

Learn More




0 Upvotes
Yoli_Mmutsi
Participant

Hi Bérangère,

 

Thank you for responding.

We have subscription with Zapier but the only trigger event available is 'Create New Contacts' which will not update existing contact's fields in HubSpot by searching and finding any changes within Microsoft EntraI ID. This is an issue because if a contact is now in inactive in MS Entra ID then that update will not pull through to HubSpot.

Is there a work around this?

Best regards,
Yoli

0 Upvotes