Skip to main content

Offer Shareable Products


Offer Shareable Products

A shareable product allows a customer to share their product grant with a defined number of other people. For example, you can use a shareable product to offer family accounts.

Note: You cannot use shareable products to share product grant entitlements resulting from membership of a Company account.

You can configure a product as shareable when you create or edit it. You can also configure the number of seats available for sharing.

When building your rule, you can use a frictionless checkout form to allow the end user to purchase a shareable product. When defining your frictionless checkout form, you can do the following:

  • Enable the sharing of a link that the invitees can follow to accept the shared product
  • Define user variables to capture information from the customer for use in the email template sent to the invitee, or in custom components when using the API
  • Define the destination of the link provided in the invitation

When an end user purchases a shareable product, they can do the following:

  • Invite others to share their product grant
  • Revoke access to the shared product on a seat-by-seat basis using the Preference Centre

An invitee must register to accept an invitation to become a member of a shareable product, and continue reading. They can revoke their membership at any time. The invitee’s email address is not stored in Zephr until they have registered.

Note: You can also revoke a member’s access to the shareable product in the Admin Console, if requested, as described in the Revoke a User’s Access to a Shared Product section.

In this example, we do the following:

  • Create a shareable product
  • Add a product sharing page to the Preference Centre
  • Build a rule that uses a frictionless checkout form outcome
  • Create a feature for the invitation URL landing page
  • Provide example customer’s pages and the API calls used
  • Walk through an example invitee’s journey

Create a shareable product

In this example, we create a new product and configure it as shareable.

Note: You can edit an existing product to allow sharing, if required.

To configure a product as shareable, we must ensure that we select the Enable Sharing toggle and set the maximum number of seats allowed for sharing when defining the product.

To create your shareable product, follow the instructions in the Create a Product topic. When creating your product for this example, select the Enable Sharing toggle and enter 3 in the Sharing Limit text box.

Note: If you edit an existing product to make it shareable, ensure that you update and save any related rules and multi-step or frictionless checkout forms included in the rule. If this is not done, no changes are made in the UI and your end users will not see the sharing options. For further information on editing an existing product, see the Edit a Product topic.

Now, we can add a product sharing page to the preference centre to allow customers to manage their shared product.

Add a Product Sharing Page

In this example, we add a page to our Preference Centre where the customer can manage their shared product.

To create your shared product preference centre page, follow the instructions in the Configure Shared Product Pages topic.

Now, we can build a rule and use a frictionless checkout form to allow the customer to invite members to their shared product.

Include a Payment Form in Your Rule

In this example, we build a rule in the Anonymous rules canvas that includes a payment form for the shareable product. When the end user has made a payment, the success message also allows them to send invitations to people asking them to become a member and share the product grant.

To build your anonymous user journey, complete the following steps:

  1. Navigate to, or create, your featureFor further information on navigating to an existing feature and updating it, see the Edit a Version topic. For further information on creating a feature, see the Add a Feature topic.
  2. Build the journey that you want the anonymous user to take before they reach the payment form outcomeFor example, you could build a simple rule that presents the outcome when the end user tries to access your content, or add trials to test the take-up of the shared products.
  3. Add a payment form outcome, as described in the Add an Outcome and Create a Payment Form topics. Note: If you are editing an existing rule, you can update the existing payment form outcome or replace another outcome in your rule with a new payment form outcome. Whichever approach you take, ensure that you enable invitations and configure the link destination URL and any user attribute mappings you require in the Payment section of the form.
  4. If necessary, customise the text in the email template for the invitation to join as described in the Email Templates section

Now we can create a feature for the invitation landing page.

Create the Invitation Landing Page Feature

In this example, we create a feature for the page that the invitee is taken to when they follow the link in the invitation. We are also going to display a summary of the invitation in a banner, using a custom component and add a form that allows the invitee to login or register before continuing.

To create the invitation landing page feature, complete the following steps:

  1. Create an Article feature, as described in the Build Your Feature topic from the End-to-end example
  2. In the rules builder, select the Outcomes segment title
  3. Select Add Outcome

    The Add an Outcome screen displays.

  4. Add a custom component to display a welcome banner with a summary of the invitation, as described in the Create a Custom Component Block topic. Example components are provided in the Example Components topic


    1. If you have developer support, you could use a hosted UI component that they have created and added to the Component Library. For further information on using a hosted UI component, see the Add an Outcome topic
    2. The API provides a GET operation that allows you to retrieve data about a product sharing invitation by ID, which is passed to the invitation landing page as a query param using the sharing_id path parameter. For further information on the sharing_id path parameter, see the Create a Custom Email Template topic
    3. The API also provides a PUT operation that allows the invitee to accept the invitation. This is only relevant when the invitee is already registered. For further information on using the API to create shareable links in your component, refer to the API documentation
  5. Add a registration form to display the registration form, with a link to login if the end user is already registered, as described in the Create a Login, Registration or Forgot Password Form topic

    Note: If using the out-of-the-box Zephr registration form, an invitation is automatically accepted when the invitee registers while on the invitation landing page. This applies only if a query param sharing_id path parameter is present.

  6. Drag your new components above the Article Content in the Components section of the Add an Outcome screen with the custom component at the top

    This ensures that the banner appears at the top of the content with the registration form below.

  7. Select the Hide All Content button from the options beside the Article Content component

    This means that the invitee cannot read the content before they have either logged in or registered. For further information on showing and hiding content, see the Show or Hide Content topic.

  8. Select the Save button to save the outcome and return to the rules builder

    Your component outcome is added under the Outcomes segment title.

  9. Drag the outcome to the rules canvas and connect it to the rule

Before publishing this feature, you can customise the Shared Product Invite email template used for the invitation. If you do not customise the email template, the default version is used. For further information on customising the email template, see the Create a Custom Email Template topic.

If you are using the default invitation email template, you can publish your feature, as described in the Publish a Version topic.

Example Customer Pages

In this example, we show the Preference Centre pages that the customer can use to manage their product shares. We also provide the API calls that are used so that you can create your own management pages if required.

When the customer logs into their Preference Centre, they can manage the products that they have shared as follows:

  1. Select the Subscription Information link
  2. Select the Manage shared members link

A summary of the products that they have shared is displayed, as illustrated below:


The summary can be displayed using the following GET command:

GET /zephr/public/products/v1/shares

For further information on the schema, and an example header and body content, refer to the API documentation.

In our example page, we have used a Remove member option to allow the customer to remove the shared product from a seat. This is achieved using the following API call, where the {sharing_id} variable is the identifier of the product share to delete:

DELETE /zephr/public/products/v1/shares/{sharing_id}

For further information on this command and an example URI, refer to the API documentation.

If you want to allow the customer to send invitations from the Preference Centre, or equivalent, page, you can use the following API calls:


For further information on these commands, refer to the API documentation.

  • To send an email, which has been created as described in the Create a Custom Email Template topic, use the following POST command:

    POST /zephr/public/products/v1/shares/invitations/emails

  • To use a token, for example for use in WhatsApp, use the following POST command:

    POST /zephr/public/products/v1/shares/invitations/tokens

    You can also generate a token and include it in a shareable link, or other format used in your UI. The customer can share the link with an invitee manually, for example using WhatsApp.

    1. The specified product must be shareable and the customer must have active grant for that product
    2. Each time the customer sends an invitation, or generates an invitation token, the number of available shares is reduced by one
    3. The customer cannot send further invitations when the number of available seats reaches zero
    4. The customer cannot send an email invitation to the same email address more than once

Example Invitee’s Journey

In this example, we follow the journey taken by an invitee when a customer sends them an invitation to take a seat on a shared product.

When the customer sends an invitation, the invitee receives one of the following:

  • If an email invitation was sent, the invitee receives an email. The content of the email can be configured, as described in the Create a Custom Email Template topic
  • A message, for example in WhatsApp, that contains the link to follow

When the invitee follows the link in the invitation, they are taken to the invitation page that you have configured, where they can accept the invitation and login or register to continue.

The invitee can view the products shared with them in their Preference Centre using the Shared with me link. From here, they can also remove themselves from the shared product.