The purpose of having benefit programs is to allow beneficiaries to enroll in programs, so they can redeem benefits from the programs' pools.
Pools contain the key parts of benefit programs, including the benefits, beneficiary, and balance. However, managing benefit programs requires more than just managing pools.
This article details the different parts involved in managing benefit programs and their associated components. Learn more about benefit programs components.
Programs and pools are created from program definitions and pool definitions.
A program definition is a list of pool definitions, and a pool definition is a list of benefits and a credit configuration. Why do we need both program definitions and pool definitions?
Each pool has its own associated balance. This allows you to manage the available credits separately for each pool in a program.
Program definitions allow you to group pool definitions, so when a program is provisioned from the program definition, all of its pools are managed together.
When you renew a program or change its status, it affects all the program's pools similarly.
1 pool definition can be contained in multiple program definitions, which allows you to reuse benefits across program definitions without needing to duplicate code.
If you only have 1 pool definition, then you don't need a program definition. You can provision a program from your pool definition, which results in a program containing 1 pool, which is created from your pool definition.
Provisioning a program is the action of creating a program and assigning a beneficiary to it. Provision a program by calling Provision Program.
You can provision a program from a program definition or a pool definition:
A program's pools have the same beneficiary and status as the program.
A beneficiary can redeem a benefit by calling Redeem Benefit. Redeeming a benefit adjusts the pool's balance by the benefit's price, but you still need to handle providing the item to the beneficiary.
You can check which items and benefits are eligible to be redeemed using the following methods:
Once created, you may want to apply changes to your programs and pools.
Renewing a program renews the program's pools. This may affect each pool's associated balance, depending on the pool's credit configuration.
Renew a program by calling Renew Program.
Changing a program's status changes the program's pools' statuses.
You can pause, resume, or end a program.
When you update a program definition or a pool definition, you may want the changes to apply to programs and pools created from it.
specify when you want the changes to apply using the method's cascade
parameter.
The changes will apply to all future program and pools, and to existing programs and pools depending on the cascade
value. Changes can apply to existing programs and pools at the following times: