Sunday 7 November 2021

Power Apps - MicrosoftTeams.CreateATeam() connector method not working

Problem:  I am provisioning a new team inside my tenant using Power Apps.  The code throws an error and I can't get the TeamId, however, the Team is being created.


Hypothesis:  The call creates the team and using the Monitoring Tool inside Power Apps I can see the call is working.  The issue appears to be when Power Apps reads the response.

Possible Resolutions:  

  1. Use Power Automate and fire from the Power App
  2. Create a custom Postman Collection using the Teams Graph API



Sunday 3 October 2021

Asking for Gender Pronouns and Title in forms

 Here are a few pointers when asking for Gender, Sex, Pronouns and Users Title

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.



Wednesday 22 September 2021

Azure Synapse Intro

I have not done any serious big data work in many years and I'm using this post to understand the Azure options and update my skills.   

Azure Synapse Analytics - built for limitless scale for unstructured and structure data for big data  - supports petabyte analytics.  Ingest and prepare data for BI.  Instance can be a dedicated or serverless PaaS service.  Data lake Gen 2 assigned to each synapse instance.  GA Dec 2020.


Use to be Data Lake (massive, semi structured data) and Data warehouse, Azure Synapse Analytics can be referred to as Data Lakehouse.  Basically all the sperate pieces are under 1 umbrella i.e. ADF, SSIS, Dataware house,..
  • SQL Serverless Pools is pay be use/pay per query.  Can use SSMS to manage data.  Good for small or new data ware housing.  T-SQL works perfectly so simple for smaller projects or PoCs. 
  • Go from 3NF in relational data to using Fact and dimension tables to put data into a star model for MPP.
  • Data Warehouse Units (DW) - Same as DTU, made up of CPU, Mem, IO.  Simple to upgrade.  Lowest is DW100 can be huge, and simple to scale up and down.  More DW's means more VM's/work process work on the data.

Azure Synapse Studio  - SaaS development experience provide code free and code first (C#, Scala, Python, SQL, Java), notebooks are used for working with data.




Wednesday 8 September 2021

Observability in Azure SaaS Solutions

Problem:  Software has many places where errors and tracing is logged to.   Support get an incident, they need to investigate figure out how widespread the issue is and then try patch together various logs to figure out the problem.

Thoughts:

Observability is not a new concept, we need to be able to: 1) view and connect logs & 2) tracing and view metrics & notifications.

Implementing Observability must cover:

CI/CD allows devOps teams to find issues early using Unit testing.   Automated testing on UI.  API automation testing is also great.

Azure offers continious monitoring by performing various API calls to ensure your servie is running and any failures are picked up hopefully before any customers are aware.  You can also be notified of performance slow down, check performance speed between releases.  Which is great for identifying bottlenecks and with the Azure PaaS world, it is easy to increase the processing causing the bottleneck.  

Performance metrics built into the CI/CD and developers work allows us to identify issues early and costs miles less to correct early. 

Security and LINTing in CI/CD also allows us to pickup issues early and correct at a way lower cost.

Instrument you hardware and software, well on Azure you can use App Insights and you have a fantastic instrumenting platform that captures events.  A big reason to use Azure Services for as many of the function pieces in your solution.

Work In Progress ...

TBC Azure App Insights detail, ParentOperationId, Linking operations with a ServiceBus or work process call.



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.

Wednesday 18 August 2021

Creating a Power Platform Custom Connector from a Postman Collection

Problem:  I like to discover an API and play with it using Postman.  I save the collection and theoretically I should be able to upload the postman collection into the custom connector to generate the Power Platform connector.  Until a few days ago, the custom connectors only supported Postman v1.0 collections.  And Postman has not save using the v1 format for a long time.  

I was happy to see the Custom connectors support v2.0 and 2.1 of postman collections.  Only problem is while it says it does if is still broken.  So I have to go the old school way.

I wanted to generate custom connectors for HMRC's REST API so that I can connect with the Power Platform.  Option 2 below gives me a way to build my collections using HMRC's API's and generate the appropriate version 2 Swagger definition.

Resolution

Option 1: 

  1. Export the postman collection in v2.1
  2. Upload the postman file to https://apitransform.com/ and generate the OpenAPI specification (version 3.0.0) gets generated.
  3. Upload the OpenAPI 3.0.0 specification file to Transformer | APIMatic and generate the JSON Open API 2.0 version.
  4. In Power Apps add a new custom connector based off the Open API file (version 2.0) to generate the connector.

The process is a pain, but this approach does not need any software installed.  I do feel Power Platform are about to improve by accepting the Postman v2 collections and it would be great if it could read Open API file in YAML and JSON in both V2.0 & 3.0 but any of these permutations would be a game changer.

Warning: Large collections end up with information being lost in the translations.

Option 2: 

  1. Export the postman collection in v2.1
  2. Upload the Postman 2.1 Collection file into Transformer | APIMatic and generate the JSON Open API 2.0 version.
  3. In Power Apps add a new custom connector based off the Open API file (version 2.0) to generate the connector.