Toggle menu

Environment Configuration

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.

Case Management Config End Point
 

End points called CaseManagement.getConfig should exist for each of your environments, for example in your development environment, the configuration can be found at config.dev.CaseManagement.getConfig. They hold the following settings.

{
    "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
        }
    }
};

PropertyTypeDescription
linkConfObject, requiredHolds 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.rootCitizenStringThe address of the public website
linkConf.pathCitizenStringThe article ID or friendly URL of a User Requests article that displays case management processes
linkConf.rootAnonStringThe address of the public website
linkConf.pathAnonStringThe 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.rootStaffStringThe address of the website staff use to manage cases
linkConf.pathStaffStringThe 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.rootEnquiryStringThe address of the website staff use to manage cases
linkConf.pathEnquiryStringThe 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.citizenArray of objects, optionalEach 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].idStringA unique ID for the settings (can be any string)
customLinkConf.citizen[n].displayNameStringText visible in the config manager drop-down
customLinkConf.citizen[n].rootStringThe root URL of the subsite
customLinkConf.citizen[n].pathAnonStringThe 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].pathCitizenStringThe article ID or friendly URL of a User Requests article that displays case management processes
customLinkConf.staffArray of objectsEach 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].idStringA unique ID for the settings (can be any string)
customLinkConf.staff[n].displayNameStringText visible in the config manager drop-down
customLinkConf.staff[n].rootStringThe root URL of the subsite
customLinkConf.staff[n].pathStaffStringThe article ID or friendly URL of a Self Service article that displays case management processes
customLinkConf.staff[n].pathEnquiryStringThe article ID or friendly URL of an article using the Forms Service
emailConfObject, required 
emailConf.sendFromStringThe default "from" address emails will appear to come from
emailConf.monitorToStringAn optional BCC address that will be copied in to all emails
emailConf.additionalAllowedElementsArray <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.additionalAllowedAttributesArray <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.templatesStringSuffix for email management
formConfObject, requiredDefaults relating to upload fields on forms
formConf.maxFileCountCitizenIntegerThe 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.maxFileCountStaffIntegerThe total number of files that can be attached to a case by staff users
formConf.maxFileSizeCitizenIntegerThe maximum files size a user can upload on the "citizen response" form
formConf.maxFileSizeStaffIntegerThe maximum file size staff users can upload
formConf.maxFileTextCitizenStringDisplayed to the user, eg "3MB"
formConf.maxFileTextStaffStringDisplayed to staff users, eg "5MB"
formConf.relatedCaseLinksArrayOptions 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.showContactCitizenBooleanSet false to disable the Contact button in the case manager interface
taskConf.availableTasksArrayA list of the tasks installed in this environment and available to configure

System Action Notes

The optional actions object lets you override the default notes added to case history when certain actions are carried out. Any properties you don't supply will use the defaults held in goss.CaseManagement.v1.system.getSystemConfig - these should not be edited.

To override a default, add a new object inside the actions object, with the format:

"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 NamePrivate?Display TextSystem Text
caseAppointmentCancelfalseAppointment 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}}
caseAppointmentCreatefalseNew 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}}
caseAppointmentUpdatefalseAppointment 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}}
caseAssigntrueAssigned to group: {{action.values.groupId}}Assigned to group: {{action.values.groupId}}
caseAttachmentCreatetrue{{#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}}
caseAttachmentRemovetrue{{#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}}
caseCannotClosetrueCould not close case""
caseChangeStagetrueStage 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}}
caseChangeStatusfalseStatus 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}}
caseChangeSubTypetrueSubtype 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}}
caseClaimedtrue{{#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.
caseClosedfalseCase 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}}
caseContactUpdateAddressfalseCitizen contact address changed from {{action.values.previousValue}} to {{action.values.newValue}}Contact address changed from {{action.values.previousValue}} to {{action.values.newValue}}
caseContactUpdateEmailfalseCitizen contact email changed from {{action.values.previousValue}} to {{action.values.newValue}}Contact email changed from {{action.values.previousValue}} to {{action.values.newValue}}
caseContactUpdateNamefalseCitizen contact name changed from {{action.values.previousValue}} to {{action.values.newValue}}Contact name changed from {{action.values.previousValue}} to {{action.values.newValue}}
caseContactUpdatePhoneNumberfalseCitizen contact phone changed from {{action.values.previousValue}} to {{action.values.newValue}}Contact phone changed from {{action.values.previousValue}} to {{action.values.newValue}}
caseConverttrueConverted from {{action.values.previousCaseName}} Converted to {{action.values.newCaseName}}Case converted from {{action.values.previousCaseName}} to {{action.values.newCaseName}}
caseCreatefalseCase 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}}
caseEscalatedtrueCase escalated {{action.values.escalationReason}}; Note: {{action.values.escalationNotes}}Case escalated {{action.values.escalationReason}}; Note: {{action.values.escalationNotes}}
caseExporttrueCase 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 """"
caseLinkCreatetrue{{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}}
caseLinkDeletetrue{{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}}
caseLinkUpdatetrue{{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 """"
caseQuestionAnswerfalseResponse 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}}
caseQuestionCreatefalseMore 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}}
caseReassigntrueCase 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 """"
caseSubscriberCreatetrue{{action.values.emailAddress}} subscribed to the case "{{action.values.subscription}}" subscription.{{action.values.emailAddress}} subscribed to the case "{{action.values.subscription}}" subscription.
caseSubscriberRemovetrue{{action.values.emailAddress}} unsubscribed from the case "{{action.values.subscription}}" subscription.{{action.values.emailAddress}} unsubscribed from the case "{{action.values.subscription}}" subscription.
caseTargetDateBreachtrueCase SLA breachedCase SLA breached
caseTargetDateChangetrueUpdating case SLA{{#if action.values.updateNote}}; Note: {{action.values.updateNote}}{{/if}}Updating target{{#if action.values.updateNote}}; Note: {{action.values.updateNote}}{{/if}}
caseTargetDateClear """"
caseTargetDateExtend """"
caseTargetDatePausetruePausing case SLA{{#if action.values.pauseNote}}; Note: {{action.values.pauseNote}}{{/if}}Pausing case{{#if action.values.pauseNote}}; Note: {{action.values.pauseNote}}{{/if}}
caseTargetDatePauseAgaintrueCase 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 """"
caseTargetDateResumetrueResuming case SLA{{#if action.values.resumeNote}}; Note: {{action.values.resumeNote}}{{/if}}Resuming case{{#if action.values.resumeNote}}; Note: {{action.values.resumeNote}}{{/if}}
caseTargetDateResumeAgaintrueCase 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}}
caseTargetDateSettrueTarget 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}}
caseTargetDateUpdateCleartrueNo case target completion dateNo case target completion date
caseTargetDateUpdateNoChangetrueTarget timer not updatedTarget timer not updated
caseTargetDateUpdatePausedtrueCase SLA pausedCase SLA paused
caseTargetDateUpdateSettrueCase 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}}
caseTaskAttachmentCreatetrueAttachment {{action.values.fileName}} uploadedAttachment {{action.values.fileName}} uploaded
caseTaskAttachmentRemovetrueAttachment {{action.values.fileName}} deletedAttachment {{action.values.fileName}} deleted
caseTaskAutoStarttrueAuto task created for {{action.values.taskAssigneeRole}}; Summary: {{action.values.taskSummary}}Auto task created for {{action.values.taskAssigneeRole}}; Summary: {{action.values.taskSummary}}
caseTaskCancelledtrue{{action.values.taskNote}}{{action.values.taskNote}}
caseTaskCompletetrue{{action.values.taskNote}}{{action.values.taskNote}}
caseTaskCreatetrueNew task created for {{action.values.taskAssigneeRole}}; Summary: {{action.values.taskSummary}}New task created for {{action.values.taskAssigneeRole}}; Summary: {{action.values.taskSummary}}
caseTaskNoteCreatefalse{{action.values.taskNoteDescription}}{{action.values.taskNoteSystem}}
caseTaskStartedtrueTask startedTask started
caseTaskTargetDateBreachtrueTask SLA breachedTask SLA breached
caseTaskTargetDateClear """"
caseTaskTargetDateSet """"
caseUnclaimedtrue{{#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}}
caseUpdatePositionTriggertrue{{action.values.triggerDescription}} has triggered automated case updates{{action.values.triggerDescription}} has triggered automated case updates

 

Last modified on June 28, 2024

Share this page

Facebook icon Twitter icon email icon

Print

print icon