For more than 135 years, The Salvation Army, has been helping millions of people access a range of valuable social services in the United States. The organization supplies food, clothing, shelter, disaster support, and more to more than 30 Million people nationwide. Overall, eighty-two cents of every dollar The Salvation Army receives goes directly to programming and constituents.
After completing several successful projects together, The Salvation Army and ClearScale decided to partner again to modernize the nonprofit’s mobile processing application.
"ClearScale has proven to be an incredibly valuable partner as The Salvation Army expands its capacity to meet the needs of donors, and by implication the needs of the people we serve,” said Dale Bannon, Director of National Community Relations and Development at The Salvation Army. “2020 and the COVID-19 pandemic really highlighted the need to remain flexible and efficient in a changing environment, and ClearScale helped us do that last year by providing additional ways to give at the iconic Red Kettle."
Previously, ClearScale built a serverless donation processing solution for The Salvation Army so that the nonprofit could collect cashless gifts. As part of the solution, ClearScale enabled access to the nonprofit’s web application via QR codes and NFC tags. ClearScale also set up sophisticated business intelligence (BI) reports in Google Analytics so that the nonprofit could track success.
After this round of work, The Salvation Army identified additional modernization opportunities. For instance, the organization found that its NodeJS runtime environment and other front-end components were no longer receiving automatic security updates or performance patches. More specifically, the application used jQuery instead of new-age JS frameworks, like Vue, React, or Angular. As a result, the solution was inefficient. The organization also had trouble updating or extending its digital donation forms.
Another issue The Salvation Army found was that its payment gateway, Braintree, could only handle 25 requests per second. Therefore, the nonprofit couldn’t ensure that all donations were collected successfully. In addition, Braintree did not support newer payment methods, like Microsoft Pay and Samsung Pay.
On top of these challenges, The Salvation Army couldn’t identify where donors made their gifts. The application attributed donations to the donor’s billing address, making it hard to distribute funding to specific collection sites or areas.
Given these specific issues, The Salvation Army reached back out to ClearScale for help.
ClearScale took a four-step approach to address each of The Salvation Army’s needs:
First, ClearScale set out to replace The Salvation Army’s jQuery environment with a modern framework. The team built a single-page application (SPA) based on VueJS, Sass, and Bootstrap. The framework was rewritten from scratch following existing style guides and best practices.
Immediately, The Salvation Army saw a significant performance boost at a stable 60/120 FPS, depending on the hardware. Consequently, ClearScale was able to incorporate attractive animations, smooth screen transitions, and other elements that improved the overall user experience. Every component is dynamic, and the state is shared across multiple views.
The ClearScale team used Vuex to maintain a single source of truth for transactions, safeguard sensitive information, and save both metadata and user preferences for future reference. ClearScale also replaced Google Analytics with Adobe Analytics without changing the existing data ingestion interface - Google Tag Manager.
The same constructs are responsible for automatic extraction of identifiers from both QR codes and NFC tags. They are attached to the payment's metadata, and then expanded to the donation's site coordinates in order to properly distribute funds to places the user actually wants to support, not ones that correspond to their billing addresses.
Step 1. Modern Donations Collection - VueJS
ClearScale chose Stripe as the best payment solution to supersede Braintree. Every donation is now tied to a unique key, which helps ensure that no charges get duplicated, even if connectivity fails or another issue prevents a transaction from executing successfully.
After users select their preferred payment method and donation amount, API Gateway makes a REST API call to the back end. A single AWS Lambda function controls the business logic and transfers a package of necessary information to Stripe.
One of the most significant advantages of Stripe is that the payment gateway supports near-infinite scaling. The platform uses exponential backoff in the case of throttling to preserve pending transactions. Stripe also supports credit cards and recurring payments, differentiating the solution from products which only support one-time donations and only with Apple Pay or Google Pay.
Additionally, Stripe uses a smart retries system based on machine learning that increases collection rates. When one-time donations or subscriptions go through successfully, Stripe automatically sends email receipts to individuals with The Salvation Army’s branding.
Step 2. Modern Donations Collection - Stripe and AWS
On the internal side of the location tracking front, ClearScale implemented a specialized utilities portal, backed by Amazon Cognito for user management, authentication, and authorization and used identity access management (IAM) roles to prevent actions by unauthenticated identities. New user profiles can only be created with Cognito Console.
This portal simplifies the generation of unique QR codes, as well as the encoding of NFC tags for Salvation Army's field workers. All operations are exposed via GraphQL (i.e., AWS AppSync) and backed by a NoSQL datastore, Amazon DynamoDB. The ClearScale team used AWS Amplify for JS to connect everything together, simplify provisioning, and cut down on costs. Any saved data can also be exported in batches with DSL-like queries.
In conjunction with the donation form, capable of decoding metadata from labels and attaching it to payments being processed, The Salvation Army can now track where donations were actually made without compromising the overall application or user security.
Step 3. Donations Location Tracking
The last major update that ClearScale provided involved setting up a sophisticated reporting capability for The Salvation Army. ClearScale used Stripe Donation Reports in combination with metadata collected from various sources to distribute funds appropriately.
Stripe sends a daily message to a dedicated Webhook about any newly available data, which initiates a workflow to process payouts made in the last 40 days. Here, AWS Step Functions is crucial for orchestrating complex exception handling, automated retries, and data processing before information gets passed to analytical reports.
All data is stored in a serverless relational database, Amazon Aurora Serverless, that can run queries quickly and on-demand, allowing for automated capacity scaling. Aurora is also a fully managed service, which means The Salvation Army’s tech team does not have to worry about back-end administrative tasks, like provisioning servers.
When all data is ready, a special Lambda function generates analytical reports that can process 100,000 records per minute with 50MB of RAM at peak usage. Reports are stored in Amazon S3 with server-side encryption.
Step 4. Stripe Donations Reports - Serverless Data Analytics
After re-engaging with ClearScale, The Salvation Army was able to modernize its mobile donation application further and improve performance dramatically. Now, the organization's donation solution is built on top of VueJS and provides a seamless user experience regardless of the type of device in use.
With Stripe, The Salvation Army can sustain 4,000+ donations per second, far exceeding Braintree’s 25 donations per second. Patrons can also donate via Apple Pay, Google Pay, and credit cards with one-time or recurring payments. The Salvation Army also has the flexibility to easily add new payment methods in the future, like Microsoft Pay.
On the location tracking side, The Salvation Army can identify where donations were actually made and save metadata through a new Utilities portal. This information can be packaged up in reports and distributed automatically to analytics teams daily.
Together, these updates enable The Salvation Army to raise even more money for those in need, as well as dig further into donor trends at individual sites. At a time when mobile utilization continues to increase, the nonprofit has what it needs from a technology standpoint to carry out its mission while delivering a seamless donor experience.