This article presents possible use cases and corresponding sample flows that your app can support. It provides a useful starting point as you plan your app's implementation.
Your app allows site owners to enroll members in their online programs through various payment models. Members can join for free, pay once, subscribe to a plan, or be manually added by the program owner.
To enroll a member in an online program:
memberId, programId, and enrollmentInfo.pricingType. Include the payment details field that corresponds to the pricing type, if applicable:
PREMIUM_PLAN_REQUIRED error is returned.PROGRESS field to get initial progress information for the new participant.Your app monitors how participants advance through program content and uses their calculated progress status to identify completion or failure.
To track participant progress through a program:
fields=["PROGRESS"] to retrieve current progress information including totalStepsCompleted and completionPercentage.lastActivityDate to track engagement.progressStatus automatically changes to COMPLETED.progressStatus changes to FAILED.Your app displays participation counts for one or more programs.
To retrieve participation statistics:
participantsCount for participants with a joined or suspended enrollment, including participants who completed or failed the program.autoRemovedCount separately for participants automatically removed when the program duration ended.Your app handles various participant status transitions based on program rules, payment issues, and administrative actions.
To manage participant status changes:
enrollmentStatus and progressStatus through domain events or periodic queries.enrollmentStatus to SUSPENDED when payment plans expire.LEFT.updatedDate field and domain events for audit purposes.Your app automatically issues certificates to participants who successfully complete programs that offer certificate rewards.
To issue a certificate to a qualified participant:
progressStatus set to COMPLETED by calling Get Participant.PARTICIPANT_NOT_ACTIVE: Participant must be active or finished.NO_CERTIFICATE_REWARD: Program must be configured with certificate rewards.PARTICIPANT_NOT_COMPLETED_PROGRAM: The participant hasn't completed all required steps in the program.issueDate is automatically set when successfully issued.CERTIFICATE_NOT_READY.downloadUrl to the participant. Request a new URL after expirationDate instead of storing the URL permanently.Your app efficiently manages large numbers of participants through bulk operations for enrollment, tagging, and member addition.
To create multiple participants at once:
itemMetadata for individual success or failure status.To add many site members to a program:
programId.excludeMemberIds to skip certain members.JOINED enrollment status and ADDED_MANUALLY pricing type.jobId to Get Async Job to track the asynchronous operation.To update tags for multiple participants:
assignTags and/or unassignTags in the same operation.jobId to Get Async Job for filter-based operations.Last updated: 15 September 2026