poserver
v1.1.31
Published
Server for JD Bot
Downloads
60
Maintainers
Readme
tjd-poserver
Server for Protective Order Bot
This is a bot server using the Microsoft Bot Server Framework for NodeJs. It is a bot that will
See if it recognizes the user. If so, it will load a userProfile object from a MongoDB instance. If it does not recognize the user as a returning user, it will prompt the user for some basic profile data and save the user's profile.
Ask the user what the user needs, e.g. Family Violence Protective Order, QDRO, Original Answer.
Value-Add
The societal value proposition for this bot vs. a fill-in-the-blank PDF is that it asks the user for details about what's going on and then, based on experience, guides the user to the proper legal action (or inaction as the facts and law may be). For example, rather than ask "Do you want sole managing conservatorship or joint managing conservatorship?" it asks the user about parenting duties, experience in co-parenting, availability of both parents, etc. and then makes a recommendation. If we're going to replace the lawyers with bots, the bots have to be smarter than a fill-in-the-blank form.
Rather than ask the user to create a proposal for dividing marital assets, it produces a better proposal than most attorneys are capable of and does it in about 300 milliseonds.
The commercial value proposition is that it will channel otherwise non-fee-generating, self-represented litigants to the attorneys who want to subscribe to review more complex documents. The clients will pay a lot less than they would have with full service representation. The attorneys will make a lot less per client, but will have a lot more clients.
This same model, implemented by others and operating within a more complicated regulatory context, will have a similar effect on doctors for whom their practice mostly consists of office visits. E.G. my cariologist could be replaced by a bot and a vending machine that scans insurance cards with only about a weekend's worth of work by a distracted programmer.
Implementation
It implements a library of dialogs that the user traverses under the guidance of a state machine. It uses Google's geolocation rest service to validate addresses. It uses recognition rules to determine the type of court and court number from a combination of county and cause-number inputs. The recognition rules provide for the translation of the court number from a coded value (e.g. "Z" in Dallas County) to an actual court number (Z = "256th" in Dallas County). If there are no recognition rules for the particular county+cause combination or if the user insists on typing in an unrecognizable cause number where we do have recognition rules, then the user is prompted for the type of court and the court designation or number.
Contextualized Information Gathering
One of the principals behind the bot's design is that people may not want to disclose a ton of personal information right away. For that reason, it gets started with the barest essential information then asks for more as it needs more. This gives the user an understanding of why the user is being asked certain questions. As the bot knows more about the user, it asks fewer and fewer questions.
Remember
This is not just a channel into the human sales force or an order page. It is designed to completely satisfy the legal needs of about 20% of all litigants. With the implementation of the attorney review channel, this bot will serve the full legal needs of 25% to 50% of all litigants and free up a huge number of attorneys to go do something useful besides fill out forms.
External Services Used
- Google.com to validate street addresses and lookup counties.
- Stripe.com to handle credit card payments.
- Authy.com for SMS-based 2FA.
- Mongodb for document storage.
- Microsoft Botbuilder API to handle the interaction between the client application and my server code.
- Microsoft LUIS applications to handle conversational "menu" and navigation intents (e.g. "go back").