Skip to main content

Version: 20.05 (EOL)

Mappings

Mapping is the process of defining how a Txn and the properties it contains are read, sorted, filtered and rendered.

You can use mappings to define:

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

Attributes

For a list of supported attributes, see Reference > GlobalMapping.

Example

Mappings config (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',
hideEmptyFields: 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',
hideEmptyFields: 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;