SlideShare a Scribd company logo
1 of 26
Search Based
Messaging Extension
Build Messaging Extension with Microsoft Teams App
MS Teams Azure Bot
Action Based
Messaging Extension
Link Unfurling
Messaging Extension
Speaker Introduction
C# Corner MVP(3), MCP, MCTS,MCSA, OCA
http://manojmittalblogs.blogspot.in
https://www.youtube.com/user/manojmcans/videos
/Manojmcans
In/manoj-mittal-mcp-mcts-oca-mcsa/
https://www.c-sharpcorner.com/members/manoj-mittal
Manoj Mittal
Sr. Technical Architect
@ Mindtree Ltd
Build Messaging Extension with Microsoft Teams App
Overview
• Messaging Extension overview
• Search based Commands
• Action based Commands
• Link Unfurling
• Use Case : Search Patient via Custom API
using Messaging Extension
Overview of Messaging Extension in Microsoft Teams
What are Messaging Extensions ?
A way to “extend the message” and make conversation more interactive
A concept piggy-backing on the Bot Framework Invoke command
“Messaging extensions enable users to execute search queries or trigger actions in external systems. The
results of these actions are sent from your custom web service to the Microsoft Teams client as embedded
web pages or richly formatted cards”
Can be invoked from one of the following location in Microsoft Teams App
1. Command Box
2. Compose Message Box
3. Message More Action Menu
• Implemented as Web Services
• Microsoft Teams Communicate with the web services via Bot Framework
• Messaging Extension are registered as bots with Bot Framework
• Web Services responds with task modules or rich formatted cards
How Messaging Extension Works
Overview
• Search Commands
• Implement search command message
handler
Search command can be trigger from
the following locations
1. Command Box
2. Compose Message Box
Developing Search Commands with message extension handlers
Search based Messaging Extension
• Search Query is send from Microsoft Teams to your web services.
• Your web services responds with list or grids of results.
• When user select a results, it is added to compose message box as a card or text.
Register search based Messaging Extension in the app manifest file
"composeExtensions": [
{
"botId": "",
"canUpdateConfiguration": true,
"commands": [
{
"id": "searchQuery",
"context": [ "compose", "commandBox" ],
"description": "Test command to run query",
"title": "Search",
"type": "query",
"parameters": [
{ … }
] } ] } ]
Implement search commands messaging extension
Deploy search based Messaging Extension in the App Studio
Overview
• Action Commands
• Implement action command message
handlers
Messaging Extension Action Scenario
Perform action in external system & include result in conversation
Complete complex tasks involving multiple steps and share results
Developing action based Messaging Extension (1/2)
The messaging extensions action command allows users to collect information using modal
popup, process their information, and send it back to the Teams channel conversation area.
When Invoked, JSON payload
send to registered web
services.
When web services respond
with task module implemented
with web interface or adaptive
cards.
Action based Messaging Extension (2/2)
Register action based Messaging Extension | Manifest file
"composeExtensions": [
{
"botId": "",
"commands": [ {
"id": "createCard",
"type": "action",
"context": [ "compose" ],
"parameters": [
{ }, { }, { }, ] },
{
"id": "shareMessage",
"type": "action",
"context": [ "message" ],
"parameters": [ { } ] } ] } ],
How will the action commands respond
Decide how the message will be sent back to user
• Insert message in the compose message box ?
• Respond directly to a conversation ?
When respond directly to conversation, must also register the web services as a bot in the
app manifest.
Implement & Handling action command messaging extension
Deploy action based Messaging Extension in the App Studio
Overview
• Unfurling links
• Implement link unfurling message handlers
Link Unfurling Messaging Extension
• Messaging extensions Link Unfurling invokes the activity when the hyperlink from defined domain
(defined or whitelist into the manifest file) is pasted into the message compose area.
• Link Unfurling help to respond to the full hyperlink with richly formatted card as well as
additional information similar to search result
Register link unfurling Messaging Extension in the app manifest file
"composeExtensions": [
{
"botId": "",
"commands": [
{
"context": [ "commandBox" ],
"type": "query"
"messageHandlers": [
{
"type": "link",
"value": {
"domains": [
"*.botframework.com", "*.wikipedia.org"
] } } ] } ]
Create and send card when search command is invoked
Deploy link unfurling Messaging Extension in the App Studio
Microsoft Team Messaging Extension Deep Dive

More Related Content

What's hot

Building apps for microsoft teams - aossg
Building apps for microsoft teams - aossgBuilding apps for microsoft teams - aossg
Building apps for microsoft teams - aossgJenkins NS
 
An introduction to Microsoft Graph for developers
An introduction to Microsoft Graph for developersAn introduction to Microsoft Graph for developers
An introduction to Microsoft Graph for developersMicrosoft 365 Developer
 
SPSNL - Bringing SharePoint information into Office through Office Apps
SPSNL - Bringing SharePoint information into Office through Office AppsSPSNL - Bringing SharePoint information into Office through Office Apps
SPSNL - Bringing SharePoint information into Office through Office AppsWes Hackett
 
SPSUK Apps for Office
SPSUK Apps for OfficeSPSUK Apps for Office
SPSUK Apps for OfficeWes Hackett
 
SPUnite17 5 More Query Rules
SPUnite17 5 More Query RulesSPUnite17 5 More Query Rules
SPUnite17 5 More Query RulesNCCOMMS
 
Introduction to Teams Development - North American Collaboration Summit
Introduction to Teams Development - North American Collaboration SummitIntroduction to Teams Development - North American Collaboration Summit
Introduction to Teams Development - North American Collaboration SummitBob German
 
Integration with Microsoft CRM using Mule ESB
Integration with Microsoft CRM using Mule ESBIntegration with Microsoft CRM using Mule ESB
Integration with Microsoft CRM using Mule ESBSanjeet Pandey
 
SPUnite17 Extending Groups-Teams-Planner
SPUnite17 Extending Groups-Teams-PlannerSPUnite17 Extending Groups-Teams-Planner
SPUnite17 Extending Groups-Teams-PlannerNCCOMMS
 
Integration with microsoft share point
Integration with microsoft share pointIntegration with microsoft share point
Integration with microsoft share pointSon Nguyen
 
SpUnite17 Exploring Identity Management Options in Office 365
SpUnite17 Exploring Identity Management Options in Office 365SpUnite17 Exploring Identity Management Options in Office 365
SpUnite17 Exploring Identity Management Options in Office 365NCCOMMS
 
SPEvo 2015 app launcher
SPEvo 2015 app launcherSPEvo 2015 app launcher
SPEvo 2015 app launcherWes Hackett
 

What's hot (11)

Building apps for microsoft teams - aossg
Building apps for microsoft teams - aossgBuilding apps for microsoft teams - aossg
Building apps for microsoft teams - aossg
 
An introduction to Microsoft Graph for developers
An introduction to Microsoft Graph for developersAn introduction to Microsoft Graph for developers
An introduction to Microsoft Graph for developers
 
SPSNL - Bringing SharePoint information into Office through Office Apps
SPSNL - Bringing SharePoint information into Office through Office AppsSPSNL - Bringing SharePoint information into Office through Office Apps
SPSNL - Bringing SharePoint information into Office through Office Apps
 
SPSUK Apps for Office
SPSUK Apps for OfficeSPSUK Apps for Office
SPSUK Apps for Office
 
SPUnite17 5 More Query Rules
SPUnite17 5 More Query RulesSPUnite17 5 More Query Rules
SPUnite17 5 More Query Rules
 
Introduction to Teams Development - North American Collaboration Summit
Introduction to Teams Development - North American Collaboration SummitIntroduction to Teams Development - North American Collaboration Summit
Introduction to Teams Development - North American Collaboration Summit
 
Integration with Microsoft CRM using Mule ESB
Integration with Microsoft CRM using Mule ESBIntegration with Microsoft CRM using Mule ESB
Integration with Microsoft CRM using Mule ESB
 
SPUnite17 Extending Groups-Teams-Planner
SPUnite17 Extending Groups-Teams-PlannerSPUnite17 Extending Groups-Teams-Planner
SPUnite17 Extending Groups-Teams-Planner
 
Integration with microsoft share point
Integration with microsoft share pointIntegration with microsoft share point
Integration with microsoft share point
 
SpUnite17 Exploring Identity Management Options in Office 365
SpUnite17 Exploring Identity Management Options in Office 365SpUnite17 Exploring Identity Management Options in Office 365
SpUnite17 Exploring Identity Management Options in Office 365
 
SPEvo 2015 app launcher
SPEvo 2015 app launcherSPEvo 2015 app launcher
SPEvo 2015 app launcher
 

Similar to Microsoft Team Messaging Extension Deep Dive

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
 
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
 
Thr2426 Build a bot for Microsoft Teams in 5 minutes
Thr2426 Build a bot for Microsoft Teams in 5 minutesThr2426 Build a bot for Microsoft Teams in 5 minutes
Thr2426 Build a bot for Microsoft Teams in 5 minutesTracy Van der Schyff
 
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
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...Vincent Biret
 
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
 
Building apps using azure for microsoft teams
Building apps using azure for microsoft teamsBuilding apps using azure for microsoft teams
Building apps using azure for microsoft teamsJenkins NS
 
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...Vincent Biret
 
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Vincent Biret
 
Microsoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIMicrosoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIThomas Gölles
 
Enhancing Relevancy & User Experience with #SharePoint Search sps-philly 2015
Enhancing Relevancy & User Experience with #SharePoint Search   sps-philly 2015Enhancing Relevancy & User Experience with #SharePoint Search   sps-philly 2015
Enhancing Relevancy & User Experience with #SharePoint Search sps-philly 2015Gina Montgomery, V-TSP
 
Build Modern Apps on Microsoft Teams-September 2018
Build Modern Apps on Microsoft Teams-September 2018Build Modern Apps on Microsoft Teams-September 2018
Build Modern Apps on Microsoft Teams-September 2018Microsoft 365 Developer
 
Office 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsOffice 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsDavid Schneider
 
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
 
Chatbot technology- The innovative enterprise collaboration
Chatbot technology- The innovative enterprise collaborationChatbot technology- The innovative enterprise collaboration
Chatbot technology- The innovative enterprise collaborationKushan Lahiru Perera
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...European Collaboration Summit
 
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
 
Internet mail system java project
Internet mail system java projectInternet mail system java project
Internet mail system java projectTutorial Learners
 

Similar to Microsoft Team Messaging Extension Deep Dive (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
 
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
 
Thr2426 Build a bot for Microsoft Teams in 5 minutes
Thr2426 Build a bot for Microsoft Teams in 5 minutesThr2426 Build a bot for Microsoft Teams in 5 minutes
Thr2426 Build a bot for Microsoft Teams in 5 minutes
 
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
 
M365 Teams Automation
M365 Teams AutomationM365 Teams Automation
M365 Teams Automation
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
 
Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018
 
Building apps using azure for microsoft teams
Building apps using azure for microsoft teamsBuilding apps using azure for microsoft teams
Building apps using azure for microsoft teams
 
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
 
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
 
Microsoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIMicrosoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AI
 
Enhancing Relevancy & User Experience with #SharePoint Search sps-philly 2015
Enhancing Relevancy & User Experience with #SharePoint Search   sps-philly 2015Enhancing Relevancy & User Experience with #SharePoint Search   sps-philly 2015
Enhancing Relevancy & User Experience with #SharePoint Search sps-philly 2015
 
Build Modern Apps on Microsoft Teams-September 2018
Build Modern Apps on Microsoft Teams-September 2018Build Modern Apps on Microsoft Teams-September 2018
Build Modern Apps on Microsoft Teams-September 2018
 
Office 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsOffice 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft Teams
 
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
 
Chatbot technology- The innovative enterprise collaboration
Chatbot technology- The innovative enterprise collaborationChatbot technology- The innovative enterprise collaboration
Chatbot technology- The innovative enterprise collaboration
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
 
Microsoft Teams community call_May 2019
Microsoft Teams community call_May 2019Microsoft Teams community call_May 2019
Microsoft Teams community call_May 2019
 
Building apps for microsoft teams - aosKL
Building apps for microsoft teams - aosKL Building apps for microsoft teams - aosKL
Building apps for microsoft teams - aosKL
 
Internet mail system java project
Internet mail system java projectInternet mail system java project
Internet mail system java project
 

More from Manoj Mittal

Microsoft Search with Graph Connector
Microsoft Search with Graph ConnectorMicrosoft Search with Graph Connector
Microsoft Search with Graph ConnectorManoj Mittal
 
MS Inspire Update | Data Flex and Return to Workspace Solution
MS Inspire Update | Data Flex and Return to Workspace SolutionMS Inspire Update | Data Flex and Return to Workspace Solution
MS Inspire Update | Data Flex and Return to Workspace SolutionManoj Mittal
 
Build ETL Process using Azure Data Factory
Build ETL Process using Azure Data FactoryBuild ETL Process using Azure Data Factory
Build ETL Process using Azure Data FactoryManoj Mittal
 
Build and integrate conversational series with Microsoft Teams Bot
Build and integrate conversational series with Microsoft Teams BotBuild and integrate conversational series with Microsoft Teams Bot
Build and integrate conversational series with Microsoft Teams BotManoj Mittal
 
Manoj mittal power platform evolution with ai builder
Manoj mittal   power platform evolution with ai builderManoj mittal   power platform evolution with ai builder
Manoj mittal power platform evolution with ai builderManoj Mittal
 
Customize and Automate MS Team based solution
Customize and Automate MS Team based solutionCustomize and Automate MS Team based solution
Customize and Automate MS Team based solutionManoj Mittal
 
Leverage Power Platform with Common Data Service & Common Data Model
Leverage Power Platform with Common Data Service & Common Data ModelLeverage Power Platform with Common Data Service & Common Data Model
Leverage Power Platform with Common Data Service & Common Data ModelManoj Mittal
 
Simplify user application authentication using Microsoft Identity Platform
Simplify user application authentication using  Microsoft Identity PlatformSimplify user application authentication using  Microsoft Identity Platform
Simplify user application authentication using Microsoft Identity PlatformManoj Mittal
 
Microsoft identity manoj mittal
Microsoft identity manoj mittalMicrosoft identity manoj mittal
Microsoft identity manoj mittalManoj Mittal
 
Free Online SharePoint Framework Webinar
Free Online SharePoint Framework WebinarFree Online SharePoint Framework Webinar
Free Online SharePoint Framework WebinarManoj Mittal
 
Build intelligent microsoft azure bot using luis and qn a maker
Build intelligent microsoft azure bot using luis and qn a makerBuild intelligent microsoft azure bot using luis and qn a maker
Build intelligent microsoft azure bot using luis and qn a makerManoj Mittal
 
Cognitive services part1
Cognitive services part1Cognitive services part1
Cognitive services part1Manoj Mittal
 
SharePoint Search Enrichment
SharePoint Search EnrichmentSharePoint Search Enrichment
SharePoint Search EnrichmentManoj Mittal
 
How SharePoint Online Migration API Works
How SharePoint Online Migration API WorksHow SharePoint Online Migration API Works
How SharePoint Online Migration API WorksManoj Mittal
 

More from Manoj Mittal (14)

Microsoft Search with Graph Connector
Microsoft Search with Graph ConnectorMicrosoft Search with Graph Connector
Microsoft Search with Graph Connector
 
MS Inspire Update | Data Flex and Return to Workspace Solution
MS Inspire Update | Data Flex and Return to Workspace SolutionMS Inspire Update | Data Flex and Return to Workspace Solution
MS Inspire Update | Data Flex and Return to Workspace Solution
 
Build ETL Process using Azure Data Factory
Build ETL Process using Azure Data FactoryBuild ETL Process using Azure Data Factory
Build ETL Process using Azure Data Factory
 
Build and integrate conversational series with Microsoft Teams Bot
Build and integrate conversational series with Microsoft Teams BotBuild and integrate conversational series with Microsoft Teams Bot
Build and integrate conversational series with Microsoft Teams Bot
 
Manoj mittal power platform evolution with ai builder
Manoj mittal   power platform evolution with ai builderManoj mittal   power platform evolution with ai builder
Manoj mittal power platform evolution with ai builder
 
Customize and Automate MS Team based solution
Customize and Automate MS Team based solutionCustomize and Automate MS Team based solution
Customize and Automate MS Team based solution
 
Leverage Power Platform with Common Data Service & Common Data Model
Leverage Power Platform with Common Data Service & Common Data ModelLeverage Power Platform with Common Data Service & Common Data Model
Leverage Power Platform with Common Data Service & Common Data Model
 
Simplify user application authentication using Microsoft Identity Platform
Simplify user application authentication using  Microsoft Identity PlatformSimplify user application authentication using  Microsoft Identity Platform
Simplify user application authentication using Microsoft Identity Platform
 
Microsoft identity manoj mittal
Microsoft identity manoj mittalMicrosoft identity manoj mittal
Microsoft identity manoj mittal
 
Free Online SharePoint Framework Webinar
Free Online SharePoint Framework WebinarFree Online SharePoint Framework Webinar
Free Online SharePoint Framework Webinar
 
Build intelligent microsoft azure bot using luis and qn a maker
Build intelligent microsoft azure bot using luis and qn a makerBuild intelligent microsoft azure bot using luis and qn a maker
Build intelligent microsoft azure bot using luis and qn a maker
 
Cognitive services part1
Cognitive services part1Cognitive services part1
Cognitive services part1
 
SharePoint Search Enrichment
SharePoint Search EnrichmentSharePoint Search Enrichment
SharePoint Search Enrichment
 
How SharePoint Online Migration API Works
How SharePoint Online Migration API WorksHow SharePoint Online Migration API Works
How SharePoint Online Migration API Works
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

Microsoft Team Messaging Extension Deep Dive

  • 1. Search Based Messaging Extension Build Messaging Extension with Microsoft Teams App MS Teams Azure Bot Action Based Messaging Extension Link Unfurling Messaging Extension
  • 2. Speaker Introduction C# Corner MVP(3), MCP, MCTS,MCSA, OCA http://manojmittalblogs.blogspot.in https://www.youtube.com/user/manojmcans/videos /Manojmcans In/manoj-mittal-mcp-mcts-oca-mcsa/ https://www.c-sharpcorner.com/members/manoj-mittal Manoj Mittal Sr. Technical Architect @ Mindtree Ltd
  • 3. Build Messaging Extension with Microsoft Teams App Overview • Messaging Extension overview • Search based Commands • Action based Commands • Link Unfurling • Use Case : Search Patient via Custom API using Messaging Extension
  • 4. Overview of Messaging Extension in Microsoft Teams What are Messaging Extensions ? A way to “extend the message” and make conversation more interactive A concept piggy-backing on the Bot Framework Invoke command “Messaging extensions enable users to execute search queries or trigger actions in external systems. The results of these actions are sent from your custom web service to the Microsoft Teams client as embedded web pages or richly formatted cards”
  • 5. Can be invoked from one of the following location in Microsoft Teams App 1. Command Box 2. Compose Message Box 3. Message More Action Menu • Implemented as Web Services • Microsoft Teams Communicate with the web services via Bot Framework • Messaging Extension are registered as bots with Bot Framework • Web Services responds with task modules or rich formatted cards How Messaging Extension Works
  • 6.
  • 7. Overview • Search Commands • Implement search command message handler
  • 8. Search command can be trigger from the following locations 1. Command Box 2. Compose Message Box Developing Search Commands with message extension handlers
  • 9. Search based Messaging Extension • Search Query is send from Microsoft Teams to your web services. • Your web services responds with list or grids of results. • When user select a results, it is added to compose message box as a card or text.
  • 10. Register search based Messaging Extension in the app manifest file "composeExtensions": [ { "botId": "", "canUpdateConfiguration": true, "commands": [ { "id": "searchQuery", "context": [ "compose", "commandBox" ], "description": "Test command to run query", "title": "Search", "type": "query", "parameters": [ { … } ] } ] } ]
  • 11. Implement search commands messaging extension
  • 12. Deploy search based Messaging Extension in the App Studio
  • 13. Overview • Action Commands • Implement action command message handlers
  • 14. Messaging Extension Action Scenario Perform action in external system & include result in conversation Complete complex tasks involving multiple steps and share results
  • 15. Developing action based Messaging Extension (1/2) The messaging extensions action command allows users to collect information using modal popup, process their information, and send it back to the Teams channel conversation area. When Invoked, JSON payload send to registered web services. When web services respond with task module implemented with web interface or adaptive cards.
  • 16. Action based Messaging Extension (2/2)
  • 17. Register action based Messaging Extension | Manifest file "composeExtensions": [ { "botId": "", "commands": [ { "id": "createCard", "type": "action", "context": [ "compose" ], "parameters": [ { }, { }, { }, ] }, { "id": "shareMessage", "type": "action", "context": [ "message" ], "parameters": [ { } ] } ] } ],
  • 18. How will the action commands respond Decide how the message will be sent back to user • Insert message in the compose message box ? • Respond directly to a conversation ? When respond directly to conversation, must also register the web services as a bot in the app manifest.
  • 19. Implement & Handling action command messaging extension
  • 20. Deploy action based Messaging Extension in the App Studio
  • 21. Overview • Unfurling links • Implement link unfurling message handlers
  • 22. Link Unfurling Messaging Extension • Messaging extensions Link Unfurling invokes the activity when the hyperlink from defined domain (defined or whitelist into the manifest file) is pasted into the message compose area. • Link Unfurling help to respond to the full hyperlink with richly formatted card as well as additional information similar to search result
  • 23. Register link unfurling Messaging Extension in the app manifest file "composeExtensions": [ { "botId": "", "commands": [ { "context": [ "commandBox" ], "type": "query" "messageHandlers": [ { "type": "link", "value": { "domains": [ "*.botframework.com", "*.wikipedia.org" ] } } ] } ]
  • 24. Create and send card when search command is invoked
  • 25. Deploy link unfurling Messaging Extension in the App Studio

Editor's Notes

  1. Bots in Microsoft Teams can be part of a one-to-one conversation, a group chat, or a channel in a team. Each scope provides unique opportunities, and challenges, for your conversational bot.
  2. Bots created using the Microsoft Bot Framework are diverse and can be used in multiple platforms. Bots developed for Microsoft Teams contain some differences from other platforms. The primary difference in bots developed for Microsoft Teams is in how activities are handled. The Microsoft Teams activity handler derives from the Bot Framework's activity handler to route all Teams activities before allowing any non-Teams-specific activities to be handled.
  3. Bots created using the Microsoft Bot Framework are diverse and can be used in multiple platforms. Bots developed for Microsoft Teams contain some differences from other platforms. The primary difference in bots developed for Microsoft Teams is in how activities are handled. The Microsoft Teams activity handler derives from the Bot Framework's activity handler to route all Teams activities before allowing any non-Teams-specific activities to be handled.
  4. Messaging extensions take advantage of the Bot Framework's messaging schema and secure communication protocol to connect with Microsoft Teams Client App.
  5. Channels contain threaded conversations between multiple people. This potentially gives your bot massive reach, but individual interactions need to be concise. Traditional multi-turn interactions probably won't work well. Instead, look to use interactive cards or task modules, or potentially move the conversation to a one-to-one conversation if you need to collect lots of information. Your bot only has access to messages where it's @mentioned directly. You can retrieve additional messages from the conversation using Microsoft Graph. Some scenarios where bots excel in a channel include: **Notifications**, particularly if you provide an interactive card for users to take additional information. **Feedback** scenarios like polls and surveys. Interactions that can be resolved in a **single request/response cycle**, where the results are useful for multiple members of the conversation.
  6. Channels contain threaded conversations between multiple people. This potentially gives your bot massive reach, but individual interactions need to be concise. Traditional multi-turn interactions probably won't work well. Instead, look to use interactive cards or task modules, or potentially move the conversation to a one-to-one conversation if you need to collect lots of information. Your bot only has access to messages where it's @mentioned directly. You can retrieve additional messages from the conversation using Microsoft Graph. Some scenarios where bots excel in a channel include: **Notifications**, particularly if you provide an interactive card for users to take additional information. **Feedback** scenarios like polls and surveys. Interactions that can be resolved in a **single request/response cycle**, where the results are useful for multiple members of the conversation.
  7. Group chats are non-threaded conversations between three or more people. They tend to have fewer members than a channel and are more transient. Similar to a channel, your bot will only have access to messages where it's @mentioned directly. Scenarios that work well in a channel will usually work as well in a group chat.