SlideShare a Scribd company logo
1 of 39
Download to read offline
Bots, Adaptive Cards, Task
Module, Message Extensions
in Microsoft Teams
Jenkins NS
 Modern Workplace Solution Architect
 International Speaker
 Trainer
 @ JPOWER4 (http://www.jpower4.com/)
 jenkinsns@jpower4.com
 jenkinsns@gmail.com
 @jenkinsns
 My Blog Posts : http://www.Jenkinsblogs.com
 SPFx: https://www.facebook.com/spfxinfo/
 MS Teams: https://www.facebook.com/msteamsinfo
 Github : https://github.com/jenkinsns
Communicate
through chat, meetings & calls
Collaborate
with deeply integrated Office 365 apps
Customize& extend
with 3rd party apps, processes, and devices
Work withconfidence
enterprise level security, compliance,
and manageability
Desktop Mobile Browsers
iPhone Android
iPad
OS X 10.10+
Windows 7+
Edge
Chrome
Firefox
STANDALONEWEB,
DEVICE,AND SERVICE
APPS
EXTENSIONS
EMBEDDED CANVASES
MicrosoftGraph External Data & Content
1stPartyApps 3rd PartyApps Custom Apps
HUB EXPERIENCE
Enable your teams tomake decisions and
take action faster
Reduce context switching on important tasks
Create opportunities for collaboration
around external content
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 withconfidence
enterprise level security, compliance,
and manageability
Gain context
without switching
context
Meet your
people where
they are
Tailor your
teamwork
your app/service
tabs adaptive
cards
notificationsbots messaging
extensions
connectors
task
modules graph
Microsoft Teams
team
scope
personal
scope
Tabs
Surface rich content within
Teams
Distribute and manage your app
Bots
Help users get tasks done in
conversations
Voice and video
Add rich calling and meeting
automation and media
Messaging Extensions
Allow users to query and share
rich cards in conversations
Power your apps using Graph. Build intelligence and connect to data that
drives productivity
Microsoft Graph
Adaptive Cards
Add rich interaction to your
connector cards
Notifications
Post rich updates to channels
via connectors
Enterprise Developers
Upload to your organization’s app
catalog
ISV / SI / MSP Partners
Publish to AppSource to make
available in the Teams app store
Build apps using rich capabilities to empower your
users in chat, channels, and personal workspace
Administrators
Assign policy for apps over end users.
Preinstall and pre-pin apps to drive
adoption
Chat
Lightweight collaboration in 1:1 or group setting without complex permissions
Example: 1:1 topics between manager and direct report
Team and channel
Enable public collaboration and workflows with all team members
Example: share, discuss, and get notified about new service incidents
Personal
User-centric view, showing aggregate content along with private bot chat
Example: list of all tasks assigned to me
Custom-tailor your app’s
functionality depending
on which of these
contexts you will support
Conversations
Notification-Only Bots
Sending and Receiving Files
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.
Bot Events in Microsoft Teams
Activity objects are used to pass information back and forth between bot and channel (or user).
Activities can represent Events, denoted by ActivityType == ‘conversationUpdate’
Team Member Events
teamMemberAdded
teamMemberRemoved
Payload object contains
added/removed members
*Adding bot fires this event
Channel Events
channelCreated
channelRenamed
channelDeleted
ChannelData object reflects
current state
Reactions
reactionsAdded
reactionsRemoved
replyToId contains the ID of the
specific message
Team Events
teamRenamed
ChannelData object reflects
current state
Teams Context
Your bot can access additional context about the team or chat, such as user profile. This information
can be used to enrich your bot's functionality and provide a more personalized experience.
Members in conversation
var mbrs = await connector.Conversations
.GetConversationMembersAsync(
message.Conversation.Id
);
foreach (var mbr in mbrs.AsTeamsChannelAccounts())
{
[...]
}
Channels in Team
ConversationList channels =
client
.GetTeamsConnectorClient()
.Teams
.FetchChannelList(
activity.GetChannelData<TeamsChannelData>()
.Team.Id
);
Proactive Messaging
A proactive message is an activity sent by a bot to start a conversation
Start Personal conversation
Must have user’s information cached
• From team roster
• From previous interaction with user
• From conversationUpdate events
Use the CreateOrGetDirectConversation method
Start Channel conversation
Must have channel information cached
• From previous interaction in channel
• From conversationUpdate events
To create conversation:
• Create ConnectorClient with service Uri
• Call
connector.Conversations.CreateConversationAsync,
passing channel account for bot
• Set Conversation property of new message
• Call connector.Conversations.SendToConversationAsync
Activity Feed
Optionally send personal chat messages into the
feed as preview cards summarizing your app's
activity.
Construct the message such that choosing the card
navigates the user straight to the message or object
that triggered the notification, such as an entity in a
tab.
Must include Text and Summary properties
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,
}
]
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
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,
}
]
Events and Queries
Responding to User Requests
Message Extensions in App
Manifest
Events and Queries
 Activity payload
 composeExtension/query
 composeExtension/querySettingUr
l
 composeExtension/setting
Events and Queries
Query events
Query data sent to bot
Activity.GetComposeExtensionQueryData()
• Verify commandId and parameters
• Use parameter value to query your service
Respond with attachment layout of “List”
Events and Queries
Settings events
If canUpdateConfiguration is true, Teams
will send Settings events in response to
user action
onQuerySettingsUrl
• Sent when “Settings” clicked
• Return Url of settings page
• Teams will render page
onSettingsUpdate
• Sent when settings page is closed
• Storage of settings is developer
responsibility
Responding to User Requests
Service must respond within 5 seconds.
Response is not an activity sent via the Bot Framework.
Response is an HTTP Response:
• HTTP Status of 200
• Content type application/json
• Response body must contain a valid composeExtension object.
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“
}
]
}
]
}
]
Using Cards in Bots
Using Cards in Messaging Extensions
Adaptive Cards support in Microsoft Teams
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.
Using Cards in Messaging Extensions
Respond with attachment layout of “List”
Format each query result as a card
Do not include actions
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
Using Cards in Bots
Using Cards in Messaging Extensions
Adaptive Cards support in Microsoft Teams
Static Tabs
A content page declared directly in manifest
No Configuration
Added in “personal” scope
Accessed via the app bar or alongside bot
conversation
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"
]
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
Enjoy the Bootcamp
Call to action
Join Office 365 developer program
https://dev.office.com/devprogram
to leverage all resources for Office 365
development learning
Build applications on Office 365 platform
Attend MVP led local community events to
continue learning on Office 365 development
Share your feedback on Bootcamp at
https://aka.ms/Microsoft365DevBootcampSurvey2019

More Related Content

What's hot

Engage2022 - Domino Admin Tips
Engage2022 - Domino Admin TipsEngage2022 - Domino Admin Tips
Engage2022 - Domino Admin TipsGabriella Davis
 
Cross Tenant Migration Microsoft Teams
Cross Tenant Migration Microsoft TeamsCross Tenant Migration Microsoft Teams
Cross Tenant Migration Microsoft TeamsThomas Poett
 
SharePoint Benefits
SharePoint BenefitsSharePoint Benefits
SharePoint BenefitsSameh Senosi
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practicesBill Buchan
 
Windows 10
Windows 10Windows 10
Windows 10ARUN P.T
 
Microsoft Teams Governance and Security Best Practices - Joel Oleson
Microsoft Teams Governance and Security Best Practices - Joel OlesonMicrosoft Teams Governance and Security Best Practices - Joel Oleson
Microsoft Teams Governance and Security Best Practices - Joel OlesonJoel Oleson
 
03 power platform power automate in a day-2
03 power platform   power automate in a day-203 power platform   power automate in a day-2
03 power platform power automate in a day-2Kumton Suttiraksiri
 
Microsoft power platform
Microsoft power platform Microsoft power platform
Microsoft power platform AYUSHISHARMA295
 
Web 3.0 and What It Means to Marketing
Web 3.0 and What It Means to MarketingWeb 3.0 and What It Means to Marketing
Web 3.0 and What It Means to MarketingMagic Logix
 
Power Platform (Power Automate)
Power Platform (Power Automate)Power Platform (Power Automate)
Power Platform (Power Automate)OluwatobiYusuf2
 
Power automate a workflow automation platform
Power automate a  workflow automation platform Power automate a  workflow automation platform
Power automate a workflow automation platform Amit Kumawat
 
The People's Innovation Platform - Microsoft Power Platform
    The People's Innovation Platform - Microsoft Power Platform    The People's Innovation Platform - Microsoft Power Platform
The People's Innovation Platform - Microsoft Power PlatformKorcomptenz Inc
 
Fairmont metaverse sunumu
Fairmont metaverse sunumuFairmont metaverse sunumu
Fairmont metaverse sunumuELİF TÜDEŞ
 
Modernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformModernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformJonathan Schultz
 
Viva Connections from Microsoft
Viva Connections from MicrosoftViva Connections from Microsoft
Viva Connections from MicrosoftDavid J Rosenthal
 

What's hot (20)

Microsoft power virtual agents
Microsoft power virtual agentsMicrosoft power virtual agents
Microsoft power virtual agents
 
Power platform power automate in a day
Power platform   power automate in a dayPower platform   power automate in a day
Power platform power automate in a day
 
Engage2022 - Domino Admin Tips
Engage2022 - Domino Admin TipsEngage2022 - Domino Admin Tips
Engage2022 - Domino Admin Tips
 
Cross Tenant Migration Microsoft Teams
Cross Tenant Migration Microsoft TeamsCross Tenant Migration Microsoft Teams
Cross Tenant Migration Microsoft Teams
 
SharePoint Benefits
SharePoint BenefitsSharePoint Benefits
SharePoint Benefits
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
 
Power Platform Governance
Power Platform GovernancePower Platform Governance
Power Platform Governance
 
Windows 10
Windows 10Windows 10
Windows 10
 
Microsoft Teams Governance and Security Best Practices - Joel Oleson
Microsoft Teams Governance and Security Best Practices - Joel OlesonMicrosoft Teams Governance and Security Best Practices - Joel Oleson
Microsoft Teams Governance and Security Best Practices - Joel Oleson
 
03 power platform power automate in a day-2
03 power platform   power automate in a day-203 power platform   power automate in a day-2
03 power platform power automate in a day-2
 
Microsoft power platform
Microsoft power platform Microsoft power platform
Microsoft power platform
 
Web 3.0 and What It Means to Marketing
Web 3.0 and What It Means to MarketingWeb 3.0 and What It Means to Marketing
Web 3.0 and What It Means to Marketing
 
Power Platform (Power Automate)
Power Platform (Power Automate)Power Platform (Power Automate)
Power Platform (Power Automate)
 
Power automate a workflow automation platform
Power automate a  workflow automation platform Power automate a  workflow automation platform
Power automate a workflow automation platform
 
The People's Innovation Platform - Microsoft Power Platform
    The People's Innovation Platform - Microsoft Power Platform    The People's Innovation Platform - Microsoft Power Platform
The People's Innovation Platform - Microsoft Power Platform
 
Fairmont metaverse sunumu
Fairmont metaverse sunumuFairmont metaverse sunumu
Fairmont metaverse sunumu
 
Modernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformModernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power Platform
 
Sharepoint 2019 Training
Sharepoint 2019 TrainingSharepoint 2019 Training
Sharepoint 2019 Training
 
Windows 10
Windows 10Windows 10
Windows 10
 
Viva Connections from Microsoft
Viva Connections from MicrosoftViva Connections from Microsoft
Viva Connections from Microsoft
 

Similar to Bots, adaptive cards, task module, message extensions in microsoft teams

Bots, adaptive cards, task module, message extensions in microsoft teams
Bots, adaptive cards, task module, message extensions in microsoft teamsBots, adaptive cards, task module, message extensions in microsoft teams
Bots, adaptive cards, task module, message extensions in microsoft teamsJenkins NS
 
Building apps for microsoft teams - aossg
Building apps for microsoft teams - aossgBuilding apps for microsoft teams - aossg
Building apps for microsoft teams - aossgJenkins NS
 
Bot & AI - A Bot for Productivity
Bot & AI - A Bot for ProductivityBot & AI - A Bot for Productivity
Bot & AI - A Bot for ProductivityMarvin Heng
 
Microsoft Team Messaging Extension Deep Dive
Microsoft Team Messaging Extension Deep DiveMicrosoft Team Messaging Extension Deep Dive
Microsoft Team Messaging Extension Deep DiveManoj Mittal
 
Global office 365 developer bootcamp Slovenia 2018
Global office 365 developer bootcamp Slovenia 2018Global office 365 developer bootcamp Slovenia 2018
Global office 365 developer bootcamp Slovenia 2018Thomas Gölles
 
Office Dev Day 2018 - Extending Microsoft Teams
Office Dev Day 2018 - Extending Microsoft TeamsOffice Dev Day 2018 - Extending Microsoft Teams
Office Dev Day 2018 - Extending Microsoft TeamsAndré Vala
 
Building apps for microsoft teams - aosKL
Building apps for microsoft teams - aosKL Building apps for microsoft teams - aosKL
Building apps for microsoft teams - aosKL Jenkins NS
 
Microsoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveMicrosoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveThomas Gölles
 
Sps mad2019 es el momento, empieza a desarrollar para microsoft teams
Sps mad2019   es el momento, empieza a desarrollar para microsoft teams Sps mad2019   es el momento, empieza a desarrollar para microsoft teams
Sps mad2019 es el momento, empieza a desarrollar para microsoft teams Ruben Ramos
 
Microsoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIMicrosoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIThomas Gölles
 
Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018Microsoft 365 Developer
 
#MSGraph introduction at #M365SaturdayOttawa
#MSGraph introduction at #M365SaturdayOttawa#MSGraph introduction at #M365SaturdayOttawa
#MSGraph introduction at #M365SaturdayOttawaVincent Biret
 
Microsoft Bot Framework (Node.js Edition)
Microsoft Bot Framework (Node.js Edition)Microsoft Bot Framework (Node.js Edition)
Microsoft Bot Framework (Node.js Edition)Jens Siebert
 
Office 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsOffice 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsDavid Schneider
 
Microsoft Teams Preview - Technical Overview
Microsoft Teams Preview - Technical OverviewMicrosoft Teams Preview - Technical Overview
Microsoft Teams Preview - Technical OverviewOlivier Carpentier
 
Bitrix24 Presentation
Bitrix24 PresentationBitrix24 Presentation
Bitrix24 PresentationBitrix, Inc.
 
Microsoft 365, la herramienta moderna para la oficina moderna
Microsoft 365, la herramienta moderna para la oficina modernaMicrosoft 365, la herramienta moderna para la oficina moderna
Microsoft 365, la herramienta moderna para la oficina modernaHaaron Gonzalez
 
Intégrez vos applications métiers dans Microsoft Teams
Intégrez vos applications métiers dans Microsoft TeamsIntégrez vos applications métiers dans Microsoft Teams
Intégrez vos applications métiers dans Microsoft TeamsGuillaume Meyer
 
TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010Eli Robillard
 

Similar to Bots, adaptive cards, task module, message extensions in microsoft teams (20)

Bots, adaptive cards, task module, message extensions in microsoft teams
Bots, adaptive cards, task module, message extensions in microsoft teamsBots, adaptive cards, task module, message extensions in microsoft teams
Bots, adaptive cards, task module, message extensions in microsoft teams
 
Building apps for microsoft teams - aossg
Building apps for microsoft teams - aossgBuilding apps for microsoft teams - aossg
Building apps for microsoft teams - aossg
 
Bot & AI - A Bot for Productivity
Bot & AI - A Bot for ProductivityBot & AI - A Bot for Productivity
Bot & AI - A Bot for Productivity
 
Microsoft Team Messaging Extension Deep Dive
Microsoft Team Messaging Extension Deep DiveMicrosoft Team Messaging Extension Deep Dive
Microsoft Team Messaging Extension Deep Dive
 
Global office 365 developer bootcamp Slovenia 2018
Global office 365 developer bootcamp Slovenia 2018Global office 365 developer bootcamp Slovenia 2018
Global office 365 developer bootcamp Slovenia 2018
 
Office Dev Day 2018 - Extending Microsoft Teams
Office Dev Day 2018 - Extending Microsoft TeamsOffice Dev Day 2018 - Extending Microsoft Teams
Office Dev Day 2018 - Extending Microsoft Teams
 
Building apps for microsoft teams - aosKL
Building apps for microsoft teams - aosKL Building apps for microsoft teams - aosKL
Building apps for microsoft teams - aosKL
 
Microsoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveMicrosoft Teams - A developers perspective
Microsoft Teams - A developers perspective
 
Sps mad2019 es el momento, empieza a desarrollar para microsoft teams
Sps mad2019   es el momento, empieza a desarrollar para microsoft teams Sps mad2019   es el momento, empieza a desarrollar para microsoft teams
Sps mad2019 es el momento, empieza a desarrollar para microsoft teams
 
Microsoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIMicrosoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AI
 
Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018
 
#MSGraph introduction at #M365SaturdayOttawa
#MSGraph introduction at #M365SaturdayOttawa#MSGraph introduction at #M365SaturdayOttawa
#MSGraph introduction at #M365SaturdayOttawa
 
Microsoft Bot Framework (Node.js Edition)
Microsoft Bot Framework (Node.js Edition)Microsoft Bot Framework (Node.js Edition)
Microsoft Bot Framework (Node.js Edition)
 
Office 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsOffice 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft Teams
 
Microsoft Teams Preview - Technical Overview
Microsoft Teams Preview - Technical OverviewMicrosoft Teams Preview - Technical Overview
Microsoft Teams Preview - Technical Overview
 
Bitrix24fullpresentation
Bitrix24fullpresentationBitrix24fullpresentation
Bitrix24fullpresentation
 
Bitrix24 Presentation
Bitrix24 PresentationBitrix24 Presentation
Bitrix24 Presentation
 
Microsoft 365, la herramienta moderna para la oficina moderna
Microsoft 365, la herramienta moderna para la oficina modernaMicrosoft 365, la herramienta moderna para la oficina moderna
Microsoft 365, la herramienta moderna para la oficina moderna
 
Intégrez vos applications métiers dans Microsoft Teams
Intégrez vos applications métiers dans Microsoft TeamsIntégrez vos applications métiers dans Microsoft Teams
Intégrez vos applications métiers dans Microsoft Teams
 
TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010TSPUG: Content Management in SharePoint 2010
TSPUG: Content Management in SharePoint 2010
 

More from Jenkins NS

All about Send proactive messages in Microsoft Teams BOT
All about Send proactive messages in Microsoft Teams BOTAll about Send proactive messages in Microsoft Teams BOT
All about Send proactive messages in Microsoft Teams BOTJenkins NS
 
Surfacing SPFx Solutions in SharePoint, MS Teams, and Outlook Add-in
Surfacing SPFx Solutions in SharePoint, MS Teams, and Outlook Add-inSurfacing SPFx Solutions in SharePoint, MS Teams, and Outlook Add-in
Surfacing SPFx Solutions in SharePoint, MS Teams, and Outlook Add-inJenkins NS
 
Global M365 Developer Bootcamp 2020 Hyderabad: KEYNOTE
Global M365 Developer Bootcamp 2020 Hyderabad: KEYNOTEGlobal M365 Developer Bootcamp 2020 Hyderabad: KEYNOTE
Global M365 Developer Bootcamp 2020 Hyderabad: KEYNOTEJenkins NS
 
Global M365 Developer Bootcamp 2020 Hyderabad: WELCOME NOTE
Global M365 Developer Bootcamp 2020 Hyderabad: WELCOME NOTEGlobal M365 Developer Bootcamp 2020 Hyderabad: WELCOME NOTE
Global M365 Developer Bootcamp 2020 Hyderabad: WELCOME NOTEJenkins NS
 
SPFx Outlook add-in with Azure Cognitive services to detect the sentiment bef...
SPFx Outlook add-in with Azure Cognitive services to detect the sentiment bef...SPFx Outlook add-in with Azure Cognitive services to detect the sentiment bef...
SPFx Outlook add-in with Azure Cognitive services to detect the sentiment bef...Jenkins NS
 
Extend the unextended in microsoft teams
Extend the unextended in microsoft teamsExtend the unextended in microsoft teams
Extend the unextended in microsoft teamsJenkins NS
 
Power Automate integration with SPFX webpart
Power Automate integration with SPFX webpartPower Automate integration with SPFX webpart
Power Automate integration with SPFX webpartJenkins NS
 
Task-oriented interactions in Microsoft Teams with messaging extensions
Task-oriented interactions in Microsoft Teams with messaging extensionsTask-oriented interactions in Microsoft Teams with messaging extensions
Task-oriented interactions in Microsoft Teams with messaging extensionsJenkins NS
 
Microsoft power platform
Microsoft power platformMicrosoft power platform
Microsoft power platformJenkins NS
 
Introduction to microsoft teams app templates
Introduction to microsoft teams app templatesIntroduction to microsoft teams app templates
Introduction to microsoft teams app templatesJenkins NS
 
Build an app from scratch using teams app studio for ms teams
Build an app from scratch using teams app studio for ms teamsBuild an app from scratch using teams app studio for ms teams
Build an app from scratch using teams app studio for ms teamsJenkins NS
 
Empowering citizen developers using power apps
Empowering citizen developers using power appsEmpowering citizen developers using power apps
Empowering citizen developers using power appsJenkins NS
 
Ms teams webinar-getting started with microsoft teams development
Ms teams webinar-getting started with microsoft teams developmentMs teams webinar-getting started with microsoft teams development
Ms teams webinar-getting started with microsoft teams developmentJenkins NS
 
M365 virtual marathon build your first power virtual agents bot
M365 virtual marathon   build your first power virtual agents botM365 virtual marathon   build your first power virtual agents bot
M365 virtual marathon build your first power virtual agents botJenkins NS
 
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint FrameworkharePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint FrameworkJenkins NS
 
SPFx Webinar Loading SharePoint data in a SPFx Webpart
SPFx Webinar Loading SharePoint data in a SPFx WebpartSPFx Webinar Loading SharePoint data in a SPFx Webpart
SPFx Webinar Loading SharePoint data in a SPFx WebpartJenkins NS
 
SPSChennai2020
SPSChennai2020SPSChennai2020
SPSChennai2020Jenkins NS
 
Trivandrumtechcon20
Trivandrumtechcon20Trivandrumtechcon20
Trivandrumtechcon20Jenkins NS
 
Governance and administration for teams app development
Governance and administration for teams app developmentGovernance and administration for teams app development
Governance and administration for teams app developmentJenkins NS
 
Getting started with spfx
Getting started with spfxGetting started with spfx
Getting started with spfxJenkins NS
 

More from Jenkins NS (20)

All about Send proactive messages in Microsoft Teams BOT
All about Send proactive messages in Microsoft Teams BOTAll about Send proactive messages in Microsoft Teams BOT
All about Send proactive messages in Microsoft Teams BOT
 
Surfacing SPFx Solutions in SharePoint, MS Teams, and Outlook Add-in
Surfacing SPFx Solutions in SharePoint, MS Teams, and Outlook Add-inSurfacing SPFx Solutions in SharePoint, MS Teams, and Outlook Add-in
Surfacing SPFx Solutions in SharePoint, MS Teams, and Outlook Add-in
 
Global M365 Developer Bootcamp 2020 Hyderabad: KEYNOTE
Global M365 Developer Bootcamp 2020 Hyderabad: KEYNOTEGlobal M365 Developer Bootcamp 2020 Hyderabad: KEYNOTE
Global M365 Developer Bootcamp 2020 Hyderabad: KEYNOTE
 
Global M365 Developer Bootcamp 2020 Hyderabad: WELCOME NOTE
Global M365 Developer Bootcamp 2020 Hyderabad: WELCOME NOTEGlobal M365 Developer Bootcamp 2020 Hyderabad: WELCOME NOTE
Global M365 Developer Bootcamp 2020 Hyderabad: WELCOME NOTE
 
SPFx Outlook add-in with Azure Cognitive services to detect the sentiment bef...
SPFx Outlook add-in with Azure Cognitive services to detect the sentiment bef...SPFx Outlook add-in with Azure Cognitive services to detect the sentiment bef...
SPFx Outlook add-in with Azure Cognitive services to detect the sentiment bef...
 
Extend the unextended in microsoft teams
Extend the unextended in microsoft teamsExtend the unextended in microsoft teams
Extend the unextended in microsoft teams
 
Power Automate integration with SPFX webpart
Power Automate integration with SPFX webpartPower Automate integration with SPFX webpart
Power Automate integration with SPFX webpart
 
Task-oriented interactions in Microsoft Teams with messaging extensions
Task-oriented interactions in Microsoft Teams with messaging extensionsTask-oriented interactions in Microsoft Teams with messaging extensions
Task-oriented interactions in Microsoft Teams with messaging extensions
 
Microsoft power platform
Microsoft power platformMicrosoft power platform
Microsoft power platform
 
Introduction to microsoft teams app templates
Introduction to microsoft teams app templatesIntroduction to microsoft teams app templates
Introduction to microsoft teams app templates
 
Build an app from scratch using teams app studio for ms teams
Build an app from scratch using teams app studio for ms teamsBuild an app from scratch using teams app studio for ms teams
Build an app from scratch using teams app studio for ms teams
 
Empowering citizen developers using power apps
Empowering citizen developers using power appsEmpowering citizen developers using power apps
Empowering citizen developers using power apps
 
Ms teams webinar-getting started with microsoft teams development
Ms teams webinar-getting started with microsoft teams developmentMs teams webinar-getting started with microsoft teams development
Ms teams webinar-getting started with microsoft teams development
 
M365 virtual marathon build your first power virtual agents bot
M365 virtual marathon   build your first power virtual agents botM365 virtual marathon   build your first power virtual agents bot
M365 virtual marathon build your first power virtual agents bot
 
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint FrameworkharePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
 
SPFx Webinar Loading SharePoint data in a SPFx Webpart
SPFx Webinar Loading SharePoint data in a SPFx WebpartSPFx Webinar Loading SharePoint data in a SPFx Webpart
SPFx Webinar Loading SharePoint data in a SPFx Webpart
 
SPSChennai2020
SPSChennai2020SPSChennai2020
SPSChennai2020
 
Trivandrumtechcon20
Trivandrumtechcon20Trivandrumtechcon20
Trivandrumtechcon20
 
Governance and administration for teams app development
Governance and administration for teams app developmentGovernance and administration for teams app development
Governance and administration for teams app development
 
Getting started with spfx
Getting started with spfxGetting started with spfx
Getting started with spfx
 

Recently uploaded

A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Recently uploaded (20)

A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 

Bots, adaptive cards, task module, message extensions in microsoft teams

  • 1. Bots, Adaptive Cards, Task Module, Message Extensions in Microsoft Teams Jenkins NS
  • 2.  Modern Workplace Solution Architect  International Speaker  Trainer  @ JPOWER4 (http://www.jpower4.com/)  jenkinsns@jpower4.com  jenkinsns@gmail.com  @jenkinsns  My Blog Posts : http://www.Jenkinsblogs.com  SPFx: https://www.facebook.com/spfxinfo/  MS Teams: https://www.facebook.com/msteamsinfo  Github : https://github.com/jenkinsns
  • 3. Communicate through chat, meetings & calls Collaborate with deeply integrated Office 365 apps Customize& extend with 3rd party apps, processes, and devices Work withconfidence enterprise level security, compliance, and manageability
  • 4. Desktop Mobile Browsers iPhone Android iPad OS X 10.10+ Windows 7+ Edge Chrome Firefox
  • 6. 1stPartyApps 3rd PartyApps Custom Apps HUB EXPERIENCE Enable your teams tomake decisions and take action faster Reduce context switching on important tasks Create opportunities for collaboration around external content
  • 7. 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 withconfidence enterprise level security, compliance, and manageability Gain context without switching context Meet your people where they are Tailor your teamwork
  • 8. your app/service tabs adaptive cards notificationsbots messaging extensions connectors task modules graph Microsoft Teams team scope personal scope
  • 9. Tabs Surface rich content within Teams Distribute and manage your app Bots Help users get tasks done in conversations Voice and video Add rich calling and meeting automation and media Messaging Extensions Allow users to query and share rich cards in conversations Power your apps using Graph. Build intelligence and connect to data that drives productivity Microsoft Graph Adaptive Cards Add rich interaction to your connector cards Notifications Post rich updates to channels via connectors Enterprise Developers Upload to your organization’s app catalog ISV / SI / MSP Partners Publish to AppSource to make available in the Teams app store Build apps using rich capabilities to empower your users in chat, channels, and personal workspace Administrators Assign policy for apps over end users. Preinstall and pre-pin apps to drive adoption
  • 10. Chat Lightweight collaboration in 1:1 or group setting without complex permissions Example: 1:1 topics between manager and direct report Team and channel Enable public collaboration and workflows with all team members Example: share, discuss, and get notified about new service incidents Personal User-centric view, showing aggregate content along with private bot chat Example: list of all tasks assigned to me Custom-tailor your app’s functionality depending on which of these contexts you will support
  • 12. 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.
  • 13. Bot Events in Microsoft Teams Activity objects are used to pass information back and forth between bot and channel (or user). Activities can represent Events, denoted by ActivityType == ‘conversationUpdate’ Team Member Events teamMemberAdded teamMemberRemoved Payload object contains added/removed members *Adding bot fires this event Channel Events channelCreated channelRenamed channelDeleted ChannelData object reflects current state Reactions reactionsAdded reactionsRemoved replyToId contains the ID of the specific message Team Events teamRenamed ChannelData object reflects current state
  • 14. Teams Context Your bot can access additional context about the team or chat, such as user profile. This information can be used to enrich your bot's functionality and provide a more personalized experience. Members in conversation var mbrs = await connector.Conversations .GetConversationMembersAsync( message.Conversation.Id ); foreach (var mbr in mbrs.AsTeamsChannelAccounts()) { [...] } Channels in Team ConversationList channels = client .GetTeamsConnectorClient() .Teams .FetchChannelList( activity.GetChannelData<TeamsChannelData>() .Team.Id );
  • 15. Proactive Messaging A proactive message is an activity sent by a bot to start a conversation Start Personal conversation Must have user’s information cached • From team roster • From previous interaction with user • From conversationUpdate events Use the CreateOrGetDirectConversation method Start Channel conversation Must have channel information cached • From previous interaction in channel • From conversationUpdate events To create conversation: • Create ConnectorClient with service Uri • Call connector.Conversations.CreateConversationAsync, passing channel account for bot • Set Conversation property of new message • Call connector.Conversations.SendToConversationAsync
  • 16. Activity Feed Optionally send personal chat messages into the feed as preview cards summarizing your app's activity. Construct the message such that choosing the card navigates the user straight to the message or object that triggered the notification, such as an entity in a tab. Must include Text and Summary properties
  • 17. 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, } ]
  • 18. 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
  • 19. 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, } ]
  • 20.
  • 21. Events and Queries Responding to User Requests Message Extensions in App Manifest
  • 22. Events and Queries  Activity payload  composeExtension/query  composeExtension/querySettingUr l  composeExtension/setting
  • 23. Events and Queries Query events Query data sent to bot Activity.GetComposeExtensionQueryData() • Verify commandId and parameters • Use parameter value to query your service Respond with attachment layout of “List”
  • 24. Events and Queries Settings events If canUpdateConfiguration is true, Teams will send Settings events in response to user action onQuerySettingsUrl • Sent when “Settings” clicked • Return Url of settings page • Teams will render page onSettingsUpdate • Sent when settings page is closed • Storage of settings is developer responsibility
  • 25. Responding to User Requests Service must respond within 5 seconds. Response is not an activity sent via the Bot Framework. Response is an HTTP Response: • HTTP Status of 200 • Content type application/json • Response body must contain a valid composeExtension object.
  • 26. 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“ } ] } ] } ]
  • 27.
  • 28. Using Cards in Bots Using Cards in Messaging Extensions Adaptive Cards support in Microsoft Teams
  • 29. 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.
  • 30. Using Cards in Messaging Extensions Respond with attachment layout of “List” Format each query result as a card Do not include actions
  • 31. 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
  • 32.
  • 33. Using Cards in Bots Using Cards in Messaging Extensions Adaptive Cards support in Microsoft Teams
  • 34. Static Tabs A content page declared directly in manifest No Configuration Added in “personal” scope Accessed via the app bar or alongside bot conversation
  • 35. 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" ]
  • 36. 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
  • 37.
  • 39. Call to action Join Office 365 developer program https://dev.office.com/devprogram to leverage all resources for Office 365 development learning Build applications on Office 365 platform Attend MVP led local community events to continue learning on Office 365 development Share your feedback on Bootcamp at https://aka.ms/Microsoft365DevBootcampSurvey2019

Editor's Notes

  1. [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 include a complete meetings experience, as well as chat, voice and video - 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. Teams is unique in how we enable collaboration. Today, when you want somebody’s feedback, you send them the file via email, they store it locally with comments, you store it again…… it's a vicious cycle that results in v2, v3, v4 versions – and you have to jump between email and other apps to get the work done. Teams brings all the Office 365 services together – so that you can easily share and co-author files without the need for email attachments.   [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 not only be the hub for Office 365 services, but for all the services and tools 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 that can be included in Teams>– we have integrations with over 150 partners. For our developer community, we have also created an extensible platform, to enable building apps and to integrate with business processes.   [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.
  2. `
  3. 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
  4. Tabs - Surface rich content as well as SharePoint Framework based solutions Connectors - Post rich updates to channels Adaptive Cards - Add rich interaction to your connector cards Bots - Help users get tasks done in conversations Message Extensions - Allow users to query and share rich cards in conversations Notifications - Engage users via feed notifications ------ Graph - Build in intelligence and connect to data that drives productivity Apps Store - Drive engagement by submitting your app to our app store or just to certain company stores
  5. 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.
  6. Teams will send notifications to your bot for changes or events that happen in contexts where your bot is active. You can use these events to trigger service logic, such as: Trigger welcome message when your bot is added to a team. Query and cache team information when the bot is added to a team. Updated cached information on team membership or channel information changes. Remove cached information for a team if the bot is removed. Since bot is scoped to team, no events for team creation/deletion provided. When bot is added/removed, TeamMember events are sent.
  7. Use the Microsoft.Bot.Connector.Teams package to get extension methods for Microsoft Teams. Handles the parsing of the Bot Framework payload with Teams-specific functionality.
  8. Personal conversation requires User Id (from Teams) and Tenant Id
  9. Personal conversation requires User Id (from Teams) and Tenant Id
  10. commandExtension is part of the manifest.json file Scope determines if 1:1 (personal) or channel (team)
  11. 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
  12. 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