Edit template
Default: applied to them automatically. Not default: they can choose it themselves in Outlook. When several apply, the most specific wins: person, then signature group, Microsoft 365 group, domain, department. A person’s own choice in Outlook, or a pin on their card, beats all of these.
Signature HTML
Placeholders — click to insert at cursor
Live preview
Sample dataImages
Served globally at /media — safe to embed in signaturesAll users
Filters combine: a person is shown only when every filter matches. “Is” and “contains” ignore upper/lower case.
| Name | Department | Title | Mobile | Status |
|---|
Activate or deactivate a group of people
| Name | Department | Status now |
|---|
Untick anyone to exclude them; excluded people keep their current status. This is a one-off change: people who join later follow the “New users” setting.
Current signature — external mail
Current signature — colleagues (internal mail)
Signature service over time
Show as a table
| When | Signatures added | Needed sign-in | Not activated |
|---|
Outlook needs them to sign in
Their Outlook could not sign in silently, so they get no signature until they open the USP&E Signatures pane and choose Sign in with Microsoft 365 once. Usually classic Outlook on Windows. Names come from the mailbox address Outlook reported, matched to the directory.
| Person | Department | Times | Last needed sign-in | Now |
|---|
Activated, but no signature yet
Switched on, but the service has never handed them a signature since counting began. Either they have not sent mail since, or their Outlook cannot reach the service — check the list above, or ask them to open the pane.
| Person | Department |
|---|
Link clicks
Link clicks
| When | Whose signature | Link |
|---|
Offices
For templates that show the sender’s own office: {{officeName}}, {{officeAddress}},
{{officeMainPhone}} and {{officeMapUrl}}. Wrap the block in
{{#if officeName}}…{{/if}} so it disappears for anyone without an office.
Templates that don’t use these placeholders are not affected.
A person’s office comes from their Office location in Microsoft 365, which is typed by hand, so map each spelling to an office in the table below. An office set on someone’s card beats Microsoft 365.
Office locations in Microsoft 365
| As typed | People | Office |
|---|
New users
What happens to someone who joins the directory and has never been activated or deactivated by an administrator.
Changing this never switches anyone who is already in the directory on or off — it only decides what happens to the next new hire.
Signature mode
The signature behaviour for everyone without their own setting. Set it for one person on their card under Users, to try dynamic signatures with a few people before switching everyone.
Click tracking
Whether links in signatures record a click on the Analytics page before opening.
Applies to emails sent after each person’s signature next refreshes. Links in mail already sent keep working either way.
Microsoft 365 updates
The details in each signature (name, job title, phone numbers, department) are read from Microsoft 365 fresh for every new email, so a change there shows on the next email.
Other information from Microsoft 365 is reused for up to the time below before it is fetched again: the directory on the Users page, Microsoft 365 group memberships, and the outbound connector’s lookups. Shorter means changes appear sooner; longer means fewer requests to Microsoft.
ECSA PrivySeal size
How large engineers’ PrivySeals appear in every signature. ECSA’s image is 599×127.
To choose where the seal goes, put {{privySeal}} in a template; without it the seal is added at the bottom.
API keys
A key can read the signature — name, title, phone numbers — of every activated user, and nothing else. Treat it like a password: give each system its own key, restrict it to that system’s addresses where you can, and revoke it when it is no longer needed.
| Name | Key | Created | Expires | Last used | Addresses |
|---|
Using the API
Send the key in the Authorization header. Keys in the URL are not accepted, so they never end up in access logs.
Signatures are fetched one person at a time, by email address. There is no way to list or download everyone’s signature.
Get a person’s signature
curl -H "Authorization: Bearer usk_…" \ /api/v1/signatures/alex.morgan@uspeglobal.com
What comes back
{
"html": "<table>…", // external signature
"internalHtml": "…" | null, // colleague-only mail, when an internal template applies
"text": "Alex Morgan\r\n…", // plain-text version
"templateId": "…", "templateName": "…", "version": 3,
"user": { "displayName": "…", "email": "…", "department": "…" }
}
Keep analytics working
Use the HTML exactly as returned. Its links are click-tracked, so clicks show under Analytics against the person whose signature carried them. It also ends with a hidden marker that stops the outbound connector adding a second signature — don’t strip it.
Signatures change when a template is published or someone’s Microsoft 365 profile changes, so pull them again regularly (daily is plenty) rather than storing them once.
Errors
401 missing, wrong or expired key · 403 address not allowed, or the person isn’t activated (not_activated) · 404 no such person or no applicable template · 429 over 120 requests a minute for this key, or too many failed attempts from your address.
Recent activity
| When | Who | What |
|---|