Add a "Now" button to Request for to request a call right now.
Add Language selection in Request form to request a specific language of Call Agent.
Add Category to Request form to be used in BPMN routing to specific Reviewer and Agent.
Add Example of Email Notification Template.
Add Example of SMS Notification Template.
Add Support for a Reschedule scenario - Staffer has to reschedule the previously agreed upon time.
Add Submission Language information to Review Form (the language that the Requestor submitted in the information in)
Add dashboard for Number of Requests Open, Number of scheduled calls, etc.
Add Confirmation Channel options in Request form. Not all users should need to receive a email.
✅ 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).
Add re-schedule option
Add Request validations for non-peak hours and hours when calls are not allowed.
If bad survey review then escalate to tier 2 for review and resolution
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.
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"
BPMN Process:
Version 1:![request_311_call](https://user-images.githubusercontent.com/1994838/32238966-a0d007fa-be3f-11e7-8650-aac1e1533755.png)
Version 2:![request_311_call v2](https://user-images.githubusercontent.com/1994838/32247997-9f38894c-be5a-11e7-85bd-8bea1f09ba05.png)
Version 3:![request_311_call v3](https://user-images.githubusercontent.com/1994838/32248717-f1551860-be5c-11e7-9947-4fa2a798d76c.png)
Version 4:![request_311_call v4](https://user-images.githubusercontent.com/1994838/32248952-a938931c-be5d-11e7-8827-84e1c4a5fe22.png)
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](https://user-images.githubusercontent.com/1994838/32239500-1838ea5e-be41-11e7-8455-5afa45da1979.png)
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](https://user-images.githubusercontent.com/1994838/32239519-22a0659e-be41-11e7-962b-98a3d5dacb1c.png)
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](https://user-images.githubusercontent.com/1994838/32239665-899bcf18-be41-11e7-8b95-272c84f42cdc.png)
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](https://user-images.githubusercontent.com/1994838/32240461-cb2fba28-be43-11e7-88a8-6296db260d3d.png)
NOTES: