Skip to main content

Version: 22.04

Mappings

Mapping is the process of defining how a Txn and the properties it contains are read, sorted, filtered and rendered. Mappings are used to define various configurations including:

  • a property label
  • the value of the dataIndex property
  • which properties should be treated as text, date, or number
  • the format of values
  • custom rules to control filtering and sorting

Job Properties

Job properties are used the same way we use Txn properties. The difference is that in the config, we add the prefix job.properties['ApplicationDetails']. Job properties are supported by both the key info card and custom cards.

Example

src/configs/custom/global.ts
import { ConfigGlobal } from '@transact-open-ux/workspaces/dist/types';

export const globalConfig = ({ date }: any): ConfigGlobal => ({
...
mappings: {
$applicants: {
label: 'Applicants',
icon: 'PermIdentityTwoTone',
type: 'tableExtended',
hideEmpty: true,
permissions: {
type: 'role',
value: ['Processing Staff', 'Work Spaces Staff'],
},
dataSource: "properties['ApplicantsData']",
properties: [
{
label: 'Status',
dataIndex: 'checkStatus',
type: 'alert',
},
{
label: 'Name',
dataIndex: 'name',
type: 'text',
},
{
label: 'Email',
dataIndex: 'email',
type: 'text',
},
],
sections: [
{
label: 'Personal Info',
type: 'list',
hideEmpty: true,
properties: [
{
label: 'Name',
dataIndex: 'name',
type: 'text',
fullWidth: true,
},
{
label: 'SSN',
dataIndex: 'ssn',
type: 'text',
},
{
label: 'Email',
dataIndex: 'email',
type: 'text',
},
],
},
{
label: 'Applicant 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].properties[0].value',
type: 'text',
},
{
label: 'Qualfile',
dataIndex: 'integrations.[0].properties[1].value',
type: 'text',
link: {
dataIndex: 'integrations.[1].name',
type: 'html',
},
},
],
},
{
label: 'Threat Metrix',
properties: [
{
label: 'DECISION',
dataIndex: 'integrations.[1].items[0].value',
type: 'text',
},
{
label: 'RISK RATING',
dataIndex: 'integrations.[1].items[1].value',
type: 'text',
link: {
dataIndex: 'integrations.[1].items[1].link',
type: 'html',
},
},
{
label: 'SCORE',
dataIndex: 'integrations.[1].items[2].value',
type: 'number',
},
{
label: 'JSON',
dataIndex: 'integrations.[1].items[3].value',
type: 'text',
link: {
dataIndex: 'integrations.[1].items[3].link',
type: 'json',
encoding: 'base64',
},
},
{
label: 'XML',
dataIndex: 'integrations.[1].items[4].value',
type: 'text',
link: {
dataIndex: 'integrations.[1].items[4].link',
type: 'xml',
},
},
],
},
],
},
],
},
$guarantorApplicant: {
label: 'Guarantor',
type: 'listStacked',
properties: [
{
label: 'Type',
dataIndex: ["properties['GuarantorType']", "formDataMap['GuarantorType']"],
type: 'text',
},
{
label: 'Name',
dataIndex: ["properties['GuarantorName']", "formDataMap['GuarantorName']"],
type: 'text',
},
{
label: 'SSN #',
dataIndex: ["properties['GuarantorSSN']", "formDataMap['GuarantorSSN']"],
type: 'text',
},
{
label: 'Email',
dataIndex: ["properties['GuarantorEmail']", "formDataMap['GuarantorEmail']"],
type: 'text',
},
{
label: 'Date of Birth',
dataIndex: ["properties['GuarantorDOB']", "formDataMap['GuarantorDOB']"],
type: 'text',
},
{
label: 'Phone #',
dataIndex: ["properties['GuarantorPhone']", "formDataMap['GuarantorPhone']"],
type: 'text',
},
],
},
$primaryApplicant: {
label: 'Applicants',
type: 'list',
properties: [
{
label: 'Primary',
properties: [
{
label: 'Type',
dataIndex: ["properties['PrimaryType']", "formDataMap['PrimaryType']"],
type: 'text',
},
{
label: 'Name',
dataIndex: ["properties['PrimaryName']", "formDataMap['PrimaryName']"],
type: 'text',
},
{
label: 'SSN #',
dataIndex: ["properties['PrimarySSN']", "formDataMap['PrimarySSN']"],
type: 'text',
},
{
label: 'Email',
dataIndex: ["properties['PrimaryEmail']", "formDataMap['PrimaryEmail']"],
type: 'text',
},
{
label: 'Date of Birth',
dataIndex: ["properties['PrimaryDOB']", "formDataMap['PrimaryDOB']"],
parse: 'YYYY-MM-DD',
type: 'date',
},
{
label: 'Phone #',
dataIndex: ["properties['PrimaryPhone']", "formDataMap['PrimaryPhone']"],
type: 'text',
},
],
},
{
label: 'Secondary',
properties: [
{
label: 'Type',
dataIndex: ["properties['SecondaryType']", "formDataMap['SecondaryType']"],
type: 'text',
},
{
label: 'Name',
dataIndex: ["properties['SecondaryName']", "formDataMap['SecondaryName']"],
type: 'text',
},
{
label: 'SSN #',
dataIndex: ["properties['SecondarySSN']", "formDataMap['SecondarySSN']"],
type: 'text',
},
{
label: 'Email',
dataIndex: ["properties['SecondaryEmail']", "formDataMap['SecondaryEmail']"],
type: 'text',
},
{
label: 'Date of Birth',
dataIndex: ["properties['SecondaryDOB']", "formDataMap['SecondaryDOB']"],
type: 'text',
},
{
label: 'Phone #',
dataIndex: ["properties['SecondaryPhone']", "formDataMap['SecondaryPhone']"],
type: 'text',
},
],
},
],
},
$backgroundChecks: {
label: 'Background Checks',
type: 'listExtended',
icon: 'VerifiedUserTwoTone',
statusColors: {
Black: ['HARDFAIL'],
LightGreen: ['LOW'],
Green: ['PASSED', 'ACCEPT', 'APPROVE', 'TRUSTED', 'PASS'],
Red: ['FAILED', 'DECLINE', 'HIGH', 'FAIL'],
Blue: ['REVIEW', 'NEUTRAL', 'UNVERIFIED'],
Orange: ['INSUFFICIENT', 'VERIFIED'],
},
properties: [
{
label: 'FIS Chexsystems',
properties: [
{
label: 'IDA',
dataIndex: "properties['FisIda.PrimaryApplicant.verifyStatus']",
type: 'text',
},
{
label: 'IDV',
dataIndex: "properties['FisIdv.PrimaryApplicant.idvVerifyStatus']",
type: 'text',
link: {
dataIndex: "properties['FisIdv.PrimaryApplicant.htmlReport']",
type: 'html',
},
},
{
label: 'OFAC',
dataIndex: "properties['FisIdv.PrimaryApplicant.ofacStatus']",
type: 'text',
},
{
label: 'Qualfile',
dataIndex: "properties['FisQualiFile.PrimaryApplicant.accountAcceptanceTxt']",
type: 'text',
link: {
dataIndex: "properties['FisQualiFile.PrimaryApplicant.htmlReport']",
type: 'html',
},
},
],
},
{
label: 'TIN Check',
properties: [
{
label: 'TIN verification',
dataIndex: [
"properties['TINCheckResult.Primary.result']",
"formDataMap['TINCheckResult.Primary.result']",
],
type: 'text',
link: {
dataIndex: [
"properties['TINCheckSOAPReponse.Primary.result']",
"formDataMap['TINCheckSOAPReponse.Primary.result']",
],
type: 'xml',
},
},
],
},
{
label: 'Threat Metrix',
properties: [
{
label: 'Score',
dataIndex: [
"properties['ThreatMetrixScore.PrimaryApplicant']",
"formDataMap['ThreatMetrixScore.PrimaryApplicant']",
],
type: 'number',
},
{
label: 'Decision',
dataIndex: [
"properties['ThreatMetrixDecision.PrimaryApplicant']",
"formDataMap['ThreatMetrixDecision.PrimaryApplicant']",
],
type: 'text',
link: {
dataIndex: [
"properties['ThreatMetrixQueryResponse.PrimaryApplicant']",
"formDataMap['ThreatMetrixQueryResponse.PrimaryApplicant']",
],
type: 'json',
},
},
{
label: 'Risk rating',
dataIndex: [
"properties['ThreatMetrixRiskRating.PrimaryApplicant']",
"formDataMap['ThreatMetrixRiskRating.PrimaryApplicant']",
],
type: 'text',
},
],
},
],
},
$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',
},
},
$taskId: {
label: 'Task ID',
icon: 'FontDownloadOutlined',
dataIndex: 'trackingCode',
type: 'text',
sorter: false,
filter: {
type: 'input',
},
},
$product: {
label: 'Product',
icon: 'WorkOutlineOutlined',
columnWrap: false,
dataIndex: ['job.name', 'formName'],
type: 'text',
sorter: false,
filter: {
type: 'input',
},
},
$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: 'duration',
sorter: true,
filter: {
type: 'datepicker',
options: {
minDate: date('1 month ago'),
maxDate: date('now'),
},
},
},
$assigned: {
label: 'Assigned to',
icon: 'AccountCircleOutlined',
dataIndex: 'userLoginName',
type: 'text',
sorter: true,
filter: {
type: 'multiselect',
options: [
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
],
},
},
$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: 'datepicker',
options: {
minDate: date('1 month ago'),
maxDate: date('now'),
},
},
},
$appLastModified: {
label: 'Last modified',
icon: 'LastModified',
dataIndex: 'job.timeLastModified',
type: 'date',
format: 'datetime',
sorter: false,
filter: {
type: 'daterangepicker',
options: {
minDate: date('1 month ago'),
maxDate: date('now'),
},
},
},
$formLastModified: {
label: 'Last modified',
icon: 'LastModified',
dataIndex: ['timeUserLastModified'],
type: 'date',
format: 'datetime',
sorter: true,
filter: {
type: 'daterangepicker',
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']"],
parse: 'YYYY-MM-DD',
type: 'date',
sorter: false,
filter: {
type: 'datepicker',
},
},
$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',
format: 'datetime',
sorter: true,
filter: {
type: 'daterangepicker',
options: {
minDate: date('1 month ago'),
maxDate: date('now'),
},
},
},
$appCreated: {
label: 'App created',
dataIndex: 'timeCreated',
type: 'date',
format: 'datetime',
sorter: true,
filter: {
type: 'daterangepicker',
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'],
},
},
$beneficiary: {
label: 'Beneficiary',
icon: 'InfoTwoTone',
type: 'list',
properties: [
{
label: 'Type',
dataIndex: ["properties['BeneficiaryType']", "formDataMap['BeneficiaryType']"],
type: 'text',
},
{
label: 'Name',
dataIndex: ["properties['BeneficiaryName']", "formDataMap['BeneficiaryName']"],
type: 'text',
},
{
label: 'SSN #',
dataIndex: ["properties['BeneficiarySSN']", "formDataMap['BeneficiarySSN']"],
type: 'text',
},
{
label: 'Email',
dataIndex: ["properties['BeneficiaryEmail']", "formDataMap['BeneficiaryEmail']"],
type: 'text',
},
{
label: 'Date of Birth',
dataIndex: ["properties['BeneficiaryDOB']", "formDataMap['BeneficiaryDOB']"],
type: 'text',
},
{
label: 'Phone #',
dataIndex: ["properties['BeneficiaryPhone']", "formDataMap['BeneficiaryPhone']"],
type: 'text',
},
],
},
$emailed: {
label: 'Email Sent',
icon: 'InfoTwoTone',
type: 'list',
dataSource: "properties['Emailed']",
properties: [
{
label: 'Date sent',
dataIndex: 'dateAttempted',
type: 'date',
format: 'datetime',
},
{
label: 'Info',
dataIndex: 'name',
type: 'text',
},
{
label: 'Delivery status',
dataIndex: 'emailSent',
type: 'text',
},
{
label: 'Content',
link: {
dataIndex: 'emailContent',
type: 'html',
encoding: 'base64',
},
},
],
},
$applicantValidations: {
label: 'Applicant validations',
icon: 'VerifiedUserTwoTone',
type: 'table',
dataSource: "properties['GenericContent']",
properties: [
{
label: 'Type',
dataIndex: 'type',
type: 'text',
},
{
label: 'View report',
link: {
dataIndex: 'htmlContent',
type: 'html',
encoding: 'base64',
},
},
{
label: 'View JSON',
link: {
dataIndex: 'jsonContent',
type: 'json',
encoding: 'base64',
},
},
{
label: 'View XML',
link: {
dataIndex: 'xmlContent',
type: 'xml',
encoding: 'base64',
},
},
{
label: 'View PDF',
link: {
dataIndex: 'pdfContent',
type: 'pdf',
},
},
],
},
$taskSla: {
label: 'SLA',
dataIndex: "properties['taskSla']",
type: 'alert',
warning: '1 week',
filter: {
type: 'daterangepicker',
options: {
minDate: date('1 month ago'),
maxDate: date('now'),
},
},
},
$primaryApplicantInfo: {
label: 'Primary',
icon: 'SupervisedUserCircleOutlined',
type: 'listStacked',
properties: [
{
label: 'Applicant Name',
dataIndex: "properties['ws.listView.fullName']",
type: 'text',
},
{
label: 'Email',
dataIndex: "properties['ws.listView.email']",
type: 'text',
},
{
label: 'SSN',
dataIndex: ["properties['ws.listView.searchable-ssn']", "properties['ws.listView.ssn']"],
type: 'text',
},
{
label: 'Date of Birth',
dataIndex: "properties['ws.listView.dob']",
parse: 'DD-MM-YYYY',
type: 'date',
},
{
label: 'Full Address',
dataIndex: "properties['ws.listView.fullAddress']",
type: 'text',
},
],
},
$loanApplicationInfo: {
label: 'Loan Application Information',
icon: 'SupervisedUserCircleOutlined',
type: 'listStacked',
properties: [
{
label: 'Loan Product',
dataIndex: ["properties['ws.listView.loanProductName']"],
type: 'text',
},
{
label: 'Loan Application ID',
dataIndex: ["properties['ws.crifAppId']"],
type: 'text',
},
],
},
$coApplicantPersonalInfo: {
label: 'Co-Borrower/Cosigner Personal Information',
icon: 'SupervisedUserCircleOutlined',
type: 'listStacked',
dataSource: "properties['ws.coApplicantJson']",

properties: [
{
label: 'Full Name',
dataIndex: 'fullName',
type: 'text',
},
{
label: 'Email',
dataIndex: 'email',
type: 'text',
},
{
label: 'SSN',
dataIndex: 'ssn',
type: 'text',
},
{
label: 'Date Of Birth',
dataIndex: 'dob',
parse: 'DD-MM-YYYY',
type: 'date',
},
{
label: 'Full Address',
dataIndex: 'fullAddress',
type: 'text',
},
],
},
$coApplicantIntegrations: {
label: 'Co-Borrower/Cosigner Integrations',
icon: 'SupervisedUserCircleOutlined',
type: 'table',
dataSource: "properties['ws.coApplicantIntegrationsJson']",
properties: [
{
label: 'Status',
dataIndex: 'status',
type: 'text',
},
{
label: 'Integration Type',
dataIndex: 'integrationType',
type: 'text',
},
{
label: 'View Extracts',
type: 'text',
link: {
dataIndex: 'extracts',
type: 'json',
},
},
],
},
$jointPersonalInfo: {
label: 'Joint Personal Information',
icon: 'SupervisedUserCircleOutlined',
type: 'listStacked',
dataSource: "properties['ws.jointApplicantsJson']",
properties: [
{
label: 'Full Name',
dataIndex: 'fullName',
type: 'text',
},

{
label: 'Email',
dataIndex: 'email',
type: 'text',
},
{
label: 'SSN',
dataIndex: 'ssn',
type: 'text',
},
{
label: 'Date Of Birth',
dataIndex: 'dob',
type: 'text',
},
{
label: 'Full Address',
dataIndex: 'fullAddress',
type: 'text',
},
],
},
$podPersonalInfo: {
label: 'POD Personal Information',
icon: 'SupervisedUserCircleOutlined',
type: 'table',
dataSource: "properties['ws.podApplicantsJson']",
properties: [
{
label: 'Full Name',
dataIndex: 'fullName',
type: 'text',
},
{
label: 'SSN',
dataIndex: 'ssn',
type: 'text',
},
],
},
$sentEmails: {
label: 'Sent Emails',
icon: 'SupervisedUserCircleOutlined',
type: 'table',
dataSource: "properties['ws.sentEmailsJson']",
properties: [
{
label: 'Email Name',
dataIndex: 'emailName',
type: 'text',
},
{
label: 'Recipients',
dataIndex: 'recipients',
type: 'text',
},
{
label: 'Date Sent (EST)',
dataIndex: 'dateSent',
type: 'text',
},
{
label: 'Delivery status',
dataIndex: 'status',
type: 'text',
},
{
label: 'Email Content',
type: 'text',
link: {
dataIndex: 'emailBody',
type: 'html',
encoding: 'base64',
},
},
],
},
$requiredDocumentsInfo: {
label: 'Required Documents',
icon: 'SupervisedUserCircleOutlined',
type: 'table',
dataSource: "properties['ws.docKeysJson']",
properties: [
{
label: 'Name',
dataIndex: 'userDescription',
type: 'text',
},
{
label: 'Example Documents',
dataIndex: 'description',
type: 'text',
},
],
},

$primaryApplicantIntegrations: {
label: 'Joint Personal Information',
icon: 'SupervisedUserCircleOutlined',
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'],
},
dataSource: "properties['ws.dataSource.primaryApplicant']",
properties: [
{
label: 'Applicant History',
properties: [
{
label: 'Credit Union History',
dataIndex: "applicantDecision['status']",
type: 'text',
link: {
dataIndex: "applicantDecision['rawResponse']",
type: 'json',
},
},
{
label: 'Product Eligibility',
dataIndex: "productEligibility['status']",
type: 'text',
link: {
dataIndex: "productEligibility['rawResponse']",
type: 'json',
},
},
],
},
{
label: 'Identity Verification',
properties: [
{
label: 'Device Assessment',
dataIndex: "deviceAssessment['status']",
type: 'text',
link: {
dataIndex: "deviceAssessment['rawResponse']",
type: 'json',
},
},
{
label: 'Instant Id',
dataIndex: "instantId['status']",
type: 'text',
link: {
dataIndex: "instantId['rawResponse']",
type: 'json',
},
},
{
label: 'Ofac',
dataIndex: "ofac['status']",
type: 'text',
link: {
dataIndex: "ofac['rawResponse']",
type: 'json',
},
},
{
label: 'Fraud Point',
dataIndex: "fraudpoint['status']",
type: 'text',
link: {
dataIndex: "fraudpoint['rawResponse']",
type: 'json',
},
},
{
label: 'Email Risk',
dataIndex: "emailRisk['status']",
type: 'text',
link: {
dataIndex: "emailRisk['rawResponse']",
type: 'json',
},
},
{
label: 'Instant Id Qa',
dataIndex: "instantIdQa['status']",
type: 'text',
link: {
dataIndex: "instantIdQa['rawResponse']",
type: 'json',
},
},
],
},
{
label: 'Deposit Account History',
properties: [
{
label: 'Early Warning',
dataIndex: "ews['status']",
type: 'text',
link: {
dataIndex: "ews['rawResponse']",
type: 'xml',
},
},
],
},
],
},
},
});

export default globalConfig;

Attributes

To review the list of supported attributes, see API Reference.