Blueprints (Borrower workflow editor)

High flexibility with no code

What is a Blueprint?

Much like a new home begins with a blueprint that outlines how the structure takes shape and fits together, Maxwell’s Point of Sale is also built on a blueprint that defines how the borrower and lender workflows are organized.

Just as a home builder can update a blueprint before construction to add or remove features such as a bay window or a walk-in closet, Maxwell’s Blueprint Editor allows new organizations to add or remove workflow elements before going live.

For example, you can decide:

  • Do you want to run credit at the time of application?

  • Do you want to share pricing with borrowers during the application?

  • Do you want to run VOA or VOE inside the POS?

The Blueprint Editor empowers your organization to tailor these workflows so you can design the ideal POS experience for both your team and your borrowers.

How Blueprints work

A blueprint is a structured set of instructions written in JSON format that defines the entire borrower journey and the full question flow. Because blueprints are flexible, they can support almost any application flow used across the mortgage industry..

Each site within a partner organization can have its own blueprint. This means you can manage multiple sites under one partner, each with unique logic, workflows, and application flows.

A blueprint determines:

  • Which tasks are open, locked, or hidden for the borrower

  • The logic that controls which questions and fields appear based on previous answers

  • Which sagas or automated processes run when a task is completed

  • Any custom data validations that apply to each field

Managing your blueprints

As application flows grow more complex, so does the underlying JSON blueprint. To simplify this complexity, Maxwell's implementations team will set up some time to walk through your desired configurations and design the blueprint that is right for your team.

Example Blueprint JSON

Below is a small snapshot of an example blueprint.

// Tasks
[
  {
    // This is a task that our protypical task depends on
    "key": "this_is_task_1",
  },
  {
    // This is a task that our protypical task depends on
    "key": "this_is_task_2",
  },
  {
    // This is a task that our protypical task depends on
    "key": "this_is_task_3",
  },
  {
    // This is a protypical task a single task
    "key": "this_is_how_other_tasks_refer_to_this_task",
    "type": "this_is_an_enumerable_type (QuestionTask, InformationTask, etc.)",
    "meta": {
      "title": "This is the Task's Name in the Database",
      "description": {
        "default": "This is the description of the Task",
        "locked": "This is the description of the Task when locked",
        "open": "This is the description of the Task when open",
      },
    },
    "data": {},
    "transitions": [
      {
        "target_state": "open",
        "condition_statement": {
          {
            "or" : [
              {
                "and" : [
                  { "var" : "task1" },
                  { "var" : "task2" }
                ]
              },
              {
                "and" : [
                  { "var" : "task3" },
                  { "var" : "field1" }
                ]
              },
            ]
          }
        },
        "condition_vars": {
          "task1": "$task.this_is_task_1",
          "task2": "$task.this_is_task_2",
          "task3": "$task.this_is_task_3",
          "field1": "$field.transaction_is_purchase",
        }
      }
    ]
  },
  {
    // This would Represent a single Task
  },
]



// ignore this
transitions: {
  "open": {
    "conditions": [
      conditional
    ]
  }
}
var rules =
{
  "and" : [{
    "<" : [ { "var" : "temp" }, 110 ]
  }, {
    "==" : [ { "var" : "pie.filling" }, "apple" ]
  }]
};

Last updated