Notion New Hire Onboarding Board Generator
When a new hire is added in Dataverse (or via HR form), the flow clones a Notion onboarding template into a personalized board for the hire, fills in role-specific tasks and dates, shares it, and emails the hire and manager the link. Notifies IT in Teams to begin provisioning. Spins up a complete Notion onboarding workspace per hire.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow spins up a personalized Notion onboarding workspace for every new hire. When a new-hire row is created in Dataverse (typically by HR, or fed from an HR form/HRIS), the flow reads the hire's details, creates a personalized onboarding board page in Notion, generates role-specific onboarding tasks (each with a calculated due date) in a Notion tasks database, emails the hire and their manager the board link, and posts a Teams notice to the IT channel to begin account and equipment provisioning.
Why it matters: manual onboarding setup is repetitive and inconsistent. Generating a tailored Notion board from a single HR trigger ensures every hire gets the same complete, on-time experience - and cues IT automatically so provisioning starts on day one.
Ships Off (demo).
Use Case
HR adds a new hire (a Dataverse New Hire row) and wants a ready-to-go Notion onboarding board with role-based tasks, shared to the right people, and IT cued to provision - automatically and consistently.
Flow Architecture
When New Hire Added
Dataverse - SubscribeWebhookTriggerFires when a row is created on flowlibs_newhire (organization scope).
Get New Hire Record
Dataverse - GetItemReads the full hire row (record id parsed from the trigger @odata.id).
Initialize Config & Hire Fields
Initialize variableBinds the Notion parent/tasks DB ids, IT Teams group/channel, and the role-task template; captures the hire's name, email, manager, title, department, start date, and board title.
Create Onboarding Board
Notion - CreateaPageCreates the hire's onboarding board page in the parent database (Name, Email, Role, Department, Start Date, Status).
Create Role Tasks
Apply to each -> Notion CreateaPageLoops the role-task template and creates each task page with Name, calculated Due Date, Assignee, and Status.
Email Hire & Manager
Outlook - SendEmailV2Emails the hire and manager the board link, start date, and a welcome note.
Notify IT in Teams
Teams - PostMessageToConversationPosts to the IT provisioning channel to begin account and equipment setup.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_NotionOnboardingParentId | String | REPLACE_WITH_NOTION_ONBOARDING_BOARDS_DATABASE_ID | Notion database id where the per-hire board page is created. |
| flowlibs_NotionTasksDatabaseId | String | REPLACE_WITH_NOTION_TASKS_DATABASE_ID | Notion database id where role tasks are created. |
| flowlibs_RoleTaskTemplate | String | [{"taskName":"Complete HR paperwork","offsetDays":0},{"taskName":"IT provisioning","offsetDays":0},{"taskName":"Team orientation","offsetDays":1},{"taskName":"Manager 1:1","offsetDays":2},{"taskName":"30-60-90 day plan","offsetDays":5},{"taskName":"Compliance training","offsetDays":7},{"taskName":"30-day check-in","offsetDays":30}] | JSON array of onboarding tasks with day offsets from start date. |
| flowlibs_ITTeamsGroupId | String | <your-team-id> | Teams team (group) id for the IT provisioning channel. |
| flowlibs_ITTeamsChannelId | String | <your-channel-id> | Teams channel id for IT notifications. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Dataverse | shared_commondataserviceforapps | SubscribeWebhookTrigger GetItem |
| Notion | shared_notionip | CreateaPage |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
| Microsoft Teams | shared_teams | PostMessageToConversation |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Role-based tasks
- Edit flowlibs_RoleTaskTemplate (JSON). Add departments or seniority tiers by branching on department/job title before the loop, or pick a template with a Switch.
- Account creation
- Chain Microsoft Entra ID after the board is created to provision the hire's account once approved.
- Approval gate
- Insert an Approvals step before provisioning so a manager signs off before IT is notified.
- Board content
- Extend the board properties or append block children (welcome text, checklist) using the Notion block operations.
- Offboarding
- Mirror this pattern for departures to revoke access and archive the board.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Record GUID from trigger
Parses the record id from the Dataverse trigger @odata.id.
EXPR.02Board title
The per-hire board page title.
EXPR.03Role tasks array
Parses the JSON task template for the loop.
EXPR.04Task due date
Each task's due date computed from the start date + offset.
EXPR.05Recipients
Hire and manager email recipients.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.