A department needs a simple registration form for its Lunch and Learn events.
Ideally, the form should allow a user to simply click a button and sign up to attend, but with several user attributes (name, address, department, etc.) are still needed to be collected.
A confirmation email to the registrant and the event organizer should be sent immediately; a reminder email should go to the registrant 24 hours before the event.
If the event is cancelled or the date is changed, the registrant should receive notification of the cancellation or update.
After the event, the user should receive a follow-up email requesting that s/he fill out a post-event survey.
Virto Software Components Used
The solution was used for the University of Alabama at Birmingham. The design team of UAB wanted to deliver a simple to maintain, no-code solution, that had as few front-end components as possible. A form was designed where all fields associated with the list were hidden and the only visible object was a single submit button. The form was configured to execute an Add New action. Once the button was clicked, the user would be redirected to a Thank You page.
The core of the solution was in the workflow, which handled all aspects of the submission. Because there were no fields on the form, the workflow design needed to execute several steps to retrieve necessary information, such as user information, the event being registered for, and if the user had already registered for the current event.
User data was relatively simple to retrieve thanks to the Virto Workflow Activities Kit (WAK) Get Custom Properties from Active Directory action. These actions allowed us to take the ID of the user from the Created By column in the list and look up all necessary information from the Active Directory, such as Last Name, First Name, Address, Email, Phone, etc. The values of these were passed to local workflow variables for later use.
Getting data to the current event was also fairly straightforward. A separate list was built and maintained for each event. A view was designed that displayed only the next unexpired event date (filter = EventStart >= [Today], limit 1 row returned in view). Using the Virto SharePoint Workflow Activities Kit (“Get Field Values From List Extended” action), the event ID, start and end times, title, and location data were retrieved from this view and stored in local variables for later use. Note that because this action retrieved values in text format, the date fields needed to be converted using the Virto WAK “Convert Data from UTC to Local Time” action.
The registration list item was then updated using the Virto WAK “Update List Item Extended” action, using the data stored in the local variables as the values for columns. A confirmation email is then sent using the Virto WAK “Send Email” action.
Using the Virto WAK “If User is a Member of a SharePoint Group” condition, the workflow checks if the person has been added to the Members group on the site; if not, then the user information is added to a Membership list (where a subsequent workflow will add the person to the SharePoint group).
Finally, the workflow is paused until 24 hours before the event. When the workflow continues, it checks the event list item to check if it has been cancelled; If it has been cancelled, a message is crafted indicating such, otherwise, a message is crafted reminding the registrant of the event. An email is sent using the Virto WAK “Send Email” action using the custom message.