Employee dataOct 24, 202615 min read

Sync Email Signatures from Microsoft Entra ID (Azure AD): Attributes, Permissions and Hybrid AD (2026)

How to drive company email signatures from Microsoft Entra ID: which Graph user attributes feed a signature, the read-only permissions a Global Admin consents to, scoping by group or administrative unit, sync timing, empty and custom fields, and hybrid Active Directory.

SG

Sophie Grant

Email Signature Specialist, Scribe

Sync Email Signatures from Microsoft Entra ID (Azure AD): Attributes, Permissions and Hybrid AD (2026)

TL;DR: Microsoft Entra ID (formerly Azure AD) already holds most of what a signature needs: name, job title, department, phones, office and address. A signature tool reads those fields through Microsoft Graph with read-only application permissions that a Global Administrator consents to once. Pick who syncs by user, group or administrative unit, assign signatures by rules on those fields, and fix wrong data in Entra ID rather than in the signature. Scribe syncs from Entra ID once a day (plus manual refresh) and drops any block whose field is empty. It does not connect to on-premises Active Directory directly; hybrid tenants sync AD into Entra ID first.

Last reviewed: October 2026. Covers Microsoft Entra ID (cloud-only and hybrid with Entra Connect), Microsoft Graph user properties, and Scribe's Entra ID connector.

This guide is for the IT admin who owns the directory and has been asked to make every email signature show the right title, department and phone number without maintaining a spreadsheet. It explains which Entra ID attributes can feed a signature, what the connection needs from a security point of view, how to scope the sync, what happens when data is missing, and where hybrid Active Directory fits. For the end-to-end Microsoft 365 rollout (add-in, server-side routing, Outlook versions), read the Microsoft 365 signature playbook. If HR, not IT, owns titles and departments in your company, read HRIS as the source of truth next.

Which Entra ID attributes can feed an email signature?

Every Entra ID user is a Microsoft Graph user object. The properties that matter for signatures are standard ones that most tenants already populate during onboarding (user resource type, Microsoft Learn). Scribe's data-collection page lists the fields it stores from Entra ID: profile picture, first and last name, job position, mobile phone, work phone, fax, department, office, street address, city, state or province, zip or postal code, country or region, group and administrative-unit memberships, and domain hostnames (Scribe: Entra ID data collection).

The table maps those Scribe fields to the Graph property that normally holds the value. Scribe's documentation names the fields, not the Graph properties, so treat the middle column as the standard Microsoft property for that field rather than a quote from Scribe.

Field in the signatureGraph user propertyMicrosoft notesStored by Scribe
First name / Last namegivenName, surnameReturned by defaultYes
Job titlejobTitleMax 128 charactersYes ("Job position")
DepartmentdepartmentMax 64 charactersYes
OfficeofficeLocationFree textYes
Work phonebusinessPhonesOnly one number can be set; read-only for users synced from on-premisesYes
Mobile phonemobilePhoneRead-only for users synced from on-premisesYes
FaxfaxNumberYes
Street, city, state, postal code, countrystreetAddress, city, state, postalCode, countryAddress of the place of businessYes
PhotoProfile photoSet in Microsoft 365 or Entra IDYes ("Profile picture")
Company name, employee ID, employee typecompanyName, employeeId, employeeTypeRequire $select in GraphNot listed
Exchange custom attributesonPremisesExtensionAttributes (1-15)Up to 1,024 characters eachNot listed

Property limits and read-only rules are from the Graph user resource. Two details matter in practice. businessPhones is a collection but holds only one number, so a direct line and a switchboard number can't both live there. And department caps at 64 characters, which is one more reason to keep department names short and consistent: they are also what your assignment rules will match on.

Get started with Scribe

Roll out signatures to your whole organization

Free 14-day trial — no credit card.

What does the connection need from IT and security?

Scribe's Entra ID connector needs a Global Administrator to authorize it; a non-admin sign-in fails, and Scribe offers to email the invitation to your Global Admin instead (Connect Microsoft Entra ID). That matches Microsoft's own rule: application permissions on Microsoft Graph (app roles) can't be consented to by a Cloud Application Administrator or Application Administrator; that takes a Privileged Role Administrator or a Global Administrator (Grant tenant-wide admin consent, Microsoft Learn).

The permissions requested, from Scribe's scopes page:

PermissionTypeWhy Scribe asks for it
User.Read.AllApplicationRead every user's profile fields
Group.Read.AllApplicationRead the groups you created
GroupMember.Read.AllApplicationRead who belongs to which group
AdministrativeUnit.Read.AllApplicationCreate matching departments from administrative units
Domain.Read.AllApplicationImport your domains
openid, profile, email, User.ReadDelegatedLet teammates sign in to Scribe with their Microsoft account
offline_accessDelegatedKeep the connection alive without re-authenticating

Every permission is a read permission. Scribe states it has read-only access, cannot edit anything in Microsoft 365 and cannot read your emails (Scribe docs). If the consent screen errors, the usual cause is a conditional access or app consent policy that blocks third-party consent; Scribe's troubleshooting section points there first (Scribe docs). Microsoft's user consent settings page explains where those policies live.

Before you connect, run a five-minute data audit. Whatever is wrong in Entra ID becomes what customers see in every email. With Microsoft Graph PowerShell:

Connect-MgGraph -Scopes "User.Read.All"
$users = Get-MgUser -All -Filter "accountEnabled eq true and userType eq 'Member'" `
  -Property displayName,mail,jobTitle,department,officeLocation,mobilePhone,businessPhones
"Missing job title:  " + ($users | Where-Object { -not $_.JobTitle }).Count
"Missing department: " + ($users | Where-Object { -not $_.Department }).Count
"Missing work phone: " + ($users | Where-Object { -not $_.BusinessPhones }).Count
$users | Group-Object Department | Sort-Object Count -Descending |
  Select-Object Count, Name | Format-Table

The last command is the one people skip. It lists every distinct department value, which is where you find "Sales", "sales" and "Sales & BD" living side by side. Clean those before you write assignment rules that match on department.

How do you connect Entra ID and choose who syncs?

The flow in Scribe has five steps (Connect Microsoft Entra ID):

  1. Go to Settings > Integrations and click Connect on the Microsoft Entra ID card, then Connect Entra ID.
  2. Pick the Microsoft account for your tenant. It must hold the Global Admin role.
  3. Review the Permissions requested screen and click Accept.
  4. In Synchronize Teammates, choose people on the Teammates tab, whole administrative units on the Units tab, or groups on the Groups tab. The group list can be filtered by type: Microsoft 365 groups, mail-enabled security groups, security groups and distribution groups.
  5. Decide on the two import options, Import email aliases (with a per-domain selection) and Import shared mailboxes. Both are on by default. Then click Synchronize.

You don't have to sync the whole directory. Scribe bills for people whose primary email has a signature assigned, not for everyone synced (pricing), but syncing service accounts, room mailboxes and test users still clutters reports and completion percentages. Scope the sync to real senders. Aliases and shared mailboxes are covered in the aliases and shared mailboxes guide.

Should users, groups or administrative units drive the sync?

Scribe can scope two things from the directory: who is imported (the sync selection) and who gets which signature (assignment). Both accept groups and administrative units, and they solve different problems.

Directory objectWhat Microsoft saysLicensingGood for
Individual usersDirect selectionNonePilots, small exceptions
Assigned security or Microsoft 365 groupMembership edited by hand or by an ownerNone extraPilot groups, brands, subsidiaries
Dynamic membership groupMembership calculated from rules such as user.department -eq "Sales"Entra ID P1 for each unique member (Microsoft Learn)Department signatures that maintain themselves
Administrative unitA container for users, groups or devices, built to scope admin rolesCreating one works on Entra ID Free; admins scoped to it need P1 (Microsoft Learn)Regions or business units that already exist as AUs; Scribe turns them into departments

A pattern that scales with little upkeep:

  1. Sync one broad selection, for example a group of all employees with a mailbox, with auto-sync turned on for it.
  2. Assign signatures by Smart Field condition rather than by list, for example "If Microsoft 365 department is any of Sales, Sales & Marketing", and tick auto-assign this signature to all future teammates (Assign teammates to a signature).
  3. Use groups or administrative units for assignment only where the grouping isn't in a user attribute, such as a brand, a legal entity or a pilot cohort.

Auto-sync is configurable per scope. By default Scribe imports new teammates added to Entra ID; you can toggle it for teammates not in a selected unit or group, per unit, and per group, from Settings > Integrations > Microsoft Entra ID (Scribe docs). Turn it off for scopes where you want a human to decide, such as contractors.

How often does Entra ID data sync, and what happens when people join, move or leave?

Scribe syncs connected directory sources once a day, based on your workspace time zone, and an admin can click Refresh on the Teammates or Smart Fields page to sync immediately (Teammates overview, Smart Fields). The flow is one-way: changes to synced fields are made in Entra ID and appear in Scribe after the next sync.

Event in Entra IDWhat happens in ScribeSource
New user in a synced scope with auto-sync onImported as a teammate on the next sync; gets any signature whose rule matches and that has auto-assign onConnect Entra ID, Assign teammates
Title, department or phone changesSmart Field value updates on the next sync; the signature followsSmart Fields
Department changes and a rule-based assignment no longer matchesExpected to move to the signature whose rule now matches; test this in your pilotInferred from rule-based assignment; not described step by step in Scribe's docs
License deactivatedSignature removed from Scribe and the user removed from billingPricing FAQ

Two practical consequences. First, a title changed at 9 a.m. can take until the next daily sync to reach the signature; if a change has to be live now (a new executive, a corrected phone number), change it in Entra ID and click Refresh. Second, if you need to react to joiners and leavers elsewhere, for example to open an ITSM ticket, Scribe sends teammate.created and teammate.deleted webhooks for changes made by a directory sync as well as by people (Webhook events).

Deleting a teammate's emails inside Scribe is a different action: it removes their signature but leaves the user untouched in Entra ID (Teammates overview).

Can you use custom attributes, extension attributes or pronouns?

This is the most common request after the basics work: pronouns, a certification line, a license number, a second language, a pager number. Entra ID has two places for this kind of data:

  • Exchange custom attributes, exposed in Graph as onPremisesExtensionAttributes (extensionAttribute1 to extensionAttribute15). Each holds up to 1,024 characters. For users synced from on-premises AD they are mastered on-premises and read-only in the cloud; for cloud-only users they can be set on create or update (Microsoft Learn).
  • Directory extensions registered by an application, which add custom properties to the user object.

Scribe's Entra ID data-collection page does not list extension attributes or directory extensions among the fields it stores (Scribe docs). Until Scribe documents them, plan on one of these routes for custom data:

RouteHowBest when
Custom Smart Field stored in ScribeCreate a field (Text, Image or Link) with data source "Scribe", then fill it in bulk, by CSV, or by inviting teammates to fill their own (Smart Fields)Data the directory will never hold, such as pronouns or a personal LinkedIn URL
Scribe APIPATCH /v1/teammates/{id} sets Smart Field values for a teammate (API reference)You already have a script or flow that reads the extension attribute
A second data sourceConnect an HRIS or Okta and map that field from there; Okta, for example, provides honorific prefix and suffix, employee number, cost center and division (Scribe: Okta data)HR or the identity provider already owns the value

For pronouns, Scribe's "invite teammates to fill data" option is a good fit: the employee enters the value in a limited profile view and can't see the rest of the workspace (Smart Fields). If extension attributes are a requirement for your rollout, ask Scribe to confirm support before you commit.

What happens when an Entra ID field is empty?

This is where directory-driven tools differ most. An Exchange Online mail flow rule replaces tokens such as %%MobilePhone%% with directory values, but it has no per-field logic, so a label written next to an empty token still appears (Microsoft Learn).

In Scribe, if a teammate has no value for a Smart Field, the block connected to that field isn't rendered and the layout closes around it. Placeholder values appear only in the editor and previews, never in sent mail (Smart Fields). One template can therefore serve people with and without a mobile number.

That hides the gap; it doesn't fix it. Use the Information completion column on the Smart Fields page and the Information: Missing filter on the Teammates page to find who is incomplete. Mark a field Required only if it is actually used in a template, otherwise the completion percentage becomes meaningless (Smart Fields).

What about on-premises Active Directory and hybrid identity?

Scribe connects to Microsoft Entra ID. It does not document a connector for on-premises Active Directory, and none is listed in its integrations (Integrations overview). In practice that matters less than it sounds, because most organizations with on-premises AD and Microsoft 365 already run a hybrid identity sync:

So the data path for a hybrid tenant is AD, then Entra ID (every 30 minutes by default), then Scribe (daily or on refresh). The rule that trips people up: for synced users, the source of authority is on-premises. Graph marks mobilePhone and businessPhones read-only for users synced from on-premises, and extension attributes are read-only in the cloud for them (Graph user resource). Fix those values in Active Directory Users and Computers or your AD tooling, not in the Entra admin center.

Two edge cases need a separate answer:

  • Exchange Server on-premises mailboxes. Directory sync gives you the data, but Exchange Online mail flow and the Microsoft 365 add-in don't reach those mailboxes. For Windows users without a Microsoft 365 cloud license, Scribe documents a desktop app deployed through an RMM tool (Scribe: Outlook for Windows via RMM). Ask Scribe for a design review before committing.
  • Users who exist only in on-premises AD (no Entra ID object). Scribe can't see them through the directory. Add them manually or by CSV (Teammates overview).

How do you fix wrong signature data at the source?

Synced fields are locked in Scribe; the profile shows a lock icon on any field that comes from Entra ID (Teammate profile). That is deliberate: the signature should never disagree with the directory. The fix loop is:

  1. Find the bad value: preview the signature with real data, or filter teammates by missing information.
  2. Correct it in Entra ID (cloud-only user) or in on-premises AD (synced user). From the Smart Fields page, Update data on Microsoft Entra ID links you to the admin console (Smart Fields).
  3. Click Refresh in Scribe, or wait for the daily sync.

For bulk corrections on cloud-only users, Graph PowerShell is faster than the portal:

Connect-MgGraph -Scopes "User.ReadWrite.All"
Import-Csv .\title-fixes.csv | ForEach-Object {
  Update-MgUser -UserId $_.UserPrincipalName -JobTitle $_.JobTitle -Department $_.Department
}

See Update-MgUser and Update user on Microsoft Learn. Note that Microsoft treats some properties, including mobilePhone and businessPhones, as sensitive: only specific privileged administrator roles can update them, especially on other administrators' accounts.

When the directory is simply the wrong owner for a field (titles kept in Workday, direct lines kept in Aircall), don't keep fixing Entra ID by hand. Switch that Smart Field's data source to the system that owns it. The HRIS guide covers how to split ownership field by field.

Where does Scribe fit?

Scribe's Entra ID integration imports users, groups, administrative units, aliases and shared mailboxes with read-only Graph permissions, and every plan includes it (pricing). The same data drives the Microsoft 365 add-in and server-side routing. For audits, the hosted MCP server lets an admin ask an AI assistant questions such as "list teammates missing a job title" (Scribe AI agents), and the REST API exposes teammates, Smart Fields and per-email install state for scripts.

Frequently asked questions

Which Entra ID fields can appear in an email signature?

Any populated user property can, in principle. Scribe stores profile picture, first and last name, job position, mobile, work phone, fax, department, office, street address, city, state, postal code, country, group and administrative-unit memberships, and domains from Entra ID. In Microsoft Graph these correspond to properties such as givenName, surname, jobTitle, department, officeLocation, businessPhones, mobilePhone and the address fields.

What permissions does an Entra ID signature integration need?

Scribe requests read-only Microsoft Graph application permissions (User.Read.All, Group.Read.All, GroupMember.Read.All, AdministrativeUnit.Read.All, Domain.Read.All) plus delegated sign-in scopes. Because these are application permissions, a Global Administrator or Privileged Role Administrator must grant consent; Scribe's connector requires a Global Admin.

How often do Entra ID changes reach the signature?

Scribe syncs connected directories once a day based on your workspace time zone, and an admin can click Refresh to sync immediately. In a hybrid tenant, add Entra Connect's own cycle in front of that: by default it runs every 30 minutes.

Does Scribe sync from on-premises Active Directory?

Not directly. Scribe connects to Microsoft Entra ID only. Hybrid organizations sync on-premises AD into Entra ID with Entra Connect Sync or Cloud Sync, and Scribe reads the synced values from Entra ID. For synced users, fix data in on-premises AD, because Microsoft makes some properties read-only in the cloud for them.

Can I use extensionAttribute1-15 in a signature?

Scribe's Entra ID data-collection page doesn't list extension attributes or directory extensions, so confirm with Scribe before relying on them. Workable alternatives today are a custom Smart Field stored in Scribe (filled manually, by CSV, by the employee, or through the API) or a field mapped from a connected HRIS or Okta.

What happens if a user has no mobile number in Entra ID?

Scribe doesn't render the block tied to an empty Smart Field and closes the layout around it, so the signature shows no empty label or gap. Native Exchange mail flow rule tokens can't do this: a label next to an empty token still appears.

Should I assign signatures by group or by department attribute?

Use attribute rules where the grouping is in user data, for example a Smart Field condition such as Department is Sales with auto-assign for future teammates. Use groups or administrative units for groupings that aren't attributes, such as brands, legal entities or pilot cohorts. Dynamic membership groups in Entra ID require an Entra ID P1 license per member.

Does removing someone in Scribe delete them from Entra ID?

No. Scribe's access is read-only. Deleting a teammate's emails in Scribe removes their signature but leaves the user in Entra ID. In the other direction, Scribe's pricing FAQ says that deactivating a user's license in Entra ID removes their signature and their seat from billing.

Get started with Scribe

Roll out signatures to your whole organization

Free 14-day trial — no credit card.

More guides in this cluster

Stripe email signature – Patrick Collison
Notion email signature – Camille Ricketts

Start your 14-day
free trial

Join 10,000+ companies using Scribe to power 15 million daily brand impressions

No card required. All features. Unlimited users.

Nike email signature – Greg Hoffman
Headspace email signature – Andy Puddicombe