Automated Account Activation

I created a system that enables credit union members to reactivate their expiring accounts without signing in.

Overview

When a credit union account becomes dormant (no transaction activity for many months), the State of Utah requires that we attempt to contact the owner of the account to see if they still want to keep it open. If the owner does not respond within a certain period of time, the credit union is required to close the account and send the funds to a state entity that holds the funds until the owner attempts to recover them.

This project was part of an overall effort to reach out to the account owners and get them to notify the credit union that they still want to keep the account open.

Features

Expired Account Notification Automated Email

When an account is about to expire, an automated email is sent out to the account owner's email address if available. The email explains that the account is about to expire and contains a button for the member to click on to reactivate the account.

Passwordless Account Reactivation

Once the button in the notification email, the member is directed to a page on the public website that, again, explains the reason the account needs to be reactivated and has a button to confirm the user wants to reactivate the account.

SymXChange Integration

Once the button on the website is clicked, the website makes a call to a REST service that, in turn, calls SymXChange and runs a Repgen process on the Core host to reactivate the account.

My Involvement

I worked with the Product Owner (a member of the Operations Department) and a member of the Core Programming Team to implement this feature. There were a few phone calls, but most communication between team members was done by email for this project.

The Core Programming Team member took care of determining which accounts were about to expire, generating a token, and sending out the email.

My job was to create a web page in the public website that would accept the token, display the confirmation page, and wire the confirmation button to call a SymXchange API (a SOAP service) that would call the Symitar core processing system and mark the account as active.

Process

After determining what format the token will be in, I created a new MVC controller and Razor web view on the credit union’s public website. The controller’s action requires a token to be passed to it. The controller validates the token and then displays a page to the account owner.

I then created another controller action that is activated when the account owner clicks on the confirmation button. The controller action makes an HTTP call to a REST service hosted on the credit union’s internal network which then calls the SymXchange SOAP service on the Symitar core processing system and activates the account.

Then I created another controller action that displays the confirmation page to the account owner.

I also added a few other controller actions to handle different problems that might occur during the process. For example, if a token is not valid then that is handled. If the system cannot connect to any of the web services along way, that is handled as well.

Testing

Once the programming was complete and tested by me, I copied it to a test environment we have set up and allowed team members to test it.

When they validated it, I included it for release to the production web servers. I released it to the public web servers and then asked the team members to test it again.

Once that process was validated, the Core Programming Team member sent out a few emails to account owners to validate it was working for them.

Then it was ready for production.

Results

The credit union has been able to activate hundreds of inactive accounts with this new process. All of this process is entirely automated so it works without any employee involvement. This saves the credit union time and money. The solution is still being used and has worked very well.

Technologies Used

C# ASP.NET .NET 6 Razor MVC Visual Studio HTML CSS Git REST SOAP TeamCity Octopus Deploy Symitar SymXchange Windows Server