Modern Fundraising Site using TeamRaiser/Luminate API Example

Options
Hi all,


Just wanted to pass on an example of a WordPress based site I put together for the BC SPCA that uses Luminate API, custom PHP libraries and Javascript to push the envelope for TeamRaiser.  This site adds some new features on top of base TeamRaiser sites, giving it a modern take on fundraising that's still backed by the solid TeamRaiser platform.

https://treatweek.ca


Here's a few of the new features:
  • Tile based search system with participant profile image and thermometer displayed (includes pagination and fully responsive to display tiles correctly on mobile)
  • Participant page with Facebook commenting and moderation, and two high res images- one for participant's profile image, and one for a banner image
  • Modern participant centre with high res image support, image cropping built in, image compression built in, and support for both a banner and profile image on fundraiser pages
  • Easier options for domains by using WordPress as a platform (ex treatweek.ca instead of secure.convio.net/pagebuilder etc)
  • Fully HTTPS on every page by using WordPress
  • Facebook sharing that uses a high res image and fundraiser text when sharing.  Also flushes Facebook's page cache whenever a participant updates their page, so sharing always reflects the current image/text on their fundraising page.
  • Two step process for teamraiser registration, no long process for registrations
  • Modern donation and registration forms with UI/UX enhancements, form feedback, and custom error reporting so people know what's wrong if their transaction doesn't go through
If anyone has any questions feel free to reply/message me, I'd be happy to answer any questions you have as best I can.  I've added a few pictures of the site below as well- designing Luminate API TeamRaiser sites is something I'm passionate about and I'm always looking to improve functionality/add features for clients.

5c68909420d02face037c26031b1c840-huge-ti
076ec037052e8dde5364e6a2214a92e0-huge-pa
8d79b60165954ccf5a12dd5bb1ace810-huge-do
492bc03710cb58729eed991203748690-huge-re
Tagged:

Comments

  • Super nice, very well thought out. Pretty tidy code too.


    Your registration has a Designation question (Area of greatest need). How are you handling applying that designation to all of that fundraiser's donations? 


    Where are you storing the banner images? I'm guessing in WordPress?


    Interesting that you create a cons record right in the first page so you catch an email for people that don't complete the registration process.


    Also interesting that you default to an event gift form with links to participant search, rather than the reverse. Has that increased the need to do soft credits very much?


    BPM
  • Your registration has a Designation question (Area of greatest need). How are you handling applying that designation to all of that fundraiser's donations? 


    We'd experimented with trying to save a fundraiser designation to a constituent's profile (eg treet week gift designation would appear in their LO profile), but had some serious issues with reliability.  We ended up having to recode the majority of transactions when we tried to do that, so we redesigned our system to have a separate teamraiser created for each fund.  When someone selects gift designation during registration, it's really just registering them for a different teamraiser for each fund.  While we do have to create more teamraisers this way, we found it to be much less work and 100% reliable.  Having separate teamraisers for each fund (or branch in our case) has some other benefits too, since we can customize some of the settings for each branch on an individual basis now and quickly run reports on each branch to see where their fundraising goals are at too.

    Where are you storing the banner images? I'm guessing in WordPress?

    Initially we'd thought we'd have to do that, but there's actually an option to store a second image on TeamRaisers on the personal pages (graphic_upload2_file on the api page for uploadPersonalPhoto).  Keeping all data stored within LO was a goal we wanted to achieve and luckily we were able to do it thanks to this.

    Also interesting that you default to an event gift form with links to participant search, rather than the reverse. Has that increased the need to do soft credits very much?

    Last year our donation form wasn't as clear about where the donation funds are going to and we did have quite a few soft credits we had to do, but we've been able to deal with some of that by making the text about who you're donating to on the top of the donation form much more clearer/bolder and with a link to search.  We might still adjust this a bit depending on how it goes though, it's definitely something we're thinking about!


    Let me know if you have any more questions!

     
  • That list was pretty long wasn't it? It must be a lot of teamraisers! 


    I wrote a JQuery plugin to do something just like this with designations, but in our case, we're adding the cons info to a JSON file after we approve their registration. My script sets the designation field on the form based on a lookup to that file.

    https://secure3.convio.net/cmf/site/Donation2?df_id=12064&12064.donation=form1&FR_ID=1720&mfc_pref=T&PROXY_ID=1959772&PROXY_TYPE=20&s_debug=true


    Note: The orange fields are ordinarily hidden (I show them with that s_debug session var.) Here's my script: https://secure3.convio.net/cmf/_resources-teamraiser/reus_js/jquery.madFunds.js


    We were only offering this option to a few key participants initially, so the JSON seemed like an acceptable way to go. I've been thinking of changing it to something similar to what you tried - storing the designation id in a custom field - so anyone could use it and also avoid the manual set-up.


    Did you ever figure out what the stumbling block was on your initial attempt? Seems like it should work.



    I just finished a new version of the form that is all API, and allows up to a four-way split, though it also still uses a JSON file to hold the designation selection.

    https://secure3.convio.net/cmf/site/SPageServer?pagename=_template_designated_fundraising_teamraiser&FR_ID=1234&PROXY_ID=1105632&PROXY_TYPE=20&s_debug=true



    Great work for BCSPCA. Lots of good stuff to steal!


    BPM


    PS - You should give a session about this project at BBCon 2019.

     
  • It's a pretty big list, but I was surprised how easy it was to set them up with an xml list we uploaded using the api register teamraiser process.


    Interesting solution using the JSON file for a few key participants!


    For the gift designation, I think the issue partly was the implementation we had done up by a contractor.  It didn't work with gifts to teams and ended up only working (some of the time) with donations to personal pages.  Bottom line it wasn't reliable when it was actually implemented.  Moving things to separate teamraisers also worked better for branches too, since they can just get a quick report from their teamraiser for what their fundraising is at and see who of their top fundraisers had registered just by printing off their branch teamraiser report.


    I'll take a look at BBCon 2019, great idea!
  • This is glorious! So curious on how you tackled some of this:
    • Are you using any WP plugins here, or is everything custom?
    • Are you creating users in wordpress when folks create pages?
    • Are these pages completely created on the Wordpress side, or are you populating everything through the API as it's needed?
      • If the latter, is there anything being added to the wordpress database at all when people sign up?
    • How do you handle the participant center; did you recreate that in WP too?
  • Are you using any WP plugins here, or is everything custom?


    Everything is custom (except for some basic website plugins for instagram and the FAQ system which it didn't make sense for us to put any development time into given that there's great options available in WP).

    Are you creating users in wordpress when folks create pages?


    We aren't, since we have fundraisers who participate on different campaigns for the BC SPCA we wanted them to be able to just use their LO login for the site

    Are these pages completely created on the Wordpress side, or are you populating everything through the API as it's needed?


    It's all API/some CURL requests from the secure.convio.net/tr/yourpage when it's quicker to grab the data there than to have multiple API requests for different data.  This took some doing to get the speed up and make things usable.  I've been working on a side project updating the Luminate API PHP wrapper to have more useful functions/do parallel requests for API functions, so that was helpful here for getting data quickly!

    If the latter, is there anything being added to the wordpress database at all when people sign up?

    Nope, nothing being added! Our goal was to keep almost everything in LO.

    How do you handle the participant center; did you recreate that in WP too?

    We created a new PC in WP to do this, yes!  It took some doing but we were able to add some new features in and make it a better experience for users.


    If you have any other questions let me know- I'll be working on getting an updated PHP wrapper out at some point this year, still a few things to streamline!

Categories