WSSU Giving Tuesday Automation Project

The Winston-Salem State University 2016 Giving Tuesday was developed in three stages: pre-event, live-event, and post-event aesthetically based on the 2015 Giving Tuesday event hosted by Kimbia.

2015 Event Pages

The Giving Tuesday events pages includes an embedded donation online payment page from third party named Acceptiva. The event page also includes branded graphics, images and related content authored to encourage giving by the Office Integrated Marketing and Communication based on the specifications indicated by University Advancement. The “pre and live” event pages feature a countdown clock to the giving day and time left in the giving day, respectively. The live event page also includes an individual gift count total and donation amount total.

During the “live event” day. All donation transactions are processed via the Acceptiva server. The big question was how to get those transaction results from Acceptiva in order to display them on the WSSU Giving Tuesday page. The bigger issue was how to achieve this synchronously.

giving-impact.jpg

WSSU’s 2016 Giving Tuesday was written using the following programming languages: asp.net, JavaScript/ JQuery, and bootstrap CSS style. The event pages share a template, MasterPage.master, which includes a header, footer and right-hand side social media section. The central portion of each event page can be edited/modified independently, and thus can contain unique content for the specified period of the campaign.

Independent processing steps:

  1. Get Acceptiva transaction data from POST-BACK URL and save the data to WSSU database.
  2. Get transaction counts and total from WSSU database table for display on event page.

Initially, it was understood that in order to acquire the individual donation submission content an Acceptiva donation report had to be manually exported. This method obviously is not practical and does not support synchronous display of the information to the event page.

A possible solution was to create a script to automate the export of the donation report every two minutes. This would have required and extensive learning curve by the programmer as well as development time. Due first to time constraints we had to abandon this as a viable solution. In addition, it was determined that the process is not stabilized and results in an expired session id which would ultimately cause the process to stop.

Due to persistence and cooperation with and by Acceptiva personnel it was discovered that Acceptiva provides an “Email Replay-To” field and a “Post-Back URL” field. This meant every time a donation submission was processed, the account creator, WSSU, could receive a donation notification and non-sensitive transaction data would be posted back to WSSU server.

Eureka, we had the solution that would allow us to provide our clients the functionality that they needed. Once the data was received from Acceptiva, it is stored in the WSSU database. On each Giving Tuesday “live event” page load the gift counts and total are easily retrieved from WSSU database.

How does Acceptiva pass the data to WSSU and how do we process the Data?

  1. Within the Acceptiva set a post URL in Acceptiva’s “Page Summary”:

    acceptiva-screen.png
  2. Once a transaction, donation submission, is completed, the data is sent back. Below is the main code that allows us to read data from Acceptiva by asp.net (php should have similar read data syntax as asp.net )

On postback.aspx.cs – read the data that Acceptiva sends back. Create a table and save all those data to WSSU database server.

protected void Page_Load(object sender, EventArgs e)
{
// read the data that Acceptiva sends back
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("Form:" + Environment.NewLine);
foreach (string ctl in Page.Request.Form.AllKeys)
{
sb.Append(ctl + ": " + Page.Request.Form[ctl] + Environment.NewLine);
//connect database and insert to database table
{….}
}
}

Database table structure – a simple table with three columns only.

giving-thursday.png

One line Query: select count(id) as cnt, sum(amount) as amount from giving_thursday;

Logic of MasterPage.master
  1. Live countdown clock – written in JavaScript - displayed on pre-event and live event (JQuery)
    1. JavaScript - same as WSSU graduation page count down
    2. JQuery - when page is pre-event and live-event, then the display will show, else display is hidden
  2. Gift counts and total – written in asp.net - displayed on live-event and post event (JQuery)
    1. Asp.net - when page load, connect to server database and use functions (count and sum) to get gift counts and total. Set counts and total ID then display at the web page.
    2. JQuery - when page is pre-event and live-event, then display will show, else display is hidden

2016 Event Pages

  • Pre-Event
  • Live-Event
  • Post-Event

Improvements for the next year

  1. The automation of affinity group challenge will be included on the site. This will include real-time query, count and display of each group’s total donations. Group data can be implemented by adding an additional column to the database table. One query can retrieve each group total.
  2. Consider one of three options:
    1. Change postback URL in WSSU Acceptiva default “Page Summary”
    2. Remove the regular donation form during “Giving Tuesday”
    3. Change WSSU home page donation now button to giving Tuesday website
  3. If possible, we can have a one-time pop-up window on WSSU home page to advertise Giving Tuesday event.
  4. Make sure that the post-back URL is removed from Acceptiva when live post-event page is taken down. Otherwise, any donation after midnight would be erroneously attributed to Giving Tuesday as the transaction data would be saved to Giving Tuesday database.
  5. Streamline manual requirements related to event rollover by including an “if-else condition statement” for switching pre-event, live-event and post-event page display elements (countdown and counts) in the master page.