Group Dreams
Introduction
Group dreams is our way to incentivize the users to save together for a shared goal.
In most cases group dreams behave the same way as personal dreams.
The main difference is that a user can "invite" other users and save together for the shared goal.
In essence, group dream is our way of tracking and displaying every participant's effort to raise money towards a common goal.
To be clear the money is not shared between user saving's accounts at ANY point.
Users make transfers as usual (same as with personal dreams). The money they save towards the shared goals end up in the saving accounts belonging to their respective owners. However we, inside the dreams experience, track how much has been saved together towards the same goal and can show the complete sum when users check their shared goal.
Data being shared
- User first name and first letter of their surname is being shared inside the dream app and every group dream participant can see this.
- If the dream has a picture then that is being shared as well.
- What savehacks have been activated, when, by whom and with what amount.
Creating and sharing the group dream
sequenceDiagram
participant user1 as Bob (group dream owner)
participant user2 as Alice
participant fe as Impact Finance SDK + Web App Frontend
participant be as DES Backend
participant bbe as Bank Backend
user1 ->> fe: Enter dream experience
fe ->>+ be: Create group dream
be -->>- fe: Group dream created
fe ->> user1: Receive group dream CODE
alt share CODE
user1 -->> user2: send CODE (outside of Impact Finance experience)
else share invite link
user1 -->> user2: send link (outside of Impact Finance experience)
end
Note right of user1: In both cases, Impact Finance SDK prompts the operating system to<br/> open a native share dialog.<br/> Share extension for iOS or<br/>sharesheet for Android based mobile phones.<br/>In this dialog user can choose how the sharing will proceed.
Joining a group dream using a CODE
sequenceDiagram
participant user1 as Bob (group dream owner)
participant user2 as Alice
participant fe as Impact Finance SDK + Web App Frontend
participant be as DES Backend
participant bbe as Bank Backend
user1 ->> user2: Share join CODE
user2 ->> fe: Enter Impact Finance experience
user2 ->>+ fe: Start new dream creation process <br/>using "Join with a code" option
fe ->>+ be: Join a group dream
be -->>- fe: Respond with group dream details
fe -->>- user2: Show group dream details
Example of transaction flow
Although both participants save towards the same goal the money that they save actually go to their own respective saving accounts.
sequenceDiagram
participant user1 as Bob (group dream owner)
participant user2 as Alice
participant fe as Impact Finance SDK + Web App Frontend
participant be as DES Backend
participant bbe as Bank Backend
participant savings1 as Bob savings account
participant savings2 as Alice savings account
user1 ->> fe: Check group dream details
fe ->>+ be: Fetch the group dream
be ->>- fe: Return the group dream
fe -->> user1: Display group dream balance: 0€
user2 ->> fe: Check group dream details
fe ->>+ be: Fetch the group dream
be -->>- fe: Return the group dream
fe -->> user2: Display group dream balance: 0€
user1 ->> fe: Start a one-time savehack (10€) for group dream
fe ->> be: Start the one-time savehack
be -->> bbe: Start transaction workflow
bbe -->> savings1: Deposit 10€
bbe -->> be: Notify the transaction is a success
user1 ->> fe: Check group dream details
fe ->>+ be: Fetch the group dream
be -->>- fe: Return the group dream
fe -->> user1: Display group dream balance: 10€
Note right of user1: also display info that <br/> Bob started one-time
user2 ->> fe: Check group dream details
fe ->>+ be: Fetch the group dream
be -->>- fe: Return the group dream
fe ->> user2: Display group dream balance: 10€
Note right of user2: also display info that <br/> Bob started one-time savehack
user2 ->> fe: Start an autopilot savehack (40€) for group dream
fe ->> be: Start the autopilot savehack
be -->> bbe: Start transaction workflow
bbe -->> savings2: Deposit 40€
bbe -->> be: Notify the transaction is a success
user1 ->> fe: Check group dream details
fe ->>+ be: Fetch the group dream
be -->>- fe: Return the group dream
fe -->> user1: Display group dream balance: 50€
Note right of user1: also display info that <br/> Bob started one-time savehack <br/>and Alice started an autopilot savehack
user2 ->> fe: Check group dream details
fe ->>+ be: Fetch the group dream
be -->>- fe: Return the group dream
fe -->> user2: Display group dream balance: 50€
Note right of user2: also display info that <br/> Bob started one-time savehack <br/>and Alice started an autopilot savehack
Invite link
The invite link should be something that lets you deep link the user into the mobile app. The way of doing that will depend on your infrastructure and business logic as well as on whether you only have an iOS app, and Android app or both.
Once clicked it should take the user to your mobile app. Once the invitee gets there you should start the Impact Finance experience on the group dream page.
In case the user is not a bank client then the decision what the invite link does is left to you. It can just point to the mobile app store so that the invitee can download your mobile app.