Skip to content

Automate force-placed insurance notices and discrepancy review

Verified against source (10)

  • mortgage/InsurancePolicy.cs
  • mortgage/InsurancePolicy.Fields.cs
  • process/Process.cs
  • process/ProcessTemplate.cs
  • Properties/Settings.settings
  • Process/ProcessTemplate.Edit.xslt
  • Decision/DecisionStepTemplate.IfThen.xslt
  • Decision/DecisionStepTemplate.Polling.xslt
  • Decision/Decision.Dashboard.xslt
  • Application/BatchApply.Popup.xslt

Lender-placed (force-placed) hazard and flood coverage comes with two obligations. Notices must go to the borrower in the right order, with the right wording, after the right waiting periods. And your policy data has to match your lender client’s loan data, or premiums, coverage, and cancellations go wrong.

In this walkthrough you build both halves in QBO:

  • Tracking: each imported policy opens a tracking process. A rules matrix picks the notice workflow, the workflow generates the notices and waits between them, and the client gets an email when tracking is complete.
  • Discrepancy review: a second workflow compares your data with the client’s and puts every mismatch in a worklist for a person to resolve.

Power users who configure imports, process templates, and workflows for a force-placed insurance operation, whether at a carrier, an agency, or a servicer’s insurance-tracking team.

Go to Templates > Processes and create a template:

Setting Value
Process Template Force-Placed Tracking
Sibling InsurancePolicy
Statuses Custom: Tracking, Coverage Proven, Placed, Cancelled (mark the last three final)
Workflow Matrix (step 3)
Behavior Close process when entering a final status: Yes. Cancel workflows when closed: All.

Setting Sibling to InsurancePolicy makes each insurance policy record a tracking process in its own right, so the policy carries the workflow, documents, and status directly. When a policy is saved without a template, and exactly one process template names InsurancePolicy as its sibling, QBO assigns that template automatically. That’s what lets an import create fully configured tracking processes without a template column in the file.

Drag the client’s sample file onto the import templates search results. QBO creates an import template and a mapping for each column. Then set:

Setting Value
Engine BatchReader
Applies to InsurancePolicy
Subscriber URN A pattern built from the client’s identifier, such as acme.example-Policy-{Policy Number}, so a later file updates the same policies instead of duplicating them

Map the client’s columns to the policy fields: Insurance Policy, Effective Date, Expiration Date, Coverage, Premium, Flood Zone, and so on, and map the loan identifier so each policy attaches to its loan. Columns that don’t match a policy field are still saved with the policy. Keep the client’s version of values you’ll reconcile, such as their coverage amount, as separately named columns (for example ClientCoverage), so step 5 can compare them.

Import the file. Each row saves a policy, which opens a Force-Placed Tracking process and starts its workflow.

3. Choose the notice workflow with a matrix

Section titled “3. Choose the notice workflow with a matrix”

Flood and hazard placements, or different states, often need different notice sequences. On the template’s Workflow Matrix tab, add inputs such as State (List) and Flood Zone (String), each with an XPath to the value in the policy’s data, and an output DecisionTemplate naming the workflow:

State Flood Zone DecisionTemplate
A% Flood Notice Sequence
V% Flood Notice Sequence
Hazard Notice Sequence

% is a wildcard, so A% matches zones A, AE, AH, and AO. Add state-specific rows above these with a higher weight on State when a state’s sequence differs.

Create a workflow template Flood Notice Sequence that applies to InsurancePolicy, open its Workflow Steps panel, and add steps from the New menu:

# Step Configuration
1 Generate a Document: Initial Notice Matrix that returns a TemplateName by state, so each borrower gets the right wording
2 Add a Polling Step: Wait for Response Condition: proof of coverage recorded on the policy. Duration and Reference Date set the waiting period, measured from a date on the policy if needed.
3 Add an If/Then Statement: Coverage Proven? Compares the proof-of-coverage field on the policy
4a Send a Message (When True) Notifies the client that coverage was proven. On Complete sets the process status to Coverage Proven.
4b Generate a Document: Second Notice (When False) Followed by another polling step and if/then for the second waiting period
5 Send a Message: Tracking Complete Emails the client the outcome. Put its dependencies on both branches in the same group number, so it runs after whichever branch finished.

Polling steps re-check their condition on a schedule until it’s true, which is how a workflow waits for data or for time to pass without anyone watching a calendar. If/then conditions are built from the policy’s fields with =, <, <=, >, >=, !=, or contains, joined with and or or. Steps on a branch that isn’t taken are never created.

Create a second workflow template, Discrepancy Review, that applies to InsurancePolicy:

  1. Add an If/Then Statement Data Matches?, comparing your values with the client’s: for example Coverage != ClientCoverage or ExpirationDate != ClientExpirationDate. True here means a mismatch.
  2. Add a Task Resolve Discrepancy, depending on the if/then with When set to True, and set its Team to your discrepancy team.
  3. Send a Message Discrepancy Resolved, depending on the task, to tell the client what changed.

Give the Resolve Discrepancy task template its own worklist with Create a Worklist, assigned to the discrepancy team. See Worklists.

6. Run discrepancy review across the portfolio

Section titled “6. Run discrepancy review across the portfolio”

Search for the policies to check, such as everything imported this week for one client. Select them (or choose All Matching Records), click Batch Apply, set Operation to New Workflow, and choose Discrepancy Review. Check Include audit trail and give the batch a name, so each policy’s result is tracked and you can find the batch later. Check Schedule to run the batch on a schedule instead of immediately.

  • The Workflow Dashboard counts workflows by the dimension you choose from its menu, such as workflow template or status, and By Errors counts steps that failed. Click a row to list those workflows.
  • The discrepancy team pulls items from their worklist with Get Next Item. Each item opens the task for one policy, and completing it clears the item.
  • Each policy’s Documents panel holds every notice generated for it, and its messages hold every email sent.

Every policy in the client’s file gets a tracking process, the right notice sequence for its state and flood zone, letters generated and spaced out on schedule, and an email to the client when tracking is done, all without manual follow-up. Data mismatches stop being something found during a cancellation dispute and become a worklist your team clears every cycle.

  • Add a score to grade each client file’s data quality before tracking starts.
  • Give the lender client access to their own policies and notices through partner security. See Cases.
  • See how insurance teams use QBO on QBO for insurance.