Benefit Programs Lifecycle

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.

Creating benefit programs

Programs and pools are created from program definitions and pool definitions.

  • Programs and pools are live: They have a status and a beneficiary.
  • Program definitions and pool definitions are static: They exist to serve as templates for programs and pools.

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?

Balances

Each pool has its own associated balance. This allows you to manage the available credits separately for each pool in a program.

Managing a program's pools synchronously

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.

Reusing pool definitions across program definitions

1 pool definition can be contained in multiple program definitions, which allows you to reuse benefits across program definitions without needing to duplicate code.

Benefit programs with 1 pool definition

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 programs

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:

  • Program definition: The provisioned program has pools that are created from the pool definitions in the program definition.
  • Pool definition: The provisioned program has 1 pool that is created from the pool definition.

A program's pools have the same beneficiary and status as the program.

Redeeming benefits

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:

Managing programs and pools

Once created, you may want to apply changes to your programs and pools.

Renewing programs

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 programs' statuses

Changing a program's status changes the program's pools' statuses.

You can pause, resume, or end a program.

Updating program definitions and pool definitions

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:

  • Immediately following the successful API call.
  • When they are next renewed.
  • Never. Changes will only be applied to future programs and pools.
Did this help?