<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><p><strong>In this guide we will cover:</strong></p><p><strong>- What are custom fields?</strong></p><p><strong>- Creating a new Custom Field</strong></p><p><strong>- Displaying Custom Fields </strong></p><p><strong>- Setting Validation for Date fields</strong></p><p><strong>- Access Control</strong></p><p><strong>- Using Variables in Custom Fields</strong></p><p><br></p><p><br></p><p><strong><span style="font-size: 11pt;">Admin Guides:</span></strong></p><ul><li style="font-size: 11pt;"><a href="https://usehalo.com/haloitsm/guides/1435/" rel="noopener noreferrer" target="_blank"><strong>Custom Fields</strong></a></li></ul><p><br></p><p><strong><span style="font-size: 14pt;">What are custom fields?</span></strong></p><p><span style="font-size: 11pt;">Custom fields can be used to collect and store additional information in any area of your Halo. In the client view specifically however they can add a great depth of extra information, whether it's the support supplied by their contract with you, the loyalty of that customer or something more specific to you.</span></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: Poppins, sans-serif, Roboto; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 11pt;"><br style="box-sizing: inherit;"></span></p><p><span style="font-size: 14pt;"><strong>Creating a new Custom Field</strong></span></p><p><span style="font-size: 11pt;">Head to the Configuration console and then navigate to "Custom Objects" under the Advanced heading. This takes you to the lists of custom fields in Halo. Select the client entity to display all of your current custom client fields.</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYyZTlmODI5LTI5MjItNDVjMi04OWVmLWFkNDY0YzI0ZjA2ZSJ9.ddXEudI9j7HdRjObBpGb4kE9u4TLAgM1M_FZL36Oj-o" class="fr-fic fr-fil fr-dib" width="371" height="547"></span></p><p><span style="font-size: 10pt;"><strong>Fig 1. Change entity for custom field</strong></span></p><p><br></p><p><span style="font-size: 11pt;">Once selected you can see all existing Custom Fields of that Entity and add new Custom Fields.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Clicking "New" in the top right-hand corner will take you to the creation screen. Here you can configure different properties of the Custom Field and also choose the Type and Name. </span></p><p><br></p><p><span style="font-size: 11pt;"><em><strong>Note: The Type and Name cannot be edited after the field is created so ensure these are correct.</strong></em></span></p><p><br></p><p><span style="font-size: 11pt;">Give the field a name and label. The "Name" is the name of the field in the database, this will contain no spaces but is a descriptor of the field itself and should reflect the field label. The "Label" is what will appear within Halo and is what your agents will see to fill in.</span></p><p><br></p><p><span style="font-size: 11pt;"><em><strong>Note: The Name you choose is used as the SQL database name (with CF added to the start of the Name) and it is also referenced in the API when updating the Custom Field data i.e. a custom field named money, will appear on the API with name cfmoney.</strong></em></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Next is the field type, each type is described in the table below:</span></p><p><br></p><table class="grid" style="width: 88%; margin-right: calc(12%); height: 321px;"><colgroup><col style="width: 28.3732%;"><col style="width: 71.6268%;"></colgroup><tbody><tr style="height: 30px;"><td style="text-align: left; background-color: rgb(0, 204, 248);"><span style="font-size: 11pt;"><strong><span style="color: rgb(255, 255, 255);">Type of Field</span></strong></span></td><td style="text-align: left; background-color: rgb(0, 204, 248);"><span style="font-size: 11pt;"><strong><span style="color: rgb(255, 255, 255);">Description</span></strong></span></td></tr><tr style="height: 30px;"><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">Text</span></td><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">Single line of plain text.</span></td></tr><tr style="height: 30px;"><td><span style="font-size: 11pt;">Memo</span></td><td><span style="font-size: 11pt;">Multiple lines of plain text; longer descriptions or notes.</span></td></tr><tr style="height: 30px;"><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">Single Selection</span></td><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">A single option to be picked from a drop down list.</span></td></tr><tr style="height: 30px;"><td><span style="font-size: 11pt;">Multiple Selection</span></td><td><span style="font-size: 11pt;">Multiple options to be picked from a drop down list.</span></td></tr><tr style="height: 30px;"><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">Date</span></td><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">This field type will prompt a date selection box when clicked. </span></td></tr><tr style="height: 30px;"><td><span style="font-size: 11pt;">Time</span></td><td><span style="font-size: 11pt;">A specific time on a 24 hr clock, for clients this could be the office opening time in your time zone.</span></td></tr><tr style="height: 30px;"><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">Checkbox</span></td><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">A binary selection of "Yes" or "No" in the form of a checkbox.</span></td></tr><tr style="height: 30px;"><td><span style="font-size: 11pt;">Table</span></td><td><span style="font-size: 11pt;">This is used to refer to custom tables within your database such as external information.</span></td></tr><tr style="height: 50px;"><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">Rich</span></td><td style="background-color: rgb(239, 239, 239);"><span style="font-size: 11pt;">A rich text box allowing a large number of formatting and editing styles. Including images, links, html code editor, emoji's. </span></td></tr><tr><td>Attachment</td><td>(2.226.1+) A drop zone area for adding attachments when creating a new ticket on the end-user portal. Allows for multiple attachments.</td></tr></tbody></table><p><strong><span style="font-size: 10pt;">Fig 2. Table to show each data type for a custom field</span></strong></p><p><br></p><p data-pasted="true"><em><strong>Note: To use the Attachment data type for a custom field, you must enable the "Client Side Uploads" setting (Configuration > Advanced Settings) and set the "Attachment Storage Location" to Amazon S3.</strong></em></p><p><br></p><p><strong><em>Fields using this data type are read-only in all areas except the new ticket screen on the Self-Service Portal. Uploaded files will also appear in the ticket’s Attachments tab, where agents can view and manage them.</em></strong></p><p><br></p><p><span style="font-size: 11pt;">The ways in which you can configure a field depend on which data type you have selected. The following field configuration methods are therefore split by data type.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 12pt;"><strong>Text Field Input Types</strong></span></p><p><strong>Anything</strong> - Any plain text input.</p><p><strong>Integer </strong>- Whole number inputs e.g. 13.</p><p><strong>Money </strong>- A number with two decimal places such as 42.21.</p><p><strong>AlphaNumeric </strong>- Plain text letters and numbers with no punctuation.</p><p><strong>Decimal </strong>- A number with more than two decimal places i.e. 12345.98765.</p><p><strong>URL </strong>- A web address.</p><p><strong>Password </strong>- The input type can be restricted, this could be set to i.e. “Password” which will be a field that when given inputs, the inputs will show as hidden characters. You can audit for the password custom fields which means you can see who has viewed the password by using the "eye" icon. </p><p style="margin-left: 40px;"><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM3MWQxYjVmLWM1MzYtNDk3Mi04OTZlLWE3OWZjZmVkMzBmMiJ9.zJIMQMjrWmm8dcbVAdAHY0JRN2izfsy2c1TaCNuTgHQ" class="fr-fic fr-fil fr-dib" width="340" style="width: 342px; height: 118.087px;" height="118"></span><span style="font-size: 10pt;"><strong>Fig 3. Eye Icon</strong></span></p><p style="margin-left: 40px;"><span style="font-size: 11pt;"> </span></p><p style="margin-left: 40px;"><span style="font-size: 11pt;">The password can be unveiled by hitting the eye icon. By default the password field will not show the length of the password, unless clicking on the eye icon. The password can also be copied by clicking the copy icon. Password visibility(visibility of the eye icon) can be set on permissions tab of agents, options are “Not Visible” or “Visible”. More information on storing passwords can be found here: <a href="https://usehalo.com/haloitsm/guides/1256/" target="_blank" rel="noopener noreferrer"><strong>Storing Passwords For Customers</strong></a></span></p><p style="margin-left: 40px;"><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ5Y2M5MDAwLTg4YzItNGQ3MS04ZWYyLTVmODg5NWEzNzk0NiJ9.qGEbeFY9KEZjkAmUhbuO4vstbzWapnqWzd34vXFnwS4" class="fr-fic fr-fil fr-dib" width="348" style="width: 350px; height: 108.688px;" height="109"></span><span style="font-size: 10pt;"><strong>Fig 4. Hiding a Password or Copying it to Clipboard</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><strong>Calculated </strong>- The last type of input is the calculated field. Calculated fields perform mathematical operations on other fields in halo that are numeric. </span></p><p><br></p><p style="margin-left: 40px;"><span style="font-size: 11pt;">For example, if the dollar variable $CFIntegerField is entered into the calculated field as shown in Figure 5, this will run a calculation to divide the integer in CFIntegerField by two. W</span>hen CFIntegerField is set to 5, the calculated field will be 2.5 on the ticket.</p><p style="margin-left: 40px;"><br></p><p style="margin-left: 40px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRmZjExNzQ5LWE3YmItNGEyZS04NDY5LTA5ZjAyMTRjZDNhMyJ9.TNDApNF8VVGHDczK7Yd3zn9iqCT6DV819QTNu-KyUUI" class="fr-fic fr-fil fr-dib" width="974" style="width: 976px; height: 326.885px;" height="327"><span style="font-size: 10pt;"><strong>Fig 5. Field Configuration of a Calculated Field</strong></span></p><p style="margin-left: 40px;"><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjhkMTQ0MzU5LWFkMjQtNGY4OC1iNTg2LWZhZmE5NjgwMGU1OSJ9.xtIHyETinjV5J7LiIlY0H5876tKAp3j35wajlgW_FTw" class="fr-fic fr-fil fr-dib" width="275" style="width: 275px;" height="300"></span><span style="font-size: 10pt;"><strong>Fig 6. Example Calculated Field</strong> </span></p><p style="margin-left: 40px;"><br></p><p style="margin-left: 40px;"><span style="font-size: 11pt;">Calculations will run after the ticket is logged. If changes are made to fields that a calculation is based on after the ticket is logged, the calculated field will update when the ticket refreshes. The ticket will refresh automatically each time fields are updated. <br></span></p><p style="margin-left: 40px;"><br></p><p style="margin-left: 40px;"><span style="font-size: 11pt;">There are various uses for this, such as, you are topping up accounts via a ticket on Halo. On the ticket creation screen there would be the different accounts along with the amount to top up by. <img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImZiMTkxYWE3LTNiMjgtNGIwMy04Yjc4LWYxZjFjZjVlY2I3YSJ9.maWdBxENjtVGXhNF0t0NcXvqV-8wyqDHo4NyLrSMj40" class="fr-fic fr-fil fr-dib" width="981" style="width: 981px; height: 602.026px;" height="602.026"></span><span style="font-size: 10pt;"><strong>Fig 7. Use Case of a Calculated Field</strong></span></p><p style="margin-left: 40px;"><br></p><p style="margin-left: 40px;"><span style="font-size: 11pt;">Then to summarise the total amount to top up by across all of the accounts we can use a calculated field.</span></p><p style="margin-left: 40px;"><br></p><p style="margin-left: 40px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZkYzM5NThjLTZhZGYtNDgxZC1hMGMxLWFjYzVjNmEyNDRlNiJ9.DJouczLkH6rZTDpp7gw04VeuIMdmZWhdWZBTPguOF8k" class="fr-fic fr-fil fr-dib" width="816" height="752"><span style="font-size: 10pt;"><strong>Fig 8. The Calculation on The Custom Field</strong></span></p><p style="margin-left: 40px;"><br></p><p style="margin-left: 40px;"><span style="font-size: 11pt;">Calculated custom fields can be created for the entities Clients, Sites, Users and custom tables, allowing you to have a field that stores a calculated value based on other information on the client/site/user/table. <br></span></p><p style="margin-left: 40px;"><br></p><p data-pasted="true"><span style="font-size: 11pt;">When using the new value storage location "Store a row for each field value" you can use up to 1000 characters in a text custom field</span></p><p><br></p><p><strong><em>Note: This new storage method needs to first be enabled in Configuration > Advanced Settings using the "Enable new custom field value storage method" checkbox. </em></strong></p><p style="margin-left: 40px;"><br></p><p style="margin-left: 40px;"><br></p><p><span style="font-size: 12pt;"><strong>Encryption</strong></span></p><p><span style="font-size: 11pt;">Text fields can also be encrypted via the checkbox 'Encrypted Field' , this is useful for fields that contain sensitive information. If this is enabled against a text field you will be able to choose the display type for the field as follows:</span></p><p><br></p><ul><li style="font-size: 11pt;">Hide value - All the text will be hidden</li><li style="font-size: 11pt;">Show start of value - Only the starting characters will be visible, the number of characters that will be displayed can be set below.</li><li style="font-size: 11pt;">Show end of value- Only the ending characters will be visible, the number of characters that will be displayed can be set below.</li></ul><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 12pt;"><strong>Memo Field Input Types</strong></span></p><p><span style="font-size: 11pt;">The only option here is the default value.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 12pt;"><strong>Single Selection Input Types</strong></span></p><p>A static list is a fixed set of options set in a comma separated string, e.g. Yes,No,Maybe. Radio selection can be used instead of a drop down list. </p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRiYTlmMjI4LTEzZDgtNGQxNS1iNzE5LThmNmMyOTdjZWVhNCJ9.ixMnA_EMOFlvYhv9vxrg2iUj5CL7ddOCSLz2XkVJKXY" class="fr-fic fr-fil fr-dib" width="272" style="width: 272px;" height="241"></span><span style="font-size: 10pt;"><strong>Fig 9. Radio Selection, this can be set to a horizontal layout (checkbox) which has the values go across the page instead of down the page.</strong></span></p><p><br></p><p>A dynamic list (SQL) is a list which populates based on a SQL query input below. This can be used to pull information from the database to enable your agents to make a choice based on existing data. There is a separate Guide on dynamic SQL lookup fields <a data-fr-linked="true" href="https://usehalo.com/haloitsm/guides/2041/" id="isPasted" target="_blank" rel="noopener noreferrer"><strong>here</strong></a>.</p><p><br></p><p><span style="font-size: 12pt;"><strong>Multiple selection Field Input Types</strong></span></p><p><span style="font-size: 11pt;">Choose values for the selections here, these are static and cannot be pulled from another query.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 12pt;"><strong>Date, Time and Checkbox Field Input Types</strong></span></p><p><span style="font-size: 11pt;">These have no configuration settings. They are exactly what the names suggest.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 12pt;"><strong>Table </strong></span></p><p><span style="font-size: 11pt;">Similar to the Dynamic List, this will extract data from the database but this time from any custom tables you have attached. These will start CT.</span></p><p><span style="font-size: 11pt;">You can display any combinations of the information stored in any custom table.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 12pt;"><strong>Settings</strong></span></p><p><span style="font-size: 11pt;">These are more general for the fields itself with summary being a description of the information contained in the field and the hint being shown in grey when the field is being updated.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><strong>Copy values to Child Tickets - </strong>This setting decides whether the value of this field is copied to child tickets if this is present in a ticket type. </span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><strong>Tab</strong> - This setting determines the tab the field will be visible on. </span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdjZGNjZmU5LTY0OGEtNGRiYS1iMWY1LTAyYmY2NTg4ZmRiOSJ9.LyvieozAtHGsqx3IhkhsPr25mFDzxRGqeaiYHxiLcP4" class="fr-fic fr-fil fr-dib" width="1558" height="187"></span></p><p><span style="font-size: 10pt;"><strong>Fig 10. Custom Tab Added to a Customer</strong></span></p><p><span style="font-size: 11pt;"> </span></p><p><span style="font-size: 11pt;">Custom Tabs can be created in Configuration > Custom Objects > Custom Tabs. In the image above there has been a custom tab created for the customer entity with name "Custom Fields". Custom Tabs can be added to many areas, a notable one would be the tabs of the ticket details screen.</span></p><p><br></p><p><span style="font-size: 12pt;"><strong>Visibility Restrictions</strong></span></p><p><span style="font-size: 11pt;">Here, you can set if this field is restricted to a particular client or organisation.</span></p><p><br></p><p><span style="font-size: 11pt;">You can set the "does not include" criteria here in order to make the field visible to all customers except a select few. To do this, set "All Customers" to "Show" as "Yes", then add the customer(s) you wish to exclude and add them as "Show" as "No".</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ3MzIzMDBhLWVmODEtNDMyNy1hZDBkLWMyMDlmMDJlZWQ2OSJ9.oZNcd-tWf8NYEohWfXxh1PnZlv1enGLs9M7_uEXE5v8" class="fr-fic fr-fil fr-dib" width="1557" height="428"></span><span style="font-size: 10pt;"><strong>Fig 11. Adding Visibility Restrictions to Custom Fields</strong></span></p><p><br></p><p><strong><span style="font-size: 12pt;">Cloning Custom Fields</span></strong></p><p>You can clone custom fields, using a 'Clone' button in the custom field header.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjhlOTc4ZmE4LTdjYzQtNDhhNC05MDIwLWI0OGU5YmMyN2UzZiJ9.bHIHY-ClbF_SzWVSSeeGHExNVl5CFOzXF8yT8OLkhpc" class="fr-fic fr-fil fr-dib" width="428" style="width: 430px; height: 404.87px;" height="405"></p><p><strong><span style="font-size: 10pt;">Fig 12. Button to clone a custom field</span></strong></p><p><br></p><p>Cloning a field will copy all it's properties (including the entity the field is for), allowing you to give a new field name and label to the field. </p><p><br></p><p>In order to have the ability to clone custom fields an agent must:</p><ul><li>Have read and modify access to the field</li><li>OR</li><li>Have the permission 'Is a Halo Administrator'</li></ul><p><br></p><p><strong><span style="font-size: 12pt;">Custom Field Hints</span></strong></p><p>To add a hint to your Custom Field, head to the Settings section of the Details tab. Under this section you will find an option to provide a hint, and set how it will be displayed. The hint display type can be set to:</p><ul><li><strong>Placeholder - </strong>Your hint will show greyed out, within the field itself as a placeholder. If the Custom Field type you are using is a checkbox this hint will show underneath instead.</li><li><strong>Underneath Label - </strong>This will show your hint under the field label.</li><li><strong>Hover Icon - </strong>When selected a question mark (?) will show next to the field label. When this icon is hovered over it will display the hint. </li></ul><p><br></p><p><strong><span style="font-size: 14pt;">Displaying Custom Fields</span></strong></p><p>For all entities other than Tickets/Projects/Opportunities/Actions you do not need to add the custom field anywhere to show on the entity, it will show automatically. The Custom Field will show up straight away on the Tab that was chosen during creation, if this was not changed then that will be the default tab called "Additional Fields".</p><p><br></p><p>For Tickets/Projects/Opportunities you need to go to Configuration > Tickets > Ticket Types > edit a Ticket Type and go to Field List. Here you can add the custom field to the specific ticket type, which will then make it visible on that ticket type, restriction settings can also be configured by editing the field item after adding it, as explained further down this guide.</p><p><br></p><p><span style="font-size: 12pt;"><strong>Adding a Custom Field to a Ticket/Action<br></strong></span></p><p><span style="font-size: 11pt;">Once you have completed the creation of your custom field, if it is a ticket or action level field, don't forget to add this to it's respective field list in the relevant configuration area. For example if you had a custom field you wanted to apply to a ticket types field list, you would add it to the field list of the ticket type, shown in Figure 13. </span></p><p><br></p><p>From v2.232.1+, editing a custom field using the pencil icon on this page will allow you to override the field hint and display label. This allows you to have different hints and labels based on the action or ticket type. </p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRkOGVhZGZiLTEyZjQtNDlmYS1iZjM1LTc3YzM3OGI3NzI5MyJ9.ATFsNFkkqKqdwQeRYhtQxUEAjl-B2p_dFPpmpGjY1qg" class="fr-fic fr-fil fr-dib" width="1149" style="width: 1151px; height: 558.376px;" height="558"></span><span style="font-size: 10pt;"><strong>Fig 13a. Field List on a Ticket Type</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Then add the field.</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRmNzZmZjhjLWU4ODktNGE3MC05MmY5LTc5OGJmZTZiNTdjZiJ9.6uhv8JES1rk8EokaH_pHXSwMXdt-kG-q7yWl2Y01_S4" class="fr-fic fr-fil fr-dib" width="690" style="width: 690px; height: 316.208px;" height="316.208"></span><span style="font-size: 10pt;"><strong>Fig 13b. The Add Fields Interface</strong></span></p><p><br></p><p>Once added to the field list, dynamic visibility restrictions can be set by editing the field which will now be showing on the list. Dynamic visibility restrictions will ensure this field only shows if another field meets certain criteria, such as it contains a specified value, or it is empty. </p><p><br></p><p>After adding the field to the ticket you can control the visibility of the fields for the Agent New Ticket Screen and End User New Ticket Screen (Self Service Portal). There are some points to note when adding client/site/user fields to tickets:</p><ul><li>If you are logging the Ticket from the Agent application, the fields will be defaulted to the current value from the selected End User of the Ticket. </li><li data-pasted="true">Logged in Users logging a Ticket on the Self Service Portal will only be able to see the current value of User Custom Fields, but not Site or Client fields. They will also only be able to see the current value for the User Custom fields if they are logging the Ticket on behalf of themselves. Setting Site and Client Custom Fields will still update them.</li><li data-pasted="true">If a logged in User is logging a Ticket on behalf of another User, they will not be able to see the current value of the Custom Fields for that User, but they can still set/update them.</li><li>Anonymous Users will not see any values for these Custom Fields, and setting them then logging the Ticket will not set the value anywhere.</li></ul><p><br></p><p><span style="font-size: 14pt;"><strong>Setting Validation for Date Fields</strong></span></p><p><span style="font-size: 11pt;">If creating a custom field in which users/agents enter a date you can set validation for this field. This allows you to restrict what users/agents can enter is this field based on another date field. For example, if the field is used to record the desired start date of a change you may want to require the date entered here to be after the date the ticket was logged. You can opt to only validate on creation of the entity by selecting the checkbox under the custom validation. </span></p><p><br></p><p><span style="font-size: 11pt;">"Days before now" and "Days after now" are available as fields to validate against. The warning will then show in days instead of hours. </span></p><p><br></p><p>From v2.232.1+, an additional field will show allowing you to set a custom "Validation Error Message" to display if the date field cannot be validated. </p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUxZWQ0YWVjLTUzNTItNDJiMS1iNjVkLTAyOWIxNzYwM2U0ZCJ9.hMIG5DSz9v-GWOArsxKT8Ht3i_mDVpQz_9YsxS8kNtI" class="fr-fic fr-fil fr-dib" width="1596" height="940"></p><p><strong><span style="font-size: 10pt;">Fig 14. Field validation</span></strong></p><p><br></p><p>There are various ways you can validate a field, in the Figure 14 example the date entered in the new field will need to be greater than the date/time of entry. However, you can also choose for the date to be dependent on another date field, useful if the date of a field should be earlier/later than the date in another field.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRkZmMwYmUwLTRmMmEtNDJiYi1hMWNmLWRkMmJjYzYzZWVmNCJ9.MzVLyp6kWlsO1pmNj0mbiu-lr8fnzzt9ScrZ_B6o1rM" class="fr-fic fr-fil fr-dib" width="1253" style="width: 1255px; height: 437.523px;" height="438"></p><p><strong><span style="font-size: 10pt;">Fig 15. Example validation criteria</span></strong></p><p><br></p><p>In the Figure 15 example only a date before the date entered in CFNewStarterStartingDate can be entered in CFCFDateOfAccountActivation. Useful for new starter tickets to ensure the scheduled date for new starter's account activation is before their scheduled start date. </p><p><br></p><p data-pasted="true"><strong>Date Validation for Custom Table Fields</strong></p><p>Date fields (columns) that sit within a custom table can also use validation. On versions prior to v2.234 date fields can only be validated against the current time, such as 'hours after now', 'hours before now'. </p><p><br></p><p>On versions v2.234+ date fields in custom tables can be validated relative to another field against the same entity. This means you can ensure the date entered into one field is earlier/later/the same/different to a date in another field. Keep in mind date fields can only be validated against fields that belong to the same entity the custom table is under. For example, if you create a custom table for suppliers, the date fields in this table can only be validated against other supplier date fields. </p><p><br></p><p>For more information on custom tables and creating fields (columns) for tables, checkout our dedicated guide<a href="https://usehalo.com/haloitsm/guides/2037/" target="_blank" rel="noopener noreferrer"> here.</a></p><p><br></p><p><strong><span style="font-size: 14pt;">Access Control</span></strong></p><p>At the top of the page upon saving, the "Access Control" button will appear. This allows administrators to grant other agents access to edit that specific custom field. This is useful so that the agent does not have to ask the administrator to change it for them, especially if it is one that is being trialled and changed constantly.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjkxNWQ3YzA4LTAwZTgtNDM4YS05NjBlLTZlNWFiYTFmNWU1ZiJ9.C1ACBzzujLgFJhhxZLlRe95vz9ssk3qAwqtjstgkty0" class="fr-fic fr-fil fr-dib" width="367" height="180"></p><p><strong><span style="font-size: 10pt;">Fig 16. Access control on a custom field.</span></strong></p><p><br></p><p><strong><span style="font-size: 14pt;">Using Variables in Custom Fields</span></strong></p><p>Variables are used in Halo to automatically populate fields with data that already exists elsewhere in Halo. Variables entered into rich text custom fields can populate on the entity itself, not just the PDF. This allows agents to enter variables into fields when logging tickets, and then have the field populated with the variable data once the ticket is saved/logged. If you would like to be able to do this, this will need to be enabled against each custom field. </p><p><br></p><p>Head to configuration > custom objects > custom fields > select the custom field the variable will be entered into, enable 'Allow the use of dollar variables in the field value'. </p><p><strong><span style="font-size: 10pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc1ZWIyNmNkLTQxMGEtNGYyZS04OTBjLWMzYzQyMDZlYjllZSJ9.b9Yxq0wvHhKwLASB4IKOIxsqUVm88JwyNvMC17f477Q" class="fr-fic fr-fil fr-dib" width="536" style="width: 538px; height: 215.39px;" height="215"></span></strong></p><p><strong><span style="font-size: 10pt;">Fig 17. Enable use of dollar variables in the field value</span></strong></p><p><strong><br></strong></p><p>Now when I enter a variable into this field.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdmNzk5N2I3LTdmMWItNGI2OS05NmI0LWQ0M2I4NjUyMDRmNyJ9.CbmVp_-G6JWpnb-klBCaze3uaXa8aGo6CPQU7ypqMnw" class="fr-fic fr-fil fr-dib" width="1013" style="width: 1015px; height: 701.544px;" height="702"></p><p><br></p><p><strong><span style="font-size: 10pt;">Fig 18. Variable in rich text custom field</span></strong></p><p><br></p><p>Once the ticket is logged, I can see the data this variable pulls through is present against the ticket. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyODkzMjRkLThhOTQtNDM5OS05YzcxLTNjYTI3M2RhMWRhOCJ9.AtG6QfzSTG0IyN3TM4IHMZqHTv3dy4q2VGktaPwk-8g" class="fr-fic fr-fil fr-dib" width="604" height="251"></p><p><strong><span style="font-size: 10pt;">Fig 19. Variable populate on ticket</span></strong></p><p><br></p><p>This is useful for fields storing information such as a statement of work or terms and conditions, as these fields will often contain content that benefits from dollar variables, such as a variable to pull through the customer or user name. Although these variables will populate on the PDF generated for the ticket, which is sent to the customer, it can be useful for agents to be able to see the completed field before generating/sending a PDF. </p><p><br></p><p data-pasted="true"><span style="font-size: 14pt;"><strong>Restricting Agents from Modifying Custom Fields</strong></span></p><p>Agents can be restricted on whether they can modify specific custom fields. These can be set at the Role or Agent level in the Permissions tab. From v2.236+, Agent Custom Fields can also be restricted this way. </p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: Poppins, sans-serif, Roboto; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><br style="box-sizing: inherit;"></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: Poppins, sans-serif, Roboto; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjFjNGIxNWQ3LTA5ODYtNDA1My04ODIyLTAwZTkxOTJmZjZiYiJ9.6yD575nsBqslltth_PMQWVW7g04Hu3HW616kFF-3h6w" class="fr-fic fr-fil fr-dib" width="997" height="828"></p><p><span style="font-size: 10pt;"><strong>Fig 20. Custom Field Restrictions</strong></span></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: Poppins, sans-serif, Roboto; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><br style="box-sizing: inherit;"></p><p>When you add a field to the relevant table, you can select from the access levels seen below. </p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: Poppins, sans-serif, Roboto; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><br style="box-sizing: inherit;"></p><p style="box-sizing: inherit; margin: 0px; line-height: 1.4285em; color: rgb(0, 0, 0); font-family: Poppins, sans-serif, Roboto; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVmZTZjMWNlLTViZDktNGVjYi1hYmE4LTU3YTEwMjk5YmJlOSJ9.cAjAAHQqtjrJLzly2rH8WkLfdyW3JSn1WDtAPO115-Y" class="fr-fic fr-fil fr-dib" width="515" height="301"></p><p><span style="font-size: 10pt;"><strong>Fig 21. Setting Access Level</strong></span></p>