Retool application accept workflow to handle creating new accounts
To better handle incoming requests for membership without delay, we will be pivoting the current accept
workflow from sending out emails to remind users to create accounts if they haven't, to submit requests, and watch for the request to be fulfilled. This will be accomplished through 2 updated mechanisms in our code, updating the incoming request to accept a form, and the scheduled email blast task.
The incoming accept request will be updated from sending an email to creating a request to create a new account through the eclipse.account_request
table and logging the request in a new table[1] in the application database. This new table will indicate when the request was made, for what org, the email associated with the request, and the date the account was created. This will be used in the second mechanism that will be defined next.
The second updated mechanism is the current code to send out email reminders to people that have not yet created accounts. As we will be creating the accounts for them, this mechanism will be repurposed to watch for when the accounts in the new local table are created and notify the users at that point. Every hour, we will go through the active entries in the local table and check if accounts exist for those users, and if so, notify them and update the entry to indicate that the email was sent to the user. This should provide rapid access to these accounts once created, as well as context as to why it was created.
Additionally, as part of this request, we will deprecate the email opt-out table and DTO from this implementation. They aren't needed as the new email is necessary to facilitate account access and business requirements. We can remove the table and any logic associated as after this patch it should no longer be needed.
- Table def
ContactAccountCreationTracking
:
Column name | type | description | Is required |
---|---|---|---|
id | SERIAL | Incremented ID for the pending user creation request | Y |
varchar(127) | The email address associated with the account being created | Y | |
organization_name | varchar(63) | The organization that triggered the request for the new user | Y |
created | datetime | The date that the account request was submitted | Y |
completed | datetime | The date that the individual was notified with the password reset link | N |