An attribute is a data field that holds information about an activity, for example a subject headline (title), and a conclusion text. An app may have up to 32 attributes.
An attribute always has a name, type and label, plus a number of option fields. The mandatory title attribute typically looks like this:
attributes:
- name: title
type: string
label: Subject
placeholder: Enter subject here
mandatory: true
Attribute types
The attribute type must be one of the following:
- string: A single line text up to 3000 characters.
- text: A multi-line text area up to 3000 characters.
- select: A select dropdown with up to 100 choices, see select attribute.
- button: A button that can be clicked to invoke a trigger.
- user: A special select dropdown to select a Slack user.
- link: A special single line text to store a URL.
- tag: A tag is used to create an information tag for an activity, see custom display settings.
Predefined attributes
There are 5 predefined attributes with their types:
- title (string): The main subject/headline.
- body (text): A general purpose multi-line text.
- conclusion (text): Should contain a closing summary of the activity.
- deadline (text): Activity deadline (implicit attribute)
- severity (select): Activity severity (implicit attribute).
The title and conclusion attributes must always be present in an app. The title is a single line of text, while the conclusion is a multi-line text field.
You may change the label and other properties of a predefined attribute, but you cannot change its name or type.
deadline and severity are implicit attributes, i.e. they are not part of the attribute list. They are not present by default, but you can enable them in the app settings by setting enable_deadline or enable_severity to true.
Set a deadline to create urgency. An automated notification will be sent to the team when the countdown timer is 20% from reaching zero, but at most 24 hours before the deadline. For example, if you set a deadline in 10 hours, you’ll get a reminder in 8 hours. If you set a deadline in a week you’ll get the notification exactly 24 hours before the deadline expires.
The severity describes the severity level of an activity, and is mainly used for managing incidents. You may repurpose the severity attribute to be used in other areas by renaming its label and option labels. The ‘bug report’ app uses this technique.
Attribute properties
An attribute has three mandatory properties and several optional properties.
Mandatory properties
- name: The attribute’s name, consisting of lower case letters, numbers and underscores.
- type: The attribute type, explained below.
- label: A visible label displayed with the attribute.
Optional properties
- placeholder: A text displayed inside the input field before the user starts typing.
- hint: A contextual hint about the format etc. of the attribute.
- defaultValue: The default/initial value of an attribute.
- display: Customize how an attribute is displayed, see custom display settings.
- visible: Controls when the attribute should be displayed (see below).
- mandatory (boolean): Set mandatory to true if the attribute cannot have an empty value. The built-in title attribute is a mandatory attribute.
- important (boolean): Setting important to true is a hint that the attribute should be displayed whenever possible. For example, important attributes will be displayed in Conclude Home > Activities.
- readonly (boolean): Set readonly to true if the user should not be able to change its value after it has been set once.
- postmortem (boolean): Set to true to allow the user to edit the attribute after the activity has been closed.
- multiSelect (boolean): Set to true to allow the user to select multiple options.
- style: For buttons only. The button style can be set to primary or danger.
- editors: Setting editors restricts wgi can modify an attribute. You may specify a list of users, channels and user groups, just like the member setting, however, it’s a good convention to set it to ${superusers} to make the app source easier to read and maintain.
The visible setting can be:
- Not set (default): The attribute will be visible at all times.
- create: The attribute will be visible when creating a new activity.
- edit: The attribute will be visible in the activity channel.
- conclude: The attribute will be visible when concluding the activity.
This example shows how you can make an attribute visible to the members of the activity, but hide it from the user who submitted the activity:
- name: notes
type: string
label: Internal notes
placeholder: Internal investigation notes
visible: edit,conclude
}