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.
actions
have been extended to support permissions and custom actions.applicants
,integrations
andstatusColor
config has been merged intocustomCards
with the introduction of custom card types, we have also removedforeach
.- We have added a new primitive type for
dataIndex
properties, calledalert
, that can be used for any sort of call-to-action, like SLA. - We have also added a new space config called
attachments
that 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"
]
}