当前位置: 首页 > 编程日记 > 正文

saas的计费数据库设计_如何构建和扩展SaaS计费解决方案

saas的计费数据库设计

您需要的最低可行产品 (What you need for a Minimum Viable Product)

When you are building your Software as a Service (Saas) Minimum Viable Product (MVP), there is a lot of work that needs to be done. It can be difficult to balance this workload.

在构建软件即服务(Saas)最低可行产品(MVP)时,需要完成许多工作。 平衡此工作负载可能很困难。

Oftentimes you are so focused on developing the product that you forget that you still need to sell it to people. This guide is meant to help you get your billing system off the ground to start making revenue, and show what you should be doing when you are ready to scale up.

通常,您过于专注于开发产品,以至于忘记了仍然需要将其出售给人们。 本指南旨在帮助您使计费系统崭露头角,以开始创收,并展示准备扩大规模时应采取的措施。

订阅内容 (Subscriptions)

Subscriptions are key to an effective billing strategy. The ability to charge a credit card on a recurring basis makes payment more efficient for both you and the customer.

订阅是有效计费策略的关键。 能够定期收取信用卡费用,这对您和客户而言都更加有效。

To start selling subscriptions to your clients, you need:

要开始向客户销售订阅,您需要:

  • A form users can fill out to enter their credit card

    用户可以填写表格以输入其信用卡
  • A backend process that can be called after the payment is successful

    付款成功后可以调用的后端流程

If you don’t have the development cycles to do this, you will be stuck with a painful process of sending invoices manually, giving customers access manually, and adding friction to the on-boarding process.

如果您没有开发周期来执行此操作,则将陷入一个痛苦的过程,即手动发送发票,为客户提供手动访问权限以及增加入职流程的麻烦。

免费试用 (Free Trials)

For many SaaS companies, 100% of their customers come in through their Free trial system. — Lincoln Murphy

对于许多SaaS公司而言,其100%的客户通过其免费试用系统进入。 — 林肯·墨菲

Offering free trials is considered by many to be one of the best ways to find early adopters of your SaaS.

许多人认为提供免费试用版是找到SaaS的早期采用者的最佳方法之一。

When someone is given the opportunity to try your product before committing to a subscription, they are far more likely to become a regular customer.

如果某人有机会在订阅之前尝试您的产品,那么他们更有可能成为常规客户。

It is good practice to treat your trial users with the same level of support and respect as you would your paying customers. Not only are they experiencing your product, they are also experiencing the quality of your service.

优良作法是为试用用户提供与付费客户同等的支持和尊重。 他们不仅在体验您的产品,而且还在体验您的服务质量。

与什么整合 (What to integrate with)

At the end of the day, you will end up integrating with an external system to handle these use cases. I highly recommend looking at Stripe because they have an excellent API to integrate with and a wide range of functionalities.

最终,您将最终与外部系统集成来处理这些用例。 我强烈建议您查看Stripe,因为它们具有出色的API可以与之集成并且具有广泛的功能。

If you don’t want to develop the integration with Stripe yourself, take a look at Servicebot — It comes fully integrated with Stripe and has great Customer Relationship Management (CRM) functionality so you can better manage your customers and subscriptions from a dashboard.

如果您不想自己开发与Stripe的集成,请查看Servicebot-它与Stripe完全集成,并且具有强大的客户关系管理(CRM)功能,因此您可以从仪表板更好地管理客户和订阅。

自动化是扩展的关键 (Automation is the key to scaling)

During your early stages, Y Combinator founder Paul Graham says, “Do things that don’t scale.” Although this may sound counter-intuitive, this is the best way to grow your customer base before you begin to even think about scaling.

在您的早期阶段, Y Combinator创始人Paul Graham说:“ 做不成规模的事情。 ”尽管这听起来可能违反直觉,但这是在开始考虑扩展之前扩大客户群的最佳方法。

What scaling boils down to is automating the manual processes you’ve found to be effective at growing your startup.

归根结底是自动化的手动流程,您发现这种流程可以有效地促进启动。

When you’re ready to scale your billing solution, here are a few things to consider:

当您准备扩展计费解决方案时,请考虑以下几点:

计费流程自动化 (Billing Process Automation)

Automating the processes involved with billing — such as what happens when a user requests a trial, adds a funding source, or requests a cancellation — is one of the most important parts of scaling your billing solution.

自动化计费流程(例如,当用户请求试用,添加资金来源或请求取消时发生的事情)是扩展计费解决方案最重要的部分之一。

You should first take a look at how you are currently doing your billing. Identify all the manual processes that currently are a part of your system, like restricting access if trials expire or reactivating accounts after they’ve been cancelled. Once you make that list you can start figuring out how much time is spent performing these and start iterating to reduce the most painful parts.

您首先应该看一下当前的结算方式。 确定当前属于系统一部分的所有手动流程,例如在试用期满后限制访问权限或在取消帐户后重新激活帐户。 列出该列表后,您就可以开始计算执行这些操作所花费的时间,并开始进行迭代以减少最痛苦的部分。

Another big part of automating your process is automating customer outreach based on their status in the billing system.

自动化流程的另一个重要部分是根据客户在计费系统中的状态来自动化客户服务。

自动客户拓展 (Automatic customer outreach)

Customer outreach is key to converting customers from free trials to paid. When starting out, this process is mostly manual. Email people when they sign up, remind them when their trial is ending soon, or ask if they need help getting started.

客户推广是将客户从免费试用转换为付费试用的关键。 刚开始时,此过程通常是手动的。 注册人员时向他们发送电子邮件,试用期即将结束时提醒他们,或者询问他们是否需要帮助。

This is not scalable — you need to eventually automate this process, and the best place to focus on is the billing side because so many steps are processed there

这是不可扩展的-您最终需要使该过程自动化,并且最需要关注的地方是计费方,因为那里要处理的步骤很多

  • On-boarding — When a new user signs up, your system should automatically send an email explaining how to get started.

    入职 —当新用户注册时,系统应自动发送一封电子邮件,说明如何开始使用。

    More advanced systems follow the customer’s journey and send specific help articles for things they haven’t done yet.

    更加先进的系统将跟随客户的旅程,并针对他们尚未完成的工作发送特定的帮助文章。

  • Trial Conversion — When a trial is created, there are a few things that should be sent to the user to convince them to convert. Things like a “3 days left” reminder or a message asking for a 1-on-1 call can really make the difference.

    试用转换 -创建试用版时,应将一些内容发送给用户,以说服他们进行转换。 诸如“还剩3天”提醒或要求一对一通话的消息之类的东西确实可以有所作为。

    Automating these messages is important to insure scalability.

    自动化这些消息对于确保可伸缩性很重要。

  • Lead recovery — When a trial expires or a user cancels, all is not lost. Sending emails a specific duration after they leave explaining new features, asking for feedback of what you can do better, and articles about your product may be enough to bring them back around to give you another chance.

    潜在客户恢复 -试用期到期或用户取消时,所有操作都不会丢失。 离开后,在特定的时间发送电子邮件,说明新功能,征求您对您可以做得更好的反馈,有关产品的文章可能足以使它们重新流行,从而给您带来另一个机会。

To ensure seamless communication between your system and the customer, it is important for your system to be tightly integrated with your billing.

为确保系统与客户之间的无缝通信,将系统与计费紧密集成非常重要。

与其他系统集成 (Integrating with other systems)

One of the best ways to automate your businesses with minimum development effort is to integrate with third-parties who have already solved the problems you are facing.

以最少的开发工作量实现业务自动化的最佳方法之一就是与已经解决了您面临的问题的第三方集成。

Here are my favorites which I’m using for my own SaaS startup:

这是我用于自己的SaaS启动的收藏夹:

条纹-付款处理 (Stripe — Payment processing)

Stripe has become the staple of SaaS payment providers. With a developer-friendly API and constant new features, I (and countless others) feel it’s an obvious integration point.

Stripe已成为SaaS付款提供商的主要内容。 凭借对开发人员友好的API和不断的新功能,我(以及其他众多人)认为这是显而易见的集成点。

Some of the features you can integrate with to automate more of your billing are:

您可以整合以自动执行更多结算操作的一些功能包括:

  • Webhooks to alert your system of failed payments

    Webhooks提醒您的系统付款失败
  • No credit card free trials

    没有信用卡免费试用
  • Add charges to existing subscriptions

    向现有订阅添加费用

There is much more you can do with Stripe, it should be up to you and your startup’s needs to determine how deep of an integration you need.

您可以使用Stripe做更多的事情,这取决于您和创业公司的需求,以确定您需要集成的深度。

对讲机-通信自动化 (Intercom — Communication automation)

The staple of Intercom is the live chat widget that you embed on your site to enable communication with your customers. What many people don’t realize is that Intercom also provides an automation platform. If you integrate with Intercom, you can send customized messages to your customer based on what they do with your product.

Intercom的主要功能是您嵌入到站点中的实时聊天小部件,以实现与客户的通信。 许多人没有意识到的是,对讲机还提供了一个自动化平台。 如果与Intercom集成,则可以根据客户对产品的处理方式向他们发送自定义消息。

This allows you to automate the communication with your customer so you don’t have to manually email anymore.

这使您可以自动与客户进行沟通,因此您不再需要手动发送电子邮件。

Servicebot —订阅管理 (Servicebot — Subscription Management)

Servicebot comes out-of-the-box with a Stripe and Intercom integration. When a customer requests a free trial, Servicebot creates a new trialing subscription and customer in Stripe and a new user in Intercom, and directs them to a newly-created instance to use.

Servicebot开箱即用,具有Stripe和对讲机集成。 当客户请求免费试用时,Servicebot将在Stripe中创建一个新的试用订阅和一个客户,并在Intercom中创建一个新用户,并将他们定向到一个新创建的实例中使用。

Intercom will send automated messages with the goal of converting to a paying user while Stripe will manage the subscription automatically.

对讲机将发送自动消息,以转换为付费用户,而Stripe将自动管理订阅。

A good first step to begin scaling is with automating your billing process. When it all comes together, you can connect parts of your business to a centralized location, as well as integrate it with third parties. The result of all this will be massive gains in productivity and efficiency that make the effort well worth it.

开始扩展的一个好的第一步是使您的计费过程自动化。 当一切融合在一起时,您可以将部分业务连接到一个集中的位置,并将其与第三方集成。 所有这些的结果将是生产力和效率的大幅度提高,这值得付出努力。

If you are interested in automating parts of your SaaS billing solution to do things like automate customer on-boarding and connecting business processes to your billing system.

如果您对自动化SaaS计费解决方案的一部分感兴趣,以执行诸如自动执行客户入职并将业务流程连接到计费系统之类的事情。

翻译自: https://www.freecodecamp.org/news/how-to-build-and-scale-your-saas-billing-solution-d6111b9ae253/

saas的计费数据库设计

相关文章:

关于一对多,多对多的多表查询的控制

一、一对多 以班级Classes和学生Student为例:回忆sql语句://内链接,两种方式效果一样,查询的是两边都有的数据SELECT c.*,s.* FROM classes c,student s WHERE s.cidc.cid;SELECT c.cname,s.sname FROM classes c INNER JOIN student s ON s.cidc.cid;//左外连接&am…

JavaScript对象,方括号和算法

by Dmitri Grabov德米特里格拉波夫(Dmitri Grabov) JavaScript对象,方括号和算法 (JavaScript Objects, Square Brackets and Algorithms) One of the most powerful aspects of JavaScript is being able to dynamically refer to properties of objects. In this…

《Java 8 实战》(二)—— Lambda

Lambda表达式可以理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表/函数主体/返回类型,可能还有一个可以抛出的异常列表。 Lambda表达式由参数/箭头和主体组成: (Apple a1, Apple a2) -> a1.getWeight(…

c++回调函数 callback

(1)Callback方式Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码,我们在Download完成时需要触发一个通知外面的事件:…

【微信小程序之画布】终:手指触摸画板实现

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 先看效果图&#xff1a; wxml <!--pages/shouxieban/shouxieban.wxml--> <view class"container"><view>手写板&#xff08;请在下方区域手写内容&…

Android开发中应避免的重大错误

by Varun Barad由Varun Barad Android开发中应避免的重大错误 (Critical mistakes to avoid in Android development) As many pioneers and leaders in different fields have paraphrased:正如许多不同领域的开拓者和领导人所说&#xff1a; In any endeavor, it is import…

机房收费系统(VB.NET)——超具体的报表制作过程

之前做机房收费系统用的报表是GridReport&#xff0c;这次VB.NET重构中用到了VisualStudio自带的报表控件。刚開始当然对这块功能非常不熟悉&#xff0c;只是探究了一段时间后还是把它做出来了。 以下把在VisualStudio&#xff08;我用的是VisualStudio2013&#xff0c;假设与您…

微信小程序实现画布自适应各种手机尺寸

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 解决的问题&#xff1a; 画布&#xff0c;动画等js里面的操作&#xff0c;默认是px而不是rpx, 无法根据手机屏幕自适应 达到的效果&#xff1a; 让画布&#xff0c;动画在不同分辨…

网易新闻首页实现

http://www.2cto.com/kf/201409/330299.html IOS后台运行机制详解&#xff08;二&#xff09; http://blog.csdn.net/enuola/article/details/9148691转载于:https://www.cnblogs.com/itlover2013/p/4403061.html

阿联酋gitex_航空公司网站不在乎您的隐私后续行动:阿联酋航空以以下方式回应我的文章:...

阿联酋gitexby Konark Modi通过Konark Modi 航空公司网站不在乎您的隐私后续行动&#xff1a;阿联酋航空对我的文章进行了全面否认 (Airline websites don’t care about your privacy follow-up: Emirates responds to my article with full-on denial) Yesterday, The Regis…

微信小程序把缓存的数组动态渲染到页面

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 代码实现的目的&#xff1a;当页面销毁的时候&#xff0c;页面的参数状态还是能够保存。 show_img函数实现&#xff1a; 创建一个数组保存到缓存&#xff0c;遍历缓存的list_stutas对…

Find Minimumd in Rotated Sorted Array

二分搜索查最小数&#xff0c;from mid to分别为区间的第一个&#xff0c;中位数&#xff0c;和最后一个数 if(from<mid&&mid<to)//顺序&#xff0c;第一个即为最小值 return from; if(from>mid)//发现逆序&#xff0c;则最小值在这个区间&#xff0c;2分搜索…

在DataTable中更新、删除数据

在DataTable中选择记录 /*在DataTable中选择记录*//* 向DataTable中插入记录如上&#xff0c;更新和删除如下:* ----但是在更新和删除前&#xff0c;首先要找出要更新和删除的记录。* 一种方法是遍历DataRow&#xff0c;搜索想要的记录&#xff0c;* --〉然而更聪明的办法是使用…

使用TensorFlow进行机器学习即服务

by Kirill Dubovikov通过基里尔杜博维科夫(Kirill Dubovikov) 使用TensorFlow进行机器学习即服务 (Machine Learning as a Service with TensorFlow) Imagine this: you’ve gotten aboard the AI Hype Train and decided to develop an app which will analyze the effective…

浏览器加载、解析、渲染的过程

最近在学习性能优化&#xff0c;学习了雅虎军规 &#xff0c;可是觉着有点云里雾里的&#xff0c;因为里面有些东西虽然自己也一直在使用&#xff0c;但是感觉不太明白所以然&#xff0c;比如减少DNS查询&#xff0c;css和js文件的顺序。所以就花了时间去了解浏览器的工作&…

《转》java设计模式--工厂方法模式(Factory Method)

本文转自&#xff1a;http://www.cnblogs.com/archimedes/p/java-factory-method-pattern.html 工厂方法模式&#xff08;别名&#xff1a;虚拟构造&#xff09; 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类…

微信小程序去除左上角返回的按钮

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 解决方法有两种&#xff1b; 1.把该页面设置为tab页面或者主页 ; 2.进入该页面使用 wx.reLaunch(); 示例 wx.reLaunch({url: ../detail/detail,}) 这样有一个弊端&#xff0c;就是…

我的第一个web_登陆我的第一个全栈Web开发人员职位

我的第一个webby Robert Cooper罗伯特库珀(Robert Cooper) 登陆我的第一个全栈Web开发人员职位 (Landing My First Full Stack Web Developer Job) This is the story of the steps I took to get my first job as a full stack web developer. I think it’s valuable to sha…

HTTP请求报文和HTTP响应报文(转)

原文地址&#xff1a;http://blog.csdn.net/zhangliang_571/article/details/23508953 HTTP报文是面向文本的&#xff0c;报文中的每一个字段都是一些ASCII码串&#xff0c;各个字段的长度是不确定的。HTTP有两类报文&#xff1a;请求报文和响应报文。 HTTP请求报文 一个HTTP请…

微信小程序用户未授权bug解决方法,微信小程序获取用户信息失败解决方法

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; bug示例图&#xff1a; 导致这个bug的原因是 wx.getUserInfo(OBJECT) 接口做了调整&#xff1b; 请看官方文档的描述&#xff1a; wx.getUserInfo(OBJECT) 注意&#xff1a;此接口有…

格式化json日期'/Date(-62135596800000)/'

日期经过json序列化之后&#xff0c;变成了/Date(-62135596800000)/字符串&#xff0c;在显示数据时&#xff0c;我们需要解释成正常的日期。 Insus.NET和js库中&#xff0c;写了一个jQuery扩展方法&#xff1a; $.extend({JsonDateParse: function (value) {if (value /Date(…

aws lambda使用_使用AWS Lambda安排Slack消息

aws lambda使用Migrating to serverless brings a lot of questions. How do you do some of the non-serverless tasks, such as a cronjob in a serverless application?迁移到无服务器带来了很多问题。 您如何执行一些非无服务器的任务&#xff0c;例如无服务器应用程序中的…

微信小程序模块化开发 include与模板开发 template

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 1. include 是引用整个wxml文件&#xff0c;我通常会配合js&#xff0c;css一起使用&#xff1b; 使用场景&#xff0c;需要封装事件和微信 api 的公共模块。 2.template &#xff…

winform解析json

在使用C#开发爬虫程序时&#xff0c;会遇到需要解析json字符串的情况。对于json字符串可以使用正则表达式的形式进行解析&#xff0c;更为方便的方法是使用Newtonsoft.Json来实现。 Nuget添加应用包 在工程上右键——【管理Nuget程序包】浏览找到要安装的程序包Newtonsoft.Jso…

Oracle11g密码忘记处理方法

c:\>sqlplus /nolog sql>connect / as sysdba sql>alter user 用户名 identified by 密码;&#xff08;注意在这里输入的密码是区分大小写的&#xff09; 改完之后你可以输入 sql>connect 用户名/密码 as sysdba进行验证 转载于:https://www.cnblogs.com/imhuanxi…

hic染色体构想_了解微服务:从构想到起点

hic染色体构想by Michael Douglass迈克尔道格拉斯(Michael Douglass) 了解微服务&#xff1a;从构想到起点 (Understanding Microservices: From Idea To Starting Line) Over the last two months, I have invested most of my free time learning the complete ins-and-outs…

[python]关于字符串查找和re正则表达式的效率对比

最近需要在python中做大日志文件中做正则匹配 开始直接在for in 中每行做re.findall&#xff0c;后来发现&#xff0c;性能不行&#xff0c;就在re前面做一个基本的字符串包含判断 (str in str)&#xff0c;如果不包含直接continue 效率对比&#xff1a; 1、只做一次包含判断&a…

微信小程序客服功能 把当前页面的信息卡片发送给客服

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 需求&#xff1a;微信小程序客服带详情页 &#xff0c; 场景&#xff1a;一个人通过微信小程序接入微信客服&#xff0c;聊天后带上入口链接 效果图&#xff1a; 写法&#xff1a; …

phpcms标签大全V9

转自&#xff1a;http://blog.csdn.net/cloudday/article/details/7343448调用头部 尾部{template "content","header"} 、 {template "content","footer"}{siteurl($siteid)} 首页链接地址 <a href"{siteurl($siteid)}/&q…

多伦多到温莎_我想要freeCodeCamp Toronto的Twitter来发布报价,所以我做了一个免费的bot来做到这一点。...

多伦多到温莎If you read About time, you’ll know that I’m a big believer in spending time now on building things that save time in the future. To this end, I built a simple Twitter bot in Go that would occasionally post links to my articles and keep my ac…