[MUSIC]
JAMES SKAY: Welcome. Thank you for joining us at Build 2022.
My name is James Skay and I'm
a Senior Product Manager
in the Teams
Engineering Group.
Today, I'd like to walk you through the steps
required in order to monetize your Teams app.
We'll first start off with what is
a monetized Teams app
and how they're found
for purchase.
We'll then next jump into the five steps
needed in order for you to monetize your app.
We'll next talk about the validation
guidance that you might need in
order to consider before
submitting your app for validation.
Then last but not least,
I'm going to leave you with some resources
to help you get started to
build your monetized Teams app. Let's dive in.
First, let's start off by talking about
what is a monetized Teams app?
Well, it's essentially a Teams app plus
a transactable SaaS offer
that is created in Partner Center.
Prior to us releasing
our general availability of Teams app monetization,
apps can be purchased in app stores,
but we're excited to bring
the capability and
discoverability of Teams apps for
transactions into the Teams App
Store as well as into the Teams admin center.
Let's see how these actually show up.
You might be familiar with the Teams App Store.
Buy and discover apps.
You can choose to add them to
your team channel or even to a chat.
Well, now you're going to discover that there is
a buy-a-subscription capability available
within the App Store for
those apps that are available for transaction.
These apps can be purchased through
the Teams App Store by a credit card purchase.
Next, we can look at the Teams Admin Center.
Here, Teams tenant administrators are able to
discover apps available for purchase installation,
can choose to buy a subscription and
deploy it across their tenant.
What's different about the Teams admin center, however,
is that not only can you use a credit card for purchase,
but you can also do invoice billing.
This allows Microsoft to transact
business on behalf of the partner such that
the customer is able to pay via invoice
or a purchase order directly to Microsoft.
Now let's talk about a few scenarios to ponder if you're
considering, is building a monetized
Teams app right for you?
Now, we're seeing a lot of
interest in multiple scenarios,
and a few that we've called out here
are productivity, process improvement
or line of business applications,
collaboration tools, as well as learning.
Now, one of the most common threads
about all of these applications
is that they provide a level of
enhanced value or stickiness to end users.
Now, there's a lot of apps in the Teams App Store,
and the ones that we find that
users are willing to pay for are
the ones that provide extra value to them,
help them get done with tasks throughout their day,
help them become more productive,
or even help them find information across their tenant.
These are just some of the things to ponder as you are
considering whether or not building
a Teams app is right for you.
Last year we were excited to share
that we reduced our agency fee,
the fee that we charge you to transact business on
your behalf, from 20 percent to a flat 3 percent.
Now, this investment allows you to
unlock our customer base from
the largest enterprises to
our smallest, small and medium sized businesses,
and keep more of your margin while scaling
globally in an instant.
Now, let's talk about how
you can monetize your Teams app.
We've distilled this down into five steps.
Now, as I mentioned before,
we've built a downloadable tactical guide meant to
walk you through the steps
needed to monetize your Teams app.
I'm going to walk you through
these steps in this session,
but I highly encourage you to download
that guide as you begin your journey.
The technical guide has a greater depth
than what I will cover here,
including some additional best practices,
frequently asked questions and most importantly,
clickable links that will take you to
the source of additional resources,
including the links that you will see
included on the resources within these slides.
Now, the first step, as I mentioned,
is beginning with an existing Teams app.
If you haven't already built the Teams app,
you will want to first start here.
The guides provide some great links
and resources to help you get started.
Now that you have your Teams app,
the next step will be to build the landing page and
webhooks that we'll integrate with our commerce APIs.
Think of these as the conduit that will facilitate
transactions between our commerce
systems and your application.
The landing pages where subscribers will be sent
post-purchase to configure
their subscriptions and assigned licenses.
Webhook is a service meant to keep subscription status
updated both on your systems as well as ours.
It's important to make sure that these are
configured correctly and have high service
upside to the user's credit card expire or
a subscriber purchased
additional licenses
as an example,
this information will be relayed
programmatically through these hooks.
Let's take a look at an example of
a flow with a webhook and a landing page.
In this example, a user completes a purchase through
Teams and is then presented with a configure button.
Upon click, they're redirected to
your landing page in a separate window.
We pass a token in
that URL that your landing page receives and then
makes an API call that retrieves
the details of the subscription from that token.
You then provision any services
required on your side and then send
an acknowledgment back to the commerce system
that the subscription is active.
Now, should any additional changes
be required for the subscription,
these changes are passed back to you
through webhook from our commerce APIs.
Now, one thing we often get asked here is,
is single sign-on required?
The answer is yes.
It is a requirement that your app is using
Azure Active Directory on
both your landing page as well as within
your Teams app itself.
Now, let's take a look at a best practice.
As I mentioned, the technical guide has
some best practices spread throughout,
but I want to cover one right here.
Now, let's see this in action.
Users purchase their license,
they click on "Configure now"
and then land on your landing page.
Here, there's a few options that can be included
in such an example of a landing page.
Ability to assign licenses,
take a product tour or contact support.
Let's drill into what it looks
like in order to assign a license.
Now, there's a few things to keep in mind.
As a subscriber, I'm choosing to buy licenses either
for myself, or on behalf of users within my organization.
Now, once I have assigned users to my organization,
they need to know that there's actually
a subscription purchased on their behalf.
In this landing page example,
users go on through the subscriber in
this example, selecting the users
that they want to assign the license.
Now, if there is a need to find a role, for example,
a manager or a moderator,
we can define that here, and as I mentioned,
the notification around a license
available is presented here where
the option is for either to send an email or
an automated Teams chat message
to the user that just received a license.
As a best practice, you want users to have a license
to know that they can get started and how to do so.
It'll be up to you to provide that creative angle
within your application.
Now, once you have your landing page
and your webhooks created,
we need to move on to create a
transactable SaaS offer in Partner Center.
Now, this is where you define
the offer details for your particular transaction.
This includes things like descriptions, icons,
pricing, as well as the details
where you've actually stored
your webhook and landing page.
Now know, in order to continue at this stage,
you need to have your Partner Center Account
to do so, and if you don't,
the technical guide actually has
links for you to create your very own.
Now, starting in the Partner Center,
we're going to create a new Software
as a Service offer.
Here you're going to provide a free form Offer ID -
something that will serve as a unique identifier
to use in the next additional step,
so make sure you remember it - then also an offer alias,
then you select create.
Next, you're going to select your offer alias
that you just created and click "Configure."
Now, on the offer setup screen,
you want to ensure that you specify
the offer details that you want to
sell through Microsoft, and have
Microsoft host transactions on your behalf.
This step here is actually what enables
the transactions to flow through our commerce systems.
On the next screen, you're able to help
improve your app discovery in the marketplace,
specifically by providing categories,
industries, and verticals most appropriate for your app.
Offer listing is where you will add user facing copy and
other collateral to identify
your app, such as a description,
your logo and icons.
You can also improve app discovery in the marketplace by
providing search keywords here as well.
Now, next we want to define your preview audience.
Now, this is an important step.
This is where you enter
the respective users that will have
access to be able to test and
validate your offer before it goes live.
Now, in an example where you were to try to
sideload your Teams app to test the checkout experience,
it would only work for
those users who were defined in this step.
Please make sure to pay extra careful attention
to defining your preview audience.
Now, remember that landing page
and webhook that you created?
This is where you'll provide those URLs.
You also enter the Azure Active Directory tenant ID
as well as your application ID here.
Now next, let's get into the details of the plan within
your offer that, while you're
only limited to one offer per app,
you can create as many plans - as I like to
call them, SKUs - for your offers you like.
For example, you might have a basic, premium,
and enterprise plan with different features and pricing.
To get started, click on "Create New Plan."
Now we're getting into the crux of
your plans: pricing and availability.
Now, Microsoft transacts business across the globe,
and it's up to you to define
where the markets are that your app can be purchased.
Now, one thing to keep in mind when choosing
the markets is that for most markets,
Microsoft collects remits tax on your behalf.
However, if you choose to transact in
other countries, you may be responsible for the remittance.
Now next, let's define the pricing model.
Note that purchases made through Teams apps and
Teams' admin center only support a per user pricing.
Now, if your apps looking to
only support flat rate pricing, that is fine.
There's additional steps needed
that I'll talk about in just a minute.
But in this example, let's move
forward with a per user purchase.
Now, here you can define
the min and max number of users per plan.
Now, this might be an example where you have
tiered pricing approaches where like
for the first 50 licenses,
it's X and for like 51 to 100,
it's X minus 10 percent.
It's really up to you to define.
Now, you can also define your billing terms,
whether it's monthly or annual.
You can also choose to have the currency entered -
in this case, U.S. dollars -
be converted to local currencies across the globe.
Or you're also able to download
a spreadsheet where you can enter the currency
and the actual dollar
amount to be charged in those countries as well.
Now, last but not least,
you can also consider offering
a free 30 day trial to your users.
Now, this might be important for users who are
on the fence or unfamiliar with your app,
allowing them to experience a free 30 day trial,
which means that they go through the purchase process.
Enter their credit card information and they're able to
use your app for the first 30 days with no charge.
Now, if they don't take any action,
meaning they haven't canceled
their subscription, on day 31,
they'll be billed and their subscription will continue.
That's important to call up that you'll need to repeat
these steps for each of the plans that you create.
Now moving on,
as I mentioned,
if you have a Teams app that has flat rate pricing model,
please proceed to publish.
Users can still find your app via the Teams App store,
but they'll need to purchase
those app subscriptions directly through app stores.
Now, here's where you have the opportunity of
providing in-app messaging that would alert
users that purchase is required and that you
could provide a link for them to
go straight into app stores.
Now, please be sure to check the technical guide
for the additional steps necessary,
as well as a few reminders around
our app policies for mobile experiences,
specifically providing links to additional marketplaces.
Now that we've defined your plans, it's time to publish.
Right here, we're going to publish the offer
to the public marketplace.
Now, at this point you
published your transactable offer in Partner Center.
However, there are a few
additional steps that need to be done
to link your transactable offer with your Teams app.
Now let's move on to the most important areas
that I mentioned: linkage.
This is where you're going to link your transactable
SaaS offer to your Teams app.
This happens in two places.
First, we're going to link in
the Teams developer portal,
and then finally, we're going to
link via Partner Center.
Now, if you have a flat rate offer,
please make sure that you look through
the technical guide for details,
because you're only going to want to complete
one of these two steps.
Now starting in the Teams developer portal,
locate your app and open its configuration.
Under present pricing, you'll want to enter
your publisher ID and offer ID from Partner Center.
Now, if you don't remember where those are located,
your publisher offer can be found
in the legal info section
of Partner Center, and your offer ID
can be found in the overview section.
Now next, click on "Preview" to verify that
the correct offer details
are loaded from
Partner Center.
This step updates your app manifest
with the provided information.
Now if your plan does
not load in the Teams Developer Portal,
validate to make sure that you have
a per-user selected model
in Partner Center and not flat
rate, because here's where it will fail.
Next, save a copy of
your app package with
the updated app manifest to your local system.
Now we're going to upload that into
Partner Center for validation in a few steps.
Now let's head back to Partner Center to
link our transactable offer with your Teams app.
This step essentially merges
your transactable SaaS offer and
your Teams app together in app stores.
At Offer Setup in Partner Center select "Yes,
I have published Teams apps, Office add-ins, or
SharePoint Framework solutions that I would
like to link to this SaaS Offer."
Here you're going to insert the link of
your Teams app that can be found on app stores.
If you don't have it or you don't know it,
you can easily discover it by loading up
app stores through the web and
doing a search for your app.
Copy that URL into the section
here, and then click on "Review and publish."
Finally we come to our last step,
publishing our Teams app for validation.
Now, if you have published the Teams app in the store,
then you are already familiar with this process.
Now on Partner Center, load up your Teams app and
upload the revised app package in the system.
But before you submit,
consider any additional steps
or additional information that
validation teams should know
when testing your application.
This may be slightly different than when you
first published your app in that there might be
information that they need in order to set up payments
or what might look
different from a free version versus a paid version.
Feel free to include extra links to
additional documentation, or even a walkthrough video
or need-to-know information inside
the notes for certification section.
But when you're ready to click "Publish," go for it,
but before you do,
consider the following validation guidance.
I'd like to start off by reminding everyone of
an important call out regarding
purchase experiences on mobile.
Please make sure that you're paying
special attention to this section if your Teams
app links to app stores or
any other page that may require a payment.
If this is the case, please make sure
that you're able to differentiate
the experience from a mobile experience
versus a desktop or a web.
It's super important.
Let's review some of the most common reasons
for validation failures.
Now please be sure to read
the store policy guidelines
requirements before publishing.
These lay out the exact steps that you'll need to
take, and various precautions
that you should consider before submitting.
Now remember that the Teams app
store and Teams Admin Center
only show Teams apps that show per user pricing.
If you have a flat rate pricing offer and you've linked
your publisher and offer
ID through Teams Developers Portal,
it will automatically fail
validation so please keep that in mind.
Now also double check that the developer name of
the application matches that
of the transactable SaaS offer.
Now this can be especially
tricky when it comes to companies in
different geographies or through parent companies.
It's important that those names match.
Then finally, if there's anything
uncommon or unnatural about
your application that needs to be considered
when testing or validating it,
please make sure that that's provided.
Otherwise, the team will be reaching out to
you for additional information.
Partners in need of support should always begin by
submitting a support ticket first with
Partner Center support at aka.ms/centersupport.
There, they're able to route your issue or question to
the appropriate subject matter expert and get
back to you as quickly as possible.
There's also some additional
details on support that can be
found in the downloadable technical guide
that I'll get to in just a moment.
Speaking of technical guide,
let's talk about the resources available to
help you get started.
Now, the first place you should begin
is with our downloadable technical guide.
This PDF is full of materials and
references to help you monetize your app,
including best practices, as I mentioned.
frequently asked questions and
links to important documents,
and a favorite of developers is
the included quick reference guide.
You can see here on the screen.
Download this today at aka.ms/TMTG.
There's also a webinar based on the technical guide,
similar to this session,
but a little bit more informed where you can sign up and
watch today at aka.ms/TMTW.
Then finally, we've also created
some code samples to help you
get started, and those can be found on GitHub.
There you're going to find an introductory video,
a mock app source website,
a license management component,
and some lightweight apps to really help
to accelerate your development for Teams apps.
You can find those code samples are aka.ms/TMCS.
Finally, here are a few additional
resources for you to consider.
If you haven't already signed up as a modern work ISV,
you could do it today.
This program provides you with a host of
benefits to become more successful as an ISV.
Whether that includes access to
Microsoft technology, Azure benefits,
there's a myriad of stuff out there for you to
take advantage of and do so today.
You can sign up at aka.ms/ModernWorkISV.
Finally, if you're on the fence and would like to see
how other partners are doing in this space,
please take a look at our partner success stories.
You can find them at aka.ms/TMSS.
Speaking of success, I hope to soon see
your application in our Teams app
store transacting with subscriptions.
I'd like to thank you for joining us
today at Build, and I hope you
enjoy the rest of your conference
and look forward to seeing you soon.
Thank you.