2. Jenkins NS
Modern Workplace Solution Architect | Consultant
15+ Years of experience
Microsoft Teams, Power Platform and SPFx Specialist
International Speaker | Blogger | Trainer
SPS Bangalore Organizer
aOS Ambassador
https://www.facebook.com/msteamsinfo
in/jenkinsns
jenkinsns@gmail.com
@jenkinsns
http://www.jenkinsblogs.com
jenkinsns
https://www.facebook.com/spfxinfo/
3. Agenda
Introduction
Teams Developer Platform – Overview and
Opportunity
Building Apps and Solutions with Microsoft
Teams
Extend your solution with Microsoft Graph
Building Teams Apps using Solution Accelerators
5. Microsoft Teams
The fastest growing business application in
Microsoft history
13M+ daily active users and
19M+ weekly active users
13M+
More than 500,000
organizations use Teams
500,000+
91 Fortune 100 companies
use Teams
91%
In 181 markets with support
for 53 languages and growing
53+
Over 200 organizations have
10,000 or more active users
10,000+
6. Microsoft Teams Platform
build experiences that people love
Communicate
through chat, meetings & calls
Collaborate
with deeply integrated Office 365 apps
Customize& extend
with 3rd party apps, processes, and
developer tools
Work with confidence
enterprise level security, compliance,
and manageability
Gain context
without switching
context
Meet your
people where
they are
Tailor your
teamwork
7. Apps In Teams
1st Party Apps
Developed by Microsoft
Office 365 or Office workloads
Enable better together scenarios
3rd Party Apps
Not built by Microsoft
Popular work applications
Enabled in central location
Custom Apps
Built by your organization
Custom for business needs
Accessible by users in Teams
9. Start with the scenario
Decision criteria
Does it solve a real
problem for a team?
How often will
it be used?
What ROI does it
provide for the team?
10. Common scenarios our customers
and partners are building
Empower employees
Self service
Pulse surveys
Enterprise search
Employee engagement
Learning and development
Onboarding and scheduling
Engage customers
Customer support
Sales associate productivity
Digital marketing
Social engagement
Agent productivity
Feedback loops
Optimize operations
Business processes
Supply chain management
Care coordination
Delivery management
Operational effectiveness
Live tracking
Transform products
Project management
Service Incidents
Engineering workflows
Defects management
Ideation tools
Design collaboration
11.
12. App scenarios across industries and horizontals…
Industry vertical
Airlines, transportation
Flight/route crew communication hub
Local crew shift management
Financial services
Proposal Manager for commercial banking
Content sharing with compliance
Retail and consumer goods
Supply chain real-time collaboration
Shift, pricing, and inventory management
Mining, oil, and gas
New location development
Daily quality monitoring and analysis
Government
Emergency/disaster response and recovery
Citizen service: permitting and licensing
Healthcare
Patient care coordination
Telemedicine
Manufacturing
Key accounts inventory, logistics
Change order services
Power and utilities
Field service real-time remote assist
Billing and customer management
Real estate and construction
Leasing office tenant management
Real estate customer engagement
Horizontal
Marketing
Brand partnership hub
Industry event planning
Marketing hub
HR
Recruiting tool
New hire onboarding and
support tools
Project management
Billable hours management
Client engagement hub
Service desks
Self-service knowledge base
Customer service desk
Procurement center service
Firstline workers
Shift management
Remote worker task
management
13. Reference Architecture
Your App
Interface
Tabs Bots Adaptive cards Messaging extensions Task modules Notifications
Teams Application Platform & Graph APIs
Back-end
Partner Solution
Azure: Bot Framework, LUIS, Cortana, AI, Cognitive Services etc.
Azure
SPFx
Business
Logic
Business
Logic
Microsoft 365 Cloud
Organizations own their data /
organizations give developers access
Private/Public Cloud
• Line of Business (LOB) apps
• ISV solutions
• SharePoint solutions
On Premise
• Line of Business (LOB) apps
• ISV solutions
• SharePoint solutions
Healthcare Retail Manufacturing Transportation Hospitality Financial Services Public Sector
Power BI
15. Tabs - a big canvas to host your UI
When your app needs a large area to present information to users a tab is
a great place to show a list of work items or a dashboard users can chat
about the content of your tab which will keep it foremost in a channel as a
threaded conversation.
Message Actions – interpret a chat
The starting place is a conversation. Let users send text to your app and you
can use it to create new things, add to existing entities
Bots – smart chat skills for your users
Use a bot to drive engagement in a channel or in 1:1 conversations. Bots
are an excellent way to handle question and answer scenarios or times
when you need to message a channel on behalf of your service. Our bots
also let you host tabs for complimentary browsing scenarios and post rich
interactive cards.
Task Modules – a dialog for tasks
Task modules let you open a dialog from bot cards or tabs. When you need
to do a little form entry, a lookup, or keep a 1:1 interaction out of a channel,
pop open a dialog.
Message Extensions – share rich cards
Your users can share rich actionable cards that grab people’s attention and
can get simple jobs done without leaving the conversation. Why send a
link when you can include summary, status, and a wide range of
interactions.
Notifications – getting users’ attention
Use toast, @mentions, just posting to a channel to call attention to changes
and important actions users care about. Teams gives your app the flexibility
to proactively notify people as quietly or loudly as you need
Teams platform is built for flexibility
Webhooks and Connectors
Enabling external services to post messages to the conversation, and
your users to send messages to your service. You can take advantage of
cards and card actions to create rich, actionable messages.
16. Build for individuals and groups
Teams is about collaboration – Teams Scope puts your app where the action is
Teams is the hub. Bring content to the user in the right place and at the right time.
Collaborate in Channels
Interacting in front of or with a group of people increases your app’s visibility and enhances discoverability. To meet this mark the content should be actionable and not simply
informational
Encourage Sharing
Message extensions allow sharing and interaction in 1:1, Group chat, Teams, and from the Commandbox. Now when users paste a link from your website we can even convert it to
your specially designed and actionable cards.
Be proactive in channels
Help with discovery. Send a daily digest, update the team on the latest changes and maximize your usage with actionable messages, and if your tab is in the channel you can notify
users in the tab thread to help them see the changes in the context of the big picture.
Make your interactions here customizable
When users get your data the way they want it is satisfying. Customizing notifications is always a great start. Customizing Tabs lets Teams see exactly what they need and letting
users configure your Message Extensions gives them the head start to find and share in a snap.
Teams is about the individual – Personal Scope lets you interact with your users 1:1
There are times when we need to close the door and get things done, your app can do that too.
Personal apps
A personal app can bring your entities from all the channels in Teams into a unified view for the user. They support tabs optionally bot conversations in one place for the user to get
things done. If you have a users who is looking at different work items in different teams and channels in your Team Scope tabs a Personal app can show everything in one place.
1:1 Bots
Some messages and interactions are for your eyes only. Bots can get notify your users and get things done without disturbing everyone else
17. Easy to distribute to your customers
Publish to the store
Make your app available to the world. Let people
know the category of your service, include
screenshots and videos and easy to access app details
that show off your app’s capabilities and skills.
Publish to your tenant
When your app is designed to support a specific
function in your company you can make it easy to find
for all your company’s users. We’ve got a great place
for your admin to host all your internal apps and they
can suggest publicly available apps here too.
Publish to a team
When you want to test your app or if it was
designed for a specific group of people you can
sideload your app and use it right away.
19. Scenarios
Have a conversation
about work items
A tab with a list of work items it
is easy to talk about what to do
next and make sure everyone is
working on the same project
Share a sales report
Use a message extension to find
and share a class activity with a
great summary and instructions
for your students
Submit a social media
post for approval
See how your tweets are
trending, and submit new
posts that get routed through
your PR team for approval
Your “task” hub
Personal apps create one
place to see all the different
things a person needs to do
regardless of which team has
created the work
20. Scenarios
Look up a place to eat
Access your service from
anywhere without missing
a beat.
Convert a chat to a sales
opportunity
Use the power of the graph and
let users send chats to your app
to get things done
Create a team, add
members, and a message
Onboard users on your
project the easy way.
21. A Microsoft Teams app
app.zip
Web pages with server side
and client side logic
Web API—for Bots and
business logic
Background jobs
Bot Framework channel
registrations
Outlook Connector
registrations
24. App Studio
App Studio is a Teams app made for developers which:
• Eliminates the need to manually craft an app package
• Consolidates many registration and management
experiences and reduces them down to single clicks
• Provides a continually expanding set of tools such as a
Card Editor to make the inner loop development
process easier
• Is itself built on the Teams platform and can be
installed like any other app
25. Step 1: Get App Studio from Store
• In Teams, click Apps button, search for “App Studio”, install.
26. Step 2. Go to App Studio, create an app
• Go to App Studio > Manifest editor > Create a new app
27. Step 3: App details
• Use “idt-teams-bot” for short name, long name & short description.
• Use “idt-teams-bot long description” for the long description.
• Generate an App Id
• Use “com.mycompany.idt.bot” for package name, “0.0.1” for version.
• Use “idt-teams-bot” for Name
• Use http://www.mywebsite.com for all urls.
28. Step 4: Add existing Bot
• Under Capabilities->Bots choose “Set up” Existing bot.
• Name: “idt-teams-bot”
• Bot ID: Either “Select from one of my existing bots” if logged into the
same AAD account, or “Connect to a different bot id” and paste in the
Microsoft id found in the appsettings.json file of the bot.
• (if connected instead of selected):
• Endpoint: https://idt-teams-bot.azurewebsites.net/api/messages
29. Step 5: Add domain to validate & install
• Under Finish > Valid domains, add “*.botframework.com” as a valid
domain.
• Under Finish > Test and distruibute, click “Install”
• Choose Personal and Team checkboxes.
• Click “Open” to open the Bot to begin testing.
30. Step 6: Test your skill
• Type “hi” (Bot says “Hello.”)
• Type “schedule a meeting” (Bot requests a login) click “login”
• Log in to your non-AAD account, but do not close the window.
• A validation code will appear. Copy the code.
• Paste the code into the conversation with the bot.
• (follow further prompts in the conversation to set up a meeting)
32. Using Cards in Bots
Adaptive Card
A customizable card that can contain any
combination of text, speech, images,
buttons, and input fields.
Supported in Teams, Outlook, Windows, etc.
Hero
Largest card
Best used for articles, long descriptions or
scenarios where your image is telling most of the
story
Receipt
A card that enables a bot to provide a receipt
to the user. It typically contains the list of items
to include on the receipt, tax and total
information, and other text.
33. Using Cards in Messaging Extensions
Respond with attachment layout of “List”
Format each query result as a card
• Adaptive Card
• Hero Card
• Thumbnail Card
• O365Connector Card
Do not include actions
34. Adaptive Cards support in Microsoft Teams
Microsoft Teams supports three action types for Adaptive cards:
• Action.OpenUrl
• Action.Submit
• Action.ShowCard
Actions other than these are not supported
35.
36. Plan your development environment
Using c# Using node Using yo teams – Yeoman Generators
38. Share a sales report
Message extensions
Search for or show recently
viewed reports.
39. Share a sales report
Message extensions
Search for or show recently
viewed reports.
Compose with card
Add comments and
@mention the people who
need to see the information.
40. Share a sales report
Message extensions
Search for or show recently
viewed reports.
Compose with card
Add comments and
@mention the people who
need to see the information.
Share to team
Now everyone can see the
summary, open a link to your
content or take immediate
action right from the chat.
41. Convert chat to a sales opportunity
Message actions
Your users can send chats to your
service and include time, sender
information, text and if you use
graph chats above and below the
selection for additional context.
42. Convert chat to a sales opportunity
Message actions
Your users can send chats to your
service and include time, sender
information, text and if you use
graph chats above and below the
selection for additional context.
Tasks where the
conversation is happening
Create one or more actions that
appear in our context menus.
43. Convert chat to a sales opportunity
Message actions
Your users can send chats to your
service and include time, sender
information, text and if you use
graph chats above and below the
selection for additional context.
Tasks where the
conversation is happening
Create one or more actions that
appear in our context menus.
Confirm with a task module
Keeping the user in control but
using natural language
processing to extract the words
you need to get the job done
quickly and intelligently.
44. Message Extensions in App Manifest
composeExtension node
Associated with a registered application
Personal and Team scopes
Define command UI and parameter
Multiple extensions
Your extension shown along
with all others added to Teams
"composeExtensions": [
{
"botId": "[MicrosoftAppId]",
"scopes": [
"team"
],
"canUpdateConfiguration": true,
"commands": [
{
"id": "searchCmd",
"description": "Search Bot Channels",
"title": "Bot Channels",
"initialRun": false,
"parameters": [
{
"name": "searchText",
"description": "Enter your search text",
"title": "Search Text“
}
]
}
]
}
]
47. Have a conversation about work items
Tabs
When your app needs a large
area to present information to
users a tab is a great place to
show a list of work items or a
dashboard
48. Have a conversation about work items
Tabs
When your app needs a large
area to present information to
users a tab is a great place to
show a list of work items or a
dashboard
Chat in context
Users can chat about your page,
interact with it and draw people’s
attention to important
information all in one place
49. Have a conversation about work items
Tabs
When your app needs a large
area to present information to
users a tab is a great place to
show a list of work items or a
dashboard
Chat in context
Users can chat about your page,
interact with it and draw people’s
attention to important
information all in one place
Post tab threads
Conversations within the tab will
be posted in the team’s channel
and promote your tab
50. Static Tabs
A content page declared directly in manifest
No Configuration
Added in “personal” scope
Accessed via the app bar or alongside bot conversation
51. Static Tabs - Manifest
staticTabs node
contentUrl is hosted in IFRAME in Teams
websiteUrl is used as target for link
validDomains node
A list of valid domains from which the extension expects
to load any content.
"staticTabs": [
{
"entityId": "candidatesTab",
"name": "Candidates",
"contentUrl": "https://.../Tabs/candidates.html",
"websiteUrl": "https://.../Tabs/candidates.html?web=1",
"scopes": [
"personal"
]
}
],
"validDomains": [
"token.botframework.com"
]
52. Tab Configuration and Content
Tab Configuration
Configured in manifest
Displayed when Tab added to Channel
Collect information
Call setSettings() specifying Content Url and Entity Id
Tab Content
Rendered in IFRAME
Url specified by configuration page
Inspect context for EntityId/SubEntityId
Retrieve state based on Entity/SubEntity/User
54. Conversations
Series of messages sent between your bot and one or more users. Conversations are in one of the
following scopes:
Teams
Also called channel conversations, visible
to all members of the channel.
Personal
Conversations between bots and a single
user.
Group chat
Chat between a bot and two or more users.
55. Notification only bots
Bots can update the activity feed
If the sole purpose of the bot is to deliver notifications, consider a
notification only bot.
• Users cannot message your notification-only bot
• Users cannot @mention the bot
bots node
isNotificationOnly property
"bots": [
{
"botId": "[MicrosoftAppId]",
"scopes": [
"personal",
"team"
],
"isNotificationOnly": true,
}
]
56. Send and Receive file
Sending and receiving files through a bot can be accomplished via two different APIs
Microsoft Graph API
Obtain access to OneDrive folder (user or group drive)
Get reference to file
Post message to conversation with card attachment
Microsoft Teams API
Personal context (1:1) only
Enable files in manifest
Teams client provides a file picker experience
Teams client will store file in OneDriveCreate and then post activity with
metadata, including content URL
Bot must download and handle file as appropriate
57. Enable send and receive
Teams client will handle file selection and storage
Handles scenario User -> Bot
bots node
supportsFiles property
"bots": [
{
"botId": "[MicrosoftAppId]",
"scopes": [
"personal",
"team"
],
"supportsFiles": true,
}
]
58. Submit a social media post for approval
Social media dashboard
A great view of my company’s
social media engagement and
how we are trending
59. Submit a social media post for approval
Social media dashboard
A great view of my company’s
social media engagement and
how we are trending
Submit a post for approval
Approval workflows get routed
to the right team for quick review
and automated posting to your
corporate social media accounts
60. Submit a social media post for approval
Social media dashboard
A great view of my company’s
social media engagement and
how we are trending
Submit a post for approval
Approval workflows get routed
to the right team for quick review
and automated posting to your
corporate social media accounts
Notify the right team
Approval workflows get routed
to the right team for quick review
and automated posting to your
corporate social media accounts
61. Look up a place to eat
Find a restaurant without
losing your place
@mentioning your app in the
command box gives users global
access to your app, while they
are anywhere in teams.
62. Look up a place to eat
Find a restaurant without
losing your place
@mentioning your app in the
command box gives users global
access to your app, while they
are anywhere in teams.
Search with one or more
parameters
You can make your app
incredibly powerful with single
parameter or multi parameter
queries, and even default queries
you save for everyone or per
user.
63. Look up a place to eat
Find a restaurant without
losing your place
@mentioning your app in the
command box gives users global
access to your app, while they
are anywhere in teams.
Search with one or more
parameters
You can make your app
incredibly powerful with single
parameter or multi parameter
queries, and even default queries
you save for everyone or per
user.
Share
Users can get the information
they need and get back to work
or share your card with others.
64. Create a team, add members, and a message
Kicking off a new project
can be easier
Using Teams templates and your
app you can automate the
onboarding process.
65. Create a team, add members, and a message
Kicking off a new project
can be easier
Using Teams templates and your
app you can automate the
onboarding process.
Simplify known workflows
Select users who will be team
owners vs team members to
comply with access and role
limitations, pick documents in
your service or on SharePoint to
add to the mix. Add a welcome
message.
66. Create a team, add members, and a message
Kicking off a new project
can be easier
Using Teams templates and your
app you can automate the
onboarding process.
Simplify known workflows
Select users who will be team
owners vs team members to
comply with access and role
limitations, pick documents in
your service or on SharePoint to
add to the mix. Add a welcome
message.
Bot notification
In the new team we start the
project knowing what we are
doing and where everything is.
67. Your “task” hub
The Development channel
has some tasks for Daniella
This is a project with specific
goals and work items.
68. Your “task” hub
The Development channel
has some tasks for Daniella
This is a project with specific
goals and work items.
The Marketing channel is in
another team
But Daniella has things she needs
to do here too.
69. Your “task” hub
The Development channel
has some tasks for Daniella
This is a project with specific
goals and work items.
The Marketing channel is in
another team
But Daniella has things she needs
to do here too.
Personal apps can create a
unified view
Daniella will likely start her day
here, and it’s a great place to see
all the work she has to do in one
place… with handy links to take
her to the channels where she
needs to collaborate
71. App Templates for Custom Company Apps
Plug n Play Experiences
Community-driven, pre-built Teams apps for
common line-of-business scenarios. Minimal
configuration needed and no coding required.
One-Click Deployment
Secure, Configurable & Extensible
Full Catalog:
https://aka.ms/TeamsAppTemplates
List Search Company Communicator FAQ Plus
Icebreaker Custom Stickers
Meeting Room Bot HR Support Scrum bot
Celebration Bot
72. Contoso HR Support
Contoso HR Support
Tell me about Diversity/Inclusion at Contoso?
Here’s what I found:
HR
Support
Bot
A bot for
corporate
HR teams
to answer
commonly
asked
employee
questions
and
provide
support.
73. Welcome cards that
tells the employees at
Contoso about what
the bot can do
A dedicated tab that contains entry
points to commonly accessed
SharePoint/other sites for HR tasks.
Contoso HR Support
Contoso HR Support
74. The bot responds with
an answer if it is
contained in the
knowledgebase User can ask questions to the bot. The
bot is built on top of Microsoft QnA
Maker tool and leverages natural
language understanding.
The user can click on
Ask an Expert if they
want additional
support
The user can submit general
feedback about the app or
the question/answer in
particular
What is our benefits policy?
Your benefits are determined by the options you chose during
open enrollment. Follow this link to check your benefits enrollment
and policy details.
Contoso HR Support
Contoso HR Support
75. The employee can
request expert support
as needed.
Contoso HR Support
I referred a friend and he joined Contoso. However, I
still haven’t received my referral bonus.
Contoso HR Support
76. Contoso HR Experts Team:
Where bot posts notifications
on employee ‘ask an expert’
queries.
The bot posts a real-time
notification to the Experts
Team.
Expert Team can perform
light-weight ticketing
operations on the incoming
requests – such as assign,
close, reopen. The bot
maintains an audit trail of all
actions, so the entire team is
on the same page.Any one of the experts can
provide instant help through
chat at the click of a button.
Yashraj Mungale is requesting support.
Employee referral
I referred a friend and he joined Contoso….
Contoso HR Support
77. Opens the underlying
SharePoint site/website
for additional details.
The bot intelligently surfaces information
when certain tags match the commonly
referred HR links and drives awareness
towards Contoso’s existing investments
in knowledge management.
For example, here the question matches
the tag ‘diversity and inclusion’ for which
there is an existing SharePoint site for
additional details.
Contoso HR Support
Contoso HR Support
Tell me about Diversity/Inclusion at Contoso?
Here’s what I found:
78. Frequently accessed HR links provide a useful quick access entry
point to employees from within Teams itself to existing
SharePoint sites/intranet websites. On click, the article referred
by the tile will open in a browser.
Contoso HR Support
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore.
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore.
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore.
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore.
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore.
79. FAQ Plus – A simple FAQ bot that brings a
human in the loop
Teams Adoption
Answer common employee questions about your
Teams deployment
New Product Rollout
Answer employee questions on any new initiatives
and create an immediate feedback loop with the
support teams
Lightweight helpdesk
Create lightweight helpdesk + FAQ apps for
common line of business scenarios such as HR,
Marketing, Operations
80. Company Communicator – Send targeted
communication to employees on Teams
Teams Adoption
Send users proactive communication on rollout of
Teams
Company Announcements
Modernize dissemination and consumption of
employee announcements
Modern Learning and Development
Modernize how employees receive and consume
learning and development content
81. List Search – Search and share items within
SharePoint List
Customer Tracking
Customer tracking, issue tracking.
Bug tracking
Searching, sharing and Collaborating on
software bugs
Company glossary
Searching and sharing common company acronyms
82. Icebreaker – Modern Employee Engagement
Conference communities
CS Ready Las Vegas 2019 (1,000+ CSMs/CSAs
meeting new person everyday)
New employee/intern cohorts
Icebreaker @ Microsoft Worldwide Commercial
Business Interns (50+ interns)
Employee communities
Women in CSU @ Microsoft (300+ women in CSU)
83. Key Resources
https://aka.ms/teamsapptemplates
Contains overview of all available app templates, along with links to GitHub repos
GitHub Repos direct link:
Icebreaker bot
List Search
Custom Stickers
Blogs:
FAQ Plus - Modernize employee experience with this no-code chatbot in Teams
Geekwire – Coverage on Icebreaker bot
OnMicrosoft – Coverage on Icebreaker bot
Icebreaker Blog – Assisted happenstance to strengthen your company culture
84. FAQs
• Are these apps secure?
• The app templates conform to recommended best practices around security and infrastructure, and all
community submitted changes to them are reviewed to ensure continued conformance.
• What would it take to take these apps and deploy them in my tenant?
• All App Templates come with detailed deployment instructions and take minutes to set up. You don’t require
a developer to deploy and use these app templates out of the box.
• Can everyone deploy these app templates?
• Typically, organizations have their own review processes to upload an app to their internal catalog. Anyone
with these permissions can deploy these apps.
• Do these apps cost anything?
• These app templates are free to use as they are open-sourced. They may incur Azure consumption charges
but there are free trials available.
86. Microsoft Graph
a unified REST API
and comprehensive developer experience
for integrating the data and intelligence
exposed by Microsoft services.
87. Integrate Microsoft Graph into your app
Create
Get
Update
Delete
Clone
Archive
Unarchive
List Joined
List All
Team Group
https://graph.microsoft.com
Create
Get
Update
Delete
Renew
Create
Add owner
List owners
Add member
List member
Remove member
Create setting
Get settings
List settings
Channel
Create
Get
Update
Delete
List
Tabs
Add
Get
Update
Delete
List
App
Add
List
Upgrade
Remove
Chat
Add
Get
Update
Remove
List
https://graph.microsoft.com/beta
Mail, Calendar,
Contacts and Tasks
Sites and Lists
Drives and Files
Channels, Messages
Tasks and Plans
Spreadsheets
Notes, and more…
Identity Management
Access Control
Synchronization
Domains
Administrative Units
Applications and Devices
Advanced Threat Analytics
Advanced Threat Protection
Alerts
Policies
and more…
88. Permissions
Two types of permissions:
• User delegated permissions for when there is a user present
• Application permissions for when there isn't
Teams APIs require Group.Read.All or Group.ReadWrite.All
• For user delegated, means all groups the user can read/write
• For application permissions, means all groups in the tenant
• Admin consent required for both user delegated and application permissions
89. Graph can automate team lifecycles
Create a team
Add members
and owners
Configure
team settings
Add channels
Install apps
Add tabs
Send a
message
Archive or
delete the
team when
the time
comes
92. • Modern client-side development
• Lightweight web and mobile
• Supports open source tools
& JavaScript web frameworks
• Built-in Graph support, Azure Active
Directory secured APIs and free hosting
on SharePoint
SharePoint Framework
Cloud ServicesMicrosoft Graph Lists & Files
SharePoint Framework
Modern client-side development
Lightweight web and mobile
Supports open source tools
& JavaScript web frameworks
Built-in Graph support, Azure Active
Directory secured APIs and free
hosting on SharePoint
93. SharePoint Extensibility
Build modern SP solutions
• Full-trust JavaScript based framework running in the main
app
• Use modern auth to integrate with Graph
SP add-ins
• Provider-hosted based via iframes
• Low-trust, end user acquisition model
• Distribute via Office Store
Teams Platform
Build apps to custom tailor your teams
• Modern embedding via tabs
• Enhance integrations via bots, messaging
extensions, Adaptive cards, and Graph
• Add communication services, e.g. programmable
voice and video
94. Microsoft Power Platform
Power BI
Business analytics
Power Apps
Application development
Power Automate
Process automation
Power Virtual Agents
Intelligent virtual agents
The low-code platform that spans Office 365, Azure, Dynamics 365, and standalone applications
Innovation anywhere. Unlocks value everywhere.
Common
Data Service
Data
connectors
AI BuilderPortals
99. Deploy Microsoft Teams App in Azure
Create a Web App in Azure
Create a repository in GitHub
Create an App using ‘yo teams’
Build the App
Deploying to Azure using Git
Deploy the package to Teams to test the app
Microsoft Teams is the fastest growing business application in Microsoft history.
A couple of stats for you:
13M daily active users
Over 500,000 organization are using Teams.
91% of the Fortune 100 companies use Teams.
181 markets are using Teams with support for 53 languages and growing
But really the stat that I love is this stat which is over 200 organizations have 10,000 or more active users.
[This is an animated slide. Please show it in presentation mode]
[MAIN POINT TO LAND]
Microsoft Teams is a hub for teamwork, a chat-based workspace that enables teams to be more productive by giving them a single and secure location that brings together everything a team needs: chats, meetings, calls, files, and tools. Microsoft Teams is one place for all the needs your teams have.
Microsoft Teams delivers on four core promises to create a digital workspace for high performing teams.
[COMMUNICATE]
First, Microsoft Teams solves for the communication needs of a diverse workforce.
Since preview, Microsoft Teams has evolved to a complete meetings and calling solution, incl. chat, voice and video, as we have completed our roadmap for bringing Skype for Business Online features and functionality into Teams. You can use Teams for informal 1:1 or group chats – directly on your phone if you’re on the go. Or you can have an open conversation in a channel. This enables people to share information in a transparent way to accelerate decision making. And it's super easy to move from a chat into a face to face meeting, helping you to bridge geographical barriers.
[COLLABORATE]
When it comes to collaboration, the deep Office integration enables today’s multigenerational workforce to use the Office apps they are familiar with and love - Word, Excel, PowerPoint, OneNote, SharePoint, Planner, even Power BI - right within the context of Teams.
You can avoid email attachments and having to search for the latest version of a document. Teams brings all the Office 365 services together – so that you can easily share and co-author files.
[CUSTOMIZE]
Many of you use other services than Office 365 as well which results in you having to jump between and spend time in disparate experiences. We built Teams to be the hub for all the services and tools your teams use on a day to day basis. So, you can customize Teams with tabs, connector and bots to include the apps and services you need - <mention relevant 3rd party apps like GitHub and Trello>. We have also created an extensible platform, to enable building apps and to integrate with business processes.
And for Firstline workers, Teams provides an additional set of capabilities including schedule management.
[WORK WITH CONFIDENCE]
Microsoft Teams comes with the enterprise grade security, compliance and manageability that you expect from Office 365 which customers tell us is a huge value add for them.
------
And that product is Microsoft Teams.
And back to that Satya quote we shared earlier about Microsoft as a platform company,
Core to the value of Teams is also the platform that it’s built upon.
(click slide to build)
which enables you to customize & extend your experience.
Today, we will discuss how to unleash the real power of Teams to and create experiences
that help solve the communication challenges we mentioned earlier,
and deliver experiences that most organizations have only dreamt about.
Now, why is a platform important? Because while every team is unique,
one thing that is consistent is that every team will need a variety of apps and tools to get their work done.
Since there is no such thing as a universal tool for work, the extensibility of the Teams platform
delivers a universal hub for teamwork to infuse all those tools, together.
Let us show you what we mean by infusing your tools, together.
Talk track:And core to that are the investments we’ve made in the Teams Platform, allowing users & developers alike to customize and build on Teams, in order to deliver experiences that your people & customers LOVE.
And when it comes to the platform and the value that our customers are seeing from it, we are seeing three distinct categories emerging:
Gain context without switching context: Teams pillar of integration (the single hub for Office) but also the ability to simply curate your experience so you reduce the information overload you get every day and focus on the content that's most relevant to you to get your job done, better. INFUSION
Meet Your people where they are: Bring together all the apps and tools your organization is already using, into one user interface. Guess what, for IT that means better & easier management, reduced security threats, and more time you can spend on valuable, forward-looking projects. For end users, #1 just got even better. (opportunity to share a 3rd party apps slide here)
Tailoring your experience: to me, this delivers superpowers to people through proactive intelligence. This is the core to the extensibility of the Teams platform. Deliver intelligent experiences using our APIs and/or our partner community that:
First: make the most difficult and time-wasting tasks at work, easy
Thereafter: drive intelligence to your people that allows them to understand how they add more value to the organization, and then deliver it more efficiently & quickly
We start with a quick overview of the types of apps in Teams.
1st Party Apps are those that are published by Microsoft. These are familiar apps like Word, excel powerpoint, and other apps like Bing News, Flows, Dynamics 365 etc.
Other apps are published by other 3rd party vendors. You’ll find several of them on the Teams in-app store.
<Show the store in the app at this point>
Company Apps:
The Microsoft Teams Company App Catalog lets you distribute your line-of-business applications that were built specifically for your organization and that you rely on to complete critical business functions to your users.
Custom apps are apps that are specific to your organization, built and used specifically for users in your organization. Here’s where you’ll find apps that are specific to Microsoft as a company. These apps have been published by the global admins over at the Microsoft IT department
<Show the Microsoft apps in the Teams app store?
With every IT Professional’s focus on security and privacy for cloud or SaaS apps, what controls are we providing organization admins to allow or block these apps? How do admins disable company specific apps if they find issues or bugs with them?
No that you understand the basics of what’s possible, let’s get into the details around why you want to build for Teams and where you can start
To start developing for Teams, it is important to decide on many points.
First, when you are building any application, you need to ask yourself, does it really solve a real-world problem for a team?
You don’t want to build something which is not solving any business problem. Because there will be no user of your app.
Next, important decision point will be how often user will use this. If your app value proposition is not well balanced with the effort and cost associated with it, then might need to explore other options.
Teams is all about user experience and their interaction with the tool. If you want app to win people choice award, then think about user personas and how your app can improve their life
As mentioned, the return of investment for the app can be justifiable easily. Someone
Discussion notes:
To recap, we’ve covered the various capabilities available in Teams, shared some insights around our product roadmap (only if customer is NDA and slides have been reviewed with them), and talked through a few examples of how apps drive value across various functions in an organization.
My question to you now is, what do you want to enable today for your organization? There are four key areas that we’ve found Teams delivers value for our customers –
Firstly, empowering of employees, which is done via self-service, efficient searching & sharing of information, gauging employee engagement, and learning & development activities.
Next, we have engaging with customers – this includes enabling timely feedback loops, providing customer support, measuring sales associate productivity, and much more.
In the context of optimizing operations, Teams allows for effective execution of business processes, delivery management, and live tracking of in-flight products or services.
Finally, Teams transforms products along with your workforce, ranging from project management to engineering workflows, through to managing service incidents and design collaboration.
These are few of many companies who are building and porting their existing apps to Teams.
These types of business solution opportunities around Teamwork are pretty much endless!
From airline, retail, healthcare, legal firm, real estate, different industries and different functions. You can envision with your customers, understand their business process and teamwork needs, and connect Teams to the tools and services they use everyday to help them fully realize Teams’ value. This purpose of this slide is to give you some ideas, to start thinking about what your customers need.
Microsoft Teams has an open developer platform with a rich set of capabilities to build apps or integrate with new or existing business processes and services.
Tabs allow you to surface rich content within Teams, so you can bring the tools and services your team cares about right into a channel or private chat. Add rich dashboards and data visualization, collaborate on documents and note taking, manage tasks across the group, share designs.
Bots help users get tasks done in conversation in Teams. Bots can do things like kick off workflows and provide status on them, give and receive kudos from team members, create lightweight surveys to gauge employee satisfaction, and answer natural language questions about sales and customer usage data.
Connectors help bring useful information and rich content from external services into channels in Microsoft Teams. Get social media notifications, updates about pull and push requests, news updates.
With Actionable messages, you can add rich content to your connector cards.
Compose extensions allow users to query and share rich cards in conversations.
Activity feed notifications engage users via feed notifications.
To learn more about the Teams developer platform, visit the Office Dev Center at Developer.Microsoft.com/Microsoft-Teams.
Microsoft Teams has an open developer platform with a rich set of capabilities to build apps or integrate with new or existing business processes and services.
Tabs allow you to surface rich content within Teams, so you can bring the tools and services your team cares about right into a channel or private chat. Add rich dashboards and data visualization, collaborate on documents and note taking, manage tasks across the group, share designs.
Bots help users get tasks done in conversation in Teams. Bots can do things like kick off workflows and provide status on them, give and receive kudos from team members, create lightweight surveys to gauge employee satisfaction, and answer natural language questions about sales and customer usage data.
Connectors help bring useful information and rich content from external services into channels in Microsoft Teams. Get social media notifications, updates about pull and push requests, news updates.
With Actionable messages, you can add rich content to your connector cards.
Compose extensions allow users to query and share rich cards in conversations.
Activity feed notifications engage users via feed notifications.
To learn more about the Teams developer platform, visit the Office Dev Center at Developer.Microsoft.com/Microsoft-Teams.
Most of you came to this conference because you have real customers that have data in Microsoft Services. Microsoft Graph is the way to access that data.
This is a sample of cards that can be used. Refer to https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/cards/cards-reference for details
You’ve seen today how Building Teams apps is really about leverage all the experience that you as a developer have, and bringing it into a single unified platform. Bots, cards, sites, and more.
Whether you’re an ISV, an internal developer, or a developer just getting into this space, start developing for Teams today!
commandExtension is part of the manifest.json file
Scope determines if 1:1 (personal) or channel (team)
To provide a seamless tab experience, perform provisioning and authorization on configuration page when possible.
If context has entity/subentity, then respond to a deeplink
State storage is developer’s responsibility
Personal conversation requires User Id (from Teams) and Tenant Id
Notes:
App templates are production-ready apps for Microsoft Teams that are community driven, open-source, and available on GitHub. Each contains detailed instructions for deploying and installing that app for your organization, providing a ready-to-use app that you can install and begin using immediately. The complete source code is available as well, so you can explore it in detail, or fork the code and alter it to meet your specific needs.
Key benefits of using app templates
Plug and play experience: All app templates include deployments scripts that will allow you to host all necessary services in Microsoft Azure. No coding is required to deploy the apps.
Production-ready code: The app templates conform to recommended best practices around security and infrastructure, and all community submitted changes to them are reviewed to ensure continued conformance.
Customizable and extensible: While all app templates are ready to deploy as they are, we provide the entire code base and deployment scripts so that you can easily customize or extend them to fit your unique needs.
Detailed documentation & support: All app templates are accompanied by end-to-end documentation on solution architecture, deployment, and configuration steps. The repositories are monitored as well, so please report any issues you encounter by raising an Issue on GitHub.
Scenario: The HR team at Contoso is rolling out a new HR support bot to enable its employees to get instant answers to mostly commonly asked HR related questions and request expert help when needed.
Collaboration in Microsoft Teams quite often references information contained within items in a SharePoint list. Simply pasting a link to the item in question forces everyone to switch context away from the conversation, find the needed information, then return to Teams to continue the conversation. As the conversation continues typically people will have to switch back to the reference item multiple times to verify new comments and refresh their memories of the information contained within the item. This context switching creates a barrier to smooth collaboration, and is a recipe for things falling through the cracks.
To help alleviate this pain, we are happy to bring to you the List Search app template. Millions of users use SharePoint to power some of the core workflows in their organizations. However, collaborating around lists can be especially tedious. Using the List Search app template in Microsoft Teams, users can insert information from SharePoint list items directly within a chat conversation to alleviate the context-switching caused when simply inserting a link into a chat. The information is inserted as an easy-to-read auto-formatted card, helping your users stay engaged in the conversation.
Icebreaker is a Microsoft Teams bot that helps your team get closer by pairing two random team members up every week to meet. The bot makes scheduling easy by automatically suggesting free times that work for both members. Strengthen personal connections and build a tightly knit community with this app.
In addition to encouraging personal connections across your entire team, the Icebreaker app can help cultivate interest-based communities within your organization. For example, you can use this app for a DevOps interest group to help ideas and best practices organically spread across your organization.
Most of you came to this conference because you have real customers that have data in Microsoft Services. Microsoft Graph is the way to access that data.
The SharePoint Framework (SPFx) is a developer toolkit that provides full support for modern client-side SharePoint development, easy integration with SharePoint data, and support for open source tooling. With the SharePoint Framework, you can use modern web technologies and tools in your preferred development environment to build productive experiences and apps that are responsive and mobile-ready from day one. The SharePoint Framework works for SharePoint Online and supports many open-source tools and is Javascript web framework agnostic.
Another key advantage is that, developers can leverage all of SharePoint’s capabilities, including lists, files, security, CDNs, and integration with Microsoft Graph and Azure Active-Directory secured APIs, to deliver full end-to-end applications for their organization. This in-turn helps reduces operational costs and minimizes deployment complexity.
In short: if you’re thinking about building an app as an Enterprise or Office developer, then the SharePoint Framework is the preferred way to do it because it’s free and extremely powerful because it takes care of so much of the plumbing for you.