Case Management has a single configuration end point (per environment) for system-wide settings. There may be further configuration end points for some case types, although this functionality has been deprecated - most case configuration is handled via your website using the Configuration Manager.
CaseManagement.getConfig
Case Management uses our standard end point configuration structure to hold solution-wide settings.
End points called
{
"linkConf": {
"rootCitizen": "http://mysite.com",
"pathCitizen": "/myaccount",
"rootAnon": "http://mysite.com",
"pathAnon": "/1234",
"rootStaff": "http://mysite.com",
"pathStaff": "/service",
"rootEnquiry": "http://mysite.com",
"pathEnquiry": "/5678"
},
"customLinkConf": {
"citizen": [{
"id": "1111",
"displayName": "Test1 subsite",
"root": "https://test1.gossinteractive.com",
"pathAnon": "/9876",
"pathCitizen": "/5432"
}, {
"id": "2222",
"displayName": "Test2 subsite",
"root": "https://test2.gossinteractive.com",
"pathAnon": "/1234",
"pathCitizen": "/4321"
}],
"staff": [{
"id": "2345",
"displayName": "Staff intranet DotNet",
"root": "https://staff1.gossinteractive.com",
"pathStaff": "/5555",
"pathEnquiry": "/6666"
}, {
"id": "2344",
"displayName": "Staff intranet Java",
"root": "https://staf2.gossinteractive.com",
"pathStaff": "/7777",
"pathEnquiry": "/8888"
}]
},
"emailConf": {
"sendFrom": "CaseManagement@DoNotReply.com",
"templates": "Generic Case",
"monitorTo": "",
"additionalAllowedElements": [],
"additionalAllowedAttributes": []
},
"formConf": {
"maxFileCountCitizen": 3,
"maxFileCountStaff": 20,
"maxFileSizeCitizen": 3000000,
"maxFileSizeStaff": 5000000,
"maxFileTextCitizen": "3MB",
"maxFileTextStaff": "5MB",
"relatedCaseLinks": ["Related", "Parent Of/Child Of", "Blocks/Is Blocked By"],
"showContactCitizen": true
},
"taskConf": {
"availableTasks": [
"collectinfo",
"investigate",
"feedback"
]
}
}
let actions = {
"caseCreate": {
"note": {
"displayText": "Test note for caseCreate",
"systemText": "Test note for caseCreate",
"privateNote": false
},
},
"caseOpened": {
"note": {
"displayText": "Test note for caseOpened",
"systemText": "Test note for caseOpened",
"privateNote": true
}
}
};
Property | Type | Description |
---|---|---|
linkConf | Object, required | Holds default URLs to various articles, generally used as links in the emails sent to users. These links will be used by all case types should no custom configuration be set up |
linkConf.rootCitizen | String | The address of the public website |
linkConf.pathCitizen | String | The article ID or friendly URL of a User Requests article that displays case management processes |
linkConf.rootAnon | String | The address of the public website |
linkConf.pathAnon | String | The article ID or friendly URL of an article using the Forms Service template accessible to non-logged-in users with the CASEMANAGEMENTCASESTATUS form related to it |
linkConf.rootStaff | String | The address of the website staff use to manage cases |
linkConf.pathStaff | String | The article ID or friendly URL of an article using the Self Service template that displays the case management, case view and any "task" processes |
linkConf.rootEnquiry | String | The address of the website staff use to manage cases |
linkConf.pathEnquiry | String | The article ID or friendly URL of an article using the Forms Service template. This root and path are used in the links to view case details from the Case Search results and links in the Dashboards. If this article is secured your users will need to have access to it |
customLinkConf.citizen | Array of objects, optional | Each object defines a public facing subsite. When configuring case types, users will be able to pick one of these options from a drop-down list in the Email Links section. This allows different case types to be handled on different subsites. If not supplied the configuration of individual cases will use the links defined above |
customLinkConf.citizen[n].id | String | A unique ID for the settings (can be any string) |
customLinkConf.citizen[n].displayName | String | Text visible in the config manager drop-down |
customLinkConf.citizen[n].root | String | The root URL of the subsite |
customLinkConf.citizen[n].pathAnon | String | The article ID or friendly URL of an article using the Forms Service template accessible to non-logged-in users with the CASEMANAGEMENTCASESTATUS form related to it |
customLinkConf.citizen[n].pathCitizen | String | The article ID or friendly URL of a User Requests article that displays case management processes |
customLinkConf.staff | Array of objects | Each object defines a staff subsite. When configuring case types, users will be able to pick one of these options from a drop-down list in the Email Links section. This allows different case types to be handled on different subsites |
customLinkConf.staff[n].id | String | A unique ID for the settings (can be any string) |
customLinkConf.staff[n].displayName | String | Text visible in the config manager drop-down |
customLinkConf.staff[n].root | String | The root URL of the subsite |
customLinkConf.staff[n].pathStaff | String | The article ID or friendly URL of a Self Service article that displays case management processes |
customLinkConf.staff[n].pathEnquiry | String | The article ID or friendly URL of an article using the Forms Service |
emailConf | Object, required | |
emailConf.sendFrom | String | The default "from" address emails will appear to come from |
emailConf.monitorTo | String | An optional BCC address that will be copied in to all emails |
emailConf.additionalAllowedElements | Array <string> | When emails are sent, their templates are passed through a HTML sanitiser to guard against malicious elements. The list of allowed elemeents is described in Creating Templates. If you want to add additional elements list them here, eg ["i"] |
emailConf.additionalAllowedAttributes | Array <string> | When emails are sent, their templates are passed through a HTML sanitiser to guard against malicious elements. The list of allowed elemeents is described in Creating Templates. If you want to add additional attributes list them here, eg ["title"] |
emailConf.templates | String | Suffix for email management |
formConf | Object, required | Defaults relating to upload fields on forms |
formConf.maxFileCountCitizen | Integer | The number of upload fields on the "citizen response" form (the form used to reply to questions from the case manager). The maximum is four |
formConf.maxFileCountStaff | Integer | The total number of files that can be attached to a case by staff users |
formConf.maxFileSizeCitizen | Integer | The maximum files size a user can upload on the "citizen response" form |
formConf.maxFileSizeStaff | Integer | The maximum file size staff users can upload |
formConf.maxFileTextCitizen | String | Displayed to the user, eg "3MB" |
formConf.maxFileTextStaff | String | Displayed to staff users, eg "5MB" |
formConf.relatedCaseLinks | Array | Options that will appear in the drop-down when linking cases. Strings that include a forward slash will create paired "inward" and "outward" links between cases. Remove this property to disable linking |
formConf.showContactCitizen | Boolean | Set false to disable the Contact button in the case manager interface |
taskConf.availableTasks | Array | A list of the tasks installed in this environment and available to configure |
System Action Notes
The optional
To override a default, add a new object inside the
"actionName": {
"note": {
"displayText": "New note",
"systemText": "New note",
"privateNote": false
},
}
Where:
- actionName - the name of the action to override (see below)
- displayText - the text that will appear in the notes and can contain internationalisation tokens
- systemText - the text that is always recorded in history and should not include internationalisation tokens
- privateNote - either true or false for whether or not the note should be private (appears in the Case Management interface only) or public (appears in the case history visible to the person who raised the case)
The actions that set system notes, and that can be overridden are:
Action Name | Private? | Display Text | System Text |
---|---|---|---|
caseAppointmentCancel | false | Appointment cancelled. Appointment with: {{action.values.appDepartment}}; Scheduled for: {{formatDate action.values.appDate action.values.dateTimeFormat}}; Meeting: {{action.values.appWith}}{{#if action.values.appNote}}; Note: {{action.values.appNote}}{{/if}} | Appointment cancelled. Department: {{action.values.appDepartment}}; Scheduled for: {{formatDate action.values.appDate action.values.dateTimeFormat}}; Meeting with: {{action.values.appWith}}{{#if action.values.appNote}}; Note: {{action.values.appNote}}{{/if}} |
caseAppointmentCreate | false | New appointment. Appointment with: {{action.values.appDepartment}}; Scheduled for: {{formatDate action.values.appDate action.values.dateTimeFormat}}; Meeting: {{action.values.appWith}}{{#if action.values.appNote}}; Note: {{action.values.appNote}}{{/if}} | New appointment. Department: {{action.values.appDepartment}}; Scheduled for: {{formatDate action.values.appDate action.values.dateTimeFormat}}; Meeting with: {{action.values.appWith}}{{#if action.values.appNote}}; Note: {{action.values.appNote}}{{/if}} |
caseAppointmentUpdate | false | Appointment amended. Appointment with: {{action.values.appDepartment}}; Scheduled for: {{formatDate action.values.appDate action.values.dateTimeFormat}}; Meeting: {{action.values.appWith}}{{#if action.values.appNote}}; Note: {{action.values.appNote}}{{/if}} | Appointment updated. Department: {{action.values.appDepartment}}; Scheduled for: {{formatDate action.values.appDate action.values.dateTimeFormat}}; Meeting with: {{action.values.appWith}}{{#if action.values.appNote}}; Note: {{action.values.appNote}}{{/if}} |
caseAssign | true | Assigned to group: {{action.values.groupId}} | Assigned to group: {{action.values.groupId}} |
caseAttachmentCreate | true | {{#is action.values.attachmentCount 1}}Uploaded attachment{{else}}Uploaded attachments{{/is}}: {{action.values.attachmentList}} | {{#is action.values.attachmentCount 1}}Uploaded attachment{{else}}Uploaded attachments{{/is}}: {{action.values.attachmentList}} |
caseAttachmentRemove | true | {{#is action.values.attachmentCount 1}}Deleted attachment{{else}}Deleted attachments{{/is}}: {{action.values.attachmentList}} | {{#is action.values.attachmentCount 1}}Deleted attachment{{else}}Deleted attachments{{/is}}: {{action.values.attachmentList}} |
caseCannotClose | true | Could not close case | "" |
caseChangeStage | true | Stage changed: {{action.values.caseStageDescription}}{{#if action.values.stageNote}}; Note: {{action.values.stageNote}}{{/if}} | New case stage: {{action.values.caseStage}}{{#if action.values.stageNote}}; Note: {{action.values.stageNote}}{{/if}} |
caseChangeStatus | false | Status changed: {{action.values.statusDescription}}{{#if action.values.statusNote}}; Note: {{action.values.statusNote}}{{/if}} | New case status: {{action.values.statusCode}}{{#if action.values.statusNote}}; Note: {{action.values.statusNote}}{{/if}} |
caseChangeSubType | true | Subtype changed: {{action.values.caseSubTypeDescription}}{{#if action.values.subTypeNote}}; Note: {{action.values.subTypeNote}}{{/if}} | New case subtype: {{action.values.caseSubTypeName}}{{#if action.values.subTypeNote}}; Note: {{action.values.subTypeNote}}{{/if}} |
caseClaimed | true | {{#if action.values.userFullName}}{{action.values.userFullName}}{{else}}{[action.values.userName}}{{/if}} has claimed the case. | {{#if action.values.userFullName}}{{action.values.userFullName}}{{else}}{[action.values.userName}}{{/if}} has claimed the case. |
caseClosed | false | Case closed. Reason: {{action.values.closureReasonDescription}}{{#if action.values.closureNote}}; Note {{action.values.closureNote}}{{/if}} | Case closed. Reason: {{action.values.closureReasonCode}}{{#if action.values.closureNote}}; Note: {{action.values.closureNote}}{{/if}} |
caseContactUpdateAddress | false | Citizen contact address changed from {{action.values.previousValue}} to {{action.values.newValue}} | Contact address changed from {{action.values.previousValue}} to {{action.values.newValue}} |
caseContactUpdateEmail | false | Citizen contact email changed from {{action.values.previousValue}} to {{action.values.newValue}} | Contact email changed from {{action.values.previousValue}} to {{action.values.newValue}} |
caseContactUpdateName | false | Citizen contact name changed from {{action.values.previousValue}} to {{action.values.newValue}} | Contact name changed from {{action.values.previousValue}} to {{action.values.newValue}} |
caseContactUpdatePhoneNumber | false | Citizen contact phone changed from {{action.values.previousValue}} to {{action.values.newValue}} | Contact phone changed from {{action.values.previousValue}} to {{action.values.newValue}} |
caseConvert | true | Converted from {{action.values.previousCaseName}} Converted to {{action.values.newCaseName}} | Case converted from {{action.values.previousCaseName}} to {{action.values.newCaseName}} |
caseCreate | false | Case initiated: {{action.values.caseTypeDescription}}{{#if action.values.caseSubTypeDescription}} - {{action.values.caseSubTypeDescription}}{{/if}} | Case initiated: {{action.values.caseTypeName}}{{#if action.values.caseSubTypeName}} - {{action.values.caseSubTypeName}}{{/if}} |
caseEscalated | true | Case escalated {{action.values.escalationReason}}; Note: {{action.values.escalationNotes}} | Case escalated {{action.values.escalationReason}}; Note: {{action.values.escalationNotes}} |
caseExport | true | Case was exported by {{#if action.values.userFullName}}{{action.values.userFullName}}{{else}}{[action.values.username}}{{/if}} | Case was exported by {{#if action.values.userFullName}}{{action.values.userFullName}}{{else}}{[action.values.username}}{{/if}} |
caseFailedToStart | "" | "" | |
caseLinkCreate | true | {{capitalizeFirst action.values.linkType}} link added between {{case.businessKey}} and {{action.values.linkedCaseId}}{{#if action.values.linkNote}}; Note: {{action.values.linkNote}}{{/if}} | {{capitalizeFirst action.values.linkType}} link added between {{case.businessKey}} and {{action.values.linkedCaseId}}{{#if action.values.linkNote}}; Note: {{action.values.linkNote}}{{/if}} |
caseLinkDelete | true | {{capitalizeFirst action.values.linkType}} link removed between {{case.businessKey}} and {{action.values.linkedCaseId}}{{#if action.values.linkNote}}; Note: {{action.values.linkNote}}{{/if}} | {{capitalizeFirst action.values.linkType}} link removed between {{case.businessKey}} and {{action.values.linkedCaseId}}{{#if action.values.linkNote}}; Note: {{action.values.linkNote}}{{/if}} |
caseLinkUpdate | true | {{capitalizeFirst action.values.linkType}} link updated between {{case.businessKey}} and {{action.values.linkedCaseId}}{{#if action.values.linkNote}}; Note: {{action.values.linkNote}}{{/if}} | {{capitalizeFirst action.values.linkType}} link updated between {{case.businessKey}} and {{action.values.linkedCaseId}}{{#if action.values.linkNote}}; Note: {{action.values.linkNote}}{{/if}} |
caseOpened | "" | "" | |
caseQuestionAnswer | false | Response received: {{action.values.answerText}}{{#if action.values.attachmentList}}; {{#is action.values.attachmentCount 1}}Attachment{{else}}Attachments{{/is}}: {{action.values.attachmentList}}{{/if}}; Question Number: {{action.values.questionNumber}} | Response received: {{action.values.answerText}}{{#if action.values.attachmentList}}; {{#is action.values.attachmentCount 1}}Attachment{{else}}Attachments{{/is}}: {{action.values.attachmentList}}{{/if}}; Question number: {{action.values.questionNumber}} |
caseQuestionCreate | false | More information requested from the citizen: {{action.values.questionText}}; Question Number: {{action.values.questionNumber}} | More information requested from the citizen: {{action.values.questionText}}; Question number: {{action.values.questionNumber}} |
caseReassign | true | Case assigned to {{#if action.values.assignUserFull}}{{action.values.assignUserFull}}{{else}}{{#if action.values.assignUser}}{{action.values.assignUser}}{{else}}{{#if action.values.assignGroupFull}}{{action.values.assignGroupFull}}{{else}}{{action.values.assignGroup}}{{/if}}{{/if}}{{/if}} for processing: {{action.values.assignReason}}; {{action.values.assignNotes}} | Case assigned to {{#if action.values.assignUserFull}}{{action.values.assignUserFull}}{{else}}{{#if action.values.assignUser}}{{action.values.assignUser}}{{else}}{{#if action.values.assignGroupFull}}{{action.values.assignGroupFull}}{{else}}{{action.values.assignGroup}}{{/if}}{{/if}}{{/if}} for processing: {{action.values.assignReason}}; {{action.values.assignNotes}} |
caseReminderDateSet | "" | "" | |
caseReminderDateUpdateClear | "" | "" | |
caseReminderDateUpdateNoChange | "" | "" | |
caseReminderDateUpdatePaused | "" | "" | |
caseReminderDateUpdateSet | "" | "" | |
caseSubscriberCreate | true | {{action.values.emailAddress}} subscribed to the case "{{action.values.subscription}}" subscription. | {{action.values.emailAddress}} subscribed to the case "{{action.values.subscription}}" subscription. |
caseSubscriberRemove | true | {{action.values.emailAddress}} unsubscribed from the case "{{action.values.subscription}}" subscription. | {{action.values.emailAddress}} unsubscribed from the case "{{action.values.subscription}}" subscription. |
caseTargetDateBreach | true | Case SLA breached | Case SLA breached |
caseTargetDateChange | true | Updating case SLA{{#if action.values.updateNote}}; Note: {{action.values.updateNote}}{{/if}} | Updating target{{#if action.values.updateNote}}; Note: {{action.values.updateNote}}{{/if}} |
caseTargetDateClear | "" | "" | |
caseTargetDateExtend | "" | "" | |
caseTargetDatePause | true | Pausing case SLA{{#if action.values.pauseNote}}; Note: {{action.values.pauseNote}}{{/if}} | Pausing case{{#if action.values.pauseNote}}; Note: {{action.values.pauseNote}}{{/if}} |
caseTargetDatePauseAgain | true | Case SLA already paused ({{action.values.pauseCounter}}){{#if action.values.pauseNote}}; Note: {{action.values.pauseNote}}{{/if}} | Case SLA already paused ({{action.values.pauseCounter}}){{#if action.values.pauseNote}}; Note: {{action.values.pauseNote}}{{/if}} |
caseTargetDateReminderBreach | "" | "" | |
caseTargetDateReminderSet | "" | "" | |
caseTargetDateResume | true | Resuming case SLA{{#if action.values.resumeNote}}; Note: {{action.values.resumeNote}}{{/if}} | Resuming case{{#if action.values.resumeNote}}; Note: {{action.values.resumeNote}}{{/if}} |
caseTargetDateResumeAgain | true | Case SLA remains paused ({{action.values.pauseCounter}}){{#if action.values.resumeNote}}; Note: {{action.values.resumeNote}}{{/if}} | Still paused ({{action.values.pauseCounter}}){{#if action.values.resumeNote}}; Note: {{action.values.resumeNote}}{{/if}} |
caseTargetDateSet | true | Target completion date set to {{formatDate action.values.caseTargetDate action.system.format.dateTime}} | Target completion date set to {{formatDate action.values.caseTargetDate action.system.format.dateTime}} |
caseTargetDateUpdateClear | true | No case target completion date | No case target completion date |
caseTargetDateUpdateNoChange | true | Target timer not updated | Target timer not updated |
caseTargetDateUpdatePaused | true | Case SLA paused | Case SLA paused |
caseTargetDateUpdateSet | true | Case target completion date set to {{formatDate action.values.caseTargetDate action.values.dateTimeFormat}} | Case target completion date set to {{formatDate action.values.caseTargetDate action.values.dateTimeFormat}} |
caseTaskAttachmentCreate | true | Attachment {{action.values.fileName}} uploaded | Attachment {{action.values.fileName}} uploaded |
caseTaskAttachmentRemove | true | Attachment {{action.values.fileName}} deleted | Attachment {{action.values.fileName}} deleted |
caseTaskAutoStart | true | Auto task created for {{action.values.taskAssigneeRole}}; Summary: {{action.values.taskSummary}} | Auto task created for {{action.values.taskAssigneeRole}}; Summary: {{action.values.taskSummary}} |
caseTaskCancelled | true | {{action.values.taskNote}} | {{action.values.taskNote}} |
caseTaskComplete | true | {{action.values.taskNote}} | {{action.values.taskNote}} |
caseTaskCreate | true | New task created for {{action.values.taskAssigneeRole}}; Summary: {{action.values.taskSummary}} | New task created for {{action.values.taskAssigneeRole}}; Summary: {{action.values.taskSummary}} |
caseTaskNoteCreate | false | {{action.values.taskNoteDescription}} | {{action.values.taskNoteSystem}} |
caseTaskStarted | true | Task started | Task started |
caseTaskTargetDateBreach | true | Task SLA breached | Task SLA breached |
caseTaskTargetDateClear | "" | "" | |
caseTaskTargetDateSet | "" | "" | |
caseUnclaimed | true | {{#if action.values.userFullName}}{{action.values.userFullName}}{{else}}{[action.values.userName}}{{/if}} has unclaimed the case. | {{#if action.values.userFullName}}{{action.values.userFullName}}{{else}}{[action.values.userName}}{{/if}} has unclaimed the case. |
caseUpdatePositionResult | {{action.values.triggerDescription}} has resulted in {{#if action.values.actionsList}} the system updating the following: {{action.values.actionsList}}{{else}}no actions{{/if}} | {{action.values.triggerDescription}} has resulted in {{#if action.values.actionsList}} the system updating the following: {{action.values.actionsList}}{{else}}no actions{{/if}} | |
caseUpdatePositionTrigger | true | {{action.values.triggerDescription}} has triggered automated case updates | {{action.values.triggerDescription}} has triggered automated case updates |