Skip to content

Fulfill valuation orders with a network of validated brokers

Verified against source (15)

  • mortgage/Valuation.cs
  • mortgage/Valuation.Fields.cs
  • Config/Valuation.config
  • Config/Broker.config
  • mortgage/Property.cs
  • mortgage/app.config
  • Config/Setup.MortgageChild.xml
  • Config/Setup.ContactFilter.xml
  • Config/ObjectAccess.config
  • decision/DecisionStep.cs
  • decision/Decision.cs
  • message/Message.cs
  • process/ProcessTemplate.Fields.cs
  • Process/ProcessTemplate.Edit.xslt
  • Configuration/SqlPattern.cs

A valuation order (a broker price opinion or similar) arrives with a loan number and a property address. Someone has to find a broker who covers that address, get them to accept, collect their findings, and deliver a report, usually by phone and email, with the status living in someone’s inbox.

In this walkthrough you configure QBO to run that process. Imported orders start a workflow that checks the address, grants access and emails validated brokers who cover the property, assigns the order to the first broker who accepts, collects their results in a task, and generates the report as a PDF. Processors and brokers work from worklists; managers watch the pipeline from dashboards.

Power users who configure templates and workflows for a valuation desk. Brokers and processors only see the result: worklist items and tasks.

  • Validated brokers. This walkthrough solicits only brokers tagged Validated, each with its coverage areas (Geography) and at least one user. Set up broker onboarding and validation first: see Onboard and validate a broker network from a spreadsheet.
  • Address normalization for properties (step 8), so new properties are geocoded with latitude and longitude.
  • Your form layouts for the broker’s findings, and a Word template for the valuation report.
  • Permission to create message, task, document, workflow, process, and import templates.
  • Imports: loading valuation orders from a spreadsheet
  • Cases: the valuation process and its template
  • Workflow: orchestrating validation, solicitation, assignment, and fulfillment
  • Forms: tasks for property validation, broker acceptance, and fulfillment
  • Messaging: solicitation emails
  • Document Management: the valuation report
  • Security: giving each broker access to the orders they’re offered, and nothing else
  • Worklists: where brokers and processors pick up their work

Build the templates in this order, because later templates refer to earlier ones.

From Templates > Messages, add an HTML message template:

Setting Value
Name Valuation Solicitation
Applies To Valuation
Subject New Valuation available for {//PropertyItem[1]/Address} {//PropertyItem[1]/City} {//PropertyItem[1]/State} {//PropertyItem[1]/PostalCode}
Body (HTML) Please log in to <a href="{BaseUrl}">{BaseUrl}</a> and open your new "Valuation Solicitation" worklist item.

The braces are merge fields: XPath expressions evaluated against the valuation’s data, which includes its property. See Messaging.

From Templates > Tasks, add three task templates, each applying to Valuation:

Task template Who completes it Purpose
Property Validation Processor Correct an address that couldn’t be geocoded, so coverage can be matched.
Valuation Solicitation Broker The broker accepts the order. Whoever completes it gets the order.
Valuation Fulfillment Broker The broker’s findings.

Lay out each form with the GUI Designer on the task template’s summary page. On Valuation Fulfillment, use the State Diagram to enforce the review loop: the broker submits for review, and the processor either approves or sends it back for corrections. See Forms.

From Templates > Documents, add a PDF document template named Valuation Results, applying to Valuation, using the Aspose Words generator with your Word template. Merge fields pull from the valuation, its property, and the completed fulfillment task. See Document Management.

From Templates > Workflows, create a workflow template:

  • Workflow Template: Valuation Solicitation
  • Applies To: Valuation
  • Repeatable: One active per parent

Add these steps:

Step Type Configuration Depends on
Missing Lat/Lon? If/Then Statement Condition: count(//PropertyItem[1]/Latitude) = 0 or count(//PropertyItem[1]/Longitude) = 0
Property Validation Task Add a Task Template: Property Validation Missing Lat/Lon? (True)
Broker Access Advanced Step For each broker the search returns, grant access (see below). Missing Lat/Lon? (False) or Property Validation Task (same group)
Broker Solicitation Advanced Step For each broker not yet solicited, send the email (see below). Broker Access
Valuation Solicitation Task Add a Task Template: Valuation Solicitation Broker Access
Broker Acceptance Advanced Step Assign the order to the broker who accepted (see below). Valuation Solicitation Task

Putting both dependencies of Broker Access in the same group makes them alternatives: the step starts after either branch finishes. See Dependencies.

Broker Access searches for brokers and grants each one access to this valuation. Its data source is a broker search, limited to ten brokers at a time:

Broker/Search?SqlFilters=Tag,GeographyCoverage,HasNoAccess&Tag=Validated&HasNoAccessObject=Valuation&HasNoAccessObjectID={//ValuationID[1]}&Address={//Address[1]}&City={//City[1]}&State={//State[1]}&PostalCode={//PostalCode[1]}&Latitude={//Latitude[1]}&Longitude={//Longitude[1]}&DisplaySize=10

and its operation, run once per broker returned, is:

ObjectAccess/ObjectAccessInsert?ID={//ValuationID[1]}&Object=Valuation&GroupObject=Broker&GroupObjectID={BrokerID}
  • Tag limits the search to brokers tagged Validated.
  • GeographyCoverage keeps brokers whose coverage areas include the property and none of whose exclusions do. It matches on city, postal code, county, state, and driving distance from the property’s latitude and longitude, which is why the address must be geocoded first. The standard configuration defines this filter for contacts; add the same filter to the Broker module, where broker coverage areas are stored.
  • HasNoAccess is a search filter you add to the Broker module: brokers who don’t already have access to the given object. It isn’t part of the standard configuration.

Broker Solicitation emails each broker who has access but hasn’t been solicited yet. Its data source is:

Broker/Search?SqlFilters=NotSolicited&NotSolicitedObject=Valuation&NotSolicitedObjectID={//ValuationID[1]}&NotSolicitedTemplate=Valuation Solicitation

and its operation is:

Message/Send?Template=Valuation Solicitation&Object=Valuation&ObjectID={//ValuationID[1]}&ToAddress={Email}

NotSolicited is also a filter you define on the Broker module: brokers with access who haven’t been sent the given message template for this object.

Broker Acceptance runs when a broker completes the solicitation task. Its operation is:

Valuation/BrokerAccept?ID={//ValuationID[1]}&AcceptedPersonID={//ImportFormItem[ImportFormTemplate='Valuation Solicitation']/UpdatedPersonID}

BrokerAccept sets the valuation’s broker to the broker that the accepting user belongs to, then removes access for every other broker. The order disappears from their worklists.

Create a second workflow template, Valuation Fulfillment, applying to Valuation:

Step Type Template Depends on
Solicitation Workflow Launch a Workflow Valuation Solicitation
Fulfillment Task Add a Task Valuation Fulfillment Solicitation Workflow
PDF Document Generate a Document Valuation Results Fulfillment Task

A child workflow step completes when the child workflow does, so fulfillment starts once a broker has accepted.

From Templates > Processes, add a process template:

Setting Value
Process Template Valuation Fulfillment
Applies To Loan
Sibling Valuation
Workflow Template: Valuation Fulfillment

Sibling makes each process a valuation, with valuation fields such as the assigned broker. To vary the workflow by client, product, or region, set Workflow to a matrix that returns a DecisionTemplate instead. A Ledger matrix can price each order the same way. See Cases.

From Templates > Import Files, add an import template:

  • Applies To: Loan
  • Import Engine: BatchReader

Add these mappings:

Source Destination Translation Required Text
LoanNumber Loan Yes No
SubscriberID SubscriberID Loan-Servicer-{Loan}-{Servicer_Organization} No No
Servicer Servicer_Organization Yes No
Servicer_SubscriberID Servicer_SubscriberID Servicer-{Servicer_Organization} No No
Address Property_Address Yes No
City Property_City Yes No
State Property_State Yes No
PostalCode Property_PostalCode Yes No
Valuation Fulfillment Valuations_0_Template No Yes
ValuationReference Valuations_0_Valuation Yes No
Valuations_0_SubscriberID Valuations_0_SubscriberID Valuation-{Valuations_0_Valuation} No No

The template expects a spreadsheet or CSV with the columns LoanNumber, Servicer, Address, City, State, PostalCode, and ValuationReference.

  • SubscriberID translations give each loan, servicer, and valuation a stable external key, so importing the same order twice updates it instead of duplicating it.
  • Valuation Fulfillment is marked Text, so it’s a fixed value: the process template each new valuation uses.

From Configuration > Modules, open the Property module and, on the Settings tab, set NormalizePropertyOnSave to True. It’s off by default. When it’s on, saving a property matches it to an existing property where possible and geocodes new addresses, which fills in the latitude and longitude that the coverage search relies on. Addresses that can’t be geocoded take the Property Validation branch of the workflow.

Drop an order file on the import template and, for each row, QBO:

  1. creates or updates the loan, servicer, and property, and opens a valuation
  2. routes addresses it couldn’t geocode to a processor for correction
  3. grants access to, and emails, up to ten validated brokers who cover the property
  4. assigns the order to the first broker who accepts, and removes everyone else’s access
  5. collects the broker’s findings through a reviewed task, and generates the PDF report

Each broker sees only the orders offered or assigned to them. Managers see every order’s status, step, and age from the worklist and workflow dashboards.

  • Grade brokers with an audit score on completed fulfillment tasks. See Scoring.
  • Split fulfillment into several tasks with their own durations, so worklists show exactly where each order is waiting. See Worklists.
  • See how valuations, inspections, and title work fit into default servicing on Mortgage Servicing.