Amnesty International Flanders (AIVL) have been using CiviCRM for a couple of years now, initially with memberships mainly but lately more and more as a fundraising tool. They have implemented CiviBanking for their incoming bank transactions and are now in the process of testing CiviSepa for their direct debits. We (as CiviCooP) are part of their CiviCRM family and work together with them to support their processes in the best way we can, making the most of CiviCRM. Other CiviCRM community members like Xavier Dutoit and Björn Endres (of Systopia Organisationsberatung) also for part of the team with some projects and ongoing development.
AIVL has an ambitious goal for their street recruitment, striving to increase the numbers of donors but also the retention rate and the donated amounts. One of the key development areas in this respect is the incoming data flow from street recruitment. Street recruiters go out into the streets of Flanders with their tablets and recruit new donors, and AIVL need to reduce the times ale between recruitment and data entry in CiviCRM to get fast feedback on their efforts.
At the moment the time gap between John or Jane Doe signing up in the street and him or her being known in CiviCRM is several weeks. The recruiting company sends an Excel file with the new donors to AIVL once a week. The Excel list is then manually checked by a volunteer, and the donors and their direct debits are manually entered into a number of systems, one of them being CiviCRM. If an error occurs with one of the donors on the list (mandate not correct, data not found or other stuff) the whole list waits for that error to be corrected. As you can imagine this process takes too long and is too cumbersome.
AIVL wants to improve this process using the CiviCRM functionality before they start the big campaigns in September. The ambition is to make sure that they can process a recruitment result every day. The functionality of the street recruitment import extension is the missing link which will now allow CiviSepa (with SDD) and CiviRules (next step - automated donor journeys) to do their job. The ambition in steps:
- have the recruiting organization send a csv file every day, which can contain street recruitment results and result of the welcome call the new donor gets within a week of recruitment.
- process the file in a daily scheduled job:
- create the donor if it is not known, making sure we can recognize the donor with the ID of the recruiting organization
- create phone, email, address and bank account for the donor
- create a completed activity for the donor, holding the data from the donor and the direct debit as noted in the street recruitment or welcome call
- add the donor to the newsletter group if so specified
- create a membership for the donor if so specified
- create a follow up call activity if so specified
- create the SEPA direct debit (recurring contribution)
- update the donor or the SEPA direct debit at the time of welcome call if the data is different
- create an activity of the type Import Error whenever we flag something problematic
The amibiton is to get the data in CiviCRM as soon as possible, so we almost always import as long as we can, flagging data issues in the Import Error activity.
Björn Endres and me started developing what is now the (status: in test!) extension be.aivl.streetimport. We knew we had a tight deadline and a specific AIVL set of requirements, but we tried to make it as generic as we could so others would at least be able to jump start with the stuff we created. As it is a specific thing we do not think it is useful to put it on the list of extensions, but everyone is welcome to share and (ab)use.The code can be found at https://github.com/CiviCooP/be.aivl.streetimport
AIVL will be testing this in the coming weeks. In the coming days I will be adding a little technical documentation. I am quite proud of what AIVL, Björn and me created together. It will have a big impact on their ability to process the street recruitment and decrease the amount of manual interventions required!