Since introducing the idea of Revenue Sharing Language (RSL) here, we've built the drag-and-drop builder for RSL payout plans, first with Mark Boas as a native JS framework-free version, Cascade, and now, branched and remade in Svelte JS to support broader unit testing, multiple builds and realtime RSL generation, by Rich Lott. This will exist as both a standalone script, and integrated into CiviCRM.
Matthew Wire has been building this CiviCRM integration – like Rich he's a big contributor to CiviCRM (he maintains the Stripe Payment Processor; Rich maintains GoCardless) and the builder is now integrated into a CiviSplit extension, screen-recorded below:
Here you can see extension reference CiviCRM Contact records, which hold the payout information (e.g. an ILP address or bank account number). Once agreed upon, the payout plan is saved and made uneditable, with the RSL hashed for security, and viewable at a fixed URL, with an ILP address generated to receive Web Monetization.
A second extension, CiviSplit Processor is triggered with a scheduled job to check the ILP account balance, calculate who is owed what – and provided they're owed more than a €10/£10/$10 minumum payout - trigger a payment. We've got this working in a form good enough to start writing unit tests against, which is a major job given one YAML syntax error could mean people are paid incorrectly. We also want payouts to be auditable, with processes for remainders (e.g. €10 split three ways) and hanging payouts. It's built as an API so should integrate with messaging, alerts and reporting inside CiviCRM. The third extension to come is an Uphold processor integration, which creates the Card / ILP, checks the balance and handles payments. Because of the forthcoming arrival and potential changes of Rafiki, we're saving this part until last.
To those new to CiviCRM, it's an open source CRM for the non-profit sector originally maintained by Donald Lobo – and unique in that it integrates fully with the three biggest Content Management Systems (WordPress, Drupal & Joomla) as well as Backdrop. It's been running since 2004 so has a big global community, dozens of languages, 1000s of extensions and is used at a vast range of scales – from the heart of Wikimedia's fundraising database, and charities like Greenpeace and Amnesty International, to tiny volunteer-run membership organisations. Even tho it handles everything from bulk email to fundraising to case, member, record management and event ticketing, it's not as well known as other open source projects. IMHO this is because, like Joomla, it's a non-profit itself, so has a very limited budget for marketing and outreach (unlike WordPress and Drupal, say, which both have well financed commercial 'parents' - Automattic and Acquia). Likewise agencies wanting to get rich in the tech-for-good space tend to end up pushing for Salesforce or Dynamics, given non-profits can pay millions for such setups.
CiviCRM is AGPL licensed, so of course can be used by a filmmaker wanting to profit from their work. But as it's largely built by and for non-profits, and this culture helps make the community feel so special – it's good to consider how Civi contributions can benefit the wider community. This week we published a blog for the community exploring some of the ways CiviSplit could potentially be used once built and well tested: (obvs none of this counts as legal or financial advice)
- For joint-fundraising campaigns where a number of charities share income received.
- For fundraising events where costs need to be repaid, and then a share of income given to an organiser.
- To share the development costs and maintenance of open source extensions in the communmity.
- Cooperative groups managing dividends and payouts (a number of coops use Civi, especially community/renewable energy coops).
- Collaborations between creatives and charities. At least since JM Barrie gave the copyright for Peter Pan to Great Ormand Street Hospital, or the £1.4 billion raised by Comic Relief there's been many fruitful collaborations between musicians, writers, artists, filmmakers and the non-profit sector – and this perhaps could make it easier to set these up.