Showing posts with label SaaS. Show all posts
Showing posts with label SaaS. Show all posts

Wednesday 1 February 2023

SaaS Product surrounding services

Onboarding - Ability to allow customers to sign up to trials, sign-up as a customer, payments and billing.

Sales Channels - Ability to bring on new customers from various channels like other websites, digital adverts, telephone,... Can be from very simple to supper complicated.

Service Page - All clients to see the current status of your SaaS products e.g. 

https://portal.office.com/servicestatus

https://status.quickbooks.intuit.com

A lot of incident management software offers white labelled status page

SaaS solutions include: 

statuscast.com

statushub.com

Sunday 7 November 2021

Figuring out SaaS licencing and SLA's

Overview: Buyers be they B2B or B2C will want to understand you licensing, probably cost, and level of service.  Keep it simple, keep it understandable, make sure you cover what availability, performance, actions users can use you service for are all clearly outlined in you Service Level Agreement (SLA).

Licensing pricing options:  Pay per use one-off, yearly, pay per user monthly or annual, pay per consumption e.g. stripe.  

SLA:

  • Availability 99.9 or better is good, it really depends on what you are offering but there are often penalties for missing availability SLA.  If I build a pretty standard SaaS application that utilises App Services, APIM (standard, premium geo loaded has a higher SLA) and Azure SQL, I can't make a 99.9% SLA excluding AAD and any patching, or application caused downtime.  At a SaaS product level providing an actual 99.999% (5 nines) SLA is not as easy as the marketing and legal stakeholders might assume.

It becomes easier to offer 99.9+% SLA's if you as a company assume the risk.  i.e it's unlikely all the downtime will occur and affect you sequentially so offering money back is absolutely possible.  Also most SaaS companies require clients to claim, it is not monitored and automatically applied to your bill.
  • Support - phone, bot, email and max time to respond and time to resolve.  
  • B2B Monitoring - Good idea to monitor you SaaS provider and not just take their word for it.  Technically, monitor availability of individual services (web sites or API's), it also good to know when items outside of your control (with the SaaS vendor) are unavailable in internal support.  Examples: page load times, login times, you are looking for availability and speed.   How much of the service is down, how much does this affect end customers.   You may want to use a 3rd party tool or write your own as a last resort to monitoring.  When relying on 3rd parties to provide services ensure you do a hazard risk assessment.  Plan for when things happen, how will you respond, adjust.

SLA vs SLO vs SLI:
  • SLA (Servcie Level Agreement - contractual agreement SaaS company makes with the customer.
  • SLO  (Service Level Objective) - Goal availability (and acceptable performance) of the microservice or application.  Measurement goal.
  • SLI (Service Level Indicator) - checks if SLO is achieved.  Actual Measurement.

As part of High Availability and scalability, it is a good idea to know how many instances and how autogrowth is setup, here is an example for Azure App Services.


Scale Out (CPU or Memory) - Matrix Threshold (Avg): 70, Duration:  5 Min, Cool down Time:  5 Min, Increase Count: 1
Scale In   (CPU or Memory) - Matrix Threshold (Avg): 40, Duration: 30 Min, Cool down Time: 10 Min, Decrease Count: 1

Sunday 3 October 2021

SaaS Onboarding & Payment Collection

Overview:  Selling a SaaS generally can be split into B2C and B2B.  Both SaaS models require the ability to onboard a customer and collect the payments for the service.  And to do this a website /Content Management System is need to allow the customer to trial, buy, purchase add-on and collect recurring revenue.

B2C SaaS (small to large):  You need "brochureware", web pages that show the service and allow the user to purchase.   As I generally sell SaaS software, and B2C is often 1 off or pay as you need, I'd recommend Shopify, there are add-ons for selling digital goods.  You can always use marketplaces like amazon or eBay also.  WooCommerce (integrates with WordPress), BigCommenrce, Magento, Wix, SquareSpace can be used for selling physical goods but need some thought and add-ons for digital goods.  All the options are not great at Monthly Recurring Revenue (MRR) e.g. Netflix, or ARR (annual, e.g. Grammarly, Blinkist) billing, or "pay as you consume" also referred to as "metered billing" or "pay-as-you-go pricing" (Uber, AWS, Twilio, Stripe, Azure, GCP) revenue models.  Pay-as-you-go pricing has variable costs but allows your to reduce the cost to your customer by only charging them for what they use.

Update 2022/06/24: Webflow is a great tool for semi web literate developers to build websites.  UI drag and drop experience.  In the Wix space but you drag vs choosing a template.  I've used it to generate clean semantically correct HTML/CSS to implement in a custom developed SPA solution.  Always consider Webflow, it has checkout and can easily integrate with Shopify and Zapier for simple workflows.  Has free SSL and you can host on their platform.  Priced per website but reasonable with various options.

There are plenty of add-ons but in the Shopify world it's bring in an add-on and a few moving pieces.  For a medium sized SaaS selling MMR solutions, the overhead of setting up and managing the processes is fairly steep.  As the business gets bigger, it's worth the integration or using a dedicated solution like ChargeBee.

B2B SaaS: Could use any revenue model but it is best if your product lends itself to subscription-based selling.  e.g. Office 365, Workday, Legal practice management software to manage clients and work for law firm.  For small SaaS startups selling digital services use a solution like ChargeBee (low end) or Paddle (top end).  You can use anything in-between and addons to get a solution but for the price, setup, expansion as a general rule ChargeBee is good:

  1. Recurly
  2. Chargify
  3. Zuora
  4. Chargify
  5. Stripe
  6. Billby (Good for startups)
  7. ChargeBee (Good for startups)
  8. Bill.com for Accounts payable and receivable.
In the UK, we need direct debits often setup, you can look at something like Bottomline PTX.  I also like recharge.

Privacy Management: OneTrust provides a good configurable SaaS service for cookies and privacy.  If not built into your CMS/platform, then OneTrust is an option.
Pay-as-you-go/metered billing:  You pay based on consumption of services you owed x for the last 30 days e.g. AWS, Azure.  I try to stay away from this model as it's normally difficult to understand and customers in SaaS as a general rule don't like complex unknown pricing models.

Traditional:  Basically, pay as you buy a license.  So you get a perpetual license.  Akin to physical shopping but for digital goods.  Shopify is perfect for this model with a digital download add-on.  E.g. bjjfanatics.com

SME SaaS Business Checklist:

  1. Where you you selling, physical vs virtual
  2. Subscription or 1 off payments (account maintenance), trials, upgrade, upsell and cross selling.  Autorenewals.
  3. Jurisdictions (Tax, VAT, shipping, currency)
  4. Cost (fees, what's included, percentage of sales, growth)
  5. Support (Tech touch, Low touch e.g. email vs 24 hrs phone support, is this subscription based)
  6. Retention (Churn, New, Length of time for customers, support churn warnings, unsubscribing).
  7. Does my billing/subscription allow me to sell on web, native mobile, marketplaces.
Methods to set the SaaS price:
  1. Value based pricing - set the price based on the value the customer saves/gets
  2. Cost plus pricing - your cost plus markup
  3. Competitor pricing - what our our competitors charging
  4. Art of adjustment pricing - set a price see how much demand, change price how does it affect demand, MRR and total expected revenue.
Metrics to capture in SaaS Sales:
  1. MRR
  2. ARR
  3. CLV (Customer lifetime value)
  4. Churn rate
  5. Cost of Customer Acquisition

Marketinghttps://sproutsocial.com/

Support:  It's important to minimize human support effort, automating as much as possible is key.  Bots, knowledge articles that are easy to find are awesome.  Coveo does a nice job of setup for community channels.

User tracking:  Google analytics is pretty good for getting stats.  I do like a new tool to me Pendo which is expensive but extremely powerful.  Pendo's main 2 features for me are user interaction/how they use the site, and providing help tips/Guides are html injected into applications.



Sunday 5 September 2021

R&D UK tax Credits for Software development

Overview: R&D incentive claims with HMRC are designed to attract and encourage investment in R&D in the UK.  By providing for a taxable credit at 13% on qualifying expenditure, namely: Staff costs, consultants, Software licenses, hosting.  Claiming R&D costs reduces the companies tax liability and can be attractive for starting a new business or building new SaaS products.

The idea is:

PoC, Concept Design, software design and initial testing are likely to be deemed as probably qualifying for R&D claims.  The product/service must seek to advance (new or appreciable improvement of a process, product or increase technical capability) technology.

Specification/Requirements, scale up to commercial release, training may be qualifying activities. 

Thoughts:  R&D relief claims are complex.  There are different rates for SME vs large corps and rates if the company is in profit.  It is worth doing, and I believe it is pretty common to pay experts based on a percentage of R&D claim.  The big players have divisions to do R&D claims, i.e. KPMG.  There are also tons of specialized smaller firms that will do R&D claims.  For a SaaS startup, I'd contact a specialist provider to make the R&D claims and agree to a fixed percentage of the savings.

Sunday 9 May 2021

SaaS Go-to-Market (GTM)

Overview: Setting up a new SaaS product is about getting a product that fits into a market.  I like the 1/10/100 strategy especially in the B2B market.  For me it is about getting the product offering right before pushing money into marketing or generating revenue.  The issue is you need to be fully ready including items where support is a low touch as possible.  

A common mistake is not having private beta's and keeping the beta small.  It's dead easy, get 1 trusted customer that you have an open and honest relationship to find the easy improvements, and figure out how to support them and answer questions ...

Customer must have the need, preferably with a bad experience of a competitor in the same market, high trust relationship, and have high expectations for the offering.

So the tech and monitoring, onboarding is all done, we start with 1 customer in beta.  We learn lessons, improve the product, and now we prepare for a private beta for 10 customers.  Get comms right, ensure all support and monitoring is in place.

Sunday 7 March 2021

SaaS Product Customer Experience - level 101 Thoughts

Overview: With SaaS products is is easy for our customers to leave.  We need to reduce turnover/churn and technology can help to deliver great Customer Experience (CX).  CX is closely coupled with Customer Success.


Topics to Review:
  1. SLA's & OLA's
  2. Pricing: 
    1. per seat (subscription), 
    2. flat usage or 
    3. usage model (pay as you go).  
    4. Always keep it simple.   In B2B SaaS pricing keep it simple, aim for MMR, that clients understand for cost forecasting.  Make it easy to buy, increase/upsell and leave.  It's amazing how many companies try to hide the sale to reduce churn.  Build good products and service don't try hide exit so stop loosing customers, it's pointless and a poor long term strategy.  
    5. Tiered pricing is good, but keep it simple.  Try stick to 1 form of pricing, its aweful for the customer to have base usage costs and then some crazy secondary model to figure out and explain in the purchasing process.
    6. Companies want Monthly Recurring Revenue (MRR) or ARR and the ability to up sell later.  It depends on the nature of the business and product but monthly should be the default goal especially for B2B SaaS.
    7. Offer a free trial for E2E fairly long is not a bad idea depending on the product.  Two weeks is a rough starting point.  Less if you need them engaged quickly or even several months to get real value.  I tend to find E2E customers with free software don't tend to use it unless their is a limited time.  So I'd always limit to 1 month for a free trial. you can always extend.
    8. Freemium version may be useful (unlimited time) and generally are not applicable to B2B/E2E SaaS models.
  3. Service Status Page - Microsoft do a great job at showing status pages for their services.
  4. Incident Management - Convert into knowledge base both internally and customer facing.  Sales and customer management information alignment.  Find a customer, see their past requests, help reduce churn. service now incident management,   Generally, go for tech touch for interaction over low touch or even high touch.  In E2E, large customers want good tech touch but will require high touch, specifically around customization.  Beware the small customer demanding high touch for their "future potential growth/usage".
  5. Content - product documentation, community forum, online knowledge base, ability to have a good search to cross all the channels (think Coveo), support chat bots, live conversations with support.
  6. Certifications, "gamification" useful for building a community. 
  7. Communicate new features, educate support, educate sales and evangelists and clients.  Training and consultancy.  Monitor communication, use Sentiment Analysis.
  8. Support level i.e. free support may not allow phone conversations and not have an SLA whereas premium support may offer 24 hour production issue resolution with money back guarantees.  Example: Azure Support Plans.  Phone is expensive for support, do we offer this 24/7 and having good support is costly.  People are becoming more familiar with digital self service.  It is also a good idea to have a  warm hand-off from automation to a person.
Getting your processes correct and clear is key to your Digital customer experience (CX).  Key areas to consider: 
  • Advertising/attracting clients, converting leads to clients;
  • Trials and paying (make it easy, cost effective, billing) - customer must understand what they are paying for;
  • First time user experience (easy good experience the client can use);
  • Habitual users (once use to the system, do my users have the best experience - get usage telemetry); and
  • Support (levels of support, chat bots, email, call support).
Thoughts: SaaS world changes so quickly these days, great customer experience and support are more important than ever.  An interesting idea I heard, "You can loose a customer on price or customer service, you will only win them back thru customer service".  (KYC) Know Your Customer to ensure you can delight your customer and comply with AML rules.  Get one step ahead, try understand your customers concerns early.

There is a great book that has been around for a few years on Customer Success by Nick Mehta, Dan Steinman, and Lincoln Murphy.  How innovative companies are reducing churn and growing recurring revenue.


Sunday 24 January 2021

API Economy Technology Breakdown for Strategy Leadership

 

XaaS - Everything as a Service.  Objects can be used as a service e.g. renting cars by the hour

CX - Customer Experience





Wednesday 22 May 2019

Azure B2C Authentication for SaaS applications

Overview:  This blog post looks at setting up multiple public federation services on an Azure based SaaS web application.  It is worth understanding that a Microsoft account (old passport accounts) is like a google account and not the same as an Organisational Account (Azure AD IT company (e.g. paul@mycompany.com) setup account.

AAD B2C Overview
1. Client using a browser, goes to a website URL
2. User receives a 302 HTTP response and is redirected to Azure's B2C (AAD and Azure B2C are separate services)
3. User is prompted to login (assuming they don't already have a valid token)
4. After the user is authenticated, they get a Valid token.
5. Using a valid token, the users sessions is established on the web site.

The diagram does not show the flow pass B2C, this shall use "Passive-claims base authentication" to select the users Identity Provider e.g. Google account.  Once the user has a google account authenticated, they are redirected back to the B2C service where the Google token is used to issue a B2C user token for the user.  And step 4 continues.

Azure Active Directory (AAD) also sometimes referred to as AAD B2C
Has two types of users, namely:
1. Members - these are internal company users from an organization e.g., paul.beck@mycompany.com
2. Guests - are external users from outside our company e.g., harry@jpmorgan.com
Tip: Native member users passwords are stored in your Azure B2C service.  Whereas, native guest users e.g. harry@jpmorgan.com, actually logs into JP Morgans AAD and our AAD tenant sees him as a guest and issues a SAML token from us based on JPMorgan's assertion that the user is valid on their AAD tenant.
Note:  A guest user can be made a member and a member user can be changed to be a guest user.  There is no good reason that I have come across for switching guests to members (maybe 2 companies merging) but it is possible if you need to do it.
AAD supports the  following protocols: WS-Federation, SAMLP, & OIDC & OAuth2.  WS-Fed and SAMLP are used but go for OIDC as the default.

AAD B2C Instance:
The diagram above show AAD B2C not B2C.  B2B is provisiong on you Azure tenant and is tied to your O365 instance.  B2C is a separate Azure service used fro managing customers identities.  So if I have a website and some mobile applications, offered an API to clients, I would use B2C not B2B for managing security.  You can connect multiple AAD B2C to your single B2C instance.  B2C basically allows you to connect to other Identity providers using SAML, OIDC, OAuth2 and WS-Fed.  B2C also has the option to use it's own local store if the user doesn't want to connect existing accounts.

If a user has a gmail account, B2C can create an object in the service, but the users password is still maintained by Google.   When accessing our applications, the user goes to the B2C service instance, and then is pushed onto their own IdP (Google in this example) , once they authenticate, they are redirected to the B2C servce, get another new B2C token and are redirected back to the app and shall have access.

Billing/Cost of AAD B2C Service:
B2C is base on Monthly Active Users (MAU), you can have 60k users in the B2C but only 20k of the users have actively logged in using the B2C service.  Dormant/unused accounts in a calendar moth are not counted.
Updated 30 Nov 2019: first 50k MAU's are free for single factor authentication.  It's very cheap per user after the initial 50k and get's cheaper the more you have per user i.e. 50k-100k are £0.0041 per user.  So if I have 61,000 users, the first 50,000 are free and I pay £0.0041 per MAU for the next 11,000 users, amounting to £45.10 for my additional 11k users.
Multi Factor Authentication (MFA) is billed at £0.023 per event (think event as each SMS attempt both successful or failed).  So if the users use MFA and each of the 20k MAU users do 3 MFA's per month on average, the first part is free and the MFA part will cost (20,000 users * 3 attempts * 0.023 per SMS) £1380 per month.  It's a bargain.


More Info:
Great Post from my ex colleague Deepak Srinivasan on Guest and Member AAD access
Understanding ADFS Authentication with SharePoint

Thursday 10 January 2019

NoSQL Document Database options on Azure - CosmosDB

Overview: Azure has a plethora of options for using NoSQL, I have used RavenDB and DocumentDB a couple of years back.  Both are easy and great tools for the right situation, DocumentDB now falls under CosmosDB as a product at Microsoft. However, I feel that CosmosDB would be anyone's default choice today on Azure as DocumentDB is really a feature subset of CosmosDB.

CosmosDB"Azure Cosmos DB is a global distributed, multi-model database (db) that is used in a wide range of applications and use cases. It is a good choice for any serverless application that needs low order-of-millisecond response times, and needs to scale rapidly and globally."  CosmosDB is used by Microsoft's Skype, MSN, Xbox, Office 365, Azure products.

Def: CosmosDB is a Planet scalable NoSQL JSON database that has multiple API support (including SQL(Core)).  Multiple copies/instance around the world (think SQL AOAG).
  • Encrypted on Azure at Rest and in Motion.
  • Multiple API's supported including SQL API (DocumentDB) and multiple other JavaScript and Table.
  • A logical breakdown of CosmosDB API
  • Partitions are managed transparently and users are routed based on geographic location and usage.
  • One write db and multiple reads.  Or can setup multitple write databases  Can set automatic failover so if the write db is unavailable, one of the read db's becomes the write db.
  • CosmosDB Migration tool is great at bringing in data from JSON, SQL, CSV, MongoDB, Amazon DynamoDB.
Concerns:
  • Determinant geo-replication - Use to be 1 master and multiple read copies of the data.  Not all copies can be written to but if you have country data residency rules you can't configure data to be within specific regions.  I.e. I can't specify certain bits of data are only stored in a specific region.  You can specify a region/location for a container, but not split a container.   : Check!  Not a fact.
  • Backup and Recovery - Point in time recovery and MS ticket needs to be raised.  Can't structure complex backup plans.  Take it or leave it approach.
  • Limited LINQ support
  • SQL API is very limited compared to SQL relational databases, offering no joins or aggregation capability such as GROUP BY.
  • Temporal Tables don't exist, there are good auditing options such as the "Change Feed" where all changes can be streamed into an external database/system.
  • Entity Framework support is limited. Consider a PoC before using.
  • Consistency (copy data to other read-only debs) 5 options: "Strong" (commit to all dbs and acknowledge state, so slow to align but all reading same data but it may be stale.  "Eventual", reads what is in the local db you are going to.   The default is "Session".  As always, it depends on the requirement.
Tip: Amazon DynamoDB is AWS's equivilant to Azures CosmosDB

More Info:
NoSQL options - https://www.nebbiatech.com/2017/02/09/exploring-the-nosql-options-on-azure/ 

Wednesday 6 June 2018

SharePoint Online Replacement Patterns in Diagrams

Overview: This Post highlights my default position for achieving Common SharePoint solutions using SharePoint Online, flow and Azure Functions.


Matt Wade has a great resource on the components making up O365.
https://app.jumpto365.com/

Sunday 3 January 2016

Azure Virtual Machine Basics

Azure Virtual Machine Basics
Windows Azure Virtual Machines
  • Azure charges per minute pro-rated
  • Disks explained:
    • C: OS disk
    • D: Temp Cache such as Page File (won't be persisted in a disaster)
    • F: ... Persist disk storage (Add disks as shown below)
  • Access the VM by default RDP sessions and remote PS are allowed.  








  • Need to add endpoints to allow other means of access e.g. 443 for https traffic.







  • Availability Sets are used to to load balance with more than 1 VM
  • Add a new F drive to the VM