ACT-CreateRemoteMailbox

Runbook: ACT-CreateRemoteMailbox.ps1

πŸ“˜ Description

Creates a remote mailbox in an on-prem Active Directory environment and prepares the user for migration to Microsoft 365.
This runbook:

  • Creates AD user (if needed)
  • Creates a remote mailbox
  • Stamps Exchange attributes
  • Optionally assigns Microsoft 365 licenses
  • Optionally sets mailbox features and policies

🧩 Required Parameters

NameDescriptionExample
DisplayNameFull display name"John Doe"
UPNUserPrincipalName"john.doe@contoso.com"

πŸͺ„ Optional Parameters

NameDescriptionExample
FirstNameFirst name"John"
LastNameLast name"Doe"
AliasMail alias"jdoe"
DepartmentDepartment"HR"
TitleJob title"HR Specialist"
ManagerUPNManager UPN"manager@contoso.com"
OfficePhysical office"Building A"
EnableArchiveEnable archive mailbox"true"
AssignLicensesAssign O365 licenses"true"

πŸ“€ Input Payload (Webhook JSON Example)

{
  "customer": "Contoso",
  "runbook": "ACT-CreateRemoteMailbox.ps1",
  "issue_key": "{{issue.key}}",
  "params": {
    "DisplayName": "{{issue.fields.customfield_10200}}",
    "UPN": "{{issue.fields.customfield_10201}}",
    "FirstName": "{{issue.fields.customfield_10202}}",
    "LastName": "{{issue.fields.customfield_10203}}",
    "Department": "{{issue.fields.customfield_10204}}",
    "Title": "{{issue.fields.customfield_10205}}",
    "Office": "{{issue.fields.customfield_10206}}",
    "ManagerUPN": "{{issue.fields.customfield_10207}}",
    "EnableArchive": "true",
    "AssignLicenses": "true"
  }
}

πŸ“© Example Jira Automation Rule

When: Issue Created
Then: Send Web Request β†’ POST β†’ SymphonyDesk

{
  "customer": "Contoso",
  "runbook": "ACT-CreateRemoteMailbox.ps1",
  "issue_key": "{{issue.key}}",
  "params": {
    "DisplayName": "{{triggerIssue.fields.customfield_10200}}",
    "UPN": "{{triggerIssue.fields.customfield_10201}}",
    "FirstName": "{{triggerIssue.fields.customfield_10202}}",
    "LastName": "{{triggerIssue.fields.customfield_10203}}",
    "Department": "{{triggerIssue.fields.customfield_10204}}",
    "Title": "{{triggerIssue.fields.customfield_10205}}",
    "EnableArchive": "true",
    "AssignLicenses": "true"
  }
}

πŸ“₯ Response (Success)

{
  "job_id": "job-57fd921a",
  "status": "success",
  "output": "Remote mailbox created for john.doe@contoso.com"
}

πŸ“₯ Response (Error)

{
  "job_id": "job-57fd921a",
  "status": "error",
  "message": "Unable to locate manager UPN",
  "raw": "Get-ADUser : Cannot find user..."
}

πŸ—ƒ Requirements

  • Must have Exchange on-prem with hybrid configuration
  • Runner must have access to on-prem AD + Exchange
  • Requires ExchangeOnlineManagement module
  • Requires hybrid cmdlet: Enable-RemoteMailbox
  • Requires Get-SDConfig and Get-SDCredential working for the customer
  • Customer secrets configured:
  • ExchangeCred
  • AzureAppRegistration (optional for licensing)

πŸ— Version History

VersionDateChanges
1.02025-01-01Initial release of runbook
1.12025-01-10Added license assignment support
1.22025-01-12Added archive mailbox toggle