Migrate Workspaces 19.05 to Workspaces 19.11
The migration path from Workspaces 19.05 to Workspaces 19.11 should be pretty straight forward. Once again, we have enhanced the config based on feedback to support a wider variety of features.
actionshave been extended to support permissions and custom actions.applicants,integrationsandstatusColorconfig has been merged intocustomCardswith the introduction of custom card types, we have also removedforeach.- We have added a new primitive type for
dataIndexproperties, calledalert, that can be used for any sort of call-to-action, like SLA. - We have also added a new space config called
attachmentsthat allows us to customize the Documents Card on the Details screen.
The remainder of this topic describes an example migration, migrating the Global and Process configs from Workspaces 19.05 to Workspaces 19.11.
Updated configs
actions
As mentioned above, the actions config now supports permissions and the ability to create custom actions as well as custom labels.
{
"actions":{
"Receipt":{
"label":"Receipt",
"permissions": {
"type": "group",
"value": ["Manual Review"]
}
},
"Claim":{
"label":"Claim"
},
"Release":{
"label":"Release"
},
"Decision":{
"label":"Decision"
},
"Custom":{
"label":"More",
"properties":[
{
"label":"Review Checklist",
"dataIndex":"properties['ReviewChecklistUrl']",
"type":"url"
}
]
}
}
}
customCards
The Workspaces 19.11 customCards config has been updated to support multiple Custom Card types including: list, listStacked, listExtended, table and tableExtended. For more information, see Custom Cards.
Workspaces 19.11 configs
The refactored Global and Process configs for Workspaces 19.11 are shown below. The updated properties are highlighted to assist in identifying the changes made.
{
"theme":{
"primary":{
"main":"#025197"
},
"accent":{
"main":"#715C95"
}
},
"hideSteps":[
"Helpdesk View"
],
"locales":[
"en"
],
"currentLocale":"en",
"spaces":[
{
"label":"Process",
"icon":"BallotOutlined",
"value":"Process",
"permissions":{
"type":"role",
"value":[
"Processing Staff",
"Work Spaces Staff"
]
}
},
{
"label":"Helpdesk",
"icon":"HeadsetOutlined",
"value":"Helpdesk",
"permissions":{
"type":"role",
"value":[
"Helpdesk Staff",
"Work Spaces Staff"
]
}
},
{
"label":"Assisted Channel",
"icon":"AccessibilityNewOutlined",
"value":"Assist Channel",
"permissions":{
"type":"role",
"value":[
"Assisted Channel Staff",
"Work Spaces Staff"
]
}
},
{
"label":"Manage",
"icon":"SupervisedUserCircleOutlined",
"value":"Manage",
"permissions":{
"type":"role",
"value":[
"Manager",
"Work Spaces Staff",
"Workspaces staff Manager"
]
}
}
],
"currentSpace":"Process",
"mappings":{
"$primaryName":{
"label":"Primary applicant",
"icon":"PersonOutlineOutlined",
"dataIndex":[
"properties['PrimaryName']",
"formDataMap['PrimaryName']"
],
"type":"text",
"sorter":false,
"filter":{
"type":"input"
}
},
"$appId":{
"label":"App ID",
"icon":"FontDownloadOutlined",
"dataIndex":[
"job.jobRefNumber",
"trackingCode"
],
"type":"text",
"sorter":false,
"filter":{
"type":"input"
}
},
"$product":{
"label":"Product",
"icon":"WorkOutlineOutlined",
"dataIndex":[
"job.name",
"formName"
],
"type":"text",
"sorter":false,
"filter":{
"type":"input"
}
},
"$backgroundCheckStatus":{
"label":"Background Checks Status",
"icon":"CheckRounded",
"dataIndex":[
"properties['IntegrationsReview']"
],
"type":"text",
"sorter":false,
"filter":{
"type":"input"
}
},
"$taskSla":{
"label":"SLA",
"dataIndex":"properties['taskSla']",
"type":"alert",
"warning":"2 days"
},
"$slaDate":{
"label":"SLA Expiry",
"icon":"EventOutlined",
"dataIndex":"properties['taskSla']",
"type":"date",
"format":"relative",
"sorter":false
},
"$currentQueue":{
"label":"Current queue",
"icon":"FlagOutlined",
"dataIndex":"groupName",
"type":"text",
"sorter":true,
"filter":{
"type":"multiselect",
"options":[
"Error Review",
"Fraud Review",
"Manual Review"
]
}
},
"$appAge":{
"label":"App age",
"icon":"EventOutlined",
"dataIndex":"job.timeCreated",
"type":"date",
"format":"relative",
"sorter":true,
"filter":{
"type":"picker",
"options":{
"minDate":"{{ date('1 month ago') }}",
"maxDate":"{{ date('now') }}"
}
}
},
"$assigned":{
"label":"Assigned to",
"icon":"AccountCircleOutlined",
"dataIndex":"userLoginName",
"type":"text",
"sorter":true,
"filter":{
"type":"input"
}
},
"$currentStep":{
"label":"Current Step",
"icon":"TaskID",
"dataIndex":"job.currentStep",
"type":"text",
"sorter":false
},
"$currentTask":{
"label":"Current task",
"icon":"TaskID",
"dataIndex":"formName",
"type":"text",
"sorter":false
},
"$taskCreated":{
"label":"Task Created",
"icon":"TaskCreated",
"dataIndex":"timeCreated",
"type":"date",
"format":"relative",
"sorter":true,
"filter":{
"type":"picker",
"options":{
"minDate":"{{ date('1 month ago') }}",
"maxDate":"{{ date('now') }}"
}
}
},
"$appLastModified":{
"label":"Last modified",
"icon":"LastModified",
"dataIndex":"job.timeLastModified",
"type":"date",
"sorter":false,
"filter":{
"type":"picker",
"options":{
"minDate":"{{ date('1 month ago') }}",
"maxDate":"{{ date('now') }}"
}
}
},
"$formLastModified":{
"label":"Last modified",
"icon":"LastModified",
"dataIndex":[
"timeUserLastModified"
],
"type":"date",
"sorter":true,
"filter":{
"type":"picker",
"options":{
"minDate":"{{ date('1 month ago') }}",
"maxDate":"{{ date('now') }}"
}
}
},
"$appStatus":{
"label":"App status",
"icon":"AppStatus",
"dataIndex":"job.status",
"type":"text",
"sorter":false
},
"$taskStatus":{
"label":"Task Status",
"icon":"TaskStatus",
"dataIndex":"formStatus",
"type":"text",
"sorter":true,
"filter":{
"type":"multiselect",
"options":[
"Assigned",
"Opened",
"Saved",
"Completed",
"Abandoned"
]
}
},
"$dateOfBirth":{
"label":"Date of birth",
"dataIndex":[
"properties['PrimaryDOB']",
"formDataMap['PrimaryDOB']"
],
"type":"text",
"sorter":false,
"filter":{
"type":"input"
}
},
"$SSN":{
"label":"SSN",
"dataIndex":[
"properties['PrimarySSN']",
"formDataMap['PrimarySSN']"
],
"type":"text",
"sorter":false,
"filter":{
"type":"input"
}
},
"$email":{
"label":"Email",
"dataIndex":[
"properties['PrimaryEmail']",
"formDataMap['PrimaryEmail']"
],
"type":"text",
"sorter":false,
"filter":{
"type":"input"
}
},
"$phone":{
"label":"Phone #",
"dataIndex":[
"properties['PrimaryPhone']",
"formDataMap['PrimaryPhone']"
],
"type":"text",
"sorter":false,
"filter":{
"type":"input"
}
},
"$appSubmitted":{
"label":"App submitted",
"dataIndex":"job.timeCreated",
"type":"date",
"sorter":true,
"filter":{
"type":"picker",
"options":{
"minDate":"{{ date('1 month ago') }}",
"maxDate":"{{ date('now') }}"
}
}
},
"$appCreated":{
"label":"App created",
"dataIndex":"timeCreated",
"type":"date",
"sorter":true,
"filter":{
"type":"picker",
"options":{
"minDate":"{{ date('1 month ago') }}",
"maxDate":"{{ date('now') }}"
}
}
},
"$formStatus":{
"label":"Form status",
"icon":"TaskStatus",
"dataIndex":"formStatus",
"type":"text",
"sorter":true,
"filter":{
"type":"multiselect",
"options":[
"Assigned",
"Opened",
"Saved",
"Completed",
"Abandoned"
]
}
},
"$applicants":{
"label":"Applicants",
"icon":"PermIdentityTwoTone",
"type":"tableExtended",
"dataSource":"properties['ApplicationDetails']",
"properties":[
{
"label":"Status",
"dataIndex":"checkStatus",
"type":"alert"
},
{
"label":"Name",
"dataIndex":"profile.name",
"type":"text"
},
{
"label":"Email",
"dataIndex":"profile.email",
"type":"text"
},
{
"label":"Trust",
"dataIndex":"products['Trust']",
"type":"text"
},
{
"label":"Super Saver",
"dataIndex":"products['Super Saver']",
"type":"text"
},
{
"label":"Standard Checking",
"dataIndex":"products['Standard Checking']",
"type":"text"
}
],
"sections":[
{
"label":"Personal Info",
"type":"list",
"properties":[
{
"label":"Full Name",
"dataIndex":"profile.name",
"type":"text",
"fullWidth":true
},
{
"label":"Address",
"dataIndex":"profile.address",
"type":"text",
"fullWidth":true
},
{
"label":"SSN",
"dataIndex":"profile.ssn",
"type":"text"
},
{
"label":"Email",
"dataIndex":"profile.email",
"type":"text"
},
{
"label":"Phone #",
"dataIndex":"profile.phone",
"type":"text"
},
{
"label":"Date of Birth",
"dataIndex":"profile.dob",
"type":"text"
}
]
},
{
"label":"Background Checks",
"type":"listExtended",
"statusColors":{
"Black":[
"HARDFAIL"
],
"LightGreen":[
"LOW"
],
"Green":[
"VERIFIED",
"PASSED",
"ACCEPT",
"APPROVE",
"TRUSTED",
"PASS"
],
"Red":[
"FAILED",
"DECLINE",
"HIGH",
"FAIL"
],
"Blue":[
"REVIEW",
"NEUTRAL",
"UNVERIFIED"
],
"Orange":[
"INSUFFICIENT",
"MEDIUM"
]
},
"properties":[
{
"label":"FIS Chexsystems",
"properties":[
{
"label":"IDA",
"dataIndex":"integrations.[0].items[0].value",
"type":"text"
},
{
"label":"IDV",
"dataIndex":"integrations.[0].items[1].value",
"type":"text",
"link":{
"dataIndex":"integrations.[0].items[1].link",
"type":"html"
}
},
{
"label":"OFAC",
"dataIndex":"integrations.[0].items[2].value",
"type":"text"
},
{
"label":"Qualfile",
"dataIndex":"integrations.[0].items[3].value",
"type":"text",
"link":{
"dataIndex":"integrations.[0].items[3].link",
"type":"html"
}
}
]
},
{
"label":"Threat Metrix",
"properties":[
{
"label":"DECISION",
"dataIndex":"integrations.[1].items[0].value",
"type":"text",
"link":{
"dataIndex":"integrations.[1].items[0].link",
"type":"json"
}
},
{
"label":"RISK RATING",
"dataIndex":"integrations.[1].items[1].value",
"type":"text"
},
{
"label":"SCORE",
"dataIndex":"integrations.[1].items[2].value",
"type":"number"
}
]
},
{
"label":"TIN Check",
"properties":[
{
"label":"TIN Verification",
"dataIndex":"integrations.[2].items[0].value",
"type":"text",
"link":{
"dataIndex":"integrations.[2].items[0].link",
"type":"xml"
}
}
]
}
]
}
]
},
"$sentEmails":{
"label":"Sent emails",
"icon":"InfoTwoTone",
"type":"table",
"dataSource":"properties['EmailList']",
"properties":[
{
"label":"Date sent",
"dataIndex":"dateAttempted",
"type":"date"
},
{
"label":"Info",
"dataIndex":"name",
"type":"text"
},
{
"label":"Delivery status",
"dataIndex":"emailSent",
"type":"text"
},
{
"label":"Follow up",
"dataIndex":"followUp",
"type":"text"
},
{
"label":"Sent mail",
"type":"text",
"link":{
"dataIndex":"emailContent",
"type":"html",
"encoding":"base64"
}
}
]
},
"$applicantValidations":{
"label":"Applicant validations",
"icon":"InfoTwoTone",
"type":"table",
"dataSource":"properties['GenericContent']",
"properties":[
{
"label":"Type",
"dataIndex":"type",
"type":"text"
},
{
"label":"View report",
"type":"text",
"link":{
"dataIndex":"htmlContent",
"type":"html",
"encoding":"base64"
}
},
{
"label":"View JSON",
"type":"text",
"link":{
"dataIndex":"jsonContent",
"type":"json",
"encoding":"base64"
}
},
{
"label":"View XML",
"type":"text",
"link":{
"dataIndex":"xmlContent",
"type":"xml",
"encoding":"base64"
}
},
{
"label":"View PDF",
"link":{
"dataIndex":"pdfContent",
"type":"pdf"
}
}
]
},
"$reviewChecklist":{
"label":"Review Checklist",
"type":"listStacked",
"icon":"BallotOutlined",
"properties":[
{
"label":"Personal Details",
"dataIndex":[
"properties['PersonalDetails']"
],
"type":"text"
},
{
"label":"Background Checks",
"dataIndex":[
"properties['BackgroundChecks']"
],
"type":"text",
"filter":{
"type":"input"
}
},
{
"label":"Attachments",
"dataIndex":[
"properties['Attachments']"
],
"type":"text"
},
{
"label":"Remarks",
"dataIndex":[
"properties['Remarks']"
],
"type":"text"
}
]
}
}
}
{
"pageSize":10,
"title":"Process",
"loadQuery":true,
"attachments":{
"duplicates":false,
"filter":{
"action":"exclude",
"regex":".zip"
},
"uploadWithoutClaim":false
},
"emptyMessage":"No results found, try widening your search",
"actions":{
"Receipt":{
"label":"Receipt"
},
"Claim":{
"label":"Claim"
},
"Release":{
"label":"Release"
},
"Decision":{
"label":"Decision"
},
"Custom":{
"label":"More",
"properties":[
{
"label":"Review Checklist",
"dataIndex":"properties['ReviewChecklistUrl']",
"type":"url"
}
]
}
},
"globalFilters":{
"GroupName":{
"label":"Queues",
"options":[
"Error Review",
"Fraud Review",
"Manual Review"
],
"value":"All"
},
"DateCreated":{
"label":"Created Date",
"value":[
"{{ date('4 weeks ago') }}",
"{{ date('now') }}"
]
}
},
"views":[
{
"label":"All outstanding",
"properties":[
"$taskSla",
"$appId",
"$primaryName",
"$product",
"$appAge",
"$currentQueue",
"$currentTask",
"$taskCreated",
"$assigned",
"$formLastModified"
],
"sortOrder":"desc",
"sortBy":"$appAge"
},
{
"label":"Unassigned",
"properties":[
"$taskSla",
"$appId",
"$primaryName",
"$product",
"$appAge",
"$currentQueue",
"$currentTask",
"$taskCreated",
"$assigned",
"$formLastModified"
],
"filterBy":{
"$assigned":"None"
},
"sortOrder":"desc",
"sortBy":"$appAge"
},
{
"label":"Assigned to me",
"properties":[
"$taskSla",
"$appId",
"$primaryName",
"$product",
"$appAge",
"$currentQueue",
"$currentTask",
"$taskCreated",
"$assigned",
"$formLastModified"
],
"filterBy":{
"$assigned":"{{ currentUser }}"
},
"sortOrder":"desc",
"sortBy":"$appAge"
},
{
"label":"URGENT",
"properties":[
"$taskSla",
"$slaDate",
"$appId",
"$primaryName",
"$product",
"$appAge",
"$currentQueue",
"$currentTask",
"$taskCreated",
"$assigned",
"$formLastModified"
],
"filterBy":{
"$taskCreated":[
"{{ date('now') }}",
"{{ date('next week') }}"
]
},
"sortOrder":"desc",
"sortBy":"$appAge"
},
{
"label":"Completed tasks",
"properties":[
"$taskSla",
"$appId",
"$primaryName",
"$product",
"$appAge",
"$currentQueue",
"$currentTask",
"$appStatus",
"$taskStatus",
"$taskCreated",
"$assigned",
"$formLastModified"
],
"filterBy":{
"$taskStatus":[
"Completed"
]
},
"sortOrder":"desc",
"sortBy":"$appAge"
}
],
"keyInfo":[
"$primaryName",
"$appId",
"$slaDate",
"$assigned",
"$currentQueue",
"$product"
],
"customCards":[
"$applicants",
"$reviewChecklist",
"$sentEmails",
"$applicantValidations"
]
}