department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
282 stars 203 forks source link

[discovery] NOD | Notification capabilities, deadline and decision data #62597

Closed saderagsdale closed 1 year ago

saderagsdale commented 1 year ago

Value Statement

As a developer I want to know what our options are for 1) letting Veterans know the exact decision date of their decision letters, 2) sending notifications to remind Veterans of AMA deadlines, and 3) sending Veterans their decision letters via email. So that we can make it easier for Veterans to submit a NOD in a timely and efficient manner.


Background Context

The team just finished high-level brainstorming and prioritization for NOD, and would like to explore the following use cases:

  1. A Veteran wants to know the exact decision date when adding a new issue.
  2. A Veteran wants to know when their filing deadline is approaching so they can take action.
  3. A Veteran wants to have to have their decision letter delivered via email, because decision letters don't always arrive in the mail.

Out of scope

Open questions

Tasks

Use Case 1: A Veteran wants to know the exact decision date when adding a new issue.

Use Case 2: Veteran wants to know when their filing deadline is approaching so they can take action.

Use Case 3: A Veteran wants to have to have their decision letter delivered via email, because decision letters don't always arrive in the mail.

Other Tasks:

Definition of Ready

Definition of Done

rubensun commented 1 year ago

Some materials that may be relevant to this ticket

* Currently on hold in the short term see VANotify/onsite notifications strategy

data-doge commented 1 year ago

Here are my notes so far, per use case, and per task. @kylesoskin feel free to edit this comment (I think you should be able to edit it?)

Use Case 1: A Veteran wants to know the exact decision date when adding a new issue.

Context: In the NOD form, there is an "add issue" page (pictured below), where a Veteran can manually add an issue that was not present in the list of Lighthouse-provided contestable issues on the previous page. From what I understand, the Veteran's issue could be absent from the previous page because: 1) there was an error with Lighthouse contestable_issues endpoint that we use to fetch issues or 2) Lighthouse doesn't have the issue in their system yet. It may also be possible that the contestable_issues endpoint we're using is only returning disability-related issues.

image

Task 1: Figure out how to supply Veterans with the exact decision date of their decisions.

If a Veteran is adding an issue manually, they need to know the exact decision date of the decision on their issue. The first question is whether we could expect the contestable_issues, when working, to return a full list of disability and non-disability issues. If so, then we might consider modifying the UX around contestable_issues endpoint failures (see related: https://github.com/department-of-veterans-affairs/va.gov-team/issues/62872), to encourage the veteran to come back and try again later, rather than manually add their issue. Just a thought. But if it turned out that the contestable_issues endpoint, when working, could only return disability-related issues, then we would have to look elsewhere for non-disability-related issues. We might be able to get that information from the claim status tool, in which case we could link Veterans to it. But if it turned out that the claim status tool had all the data we needed, then we would want to rely on it, instead of the contestable_issues endpoint, alone, on the issues page in NOD. It might make sense to always include a link to the claim status tool on the "add issue" page to handle cases where the contestable_issues endpoint isn't working.

Next Steps

Addition from Kyle:

<kyle> Figure out whether thecontestable_issuesendpoint returns all issues, or just disability-related issues. It can return

It can return them all (or at least more than just disability, I am not sure if it is exhaustive of all types of issues), but not all in 1 request, each must be asked for individually.

{
    "errors": [
        {
            "title": "Unprocessable Entity",
            "code": "unprocessable_entity",
            "detail": "benefit_type must be one of: compensation, pensionSurvivorsBenefits, fiduciary, lifeInsurance, veteransHealthAdministration, veteranReadinessAndEmployment, loanGuaranty, education, nationalCemeteryAdministration",
            "status": "422"
        }
    ]
}

The request we currently make is for benefit_type=compensation. I am not sure what all that covers and/or what additional ones we need to call/support for HLR? All of them? I have no idea that is probably a research question. </kyle>

Use Case 2: Veteran wants to know when their filing deadline is approaching so they can take action.

Context: After a decision is made on a claim, Veterans have 90 days to file an NOD. We want to send email and SMS reminders about this deadline.**

Task 2: Figure out how we might send email and SMS notifications to Veterans.

VANotify appears to be the way to send email, SMS, (and push), notifications to Veterans. They have a lot of great documentation. Good reading:

To use VANotify, we would follow the steps in the playbook linked above. Notably, VANotify's 2023 roadmap contemplates "add[ing] support for Twilio notification status callbacks," that I presume would allow us to handle failed SMS deliveries. An open question I have is whether we would need VANotify to obtain a new short-code phone number for us. I'm guessing we could just use the same short-code phone number that I presume is shared by all of VA.gov. If we couldn't, then it could take up to 3 months to obtain a shortcode phone number.

Next Steps

Addition from Kyle:

<kyle>

I think both these are premature. We know we can use VA notify in one way or another to contact the veteran. The context of this point, or the first overview of it is:

After a decision is made on a claim, Veterans have 90 days to file an NOD. We want to send email and SMS reminders about this deadline.**

We need to first figure out if and how we know what the deadline is to even be able to notify the vet at that point. Figuring out how we contact them before figuring out if we can even know when we need to contact them seems like getting ahead of ourselves. We know VA notify can be used in one way or another. We do not know that we can easily or reliably figure out when deadlines are (and therefore, 90 days from them). </kyle>

Task 3: Figure out how we might schedule such notifications to be run at a future date.

Reminders need to be scheduled, so this is something we need to figure out. This is might be pretty tricky. Here are some options:

Option 1: VA Event Bus

There is a team that is currently working on a VA Event Bus that would receive events from VBMS (including, potentially, "Decision Letter Created" events) and publish them to subscribers. Ideally, we could subscribe to any events relating to the creation/filing/delivery of a decision letter, and upon receiving such an event and when appropriate, enqueue a Sidekiq job to send an email and SMS message to the Veteran. This solution would depend on a number of factors, including:

Option 2: ???

Next Steps

Additions from Kyle

<kyle> In contact with Emily Wilson who is an engineer on the event bus team. Will update with things when I get more info.

These rest of these seem like things to figure out later and not tack on to this already massive spike. All seem premature. Only other note was that we can remind vets easily about In Progress Forms about to expire already, just have to work with VA Notify to enable/turn it on.

</kyle>

Task 4: Figure out whether we are considering sending Veterans multiple reminder notifications, per appeal, and if so, how we might schedule multiple reminder notifications to be run at future dates.

TODO

Next Steps

TODO

Task 5: Figure out how to supply our scheduled notifications with AMA deadlines.

TODO

Next Steps

TODO

Use Case 3: A Veteran wants to have to have their decision letter delivered via email, because decision letters don't always arrive in the mail.

Task 6: Figure out whether we can send decision letters to Veterans via email

(Rocio says she already gets decision letters via email)

saderagsdale commented 1 year ago

@data-doge review and let us know when you're ready to chat.

data-doge commented 1 year ago

@saderagsdale I haven't had a chance to review this ticket yet, but it's on my todo list

data-doge commented 1 year ago

Quick notes for tomorrow's conversation with Eileen and Sade:

Use Case 1:

Use Case 2:

Use Case 3:

data-doge commented 1 year ago

Follow-ups from our conversation on August 24, 2023:

For sprint hygiene, we'll need to think about whether to inflate the estimate on this ticket, or create separate spikes for follow-up investigations.

saderagsdale commented 1 year ago

@data-doge @kylesoskin I'm weeding out complexity and getting back to the purpose of the ticket. Tasks for each use case and action items below:

A Veteran wants to know the exact decision date when adding a new issue.

A Veteran wants to know when their filing deadline is approaching so they can take action.

A Veteran wants to have to have their decision letter delivered via email, because decision letters don't always arrive in the mail.

I am going to look for leads on action items 1-4. @data-doge can you look into action item 5?

saderagsdale commented 1 year ago

Sent a note to Premal on action items 1-4.

Also reached out to VRO to find out about BIP.

saderagsdale commented 1 year ago

Found BIP API and Swagger documentation here, but you need to be in CAG to click the links: https://github.ec.va.gov/EPMO/bip-vetservices-claims/blob/development/bip-vetservices-claims-docs/new-integration-partners.md https://claims-test.dev8.bip.va.gov/swagger-ui.html#/

saderagsdale commented 1 year ago

Also got a link to this developer documentation for the VRO platform from Premal, which may have some of the data and capabilities we're looking for.

saderagsdale commented 1 year ago

Scheduled time to discuss action items 1-4 with Diana from VRO this Friday.

HeatherWidmont commented 1 year ago

@data-doge is planning on breaking this ticket down into 3 separate tickets

saderagsdale commented 1 year ago

@data-doge Can you tag me in this ticket when you've looked at the documentation Diana from VRO shared? I'm looking to understand how we can quickly confirm if VRO has what we need.

data-doge commented 1 year ago

Hey @saderagsdale sure thing. I plan on doing that today.

Also, after our conversation, and after speaking with Eileen and Ruben today, I've broken this ticket into three separate, focused spike tickets that can be worked on in parallel. The VRO-related ticket is the number one priority:

Accordingly, I'll remove this ticket from the sprint doc, and slot in these three smaller tickets instead.