Blueprints

High flexibility with no code

What is a Blueprint?

A blueprint is a set of instructions in JSON format, which create the entire Borrower journey and question flow. With the universal flexibility of blueprints, we can create any imaginable application flow for multiple financial industries.

Each site under a partner can have its own blueprint, so under one hood you may run multiple sites with very different logic and application flows.

A blueprint determines:

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

  • The logic that determines what questions and input fields are displayed based on previous answers,

  • Which sagas to run when a task is completed,

  • What custom data validations to run for each field.

Blueprint Editor

As the complexity of an application flow increases, so does the blueprint JSON structure. For that reason, we have hidden that complexity behind a powerful Blueprint Editor UI. For the time-being the Blueprint Editor is only available to our internal implementations 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