CRM Integration with Dynamic Application

High Level Overview

When setting up an integration between a CRM system and Sageworks with Dynamic Application, the opportunity is expected to start in the CRM environment. Once a business decides the opportunity has reached a point in which it can be sent to Sageworks, the following steps may be leveraged to complete that process.

  1. Verify what products are available
  2. Check for the customer in Sageworks
  3. Create a new customer (if necessary)
  4. Start the application

Verify what products are available

The proposed products are the different types of application an institution uses. This step is only required when setting up an integration or if there is a reason to get an updated list of proposed products.

GET/v1/proposed-products can be leveraged to see the full list of proposed products.

{
    "items": [
        {
            "id": 120,
            "name": "7(a)",
            "customerFacingName": "Seven A",
            "paymentType": "fixedPayment",
            "rateSheetsId": 1,
            "calculateEvaluatedCreditScore": false,
            "evaluatedCreditScoreCreditBureaus": [],
            "creditBureauSelectionStrategy": null,
            "loanRoleSelectionStrategy": null,
            "applicationTypes": [
                "sba"
            ],
            "evaluatedCreditScoreLoanRoleTypes": [],
            "applicationTemplates": [
                {
                    "id": 561,
                    "name": "Post New Forms 7(a)",
                    "active": true,
                    "type": "sba",
                    "proposedProducts": null
                }
            ]
        },
        {
            "id": 436,
            "name": "Business App 3",
            "customerFacingName": "Test 3",
            "paymentType": "fixedPayment",
            "rateSheetsId": null,
            "calculateEvaluatedCreditScore": false,
            "evaluatedCreditScoreCreditBureaus": [],
            "creditBureauSelectionStrategy": null,
            "loanRoleSelectionStrategy": null,
            "applicationTypes": [
                "business"
            ],
            "evaluatedCreditScoreLoanRoleTypes": [],
            "applicationTemplates": []
        },
   ]
}  

Check for customer in Sageworks

There are a few methods in which an institution can organize their borrowers between a core system, a CRM system and Sageworks. The uniqueIdentifier field is primarily reserved for the core system unique identifier. crmidentifier is generally leveraged for the unique identifier generated by the CRM system. Additionally the Sageworks ID can be directly searched.

  • GET/v1/customers has an available filter for unique identifier
  • GET/v1/customers/{id}
  • GET/v1/customers/crm-identifier/{crmIdentifier}
{
  "id": 85828479,
  "name": "Doe, John",
  "dba": null,
  "firstName": "John",
  "middleInitial": "",
  "lastName": "Doe",
  "nameSuffix": "",
  "userDefinedFields": null,
  "creditScore": 0,
  "secondaryCreditScore": 0,
  "businessType": null,
  "dnbScore": null,
  "namePrefix": "",
  "jobTitle": "",
  "addresses": [
    {
      "line1": "123 Ok Ave",
      "line2": "",
      "city": "Winnetka",
      "state": "CT",
      "postalCode": "40098",
      "country": "US",
      "addressType": "primary"
    }
  ],
  "phoneNumbers": [
    {
      "type": "primary",
      "number": "1234445555"
    }
  ],
  "type": "person",
  "emailAddress": "[email protected]",
  "industryCode": null,
  "isDeleted": false,
  "uniqueIdentifier": "",
  "taxId": "999-99-9999",
  "branch": "",
  "department": "",
  "website": "",
  "description": null,
  "restricted": false,
  "checkingBalance": 0,
  "savingsBalance": 0,
  "cDsBalance": 0,
  "averageChecking": 0,
  "averageSavings": 0,
  "averageCDs": 0,
  "citizenshipStatus": null,
  "maritalStatus": null,
  "isActiveMiltaryDuty": null,
  "isDependentOfActiveMiltaryDuty": null,
  "civDescription": null,
  "employer": "",
  "numberOfYearsEmployed": 0,
  "ofacDesignation": "",
  "dateOfBirth": "2021-11-02",
  "idDescription": null,
  "idNumber": null,
  "idIssueDate": null,
  "idExpirationDate": null,
  "idIssuingAuthority": null,
  "comments": "",
  "msa": null,
  "stateCode": null,
  "countyCode": null,
  "tractCode": null,
  "longitude": null,
  "latitude": null,
  "medianHouseholdIncome": null,
  "metropolitanDivision": null,
  "metropolitanDivisionCode": null,
  "loanOfficer": null,
  "loanOfficerId": null,
  "loanAdministrator": null,
  "equifaxCreditScore": null,
  "equifaxCreditScoreDate": null,
  "experianCreditScore": null,
  "experianCreditScoreDate": null,
  "transunionCreditScore": null,
  "transunionCreditScoreDate": null,
  "ficoSbssCreditScore": null,
  "ficoSbssCreditScoreDate": null,
  "bankruptcies": null,
  "dateOfLastBankruptcy": null,
  "historical30DayDelinquencies": null,
  "historical60DayDelinquencies": null,
  "historical90DayDelinquencies": null,
  "historicalOtherDelinquencies": null,
  "currentMortgagePastDue": null,
  "currentInstallmentPastDue": null,
  "currentAutoPastDue": null,
  "currentEducationPastDue": null,
  "currentOpenPastDue": null,
  "currentRevolvingPastDue": null,
  "currentOtherPastDue": null,
  "currentTotalPastDue": null,
  "entryMethod": "operatingCompany",
  "professionalLLC": null,
  "yearFounded": 0,
  "businessRegistered": null,
  "farmRegistered": null,
  "stateOfFormation": null,
  "franchiseName": null,
  "franchiseLegalName": null,
  "franchiseStartDate": null,
  "sbaCode": null,
  "cityHQ": null,
  "stateHQ": null,
  "franchiseDataImportDate": null,
  "franchiseDataFinancialPeriod": null,
  "historicalSuccessRate": null,
  "systemSupportAndExpenseCommitment": null,
  "resaleActivityLevel": null,
  "mngmtExperienceStability": null,
  "averageUnitRevenueGrowth": null,
  "prospectScreening": null,
  "unitEconomics": null,
  "franchiseAgreementAssessment": null,
  "franchiseeRelationship": null,
  "projectedUnitSuccess": null,
  "recurringRevenueSelfSufficiency": null,
  "totalFundScore": null,
  "finStatementStrength": null,
  "franchisedUnits": null,
  "minInitial": null,
  "maxInitial": null,
  "avgInitial": null,
  "companyOwnedUnits": null,
  "projectedOpenings": null,
  "compoundAnnualUnitGrowthRate": null,
  "compoundedUnitSuccessRate": null,
  "experianDBT": null,
  "equifaxDBT": null,
  "dbdbt": null,
  "dbPaydex": null,
  "ansoniaCreditRating": null,
  "ansoniaRiskScore": null,
  "creditLogicScore": null,
  "dbViabilityRating": null,
  "lastReportRun": null,
  "bankruptciesCount": null,
  "collectionsCount": null,
  "judgmentsCount": null,
  "chargeOffsCount": null,
  "liensCount": null,
  "nsfChecksCount": null,
  "dataDepthScore": null,
  "underFormation": null,
  "dateBusinessEstablished": null,
  "loanBoardingIdentifier": null,
  "crmIdentifier": null
}

Create a new customer (if necessary)

If the customer cannot be found in Sageworks using the primary method of organization, the customer may be generated using POST/v1/customers. It is recommended to add all known identifier data such as the uniqueIdentifier and crmIdentfier. It is also recommended to add the Sageworks unique ID into the CRM system for an additional layer of identification.

Start the application

To start the application, POST/v1/dynamic-application/start-dynamic-application/start-application is leveraged. This starts and connects the application to as many proposed products as necessary. Each proposed product generates a proposed loan.

 { 
	"bankCustomerUsersId": 0, 
  "crmIdentifier": "123456",
  "origin": 'Internal',
	"proposedLoans": [
		{ 
		"customerId": 85828479, 
		"crmIdentifier": "123456",
    "loanAmount": 1000, 
		"paymentType": 'fixedPayment',
		"loanName": 'testLoan', 
		"purposeCode": "string", 
		"loanTerm": 10,  
		"interestRate": 0, 
		"paymentAmount": 0, 
		"paymentFrequency": "annual", 
		"loanBoardingIdentifier": "1234", 
		"roles": [ 
			{
			"customerId": 85828479, 
			"isDeleted": false, 
			"percentResponsible": 0.9234, 
			"roleType": "Guarantor" } 
				], 
		"proposedProductID": 1212 }
		]
	}
{
    "applicationId": 1113649,
    "proposedLoanData": [
        {
            "proposedLoanId": 2128776,
            "proposedProductId": 1212
        }
    ]
}