📋 Guide Info

15 min read

Updated August 9, 2026

180 reads

Azure Logic AppsMicrosoft Entra IDHR OnboardingSharePointMicrosoft GraphManaged IdentityAutomationJoiner Process
HR to Entra Onboarding Automation Part 1

Automate HR to Entra ID Onboarding with Azure Logic Apps: Part 1

Liladhar Sapkota - Author
Liladhar SapkotaAugust 9, 2026

Part of the HR to Entra onboarding automation series:

Why I built this

I wanted a simple way for HR to submit a new starter once, then let automation do the boring identity work in a controlled way. The goal was not to create a fancy demo. I wanted something I could actually test: HR adds a SharePoint item, the Logic App validates the request, creates the Entra account, writes the result back, and emails the right people.

This is Part 1, so I am keeping it beginner friendly. I will show the design, the fields I used, the safety checks, and the testing approach. I am not publishing my full workflow export here. The JSON file stays private because that is my working template and I may release it later as a paid package.

Private template note: Do not upload your Logic App JSON export, tenant IDs, list IDs, or connection names into a public website folder. In this article I only use screenshots and explain the build in plain English.
1

The simple flow

The workflow is easy to understand when you think of it as a small handover between HR, IT, SharePoint, Logic Apps, Entra ID, and email.

Clean HR to Entra onboarding flow showing SharePoint request, processing, company and location mapping, UPN check, disabled account creation, manager assignment and manual review path
Figure: Clean version of my beginner flow map before building the full Logic App.
  • HR creates a new onboarding request in SharePoint.
  • The Logic App marks the item as processing so everyone knows it has started.
  • Company and office location are mapped to the correct Entra values.
  • The workflow builds the username and checks whether the UPN already exists.
  • If everything is clean, it creates a disabled Entra account for IT review.
  • If something does not look right, it stops safely and sends the request to manual review.
2

How the real Logic App looks

This is the actual design view from my working build. I like this layout because every important decision has a visible step: trigger, variables, company mapping, location mapping, validation, UPN check, Entra user creation, and manager assignment.

Clean Azure Logic Apps designer overview showing SharePoint onboarding trigger, workflow variables, company mapping switch, office location mapping switch, validation, UPN availability check and Entra user creation steps
Figure: Clean readable version of my HR to Entra onboarding Logic App design.

Below is the real workflow shape from my build. The important beginner lesson here is the structure: I use a main Try scope for the normal onboarding work, a Catch scope for unexpected errors, then one final SharePoint update and one notification step.

Real Azure Logic Apps workflow showing SharePoint onboarding trigger, initialize workflow state, try process onboarding scope, catch unexpected error scope, final SharePoint update, and IT and HR notification
Figure: Real workflow layout from my working Logic App. The full JSON export stays private.
My advice: do not start with a huge workflow. Build one line first: SharePoint trigger, mark as processing, then update the same SharePoint item. Once that works, add mappings, Graph calls, and email.
3

What I prepared first

Before touching the Logic App designer, I prepared the boring pieces. This saved me a lot of guessing later.

  • A SharePoint list for HR onboarding requests.
  • A dedicated SharePoint connection account for the Logic App connector.
  • An Azure resource group for the Logic App and related connection resources.
  • A Logic App Consumption workflow with system-assigned managed identity enabled.
  • Admin approval for the Microsoft Graph permissions used by the managed identity.
  • A sender mailbox or shared mailbox for onboarding notifications.
  • A small pilot test group so I was not testing on real new starters first.
I used a service account for the SharePoint connector, but I did not make that account a global admin or Entra admin. The SharePoint account only needs the list access required for this workflow.

Can I import the SharePoint list instead of creating every column manually?

Yes, but there are a few options and I would not treat them all the same:

  • From existing list: good after you have one working onboarding list. Microsoft says this copies the list structure such as columns, views, and formatting, but it does not copy the existing data.
  • From Excel or CSV: useful for a first draft or demo list, but check every column type afterwards. Also remember that if you upload the Excel or CSV file from your device, Microsoft says the original file is saved in the site assets area, so other people with access may be able to see that source file.
  • Microsoft Graph: best for a repeatable admin/developer setup because Graph can create a SharePoint list and custom columns, but that needs proper permissions and testing.
For Part 1, I still recommend manually creating the first list once. It helps beginners understand the columns and internal names. After that, create the next list from the existing working list or automate it with Graph.

Should this be a SharePoint list or a folder?

For this HR onboarding scenario, use a SharePoint List. A list item is perfect for fields like FirstName, LastName, Department, StartDate, ManagerEmail, RequestStatus, UPN, EntraObjectId, WorkflowRunId, and ErrorMessage.

SharePoint can work with folders, and Microsoft's SharePoint connector does support file and folder operations. But those are different from a clean HR request form. Folder-based triggers are mainly for document library/file scenarios, while this onboarding process depends on list item fields. Microsoft also marks the older folder-specific file triggers as deprecated, and those triggers do not fire for files added inside subfolders. So I would not build this onboarding form as a folder-based process.

4

Build the SharePoint HR onboarding list

This list is the front door. HR should not need to know Graph, Entra attributes, or Azure. They should only fill the fields that make sense to them.

ColumnExampleWhy I use it
FirstNameLogicUsed to build display name and username.
LastNameTestuserUsed to build display name and username.
JobTitleIT Support AnalystWritten to the Entra user profile.
DepartmentTechnologyWritten to the user profile and used by IT for review.
StartDate2026-08-12Included in the SharePoint status and notification email.
CompanyNameLStech or BM RentalUsed to choose the correct company and UPN suffix.
OfficeLocationSydney or BrisbaneUsed to map city, state, country, and usage location.
ManagerEmailmanager@example.comUsed to find and assign the manager if valid.
RequestStatusProcessing, Completed, Manual Review, FailedKeeps HR and IT informed without opening the Logic App run.
UPNlogic.testuser@domain.comThe final user principal name written back by the workflow.
EntraObjectIdUser object IDUseful for audit and troubleshooting.
WorkflowRunIdLogic App run IDMakes support much easier when a request fails.
ErrorMessageMapping missingPlain-English reason when the request needs manual review.
Important SharePoint lesson: display names and internal names can be different. Always check the internal column name before using it in a Logic App expression.
5

Create the Logic App and turn on identity

I used a Consumption Logic App for this first version because it is simple, easy to follow, and good enough for a beginner onboarding workflow.

  1. Create a new Logic App in Azure.
  2. Select Consumption for the workflow type.
  3. Open Identity and enable the system-assigned managed identity.
  4. Copy the managed identity object ID because the identity team will need it for Microsoft Graph permissions.
  5. Create the SharePoint connector connection using the dedicated automation account.
The SharePoint connector and the managed identity are not the same thing. The SharePoint connector reads and updates the list. The managed identity handles Microsoft Graph calls such as creating the Entra user and sending email.
6

Map company and office location

This is where the workflow becomes useful. HR chooses normal business values, and the Logic App converts them into the values Entra needs.

HR selectionEntra values I map
SydneyCity Sydney, State NSW, Country Australia, Usage location AU
BrisbaneCity Brisbane, State QLD, Country Australia, Usage location AU
LStechCompany LStech and the correct UPN suffix for that company
BM RentalCompany BM Rental and the correct UPN suffix for that company

If the company or location is unknown, I do not let the workflow create a half-correct user. I write Manual Review back to SharePoint with a useful message.

7

Build the username and check for duplicates

The workflow creates a simple username from first name and last name, then joins it with the company UPN suffix. After that it checks Entra to see whether the UPN is already taken.

Example idea:
First name: Logic
Last name: Testuser
Generated username: logic.testuser
Final UPN: logic.testuser@selected-company-domain

If the UPN already exists, the workflow stops and marks the request as manual review. I prefer that over auto-adding random numbers, because HR and IT should decide the final username format.

8

Create the disabled Entra account

For the first version, I create the Entra user as disabled. This gives IT a clean review point before the person actually starts. It also lowers the risk if HR entered the wrong start date, manager, or department.

  • Create display name from first name and last name.
  • Set job title, department, company, office location, city, state, country, and usage location.
  • Generate a temporary password inside the workflow.
  • Protect password-related actions with secure inputs and secure outputs.
  • Do not write the temporary password back to SharePoint.
  • Do not send the temporary password by email.
I know it is tempting to email the temporary password to someone, but I would not do that. Keep password handling out of normal notifications and use your proper joiner process.
9

Find and assign the manager

Manager assignment is one of those small details that makes onboarding feel complete. In my build, the workflow looks up the selected manager and only assigns it when the manager is valid.

  • If the manager exists, assign the manager relationship in Entra.
  • If the manager is missing or unclear, mark the item for manual review.
  • Write a clear message back to SharePoint so IT knows what to fix.
Do not silently ignore manager errors. If the manager field is wrong today, it usually becomes a Teams, Outlook, approval, or reporting issue later.
10

Update SharePoint once at the end

One thing I changed in this design is that the final SharePoint update happens once. The workflow still writes processing early, but the normal final result is written in one place. This makes it easier to read and easier to troubleshoot.

  • Completed: user created, UPN written back, object ID captured, and notification sent.
  • Manual Review: duplicate UPN, bad mapping, missing manager, or anything that needs IT decision.
  • Failed: unexpected failure with run ID and a bounded error message.
11

Send a useful email, not a scary one

The notification should be readable by HR and IT. I keep it simple: name, job title, department, start date, manager, office location, and the current status.

I do not include technical JSON, Graph response bodies, connection IDs, or temporary passwords in the email. Those belong in secure logs or admin-only troubleshooting, not normal HR notifications.
12

Permissions I keep separate

This part matters. The Logic App can become too powerful very quickly if everything is granted broadly. I split the responsibilities.

TaskIdentityMy rule
Read new HR requestSharePoint connector accountList-level access only where possible.
Update SharePoint resultSharePoint connector accountWrite only to the onboarding list.
Create and update Entra userLogic App managed identityUse approved Microsoft Graph application permissions.
Send notification emailLogic App managed identityScope sending to approved mailbox if your tenant supports it.
I would not make the SharePoint service account an Entra administrator. If the workflow needs Graph, use the managed identity and document exactly which permissions were approved.
13

How I tested Part 1

I tested small scenarios first. This is much better than building the whole workflow and then trying to guess which action failed.

Azure Logic Apps run history showing multiple successful HR onboarding workflow runs with subscription ID and run identifiers redacted
Figure: Real run history from my Logic App showing successful onboarding test runs. I redacted subscription and run identifiers before publishing.
TestWhat I expect
Happy pathSharePoint request becomes Completed and Entra user is created disabled.
Duplicate UPNNo new user is created and the item becomes Manual Review.
Unknown companyThe workflow stops before user creation and explains the missing mapping.
Unknown officeThe workflow stops before user creation and explains the missing location mapping.
Manager not foundThe request goes to Manual Review instead of pretending everything is fine.
Automatic trigger delayConsumption polling can take a few minutes, so I check trigger history before changing random settings.
14

Mistakes I would avoid next time

  • Do not expose the workflow JSON export publicly.
  • Do not hardcode tenant-specific IDs into a guide or public page.
  • Do not give the SharePoint connector account more access than it needs.
  • Do not create enabled accounts automatically in Part 1 unless your review process is already mature.
  • Do not skip duplicate UPN checks.
  • Do not hide errors in the Logic App run only; write a useful message back to SharePoint.

Part 1 checklist

  • SharePoint onboarding list created with clear internal column names.
  • RequestStatus choices include Processing, Completed, Manual Review, and Failed.
  • Logic App Consumption workflow created.
  • System-assigned managed identity enabled.
  • SharePoint connector uses a dedicated automation account.
  • Company and location mapping tested with known values.
  • Duplicate UPN check tested.
  • New Entra account is created disabled.
  • Manager assignment tested with valid and invalid manager values.
  • Final SharePoint update writes UPN, object ID, run ID, and a clear status.
  • No JSON export, password, tenant ID, connection ID, or private workflow file is linked from the public page.

Frequently Asked Questions

Is this guide based on a real workflow?
Why are you not sharing the JSON file?
Why create the Entra account as disabled?
Can this be expanded later?
Liladhar Sapkota - IT Professional
About the Author

Liladhar Sapkota is an IT professional with expertise in Microsoft 365, Intune, and automation. Writing documentation based on real production experience.