This document sets out the parameters of the integration Flow has with CoursePro, a software that manages lessons and courses for a client. Though CoursePro can be operated as a standalone product we have developed a more seamless experience for the client and the customer who uses the two systems.
In summary, Flow will power the price and take (recurring) payments from the customer for the course. Flow will also be the source of truth for the user and their details as well as updating CoursePro with the status of their membership.
Courses and Memberships
As Flow powers the price and payment type for a course in CoursePro. Therefore the types of membership provided are:
- Recurring, monthly membership for an ongoing course, until completion, changed etc
- Fixed, a 3-month course, fixed duration for a (weekly frequency course)
- Session Purchase - buying ‘one-off’ sessions (for top up etc)
A) Platform Responsibilities
A ‘membership’ in Flow will map to a course in CoursePro
Flow powers the price of a course. Therefore the pricing option and membership must be configured accordingly in Flow first.
|Price of Course||The pricing option for the course, whether this is a recurring payment or a fixed one. This is to be configured in Flow|
|Payment Type of Course||The payment type refers to whether the payment is recurring - e.g. a monthly fee or a one-off payment of a fixed duration, e.g. 3-month course|
|Direct Debit Payments (GoCardless)||Flow will manage any direct debit payments with the payment service provider, in this case, GoCardless, for the courses.|
|Membership Status||Flow will manage the status of a membership that powers the CoursePro Course. If a direct debit payment is missed, or an instruction is cancelled, Flow will update this accordingly. CoursePro then manages the customers' participation.|
|Access Control||CoursePro notifies Flow of who is to attend the course. Flow Creates access tokens for these users so that they can successfully enter the facility|
|Course Configuration||The course itself is entirely configured in CoursePro|
|Course Management||Any course management, such as editing is completed in CoursePro|
|Reporting||Key metrics such as attendance are managed and extracted through CoursePro|
|Course Attendance||Attendance is managed by CoursePro and a record of those attending is passed to Flow|
|Course Management (user)||Changes, cancellations and moving up is managed through CoursePro|
B) Pricing & Membership Configuration
Flow powers the price of the Course, through the integration. Therefore the client must create the price they wish to charge within the
Pricing Options module.
Pricing options are then assigned to a membership, again configured in Flow. These dictate the frequency of the payment due for the course as either:
- Fixed: a one-off payment
- Recurring: ongoing monthly payment via Direct Debit
Configuring Price and Membership for Courses in Flow
- Navigate to the pricing options module
- Create a new pricing option, which will be the fee for your course on CoursePro
- Select the type as
CoursePro Coursethis is essential, otherwise, it will not be available as part of the integration
- Make any necessary pricing changes based on the Centre at which the course is to be completed or by Setting Group
- This gives flexibility to price configuration. Allowing the same course to be at different prices when purchased at different centres
- Configure your CoursePro ‘Membership’ in Flow. This follows the same process as setting up a membership, please refer to your onboarding documentation for more detail
- You must select CoursePro Course as the integration type, otherwise, it will not be made available in CoursePro as part of the integration
- Create your payment option within your course membership
- Note: unlike other Flow memberships you can only add one payment option type. Therefore if you wanted to have a recurring monthly payment and a fixed payment for the same course you would need to create two respective memberships in Flow
- Use the pricing options you set up in Step 2
- Make sure you note down the ID of the pricing option ID you used in the membership configuration as well as the corresponding membership name
- Take this information to CoursePro to complete the mapping exercise of Flow Memberships and Prices → Configured CoursePro Courses. This is done in the CoursePro system
C) Mapping & Identifiers
To achieve the correct mapping in CoursePro you will need to have configured and provide the following:
- All pricing options associated with the memberships are type =
- The membership type, configured with the CoursePro pricing option has the integration set to
- Ensure you have the ID of the pricing options you are using within the membership types to complete the mapping of the Flow Membership to the CoursePro Course.
Once the pricing options and memberships are set to the type
CoursePro Course they will be available to be used in the integration.
The diagram below shows the membership, and pricing options configured in Flow that map to the courses created in CoursePro
Note: The Flow memberships and pricing options can be created before the integration is configured, however until this is done, they will not be visible within the CoursePro system.
D) Membership Status
The membership status will dictate whether a user will be available to attend a course, or whether Flow will continue to bill them a recurring fee. There are two key journeys of how the two systems interact through the integration.
Payment Failure (Flow)
- When a recurring, direct debit payment fails in Flow for a membership then its status will be updated to Suspended
- The change in this membership status is then passed to CoursePro which updates the corresponding customer course, changing it from Active → Unavailable
- The customer is then unable to attend the course because they have failed to pay for it
- They are unable to gain access to a facility
- They are notified of their failed payment via Flow
- Membership statuses need to be resolved in Flow
Cancelling a Course (CoursePro)
- When a customer cancels a course via CoursePro (or by staff on behalf of a customer) Flow must update the corresponding membership
- If the Course is cancelled (or completed/finished) then Flow must be informed, to prevent any further payments from being taken from the customer
- When the course is cancelled on CoursePro then Flow will change the membership status from Active → Cancelled and no longer generate fees for it
Flow is the source of truth for the user record. A user can be created in Flow or CoursePro but the data fields collected, such as first name, last name etc are dictated by Flow.
User Creation Scenarios
- When a user is created in CoursePro that user record is also created in Flow and the two are linked
- When a user is created in Flow it is only created in CoursePro if the user purchases a membership that has the integration type of ‘CoursePro Course.’
- If a user exists in Flow and then tries to sign up and purchase a course through CoursePro with the same credentials then they will be ‘silently’ matched as part of the integration.
- Similarly, if a user is created in CoursePro and then at a later date tries to sign up in Flow they will be notified their record already exists in Flow
Included in the User Sync
The below diagram shows key user data, and which system is the source of truth. The user record is only linked across the two systems when they purchase a course. The following data is synced as part of the integration
The specified data fields to be recorded against the user are configured in Flow. Such as Name, Email, Gender etc. This configuration is synced with CoursePro so the correct data is recorded
Any changes to the user record on FLOW, such as an address update are synced to CoursePro.
If the membership status were to change (due to a payment issue) this would be synced from Flow → CoursePro to ensure their Course Availability is updated
Flow again is the source of truth for the price the user would pay for a course. If they changed course or purchased a new course this price would be synced with CoursePro
CoursePro will sync user attendances to Flow to grant them access to the leisure facility through the Access Control functionality
CoursePro will sync the user's course availability to Flow. In the cases where they have finished or cancelled their course, Flow must update their membership accordingly
Excluded from the User Sync
Though billing information is provided when a user is created in CoursePro this information is stored in Flow. Any changes to the billing, such as a change to the bank details are completed in Flow via the Direct Debit Payment Service Provider. This is not synced to CoursePro
CoursePro records and manages the attendee usage data. This can be extracted via CoursePro and its reporting provision. Such reports are not available or included in Flow’s usage reports.
F) CoursePro Configuration.
To connect Flow to your CoursePro account you need to enter the integration credentials.
Navigate to System Configuration → Integrations→ CoursePro Configuration
CoursePro will have to provide you with the details
- CoursePro User Sync Enabled (tick 'yes')
- CoursePro API Client Identifier
- CoursePro Cart Complete Webhook URL
- CoursePro provided API Secret Token
- CoursePro Cart User Sync Webhook URL
- Click 'Submit'.
You can enable the user sync when ready to go live (once everything else has been configured both in FLOW and on CoursePro's side).
If set to no, any update that you make on a customer account in FLOW will not sync into CoursePro.
Link to API Docs
- GitHub: https://github.com/openplayuk/cap2-integration
- Stoplight: https://openplay.stoplight.io/studio/data-integration-docs
Checklist: Setting up the integration
This details the steps and sequence of setting up the integration between Flow and CoursePro. Note any configuration of courses, and how that works should be done with onboarding and support from CoursePro.
- [ ] Configure your pricing and memberships in Flow. Steps found in Section B - Pricing & Membership Configuration
- [ ] Map your Flow memberships to the CoursePro Courses (this is completed in CoursePro)
- [ ] Test the creation of a user, and the purchasing of a course, in CoursePro. This will validate the membership price, powered by Flow. The user record should appear in Flow.
- [ ] Add the API keys to Flow to create the integration. Steps found in Section F -CoursePro Configuration.
- [ ] Test the creation of a user and the purchase of a course in Flow. The User record should appear in CoursePro.