In this template, we’ll walk through how to implement a tiered pricing model in Amberflo like Zapier’s. Customers select a pricing tier that corresponds to the number of tasks they need. They prepay for the baseline usage (the minimum number of tasks) and additional tasks are billed by block according to a tiered rate.
Zapier provides an automation platform for creating automated workflows between applications. Each month customers are allocated a certain number of Zaps depending on their tier, which can be thought of as automated jobs or processes. When a Zap is run and completes an action, each completed action is considered a task. The usage of these tasks is metered on the platform and drawn down from the available tasks included with the plan.
As an example, consider a Zap which creates new contacts in your CRM from a list of leads. Each contact created would be considered a task, and would be subtracted from the remaining available tasks.
Zapier has a forever free tier for testing and small-scale users. This is a hallmark of winning product-leg growth (PLG) strategies as it allows users to try out the solution on their own data and use cases to realize value before having to pay. From there, the tiers increase in price with the core differentiating factor being the number of tasks (completed actions by the automated processes) allocated to the user each month.
Note - In this case, we will build the plans such that customers automatically pay for the minimum pricing tier, and then be billed at the end of the month if usage crosses into a higher tier. In practice, once a customer agrees to a particular tier with a set monthly spend and number of tasks, you can automate the monthly prepayment of this amount.
We will walk through how to re-create this pricing model in Amberflo. The first step is to create an Amberflo account if you haven’t already (use this link - https://ui.amberflo.io/signup). See our Documentation for help getting your account set up and inviting team members to join.
Amberflo is a platform solution, with the metering service (Amberflo Metering Cloud) as the foundation and the billing service (Amberflo Billing Cloud) built as an integrated application sitting on top. Amberflo tracks and aggregates usage in realtime and applies your billing logic to that usage to generate the usage-based bill.
Zapier tracks the number of completed tasks as they occur and draws this usage down against the number of allocated tasks according to the user’s plan.
To create the corresponding meter in Amberflo, we use the ‘Sum’ aggregation rule and create a meter named ‘Number of Tasks’.
In practice, we would also create a dimension corresponding to the Zap responsible for the completed task (called ‘ParentZap’), and any other useful metadata for that event that could be used for reporting or analytics.
However, since this dimension isn’t used for billing, we will not include it to keep the demo concise.
Each time a Zap is run and tasks are completed with a customer account, a corresponding meter event would be sent to Amberflo with the meter value containing the number of completed tasks for that run.
Using the example from above with a Zap that creates contacts in your CRM solution, if the Zap is run on a list of leads and 20 contacts are created, then a meter event would be sent to Amberflo with the payload shown below.
There are several options for integrating your solution with Amberflo to ingest usage to the metering system. We provide SDKs in several common languages; an ingestion API; and we enable meter ingestion from files, databases, and other common tools including:
- AWS CloudWatch
- AWS S3
- AWS SQS
- Elastic Logstash
- Databases and JDBC
- POSTMAN collections
- Kong API gateway
For step-by-step walkthroughs on how to use each ingestion method, please refer to our documentation.
Here is the SDK information: https://docs.amberflo.io/recipes
Here is the API reference: https://docs.amberflo.io/reference/post_ingest
Here are the docs on other ingestion options: https://docs.amberflo.io/docs/cloudwatch-logs-ingestion-1
Once the meter ingestion pipeline is configured, usage will be tracked and aggregated (by customer and by all custom dimensions you included) in realtime. You can visualize and query the usage data from the moment it is ingested.
In Zapier’s case, each tier corresponds to its own pricing plan. Each plan includes a different number of tasks per month, and a different, tiered per-task rate table for purchasing additional tasks if necessary.
To recap, hybrid pricing combines elements of subscription pricing with concepts from usage-based pricing. In this case, customers prepay a fixed amount for some amount of usage with the option to purchase additional usage by upgrading to a higher tier or plan.
In Amberflo, we can recreate this pricing model by creating pricing plans for each tier’s base rate, then creating recurring prepaid credits purchases for customers according to their pricing tier. We can create an alert that notifies when the prepaid balance is running low for the customer to either pause their usage or upgrade plans.
To keep the demo concise we will recreate the Starter and Professional plans.
|Plan||Zapier Monthly Cost||Number of Tasks|
|Professional IX||>2M → $0.01 per task|
First create a product item called ‘Tasks’ and associate it with the meter ‘Number of Tasks’. This is the product item that will make up the Zapier plans.
The first plan is Zapier Starter which has only two tiers.
|Plan||Zapier Monthly Cost||Number of Tasks|
We added a fixed monthly cost for $19.99 and 750 free ‘Tasks’. Thereafter, if a customer wants to consume additional tasks, they must purchase a block of 750 more tasks for $20. After purchasing the additional block of tasks, the customer must upgrade to a higher tier to continue purchasing tasks.
Alerting to restrict usage to 1500 units max or upgrade to higher tier
Since the Starter plan only allows for the customer to purchase a maximum of 1500 tasks, once the 1500th task is consumed, an alert would be triggered, notifying the customer to transition to a higher plan, or their tasks will be logged for the start of the next month when their task balance replenishes.
Next we will move on to the Professional tier, which will get a bit more complicated since there are so many price points to capture. Note that there is no prorating of tiers - consuming one task from the next tier up will incur that tier’s full cost, and the associated number of tasks will be allocated for usage.
For example, if a customer consumes a 2001st event, then they will be charged $89 for that month, and there will be 2999 events remaining for the customer to consume before additional charges would be incurred.
When creating the tiers in Amberflo, it is important to note the tier price and the block size for each tier. Rather than simply copying Zapier’s rate plan onto the pricing tiers, a more nuanced approach is required. In Amberflo, tiers compound on each other.
For example, if a customer requires 15,000 tasks per month, using the tiered pricing model, the charges for Professional I-IV will be added to each other. If you use the monthly charges from Zapier as-is, you would end up charging that customer ($49+$89+$129+$189) or $456, instead of the correct amount of $189. To rectify this, each tier in Amberflo should be the difference between the monthly cost for Zapier. That is to say, since the difference between Professional III and II is $40, Professional III in Amberflo should be $40 (not $129). This approach follows across all pricing tiers according to the table below.
Creating the pricing tiers
First, add the monthly fixed charge. This is the minimum spend for the Professional tier. In this case, $49 per month which allocates 2000 tasks to the customer. If they require additional tasks, then they will be charged according to the pricing tiers shown.
Next, select the ‘Tiered’ pricing model and create the tiers, setting the block size to be the difference between the number of tasks in the selected tier and the number of tasks in the tier directly above. For example, the block size for the $89-tier is (5000 - 2000), or 3000. For the final tier (above 2M tasks), use the block size of 1 since the pricing transitions to per-event pricing with a rate of $0.01/task.
|Plan||Zapier Monthly Cost||Amberflo Tier Amount||Number of Tasks||Amberflo Block Size|
|Professional I||$49||$0 ($49 set as fixed-rate add on)||2,000||2,000|
|Professional XI||$3,389 plus||$0.01||unlimited||1|
See the pricing tiers created in Amberflo below. Note that the first tier containing the first 2000 events is free. This is because the first 2000 events are paid for with the $49 monthly fee. Additional usage beyond these 2000 events is charged according to the tiers.
To begin generating invoices for usage, you must activate the pricing plan and assign the plan to customers. From the moment the plan is assigned, the billed amount will be calculated in realtime as usage occurs by applying the product item rates.
You can view the on-demand invoice at any point during the billing cycle by navigating to the customer view and selecting the invoice you’d like to view.
First, activate the pricing plans in Amberflo. This takes them out of ‘Draft’ mode and into the ‘Active’ state where they are locked to further changes and able to be associated with customers for invoicing.
You activate a pricing plan you’ve created for each tier by selecting the plan from the list of plans (from the Pricing Plans view on the main navigation menu), and activating the toggle in the the top left corner of the view.
Allow customers to choose their pricing plan
You can manually create customers in Amberflo and assign them a pricing plan. See AWS-style pay-as-you-go pricing for more information.
You can also embed our UI widgets in your website or application to allow users to select their own plan - this will automatically create the Amberflo customer and assign them to a plan.
For each component, you can customize the labels and description shown, as well as the colors, font size, and branding. Below are screenshots showing how to create components for the Starter and Professional plans. On the left hand side of each image are the configuration and customization options, on the right hand side you can see an example of what the component will look like with the chosen configurations.
Next, generate the code for each component and embed them in your customer-facing site or application to allow users to automatically select their pricing tier. The ‘Generate Code’ button can be found in the top right corner of the view.
From here, customers can select their Zapier pricing plan. A corresponding customer is created in Amberflo using information from their Zapier account. From the moment a customer is created in Amberflo and assigned to a plan, usage is automatically tracked and the usage-based bill is generated in realtime.
Usage-based pricing with a hybrid, tiered model like Zapier offers some of the benefits of both subscription and usage-based pricing. For each paid tier, there is a minimum spend that is guaranteed each month with the potential to increase if usage rises. This gives a baseline for guaranteed and predictable revenue.
Having multiple usage-based tiers all based on a single charge vector (the number of tasks completed) gives customers a lever to modulate their spend and ensure the spend remains in balance with the value being realized. It also allows Zapier to target customers of all sizes, industries, and maturity levels by offering multiple sets of capabilities and price points for different buyers.
With Amberflo you can implement any custom variation of hybrid pricing tiers to suit your product portfolio and feature set.
Get started today, click here to create your account and start building.