Mail Notifications Variables

Get a great overview of all the variables and date-formatting settings there are in Mail notifications, and how to use them.

Template Object Fields

These are the Template Object fields in CCS.

Person

Example of how person-fields are used:

 <p>{person.Name} has been assigned to your department. He will
be located at ++{++person.Location.Name}
({person.Location}).</p>
<p>An email has been sent to his email ({person.Email}) with
his login credentials.</p>
<p>He is activated in all systems from
{person.ActivateOn}</p>
<p>Link to person: <a href="{person.Link}">person</a></p>

And this is how it would look like with the data values merged:

 <p>John Doe has been assigned to your department. He will be
located at <company> (Kongens Nytorv 8 3., 1050 København K,
Denmark).</p>
<p>An email with his login credentials has been sent to his
email (jd2@<company>.com).</p>
<p>He is activated in all systems from Monday, August 1,
2016</p>
<p>Link to person: <a
href="https://copenhagenquality.crm4.dynamics.com/main.aspx?appid=1dedbd4e-2ac3-e811-a985-000d3a2ac3d0&pagetype=entityrecord&etn=idm_person&id=10f6ac09-66f8-e811-a97e-000d3a296acd">person</a>
Fields Variables value Variable Value with Text Type Example value Remarks

ActivateOn

{person.activateon}

<p>ActivateOn: {person.ActivateOn}<p>

Datetime

Monday, August 1, 2016

Long date format for en-US (ToString("D", new CultureInfo("en-US")))

AlternateEmail

{person.AlternateEmail}

<p>AlternateEmail: {person.AlternateEmail}<p>

String

me@smashdk.eu

AlternatePhone

{person.AlternatePhone}

<p>AlternatePhone: {person.AlternatePhone}<p>

String

Assets

{person.assets}

<p>Assets: {person.assets}<p>

Assets

All the persons assets. See description under the article Assets

AssetsCorporate

{person.assetscorporate}

<p> AssetsCorporate: {person.assetscorporate}<p>

Assets

AssetsPersonal

{person.AssetsPersonal}

<p>AssetsPersonal: {person.assetspersonal}<p>

Assets

Cellphone

{person.Cellphone}

<p>Cellphone: {person.Cellphone}<p>

String

+4534567890

DateOfBirth

{person.DateOfBirth}

<p>DateOfBirth:{person.DateOfBirth}<p>

Datetime

Thursday, July 5, 1979

Long date format for en-US (ToString("D", new CultureInfo("en-US")))

DeactivateOn

{person.DeactivateOn}

<p>DeactivateOn: {person.DeactivateOn}<p>

Datetime

Sunday, January 1, 2040

Long date format for en-US (ToString("D", new CultureInfo("en-US")))

Description

{person.Description}

<p>Description: {person.Description}<p>

String

Email

{person.Email}

<p>Email: {person.Email}<p>

String

jd2@<company>.dk

EmployeeCardId

{person.EmployeeCardId}

<p>EmployeeCardId: {person.EmployeeCardId}<p>

String

KgsNytorv8-102742

EmployeeId

{person.EmployeeId}

<p>EmployeeId: {person.EmployeeId}<p>

String

17145

EmploymentEnd

{person.EmploymentEnd}

<p>EmploymentEnd: {person.EmploymentEnd}<p>

DateTime

28-02-2031

EmploymentStart

{person.EmploymentStart}

<p>EmploymentStart: {person.EmploymentStart}<p>

DateTime

01-03-1998

Fax

{person.fax}

<p>Fax: {Person.Fax}<p>

String

123456

FirstName

{person.FirstName}

<p>FirstName: {person.FirstName}<p>

String

John

Initials

{person.Initials}

<p>Initials: {person.Initials}<p>

String

jd

LastName

{person.LastName}

<p>LastName: {person.LastName}<p>

String

Doe

LeaveReturnDate

{person.LeaveReturnDate}

<p>LeaveReturnDate: {person.LeaveReturnDate}<p>

Datetime

Long date format for en-US (ToString("D", new CultureInfo("en-US")))

Name

{person.Name}

<p>Name: {person.Name}<p>

String

John Doe

Phone

{person.Phone}

<p>Phone: {person.Phone}<p>

String

Company

{person.Company}

<p>Company: {person.Company}<p>

String

copenhagenquality A/S

Corresponds to Company.Name

Company.CustomId

{person.Company.CustomId}

<p>Company.CustomId: {person.Company.CustomId}<p>

String

1213

Company.Name

{person.Company.Name}

<p>Company.Name: {person.Company.Name}<p>

String

copenhagenquality A/S

CostCenter

{person.CostCenter}

<p>CostCenter: {person.CostCenter}<p>

String

Corresponds to CostCenter.Name

CostCenter.CustomId

{person.CostCenter.CustomId}

<p>CostCenter.CustomId: {person.CostCenter.CustomId}<p>

String

CostCenter.Name

{person.CostCenter.Name}

<p>CostCenter.Name: {person.CostCenter.Name}<p>

String

Department

{person.Department}

<p>Department: {person.Department}<p>

String

Udvikling

Corresponds to Department.Name

Department.CustomId

{person.Department.CustomId}

<p>Department.CustomId: {person.Department.CustomId}<p>

String

Udv

Department.Name

{person.Department.Name}

<p>Department.Name: {person.Department.Name}<p>

String

Udvikling

Division

{person.Division}

<p>Division: {person.Division}<p>

String

Corresponds to Division.Name

Division.CustomId

{person.Division.CustomId}

<p>Division.CustomId: {person.Division.CustomId}<p>

String

Division.Name

{person.Division.Name}

<p>Division.Name: {person.Division.Name}<p>

String

Id

{person.Id}

<p>Id: {person.Id}<p>

String

JobTitle

{person.JobTitle}

<p>JobTitle: {person.JobTitle}<p>

String

Udvikler

JobTitle.CustomId

{person.JobTitle.CustomId}

<p>JobTitle.CustomId: {person.JobTitle.CustomId}<p>

String

JobTitle.EnglishName

{person.JobTitle.EnglishName}

<p>JobTitle.EnglishName: {person.JobTitle.EnglishName}<p>

String

Developer

JobTitle.Name

{person.JobTitle.Name}

<p>JobTitle.Name: {person.JobTitle.Name}<p>

String

Udvikler

JobTitle.DanishName

{person.JobTitle.DanishName}

<p>JobTitle.DanishName: {person.JobTitle.DanishName}<p>

String

Direktør

JobTitle.FrenchName

{person.JobTitle.FrenchName}

<p>JobTitle.FrenchName: {person.JobTitle.FrenchName}<p>

String

Director

JobTitle.GermanName

{person.JobTitle.GermanName}

<p>JobTitle.GermanName: {person.JobTitle.GermanName}<p>

String

CEO

JobTitle.NorwegianName

{person.JobTitle.NorwegianName}

<p>JobTitle.NorwegianName: {person.JobTitle.NorwegianName}<p>

String

JobTitle.PolishName

{person.JobTitle.PolishName}

<p>JobTitle.PolishName: {person.JobTitle.PolishName}<p>

String

JobTitle.SpanishName

{person.JobTitle.SpanishName}

<p>JobTitle.SpanishName: {person.JobTitle.SpanishName}<p>

String

JobTitle.SwedishName

{person.JobTitle.SwedishName}

<p>JobTitle.SwedishName: {person.JobTitle.SwedishName}<p>

String

Location

{person.Location}

<p>Location: {person.Location}<p>

String

Kongens Nytorv 8 3., 1050 København K, Denmark

Location.Address1

{person.Location.Address1}

<p>Location.Address1: {person.Location.Address1}<p>

String

Kongens Nytorv 8 3.

Location.Address2

{person.Location.Address2}

<p>Location.Address2: {person.Location.Address2}<p>

String

Location.Address3

{person.Location.Address3}

<p>Location.Address3: {person.Location.Address3}<p>

String

Location.City

{person.Location.City}

<p>Location.City: {person.Location.City}<p>

String

København K

Location.Country

{person.Location.Country}

<p>Location.Country: {person.Location.Country}<p>

String

Denmark

Corresponds to Location.Country.Name

Location.Country.Alpha2

{person.Location.Country.Alpha2}

<p>Location.Country.Alpha2: {person.Location.Country.Alpha2}<p>

String

DK

Location.Country.Alpha3

{person.Location.Country.Alpha3}

<p>Location.Country.Alpha3: {person.Location.Country.Alpha3}<p>

String

DNK

Location.Country.CountryCode

{person.Location.Country.CountryCode}

<p>Location.Country.CountryCode: {person.Location.Country.CountryCode}<p>

String

DK

Location.Country.Name

{person.Location.Country.Name}

<p>Location.Country.Name: {person.Location.Country.Name}<p>

String

Denmark

Location.CustomId

{person.Location.CustomId}

<p>Location.CustomId: {person.Location.CustomId}<p>

String

Location.Name

{person.Location.Name}

<p>Location.Name: {person.Location.Name}<p>

String

copenhagenquality HQ

Location.Region

{person.Location.Region}

<p>Location.Region: {person.Location.Region}<p>

String

Location.ZipCode

{person.Location.ZipCode}

<p>Location.ZipCode: {person.Location.ZipCode}<p>

String

1050

Manager

{person.Manager}

<p>Manager: {person.Manager}<p>

String

Johnathan Doe

Corresponds to Manager.Name

Manager.CellPhone

{person.Manager.CellPhone}

<p>Manager.CellPhone: {person.Manager.CellPhone}<p>

String

+4534567890

Manager.Email

{person.Manager.Email}

<p>Manager.Email: {person.Manager.Email}<p>

String

jd1@<company>.dk

Manager.FirstName

{person.Manager.FirstName}

<p>Manager.FirstName: {person.Manager.FirstName}<p>

String

Jonathan

Manager.Initials

{person.Manager.Initials}

<p>Manager.Initials: {person.Manager.Initials}<p>

String

jd

Manager.LastName

{person.Manager.LastName}

<p>Manager.LastName: {person.Manager.LastName}<p>

String

Doe

Manager.Name

{person.Manager.Name}

<p>Manager.Name: {person.Manager.Name}<p>

String

Jonathan Doe

Manager.Phone

{person.Manager.Phone}

<p>Manager.Phone: {person.Manager.Phone}<p>

String

Office

{person.office}

<p>Office: {person.office}<p>

String

Corresponds to Office.Name

Office.CustomId

{person.Office.customid}

<p>Office.CustomID: {office.customid}<p>

String

Office.Name

{person.office.name}

String

Owner

{person.Owner}

<p>Owner: {person.Owner}<p>

String

Team Johnathan Doe

Corresponds to Owner.Name

Owner.Email

{person.Owner.Email}

<p>Owner.Email: {person.Owner.Email}<p>

String

FirstName.LastName1@company.com;FirstName.LastName2@company.com;

Email of the user that owns the entity. If Owner is a Team, it will deisplay as a semicolon list of emails.

Owner.Name

{person.Owner.Name}

<p>Owner.Name: {person.Owner.Name}<p>

String

Team Johnathan Doe

Name of the user or team that owns the entity

Password

{person.Password}

<p>Password: {person.Password}<p>

String

Qwerty1!

PersonStatus

{person.PersonStatus}

<p>PersonStatus: {person.PersonStatus}<p>

String

Activate

Name of PersonStatus

PersonType

{person.PersonType}

<p>PersonType: {person.PersonType}<p>

String

Employee

Name of PersonType

PrivateCountry

{person.PrivateCountry}

<p>PrivateCountry:{Person.PrivateCountry}<p>

String

Denmark

Name of Country

PrivateCountry.Name

{person.PrivateCountry.Name}

<p>PrivateCopuntry.Name: {Person.PrivateCountry.Name}<p>

String

Denmark

Name of Country

PrivateCountry.Alpha2

{person.PrivateCountry.Alpha2}

<p>PrivateCountry.Alpha2:{Person.PrivateCountry.Alpha2}<p>

String

DK

Alpha2 on Country

PrivateCountry.Alpha3

{person.PrivateCountry.Alpha3}

<p>PrivateCountry.Alpha3:{Person.PrivateCountry.Alpha3}<p>

String

DNK

Alpha3 on Country

PrivateCountry.CountryCode

{person.PrivateCountry.CountryCode}

<p>PrivateCountry.CountryCode: {Person.PrivateCountry.CountryCode}<p>

String

208

Countrycode on Country

PrivateCountry.TelephoneCountryCode

{person.PrivateCountry.TelephoneCountryCode}

<p>PrivateCountry.TelephoneCountryCode:{Person.PrivateCountry.TelephoneCountryCode}<p>

String

+45

Telephone Country Code

PrivateAddress

{person.PrivateAddress}

<p>PrivateAddress: {Person.PrivateAddress}<p>

String

Address

Private Address name on person

PrivateCity

{person.PrivateCity}

<p>PrivateCity: {Person.PrivateCity}<p>

String

City

City name

PrivateEmail

{person.PrivateEmail}

<p>PrivateEmail: {Person.PrivateEmail}<p>

String

Email

Private email address

PrivateMobilePhone

{person.PrivateMobilePhone}

<p>PrivateMobilePhone: {Person.PrivateMobilePhone}<p>

String

Mobile phone

Private Mobile phone number

PrivatePhone

{person.PrivatePhone}

<p>PrivatePhone: {Person.PrivatePhone}<p>

String

Phone

Private phone number

PrivateZipCode

{person.PrivateZipCode}

<p>PrivateZipCode: {Person.PrivateZipCode}<p>

String

ZipCode

Private zipcode

Position

{person.Position}

<p>Position: {person.Position}<p>

String

Team Lead

Svarer til Position.Name

Position.CustomId

{person.Position.CustomId}

<p>Position.CustomId: {person.Position.CustomId}<p>

String

Position.Name

{person.Position.Name}

<p>Position.Name: {person.Position.Name}<p>

String

Team Lead

PreferredLanguage

{person.PreferredLanguage}

<p>PreferredLanguage: {person.PreferredLanguage}<p>

String

Danish

Salutation

{person.Salutation}

<p>Salutation: {person.Salutation}<p>

String

Mi’lord

Name of Salutation

Salutation.Name

{person.Salutation.Name}

<p>Salutation.Name: {person.Salutation.Name}<p>

String

Hr

Salutation.DanishName

{person.Salutation.DanishName}

<p>Salutation.DanishName: {person.Salutation.DanishName}<p>

String

Hr

Salutation.EnglishName

{person.Salutation.EnglishName}

<p>Salutation.EnglishName: {person.Salutation.EnglishName}<p>

String

Mr

Salutation.FrenchName

{person.Salutation.FrenchName}

<p>Salutation.FrenchName: {person.Salutation.FrenchName}<p>

String

M

Salutation.GermanName

{person.Salutation.GermanName}

<p>Salutation.GermanName: {person.Salutation.GermanName}<p>

String

Herr

Salutation.NorwegianName

{person.Salutation.NorwegianName}

<p>Salutation.NorwegianName: {person.Salutation.NorwegianName}<p>

String

Salutation.PolishName

{person.Salutation.PolishName}

<p>Salutation.PolishName: {person.Salutation.PolishName}<p>

String

Salutation.SpanishName

{person.Salutation.SpanishName}

<p>Salutation.SpanishName: {person.Salutation.SpanishName}<p>

String

Salutation.SwedishName

{person.Salutation.SwedishName}

<p>Salutation.SwedishName: {person.Salutation.SwedishName}<p>

String

SecondaryManager

{person.SecondaryManager}

<p>SecondaryManager: {person.SecondaryManager}<p>

String

Jane Doe

Corresponds to SecondaryManager.Name

SecondaryManager.CellPhone

{person.SecondaryManager.CellPhone}

<p>SecondaryManager.CellPhone: {person.SecondaryManager.CellPhone}<p>

String

+4531644444

SecondaryManager.Email

{person.SecondaryManager.Email}

<p>SecondaryManager.Email: {person.SecondaryManager.Email}<p>

String

jane.doe@pointsharp.com

SecondaryManager.FirstName

{person.SecondaryManager.FirstName}

<p>SecondaryManager.FirstName: {person.SecondaryManager.FirstName}<p>

String

Jane

SecondaryManager.Initials

{person.SecondaryManager.Initials}

<p>SecondaryManager.Initials: {person.SecondaryManager.Initials}<p>

String

JaD

SecondaryManager.LastName

{person.SecondaryManager.LastName}

<p>SecondaryManager.LastName: {person.SecondaryManager.LastName}<p>

String

Doe

SecondaryManager.Name

{person.SecondaryManager.Name}

<p>SecondaryManager.Name: {person.SecondaryManager.Name}<p>

String

Jane Doe

SecondaryManager.Phone

{person.SecondaryManager.Phone}

<p>SecondaryManager.Phone: {person.SecondaryManager.Phone}<p>

String

Secretary

{Person.Secretary}

<p>Secretary: {Person.Secretary}<p>

String

Corresponds to Secretary.Name

Secretary.CustomId

{Person.Secretary.CustomId}

<p>Secretary.CustomId: {Person.Secretary.CustomId}<p>

String

Secretary.Name

{Person.Secretary.Name}

<p>Secretary.Name: {Person.Secretary.Name}<p>

String

SeniorityDate

{Person.SeniorityDate}

<p>SeniorityDate: {Person.SeniorityDate}<p>

DateTime

01-03-1998

Subdepartment

{Person.Subdepartment}

<p>Subdepartment: {Person.Subdepartment}<p>

String

Corresponds to Subdepartment.Name

Subdepartment.CustomId

{Person.Subdepartment.CustomId}

<p>: {Person.Subdepartment.CustomId}<p>

String

Subdepartment.Name

{Person.Subdepartment.Name}

<p>Subdepartment.Name: {Person.Subdepartment.Name}<p>

String

Team

{Person.Team}

<p>Team: {Person.Team}<p>

String

Corresponds to Team.Name

Team.CustomId

{Person.Team.CustomId}

<p>Team.CustomId: {Person.Team.CustomId}<p>

String

Team.Name

{Person.Team.Name}

<p>Team.Name: {Person.Team.Name}<p>

String

Link

{person.Link}

<p>Link: {person.Link}<p>

String

https://copenhagenquality.crm4.dynamics.com/main.aspx?appid=1dedbd4e-2ac3-e811-a985-000d3a2ac3d0&pagetype=entityrecord&etn=idm_person&id=10f6ac09-66f8-e811-a97e-000d3a296acd

A URL for the person in Dynamics365. Can be used with the a-tag in HTML.

FrontDeskLink

{access.FrontDeskLink}

<p>FrontDesk Link: {access.FrontDeskLink}<p>

String

https://<yourWebsite>.azurewebsites.net/#/redirect?id=6bc08d0f-66f8-e811-a979-000d3a29600f&entity=access

A URI to the access in FrontDesk. Can be used together with the a tag in HTML. This requires that FrontDesk has been configured and that the FrontdeskAppBaseUrl has been set up.

Access (RoleAssignment)

Example of how Access-fields are used:

 <p>The access {access.Name} will expire on
{access.EndDate}.</p> <p>Please take appropriate
action before this date. Currently the assignment is in stage
{access.Stage}.</p> <p>Link to Access: <a
href="{access.Link}">access</a></p>

And this is how it would look like with the data values merged:

 <p>The access Mads Jakobsen - AD DS Role will expire on
Thursday, August 30, 2018 12:00 PM.</p> <p>Please take
appropriate action before this date. Currently the assignment is in
stage Enabled .</p> <p>Link to Access: <a
href="https://copenhagenquality.crm4.dynamics.com/main.aspx?appid=1dedbd4e-2ac3-e811-a985-000d3a2ac3d0&pagetype=entityrecord&etn=idm_roleassignment&id=6bc08d0f-66f8-e811-a979-000d3a29600f
">access</a></p>
Field Variable Value Variable Value with text Type Example of Value Comment

Comment

{access.Comment}

<p>Comment: {access.Comment}<p>

String

Comment in relation to current stage

Effective

{access.Effective}

<p>Effective: {access.Effective}<p>

String

Yes

EndDate

{access.EndDate}

<p>EndDate: {access.EndDate}<p>

Datetime

Thursday, August 30, 2018 12:00 PM

Expiry time. Full date/time pattern (short time). (ToString("f", new CultureInfo("en-US")))

Name

{access.Name}

<p>Name: {access.Name}<p>

String

Mads Jakobsen - AD DS Role

MenuItemComment

{access.MenuItemComment}

<p>MenuItemComment: {access.MenuItemComment}<p>

String

Comment transferred from menu item

Owner

{access.Owner}

<p>Owner: {access.Owner}<p>

String

Team David Nykjær

Corresponds to Owner.Name

Owner.Email

{access.Owner.Email}

<p>Owner.Email: {access.Owner.Email}<p>

String

mj@copenhagenquality.dk;ba@copenhagenquality.dk;rfm@copenhagenquality.dk

Email of the user who owns the entity. If owner is a team, it is a semicolon separated list of emails

Owner.Name

{access.Owner.Name}

<p>Owner.Name: {access.Owner.Name}<p>

String

Team David Nykjær

Name of user or team that owns the entity

Requester

{access.Requester}

<p>Requester: {access.Requester} <p>

String

David Nykjær

Corresponds to Requester.Name

Requester.Name

{access.Requester.Name}

<p>Requester.Name: {access.Requester.Name}<p>

String

David Nykjær

Requester.Email

{access.Requester.Email}

<p>Requester.Email: Requester.Email {access.Requester.Email} <p>

String

dn@copenhagenquality.dk

Role

{access.Role}

<p>Role: {access.Role}<p>

String

AD DS Role

Role name

Role.DisplayName

{access.Role.DisplayName}

<p>Role.DisplayName: Role.DisplayName {access.Role.DisplayName} <p>

String

Self Service Display/view for Role

Display text on Role

Role.DisplayHelpText

{access.Role.DisplayHelpText}

<p>Role.DisplayHelpText: {access.Role.DisplayHelpText}<p>

String

Self Service Help text for Role

Help text on Role

Role.Application

{access.Role.Application}

<p>Role.Application: {access.Role.Application}<p>

String

Application on Role

Role.Application.DisplayName

{access.Role.Application.DisplayName}

<p>Role.Application.DisplayName: {access.Role.Application.DisplayName}<p>

String

Display name on Application

Role.Application.DisplayHelpText

{access.Role.Application.DisplayHelpText}

<p>Role.Application.DisplayHelpText: {access.Role.Application.DisplayHelpText}<p>

String

Display Help Text on Application

Role.Application.Applicationtype

{access.Role.Application.Applicationtype}

<p>Role.Application.Applicationtype: {access.Role.Application.Applicationtype}<p>

String

Applications type on Application

Role.Application.Applicationtype.DisplayName

{access.Role.Application.Applicationtype.DisplayName}

<p>Role.Application.Applicationtype.DisplayName: <p>

String

DisplayName on Applications type

Role.Application.Applicationtype.DisplayHelpText

{access.Role.Application.Applicationtype.DisplayHelpText}

<p>Role.Application.Applicationtype.DisplayHelpText: {access.Role.Application.Applicationtype.DisplayHelpText}<p>

String

DisplayHelpText on Applications type

Stage

{access.Stage}

<p>Stage: {access.Stage}<p>

String

Enabled

Link

{access.Link}

<p>Link:{access.Link}<p>

String

https://copenhagenquality.crm4.dynamics.com/main.aspx?appid=1dedbd4e-2ac3-e811-a985-000d3a2ac3d0&pagetype=entityrecord&etn=idm_roleassignment&id=6bc08d0f-66f8-e811-a979-000d3a29600f

A Url for the Access in Dynamics365. Can be used together with the a tag in HTML.

FrontDeskLink

{access.FrontDeskLink}

<p>FrontDesk Link: {access.FrontDeskLink}<p>

String

https://<yourWebsite>.azurewebsites.net/#/redirect?id=6bc08d0f-66f8-e811-a979-000d3a29600f&entity=access

A URI to the access in FrontDesk. Can be used together with the a tag in HTML. This requires that FrontDesk has been configured and that the FrontdeskAppBaseUrl has been set up.

Dashboards

Example of how links for Dashboards are used:

 <p>Link to <a href="{my tasks board}">My Tasks
Board</a></p> <p>Link to <a
href="{self-service board}">Self-Service
Board</a></p>

And this is how it would look like with the data values merged:

 <p>Link to <a
href="https://copenhagenquality.crm4.dynamics.com/main.aspx?appid=1dedbd4e-2ac3-e811-a985-000d3a2ac3d0&pagetype=dashboard&id=080f98f1-9ea7-e811-a954-000d3a3a85c4&type=system"++>++Self-Service
Board</a></p> <p>Link to <a
href="https://copenhagenquality.crm4.dynamics.com/main.aspx?appid=1dedbd4e-2ac3-e811-a985-000d3a2ac3d0&pagetype=dashboard&id=de2a1c0e-8fa7-e811-a954-000d3a3a85c4&type=system"++>++My
Tasks Board</a></p>
Field Variable Value Variable Value with text Type Example of Value Remarks

self-service board

<a href="{my tasks board}">My Tasks Board</a>

<p>Link to <a href="{my tasks board}">My Tasks Board</a></p>

String

https://copenhagenquality.crm4.dynamics.com/main.aspx?appid=1dedbd4e-2ac3-e811-a985-000d3a2ac3d0&pagetype=dashboard&id=080f98f1-9ea7-e811-a954-000d3a3a85c4&type=system

An Url to Self Service dashboard in Dynamics365. Can be used together with the a-tag in HTML.

my tasks board

<a href="{self-service board}">Self-Service Board</a>

<p>Link to <a href="{self-service board}">Self-Service Board</a></p>

String

https://copenhagenquality.crm4.dynamics.com/main.aspx?appid=1dedbd4e-2ac3-e811-a985-000d3a2ac3d0&pagetype=dashboard&id=de2a1c0e-8fa7-e811-a954-000d3a3a85c4&type=system

An URL to My Task Board dashboard in Dynamics365. Can be used together with the a-tag in HTML.

Received mail

Received mail can only be used on templates of the type Access Ambiguous Reply

Example of how the fields on Recived Mail works

Field Variable Value Variable Value with text Type Example of Value Remarks

From

{receivedmail.From}

<p> Mail From:{receivedmail.From}<p>

String

admin@org.dk

Sender address from a recived email with eligable words in regards to approvals

Body

{receivedmail.Body}

<p>Email Body: {receivedmail.Body}

String

Winterlights

Body text of mail with eligable words.

Subjects

{receivedmail.Subject}

<p> Email Subject: {receivedmail.Subject}

String

Re: Rollenavn - Brugernavn - (CCSID: 4711)

Subject line from a mail with an eligable word

SelfService

Field Variable Value Variable Value with text Type Example of Value

Role

{selfService.Role}

<p>Role: {selfService.Role}<p>

String

Role on Selvbetjening (Returner DisplayName value if available, otherwise Name)

Person

{selfService.Person}

<p>Person: {selfService.Person}<p>

String

Person on Self-Service

Application

{selfService.Application}

<p>Application: {selfService.Application}<p>

String

Application on selvbetjening (Returner DisplayName value if available, otherwise Name)

ApplicationType

{ApplicationType}

<p>ApplicationType: {ApplicationType}<p>

String

Applications Type (Returner DisplayName value if available, otherwise Name)

Requester

{selfService.Requester}

<p>Requester: {selfService.Requester}<p>

String

Requesting (see Person)

Remark

{selfService.Remark}

<p>Remark:{selfService.Remark}<p>

String

Remarks text

Example:

{selfservice.Role}{selfservice.Person}{selfservice.Requester}

Only works on Self Service Access Requested and Self Service Support Message, mail notification types.

On Role, Application, ApplicationType Notification type, DisplayName is shown first if available.

Assets

Assets are tied to a person and figures as a list that can be validated

Asset

Field Variable Value Variable Value with text Type Example of Value Remarks

AssetManufacturer

{Assets.AssetManufacturer}

<p>AssetManufacturer: {Assets.AssetManufacturer}<p>

AssetManufacturer

Object with own attributes, look under AssetManufacturer

AssetModel

{Assets.AssetModel}

<p>AssetModel:{Assets.AssetModel}<p>

AssetModel

Object with own attributes, look under AssetModel

CustomId

{Assets.CustomId}

<p>CustomId: {Assets.CustomId}<p>

String

DeviceName

{Assets.DeviceName}

<p>DeviceName: {Assets.DeviceName}<p>

String

EASActivationId

{Assets.EASActivationId}

<p>EASActivationId: {Assets.EASActivationId}<p>

String

IMEI

{Assets.IMEI}

<p>IMEI: {Assets.IMEI}<p>

String

Location

{Assets.Location}

<p>Location: {Assets.Location}<p>

Location

Nyborgvej 23, 1800 Nyborg, Sjælland, Denmark

Same fields as Person and same formatting. asset.Location = Location.CompleteAddress, Location.ZipCode Location City, Location.Region, Location.County.Name. It is also possible to use asset.Location.Name to get the name of the location.

Name

{Assets.Name}

<p>Name: {Assets.Name}<p>

String

Alberts IPhone 11

Ownership

{Assets.Ownership}

<p>Ownership:{Assets.Ownership}<p>

String

Corporate
Personal

Person or Corporate

PhoneNumber

{Assets.PhoneNumber}

<p>PhoneNumber: {Assets.PhoneNumber}<p>

String

+4512345678

SerialNumber

{Assets.SerialNumber}

<p>SerialNumber: {Assets.SerialNumber}<p>

String

AssetManufacturer

Field Variable Value Variable Value with text Type Example of Value Remarks

CustomId

{AssetManufacturer.CustomId}

<p>CustomId: {AssetManufacturer.CustomId}<p>

String

Description

{AssetManufacturer.Description}

<p>Description: {AssetManufacturer.Description}<p>

String

Name

{AssetManufacturer.Name}

<p>Name: {AssetManufacturer.Name}<p>

String

Hewlett Packard

InTuneName

{AssetManufacturer.InTuneName}

<p>InTuneName: {AssetManufacturer.InTuneName}<p>

String

AssetModel

Field Variable Value Variable Value with text Type Example of Value Bemærkning

Cost

{AssetModel.Cost}

<p>Cost: {AssetModel.Cost}<p>

Tal (Currency i D365, Decimal C#/SQL)

125,75 $ (D365), 125,75 (SQL)

Currency i D365 betyder der bruges D365’brugerens valute i cost-feltet. Det bliver overført som det der står uden valuta til CoreDB)

CustomId

{AssetModel.CustomId}

<p>CustomId:{AssetModel.CustomId}<p>

String

Description

{AssetModel.Description}

<p>Description:{AssetModel.Description}<p>

String

Name

{AssetModel.Name}

<p>Name: {AssetModel.Name}<p>

String

X1 Carbon

InTuneName

{AssetModel.InTuneName}

<p>InTuneName: {AssetModel.InTuneName}<p>

String

Since person.Assets is a list, it is neccesary to report what should happen to each element in the list.

This is done with the following syntax: {#each <varnavn> in person.Assets}<looptemplate where every element is refered with varnavn>{/each}

Example of how Assets can be used in a template:

 {#each asset in person.Assets} Asset: {asset.DeviceName},
Manufacturer: {asset.AssetManufacturer.Name}, Location:
{asset.Location}, Location Name:
{asset.Location.Name}{/each} Rember to hand in in these assets
on your last day with Copenhagen Quality:++{++#each assetC in
person.AssetsCorporate} Asset: ++{++assetC.DeviceName}, Model:
{assetC.AssetModel}, {asseC.AssetModel.Cost}, Manufacturer:
{assetC.AssetManufacturer}++{++/each}

FrontDesk

Example of a template where some of the fields are used:

 <p>{frontdesk.Person} has requested
{frontdesk.Definition}.</p>
<p>They have requested leave of absence till
{frontdesk.Person.LeaveReturnDate}.</p>
<p>The request has been
{frontdesk.RequestStatus}.<p>

Example of a template filled with values from a person:

<p>Wilhelmina Sjöström has requested Leave of Absence.</p>
<p>They have requested leave of absence till Friday, July 19, 2024.</p>
<p>The request has been Approved.<p>

Field Variable Value Variable Value with text Type Example of Value Comment

Person

{frontdesk.Person}

<p>Person: {frontdesk.Person}<p>

String

Jane Doe

Returns person.Name (see above).

Person.X

{frontdesk.Person.X}

<p>Person: {frontdesk.Person.X}<p>

N/A

Returns the value of property X on person on the Frontdesk object. See person above.

RequestStatus

{frontdesk.RequestStatus}

<p>Request status: {frontdesk.RequestStatus}<p>

String

Approved

Returns the current status of the FrontDesk request:

  • Active

  • Approved

  • Rejected

  • Cancelled

  • Completed

RequestComment

{frontdesk.RequestComment}

<p>Request comment: {frontdesk.RequestComment}<p>

String

After discussing this with X, I approved request.

Returns comment if supplied.

FrontDesk step values

Step

{frontdesk.Step}

<p>Step: {frontdesk.Step}<p>

String

Leave of absence approval

Returns Step.Name (see below).

Step.CustomId

{frontdesk.Step.CustomId}

<p>Step custom ID: {frontdesk.Step.CustomId}<p>

String

Returns the step custom ID.

Step.Description

{frontdesk.Step.Description}

<p>Step description: {frontdesk.Step.Description}<p>

String

Approval is required to happen when a leave of absence is requested.

Returns the step description.

Step.Name

{frontdesk.Step.Name}

<p>Step name: {frontdesk.Step.Name}<p>

String

Leave of Absence approval.

Returns the name of the respective step.

Step.StepNumber

{frontdesk.Step.StepNumber}

<p>Step number: {frontdesk.Step.StepNumber}<p>

Int

2

Returns the step number in the order of steps.

Step.StepType

{frontdesk.Step.StepType}

<p>Step type: {frontdesk.Step.StepType}<p>

String

Approval

Returns the step type:

  • Normal

  • Approval

FrontDesk Definition Values

Definition

{frontdesk.Definition}

<p>Definition: {frontdesk.Definition}<p>

String

Leave of absence

Returns Definition.Name (see below).

Definition.FrontDeskApp

{frontdesk.Definition.FrontDeskApp}

<p>Definition FrontDesk app: {frontdesk.Definition.FrontDeskApp}<p>

String

Company Zs app

Returns the name of the FrontDesk app entity in Compliance Suite.

Definition.Description

{frontdesk.Definition.Description}

<p>Definition description: {frontdesk.Definition.Description}<p>

String

Process definition for leave of absence.

Returns the definition’s description.

Definition.Name

{frontdesk.Definition.Name}

<p>Definition description: {frontdesk.Definition.Name}<p>

String

Leave of absence

Returns the definition’s name.

Definition.Startup

{frontdesk.Definition.Startup}

<p>Definition description: {frontdesk.Definition.Startup}<p>

String

Manual

Returns the definitions startup typ:

  • Manual

  • FromSystem

Definition.Type

{frontdesk.Definition.Type}

<p>Definition description: {frontdesk.Definition.Type}<p>

String

UpdatePerson

Returns the type of the definition:

  • NewPerson

  • UpdatePerson

Custom Connector Blocked By Limit

Exampel:

System:{connectorblocked.UserSystem}<br>
Change limit:{connectorblocked.UserSystem.ChangeLimit}<br>
Record count: {connectorblocked.RecordCount}

Table:

Field Variable Value Variable Value with text Type Description

RecordCount

{connectorblocked.RocordCount}

<p>RecordCount: {connectorblocked.RocordCount}<p>

int

Total records affected

Name

{connectorblocked.Name}

<p>Name: {connectorblocked.Name}<p>

int

Connector blocked entity name

CustomId

{connectorblocked.CustomId}

<p>CustomId: {connectorblocked.CustomId}<p>

int

Connector blocked entity custom id

UserSystem

{connectorblocked.UserSystem}

<p>UserSystem: {connectorblocked.UserSystem}<p>

string

User System name

UserSystem.Name

{connectorblocked.UserSystem.Name}

<p>UserSystem.Name: {connectorblocked.UserSystem.Name}<p>

string

User System name

UserSystem.ChangeLimit

{connectorblocked.UserSystem.ChangeLimit}

<p>UserSystem.ChangeLimit: {connectorblocked.UserSystem.ChangeLimit}<p>

string

User System change limit value

UserSystem.ShortName

{connectorblocked.UserSystem.ShortName}

<p>UserSystem.ShortName:{connectorblocked.UserSystem.ShortName}<p>

string

User System short name

UserSystem.CommonNameFormat

{connectorblocked.UserSystem.CommonNameFormat}

<p>UserSystem.CommonNameFormat: {connectorblocked.UserSystem.CommonNameFormat<p>

string

User System common name format

UserSystem.Priority

{connectorblocked.UserSystem.Priority}

<p>UserSystem.Priority: {connectorblocked.UserSystem.Priority}<p>

int

User System priority

Date Formatting

Compliance Suite Mail Notification templates support date- and time formatting. Formatting leverages the native .NET formatting option, which gives full control of formatting and culture

Any date or time in CCS can be formatted by attaching a formatting string and optional the specified culture.

All dates in Compliance Suite be converted to the timezone CCS are configured to run before they are used in Mail Notifications. Usually the timezone is Central European Time (CET/UTC+1).

It is possible to usstnadard .NET formatting, such as D (aka long date format) or custom formater such as dd/MM/yy, chich gives you full control of the output.

It is possible to specify the culture of the date that is used in the mail. This is important if your format-output is names of the months, such as January, February, March etc. or days, Monday Tuesday, Wednesday etc.

Formatting of date and time field is done like this:

  • {person.SomeDatetimeField} - Will show date and time in long format with en-US culture

  • {person.SomeDatetimeField:'SomeDatetimeFormat'} - Will show date and time in the specific format with a en-US culture

  • {person.SomeDatetimeField:'SomeDatetimeFormat':'SomeCulture'} - Will show a date, time and culture based on the predifinedGiver en dato, tid og kultur udfra det foruddefinerede

Examples

Examples of different date formatting strings- and cultures:

<p>{person.Name} has the following Activate On date with different formatting.</p>
<p>Default formatting (long date pattern), default culture (D, en-US): {person.ActivateOn}</p>
<p>Standard Format D - 'long date pattern', default culture (D, en-US): {person.ActivateOn:'D'}</p>
<p>Standard Format U - 'Universal full date/time pattern', default culture (U, en-US): {person.ActivateOn:'U'}</p>
<p>Standard Format D - 'long date pattern', finnish culture (D, fi-FI): {person.ActivateOn:'D':'fi-FI'}</p>
<p>Standard Format U - 'Universal full date/time pattern', danish culture (U, da-DK): {person.ActivateOn:'U':'da-DK'}</p>
<p>Custom Format 'dd/MM/yy', default culture ('dd/MM/yy', en-US): {person.ActivateOn:'dd/MM/yy'}</p>
<p>Custom Format 'd MMMM yyyy', default culture ('d MMMM yyyy'', en-US): {person.ActivateOn:'d MMMM yyyy'}</p>
<p>Custom Format 'd MMMM yyyy', finnish culture('d MMMM yyyy', fi-FI): {person.ActivateOn:'d MMMM yyyy':'fi-FI'}</p>
<p>Custom Format 'ddd MM yy HH:mm', default culture ('ddd MM yy HH:mm', en-US): {person.ActivateOn:'ddd MM yy HH:mm'}</p>
<p>Custom Format 'ddd MM yy HH:mm', danish culture ('ddd MM yy HH:mm', da-DK): {person.ActivateOn:'ddd MM yy HH:mm':'da-DK'}</p>

Results output HTML

<p>Lars Frandsen has the following Activate On date with different formatting.</p>
<p>Default formatting (long date pattern), default culture (D, en-US): Friday, April 16, 2021</p>
<p>Standard Format D - 'long date pattern', default culture (D, en-US): Friday, April 16, 2021</p>
<p>Standard Format U - 'Universal full date/time pattern', default culture (U, en-US): Friday, April 16, 2021 6:00:00 AM</p>
<p>Standard Format D - 'long date pattern', finnish culture (D, fi-FI): perjantai 16. huhtikuuta 2021</p>
<p>Standard Format U - 'Universal full date/time pattern', danish culture (U, da-DK): 16. april 2021 06:00:00</p>
<p>Custom Format 'dd/MM/yy', default culture ('dd/MM/yy', en-US): 16/04/21</p>
<p>Custom Format 'd MMMM yyyy', default culture ('d MMMM yyyy'', en-US): 16 April 2021</p>
<p>Custom Format 'd MMMM yyyy', finnish culture('d MMMM yyyy', fi-FI): 16 huhtikuuta 2021</p>
<p>Custom Format 'ddd MM yy HH:mm', default culture ('ddd MM yy HH:mm', en-US): Fri 04 21 08:00</p>
<p>Custom Format 'ddd MM yy HH:mm', danish culture ('ddd MM yy HH:mm', da-DK): fr 04 21 08:00</p>