What is a Credit Based System?
Simply put, credit based systems allow your members to accumulate credits and spend them on services instead of using cash directly.
As their credits increase either through buying or earning credits, they can then use those credits to buy additional access. Typically credits are earned either through one-time purchases, through subscriptions, or through performing activities. Credits are then redeemed either for an increased level of membership, or to buy access to content either on a permanent or temporary basis.
For a webinar tour of a system we helped a client build using credits, please see our Memberium video tour here with Bernardo Feitossa of GraceSmith.TV
To see a Memberium credit system working on a live site, watch this short clip of one of our customer site walkthroughs. You can watch the full-length walkthrough here.
Why Use a Credit Based System?
Credit based systems are most commonly used for a couple of purposes. They can be used as a reward system for actions or behaviors, by causing those behaviors to accumulate credits, or they can be used to allow members to purchase the access and services they want from a catalog, much like a self-guided drip system, without involving the friction of a purchase.
For example, if you have a content library and want to let members pick and choose what they want, a credit system would be a great solution to allow them to purchase that access using their credits.
A credit system can be a great feature to add to a subscription system to reward members for ongoing membership.
You can also use a credit system to implement a rotating library lend-out system. By deducting credits when a member “checks out” content, and adding the credits back when they return it, you can create an effective system to manage user consumption.
Storing and Adjusting Credits
Credits are stored in the user’s Infusionsoft contact record in a custom field. You can use a numeric or text field for this, either will work equally well.
You can use integer or decimal credits. However, unless you have a compelling reason to use decimal or fractional credits, we recommend using simple whole number credits.
We don’t recommend mapping one credit to one dollar directly as it may defeat some of the value of using a credit system to relax members during the purchase process.
In order to add or remove credits from Infusionsoft, you’ll use the Memberium Math HTTP POST. You can use this HTTP POST in Order Form success actions, Purchase Actions, Billing Triggers, and Campaign Builder sequences. If you are running multiple sites with credits, then be sure to follow the math post with an Update Contact HTTP POST to your other sites to ensure they’re updated.
Depositing Credits on a Purchase
To add credits to a contact’s account when they purchase a product there are several ways to do so.
Using Campaign Builder, you can place a sequence after the purchase goal that contains your fulfillment steps for the product. In that sequence, you would add a Math HTTP POST to increase the credit count.Using Legacy Order forms, if you wish the credits to be for a specific order form or funnel, then you would use the Success Actions.
Using One Click Orders, you would run the HTTP POST from an actionset.
Depositing Recurring Credits with a Subscription
A popular option is to grant credits on a subscription for each billing cycle (typically monthly). This is easy to do using Infusionsoft’s Billing Triggers, which are located in Ecommerce->Settings. You can setup a billing trigger to run an actionset each time an automatic charge is successfully made on a given product.
When regularly depositing credits into a member’s account using a system like this, you may want to send them an automated email with a note that they have received a deposit, and let them know what their new balance is, with some suggestions on how to use it.
The Library Model – Returning Credits when Members Return Content
You can create a lending library of your content where your members can only “check out” or actively use a portion of it at a time. This works like a regular credit purchase, except that you would provide an additional actionset button for someone who has the content, allowing them to “check it in” with you again. When a customer checks in the content, you would run an actionset removing their tag granting them access to the content, and increasing their credit count by 1.
Your action button to return the content would typically be displayed in the same location as your link to access the content.
Preventing “Course Hopping” with Loaned Content
You can also use tags and delay timers to limit how frequently a user can return the content, to prevent them from hopping from item to item. When they spend a credit to borrow a course, you would apply the tags to grant access to the course and any drip sequences as normal.
However, in addition to the regular drip tags, you would also add a “lock” tag, and put the contact into a sequence that removes the tag after a given period of time, such as 1 or 2 weeks, or even just a day. When you go to display the “Check In” button, only display it to contacts that don’t have the lock tag. You would need one lock tag per course so that you could track individual courses independently. There’s also no reason that you would need to have all courses run on the same timer, the possibilities to cater to your customer’s experience are endless.
Options to Buy More Credits
From within your Membership site you can also sell credits using One-Click upsells, or links to order forms. This can be really effective when paired with your product catalog.
For example, let’s consider a catalog of items, and a particular item within that catalog that costs 50 credits.
If the user has the tag for that product, you can link directly to the product page so that the user can consume their content.If the user has 50 or more credits, but does not own the product, you can display a purchase button that debits 50 credits, and adds the tag to register ownership of the product.
If the user has less than 50 credits, you can display a link to a page that lets the user buy more credits with a one time purchase, or an upgrade to their subscription.
What would the code for this look like? Below is some sample code with made up names. You aren’t limited to this, you can build this out further and make it more attractive. The important concept here is that there are roughly 3 conditions to have options for:
- Owns Product Already
- Doesn’t own Product and has enough credits
- Doesn’t own Product and doesn’t have enough credits
To handle these situations, you only need a couple of shortcodes:
[memb_has_any_tag]
[memb_if]
[memb_actionset_button]
AND, we’ll show you below how to use these.
Showing Available Credits
To show the available credits, use the standard [memb_contact] shortcode.
To control what’s displayed depending on the credit count, you use the [memb_if] shortcode to show different outputs based on the contact’s current credit limit.
Buying Access with Credits
To buy access with credits you would use the [buy_actionset_button] shortcode to display a button to the user. This button when clicked will run an actionset or campaign on the server. I would recommend running an actionset for a simple task like this. The actionset will perform the following steps:
- Use the Math HTTP POST to debit the cost in credits from the user’s custom field.
- Apply a tag to unlock the content
- Perform any other fulfillment functions you want (notification email, etc.)
- Run an Update Contact HTTP POST to notify Memberium of the new access.
Restoring Credits for Returned Content
To return credits for releasing access, the process is virtually identical to buying content. You would use the [buy_actionset_button] shortcode to display a button to the user. This button when clicked will run an actionset or campaign on the server. I would recommend running an actionset for a simple task like this. The actionset will perform the following steps:
- Use the Math HTTP POST to increase the number of credits in the user’s custom field by the cost in credits of the content.
- Remove the tag that unlocks the content
- Perform any other fulfillment functions you want (notification email, etc.)
- Run an Update Contact HTTP POST to notify Memberium of the new access.
Expiring Content Purchased with Credits
Usually content purchased with credits is perpetual meaning that once the purchase is made, the user has access to it forever. In some cases you may want the access to the content to be time limited, for example: 2 weeks, or 4 months, etc.
This functionality is easy to implement using Campaign Builder. Create a tag goal for a sequence using the access tag for the product, add a delay timer to cover the duration of the temporary access. At the end of the period, remove the tag.
All Access Membership
Many credit based sites also like to offer an option for a standard subscription which grants access to all the credit based products for the life of the subscription. You can do this by creating a membership level for your subscription and making that membership level one of the tags or memberships that will unlock the page.
This sounds so complicated!
Yes Virginia, you CAN do this. This may sound complicated, but that’s just because there’s some new concepts here. Most of this is very basic Infusionsoft work that most anyone can do with a little effort, and if you get stuck ping us at support and we’ll help you out.
There are three models to implement this, a membership model, a subscription model, and a hybrid.
If you’re doing a membership only model, where the customer manually purchases their products, follow these steps:
- Create a custom field in your Infusionsoft contact to store their credit total. This is your customer’s “Wallet” that credits are deposited into, and spent from.
- Make a list of your credit bundle products. The credit bundle product is the product the person buys in order to get credit, what each bundle costs, and how many credits they get in each bundle
- Create your credit bundle products.
- Create purchase actions for each credit bundle product that runs a Math HTTP POST to add the credits to the customer’s custom field.
- Make a list of your individual products that will be purchased using credits. Each product should have a name, a credit cost, and a tag that is applied to show that it is purchased. You don’t need to make actual Infusionsoft products for these, just the tags.
- Create your tags for each credit purchased product. You’ll need the rest of the information later.
- Use the above referenced code for each item to create a buy button. You can use a custom shortcode to make this more streamlined.Create a Custom Shortcode called “creditbutton”
[memb_has_any_tag tagids="{{atts:tag_id}}"] <a href="{{atts:product_url}}">Go to {{atts:name}}</a> [else_memb_has_any_tag] [memb_if value1="{{contact._Credits}}" test="ge" value2="{{atts:cost}}"] [memb_actionset_button button_text="Buy {{atts:name}} with {{atts:cost}} Credits" action_id="{{atts:action_id}}"] [else_memb_if] <a href="{{atts:buy_more_url}}">Buy More Credits</a> [/memb_if] [/memb_has_any_tag]
Your new shortcode can be inserted into the page like this:
[membc_creditbutton tag_id=123 product_url=/my_product/ name="My Product" cost=10 action_id=1234 buy_more_url=/buy_more]
tag_id = The # of the tag used to mark if the customer already owns that product
product_url = The URL of the page that people who own the product can go to, to access it.
name = The name of this product
cost = The cost of this product in credits
action_id = The Actionset to run that does the HTTP POST to debit the credits
buy_more_url = The URL to send customers to if they don’t have enough credits, so that they can buy more.
If you’re doing a subscription model, where the customer automatically gets new credits every time their subscription charges, follow these steps:
- Create a custom field in your Infusionsoft contact to store their credit total. This is your customer’s “Wallet” that credits are deposited into, and spent from.
- Create an Actionset for each type of subscription that runs a Math HTTP POST to add the credits to the customer’s custom field.
- Create Billing Triggers in Infusionsoft’s eCommerce Settings to run your actionset each time the subscription as a successful autocharge.
- Make a list of your individual products that will be purchased using credits. Each product should have a name, a credit cost, and a tag that is applied to show that it is purchased. You don’t need to make actual Infusionsoft products for these, just the tags.
- Create your tags for each credit purchased product. You’ll need the rest of the information later.
- Use the above referenced code for each item to create a buy button. You can use a custom shortcode to make this more streamlined. Create a Custom Shortcode called “creditbutton”
[memb_has_any_tag tagids="{{atts:tag_id}}"] <a href="{{atts:product_url}}">Go to {{atts:name}}</a> [else_memb_has_any_tag] [memb_if value1="{{contact._Credits}}" test="ge" value2="{{atts:cost}}"] [memb_actionset_button button_text="Buy {{atts:name}} with {{atts:cost}} Credits" action_id="{{atts:action_id}}"] [else_memb_if] This item costs {{atts:cost}}, and you do not have enough credits. [/memb_if] [/memb_has_any_tag]
Your new shortcode can be inserted into the page like this:
[membc_creditbutton tag_id=123 product_url=/my_product/ name="My Product" cost=10 action_id=1234]
tag_id = The # of the tag used to mark if the customer already owns that product
product_url = The URL of the page that people who own the product can go to, to access it.
name = The name of this product
cost = The cost of this product in credits
action_id = The Actionset to run that does the HTTP POST to debit the credits
In both of the examples above, change “_Credits” to the name of your custom field where your credits are stored.
Mixing and Matching the Systems
No we didn’t forget the “Hybrid” model. You can easily mix and match the above two systems. For example if you’re using the subscription model with automatic credit payouts after each billing cycle, there’s no reason why you can’t ALSO offer them an upsell to buy more credits manually. That way your heavy consumers don’t need to wait until the next billing cycle.