DigitalState / Service-Discussions

A place to discuss and document service designs, ideas, problems, etc.
The Unlicense
0 stars 1 forks source link

Request call from 311/Call Center #26

Open StephenOTT opened 6 years ago

StephenOTT commented 6 years ago

BPMN Process:

Version 1: request_311_call

Version 2: request_311_call v2

Version 3: request_311_call v3

Version 4: request_311_call v4


Submission / Start Event Form:

Submission / Start Event Form - Form Components Code ```json "components": [ { "tags": [], "type": "textfield", "conditional": { "eq": "", "when": null, "show": "" }, "validate": { "customPrivate": false, "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": true }, "clearOnHide": true, "hidden": false, "persistent": true, "unique": false, "protected": false, "defaultValue": "", "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "firstName", "label": "First Name", "inputMask": "", "inputType": "text", "tableView": true, "input": true }, { "tags": [], "type": "textfield", "conditional": { "eq": "", "when": null, "show": "" }, "validate": { "customPrivate": false, "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": true }, "clearOnHide": true, "hidden": false, "persistent": true, "unique": false, "protected": false, "defaultValue": "", "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "lastName", "label": "Last Name", "inputMask": "", "inputType": "text", "tableView": true, "input": true }, { "lockKey": true, "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "type": "phoneNumber", "validate": { "required": true }, "clearOnHide": true, "defaultValue": "", "hidden": false, "persistent": true, "unique": false, "protected": false, "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "contactPhoneNumber", "label": "Phone Number", "inputMask": "(999) 999-9999", "tableView": true, "input": true }, { "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "type": "textarea", "validate": { "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": false }, "clearOnHide": true, "wysiwyg": false, "hidden": false, "persistent": true, "protected": false, "defaultValue": "", "multiple": false, "rows": 3, "suffix": "", "prefix": "", "placeholder": "", "key": "discussionTopic", "label": "What would you like to discuss", "tableView": true, "input": true }, { "isNew": false, "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "type": "datetime", "validate": { "custom": "", "required": true }, "clearOnHide": true, "hidden": false, "persistent": true, "protected": false, "timePicker": { "arrowkeys": true, "mousewheel": true, "readonlyInput": false, "showMeridian": true, "minuteStep": 1, "hourStep": 1 }, "datePicker": { "datepickerMode": "day", "yearColumns": "1", "yearRows": "1", "maxMode": "day", "minMode": "day", "initDate": "", "startingDay": "0", "showWeeks": true }, "datepickerMode": "day", "defaultDate": "", "enableTime": true, "enableDate": true, "format": "yyyy-MM-dd hh:mm a", "placeholder": "", "key": "requestDateTime", "label": "When would you like to be called?", "tableView": true, "input": true }, { "type": "button", "theme": "primary", "disableOnInvalid": false, "action": "submit", "block": false, "rightIcon": "", "leftIcon": "", "size": "md", "key": "submit", "tableView": false, "label": "Submit", "input": true } ] ```

Screenshot: request-311-form-edit request-311-form

Review Task Form - Call Review:

Review Task Form - Call Review - Form Components Code ```json "components": [ { "key": "panel", "input": false, "title": "Request Details", "theme": "primary", "components": [ { "input": false, "tableView": true, "key": "columns", "columns": [ { "components": [ { "input": true, "tableView": true, "inputType": "text", "inputMask": "", "label": "First Name", "key": "firstName", "placeholder": "", "prefix": "", "suffix": "", "multiple": false, "defaultValue": "ds[bpm].task.variable.start_data.firstName", "protected": false, "unique": false, "persistent": true, "hidden": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "", "customPrivate": false }, "conditional": { "show": "", "when": null, "eq": "" }, "type": "textfield", "tags": [], "disabled": true } ], "width": 6, "offset": 0, "push": 0, "pull": 0 }, { "components": [ { "input": true, "tableView": true, "inputType": "text", "inputMask": "", "label": "Last Name", "key": "lastName", "placeholder": "", "prefix": "", "suffix": "", "multiple": false, "defaultValue": "ds[bpm].task.variable.start_data.lastName", "protected": false, "unique": false, "persistent": true, "hidden": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "", "customPrivate": false }, "conditional": { "show": "", "when": null, "eq": "" }, "type": "textfield", "tags": [], "disabled": true } ], "width": 6, "offset": 0, "push": 0, "pull": 0 } ], "type": "columns", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "input": true, "tableView": true, "label": "Discussion Topic", "key": "discussionTopic", "placeholder": "", "prefix": "", "suffix": "", "rows": 3, "multiple": false, "defaultValue": "ds[bpm].task.variable.start_data.discussionTopic", "protected": false, "persistent": true, "hidden": false, "wysiwyg": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "" }, "type": "textarea", "tags": [], "conditional": { "show": "", "when": null, "eq": "" }, "disabled": true }, { "input": true, "tableView": true, "inputType": "text", "inputMask": "", "label": "Requested Call Date/Time", "key": "requestedCallDateTime", "placeholder": "", "prefix": "", "suffix": "", "multiple": false, "defaultValue": "ds[bpm].task.variable.start_data.requestDateTime", "protected": false, "unique": false, "persistent": true, "hidden": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "", "customPrivate": false }, "conditional": { "show": "", "when": null, "eq": "" }, "type": "textfield", "tags": [], "disabled": true }, { "input": true, "tableView": true, "inputType": "text", "inputMask": "", "label": "Phone Number to call", "key": "phoneNumbertocall", "placeholder": "", "prefix": "", "suffix": "", "multiple": false, "defaultValue": "ds[bpm].task.variable.start_data.contactPhoneNumber", "protected": false, "unique": false, "persistent": true, "hidden": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "", "customPrivate": false }, "conditional": { "show": "", "when": null, "eq": "" }, "type": "textfield", "tags": [], "disabled": true } ], "type": "panel", "breadcrumb": "default", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "key": "panel2", "input": false, "title": "Review Details", "theme": "default", "components": [ { "input": true, "tableView": true, "inputType": "radio", "label": "Request Outcome", "key": "requestOutcome", "values": [ { "value": "approved", "label": "Approved" }, { "value": "denied", "label": "Denied" } ], "defaultValue": "", "protected": false, "persistent": true, "hidden": false, "clearOnHide": true, "validate": { "required": true, "custom": "", "customPrivate": false }, "type": "radio", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "key": "panel3", "input": false, "title": "Comments for Requestor", "theme": "warning", "components": [ { "key": "html", "input": false, "tag": "strong", "attrs": [ { "value": "", "attr": "" } ], "className": "", "content": "IMPORTANT: This is information will be sent to requestor", "type": "htmlelement", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "input": true, "tableView": true, "label": "Comments for Requestor", "key": "commentsforRequestor", "placeholder": "", "prefix": "", "suffix": "", "rows": 3, "multiple": false, "defaultValue": "", "protected": false, "persistent": true, "hidden": false, "wysiwyg": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "" }, "type": "textarea", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } } ], "type": "panel", "breadcrumb": "default", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "input": true, "tableView": true, "label": "Internal Comments", "key": "internalComments", "placeholder": "", "prefix": "", "suffix": "", "rows": 3, "multiple": false, "defaultValue": "", "protected": false, "persistent": true, "hidden": false, "wysiwyg": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "" }, "type": "textarea", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } } ], "type": "panel", "breadcrumb": "default", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "input": true, "label": "Submit", "tableView": false, "key": "submit", "size": "md", "leftIcon": "", "rightIcon": "", "block": false, "action": "submit", "disableOnInvalid": false, "theme": "primary", "type": "button" } ] ```

Screenshot: request-311-review-form

Survey Task - 311 Experience Review:

Survey Task - 311 Experience Review Form - Form Components Code ```json "components": [ { "input": true, "tableView": true, "inputType": "radio", "label": "How would you rate your experience with 311?", "key": "howwouldyourateyourexperiencewith311", "values": [ { "value": "poor", "label": "Poor" }, { "value": "okay", "label": "Okay" }, { "value": "great", "label": "Great" }, { "value": "excellent", "label": "Excellent" } ], "defaultValue": "", "protected": false, "persistent": true, "hidden": false, "clearOnHide": true, "validate": { "required": false, "custom": "", "customPrivate": false }, "type": "radio", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "input": true, "tableView": true, "label": "Any comments you would like to share?", "key": "anycommentsyouwouldliketoshare", "placeholder": "", "prefix": "", "suffix": "", "rows": 3, "multiple": false, "defaultValue": "", "protected": false, "persistent": true, "hidden": false, "wysiwyg": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "" }, "type": "textarea", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "input": true, "label": "Submit", "tableView": false, "key": "submit", "size": "md", "leftIcon": "", "rightIcon": "", "block": false, "action": "submit", "disableOnInvalid": false, "theme": "primary", "type": "button" } ] ```

Screenshot: 311-experience-review-form

Call Requestor User Task - Agent Call:

Call Requestor User Task - Agent Call - Form - Form Components Code ```json "components": [ { "components": [ { "components": [ { "input": true, "tableView": true, "inputType": "text", "inputMask": "", "label": "Request Date/Time to Call", "key": "requestDateTimetoCall", "placeholder": "", "prefix": "", "suffix": "", "multiple": false, "defaultValue": "ds[bpm].task.variable.start_data.requestDateTime", "protected": false, "unique": false, "persistent": true, "hidden": false, "clearOnHide": true, "validate": { "required": false, "minLength": "", "maxLength": "", "pattern": "", "custom": "", "customPrivate": false }, "conditional": { "show": "", "when": null, "eq": "" }, "type": "textfield", "tags": [], "disabled": true } ], "key": "well2", "input": false, "tableView": true, "type": "well", "tags": [], "conditional": { "show": "", "when": null, "eq": "" } }, { "tags": [], "type": "textfield", "conditional": { "eq": "", "when": null, "show": "" }, "validate": { "customPrivate": false, "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": false }, "clearOnHide": true, "hidden": false, "persistent": true, "unique": false, "protected": false, "defaultValue": "ds[bpm].task.variable.start_data.firstName", "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "firstName", "label": "First Name", "inputMask": "", "inputType": "text", "tableView": true, "input": true, "disabled": true }, { "tags": [], "type": "textfield", "conditional": { "eq": "", "when": null, "show": "" }, "validate": { "customPrivate": false, "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": false }, "clearOnHide": true, "hidden": false, "persistent": true, "unique": false, "protected": false, "defaultValue": "ds[bpm].task.variable.start_data.lastName", "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "lastName", "label": "Last Name", "inputMask": "", "inputType": "text", "tableView": true, "input": true, "disabled": true }, { "rows": [], "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "type": "textarea", "validate": { "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": false }, "clearOnHide": true, "wysiwyg": false, "hidden": false, "persistent": true, "protected": false, "defaultValue": "ds[bpm].task.variable.start_data.discussionTopic", "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "discussionTopic", "label": "Discussion Topic", "tableView": true, "input": true, "disabled": true }, { "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "breadcrumb": "default", "type": "panel", "components": [ { "tags": [], "type": "textfield", "conditional": { "eq": "", "when": null, "show": "" }, "validate": { "customPrivate": false, "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": false }, "clearOnHide": true, "hidden": false, "persistent": true, "unique": false, "protected": false, "defaultValue": "ds[bpm].task.variable.start_data.requestPhoneNumber", "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "phoneNumber", "label": "Phone Number", "inputMask": "", "inputType": "text", "tableView": true, "input": true } ], "theme": "success", "title": "Phone Number to Call", "input": false, "key": "panel4" } ], "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "breadcrumb": "default", "type": "panel", "theme": "default", "title": "Request Details", "input": false, "key": "panel" }, { "components": [ { "rows": [], "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "type": "textarea", "validate": { "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": false }, "clearOnHide": true, "wysiwyg": false, "hidden": false, "persistent": true, "protected": false, "defaultValue": "ds[bpm].task.variable.Task_1n2tdug.internalComments", "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "reviewerComments", "label": "Reviewer Comments", "tableView": true, "input": true } ], "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "breadcrumb": "default", "type": "panel", "theme": "info", "title": "Reviewer Comments", "input": false, "key": "panel2" }, { "components": [ { "rows": [], "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "type": "textarea", "validate": { "custom": "", "pattern": "", "maxLength": "", "minLength": "", "required": false }, "clearOnHide": true, "wysiwyg": false, "hidden": false, "persistent": true, "protected": false, "defaultValue": "", "multiple": false, "suffix": "", "prefix": "", "placeholder": "", "key": "callComments", "label": "Agent Call Comments", "tableView": true, "input": true } ], "conditional": { "eq": "", "when": null, "show": "" }, "tags": [], "breadcrumb": "default", "type": "panel", "theme": "default", "title": "Internal Call Comments", "input": false, "key": "panel3" }, { "type": "button", "theme": "primary", "disableOnInvalid": false, "action": "submit", "block": false, "rightIcon": "", "leftIcon": "", "size": "md", "key": "submit", "tableView": false, "label": "Submit", "input": true } ] ```

Screenshot: request-311-agentcall-form

NOTES:

  1. All Forms are Whitelable mode - No Theme
  2. Process is meant to demonstrate several variations of process. Process will be updated per client
StephenOTT commented 6 years ago

Inspiration:

apple - schedule-a-call-etc

StephenOTT commented 6 years ago

Enhancements

  1. Add a "Now" button to Request for to request a call right now.
  2. Add Language selection in Request form to request a specific language of Call Agent.
  3. Add Category to Request form to be used in BPMN routing to specific Reviewer and Agent.
  4. Add Example of Email Notification Template.
  5. Add Example of SMS Notification Template.
  6. Add Support for a Reschedule scenario - Staffer has to reschedule the previously agreed upon time.
  7. Add Submission Language information to Review Form (the language that the Requestor submitted in the information in)
  8. Add dashboard for Number of Requests Open, Number of scheduled calls, etc.
  9. Add Confirmation Channel options in Request form. Not all users should need to receive a email.
  10. Add a Cancel Request option (Added in Version 3 and higher). UX of Cancel would come from client side that will pre-validate if a cancel can occur; (typically based on the value of a specific process variable).
  11. Add re-schedule option
  12. Add Request validations for non-peak hours and hours when calls are not allowed.
  13. If bad survey review then escalate to tier 2 for review and resolution
  14. Using the phone number, look up previously requested calls, and if greater than N, then send a message to user that requests can be made online.
  15. Offer option to text the user/requestor before the call to confirm that they are ready for the call, and the requestor texts back Yes or No. If yes the agent calls, and if no, a reschedule task is generated for the requestor. Or offer the option to delay: example: "call in about 5 min"