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 |
||
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 |
||
{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 |
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 |
||
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 |
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 |
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 |
||
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 |
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 |
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 |
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 |
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 |
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 |
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:
|
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:
|
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:
|
Definition.Type |
{frontdesk.Definition.Type} |
<p>Definition description: {frontdesk.Definition.Type}<p> |
String |
UpdatePerson |
Returns the type of the definition:
|
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>
More information on date and time formatting strings
Standard .NET date and time format string
https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings
Custom .NET date and time format strings
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings