Is there a way to connect an interactive Slack Bot from the Slack API to Outlook API? - outlook

I am trying to build a Slack bot to interact with the corporate Outlook account for users. I want events posted in users' slack channels to be automatically updated into the user's Outlook email and/or calendar for automated reminders and scheduling. I'm wondering how I would go about enabling the Slack bot to interact with with Microsoft Outlook's API, if possible?
I'm starting with the publicly available slackapi/python-slackclient available on github. I've read that compatibility for this exists in Office 365, but I'm wondering if it is possible in the more traditional versions of the office suite.

Related

Sizing for Azure Chat bot when using Azure Web App for one Chat bot user

What is the sizing required for Azure Chat Bot service when using Azure WebApp when one user is logged in using chat service
The Bot Service pricing is here. There are two plans, FREE and Standard. If you send and reply messages to your bot more than 10,000 times/month, you should choose the Standard plan. But if you use only standard channels, you could choose the Free plan. The Standard channels are Microsoft first-party services (such as Skype, Cortana and Microsoft Teams) and services with publicly available Bot API’s (such as Facebook and Slack).
You also need to size the App Service Plan. If you don't need bot availability, you could choose the FREE plan.

Can we build a product which enables end user to create conversational chat bot using bot framework on a self hosted environment?

I want to develop a product which simplifies the way of creating conversational chat bots using Microsoft BotFramework SDK. As we can build and host web application on-premise completely.
So can we build the similar thing using bot framework on a self hosted environment?
Here is the link for Microsoft Bot Framework: https://dev.botframework.com/
You can, indeed, build a bot entirely on-premises/self-hosted, provided that you don't need to connect to a Channel like Teams.
Background
Basically, bots communicate via:
User interaction with DirectLine Client (like Web Chat) ->
DirectLine API receives data and sends to bot ->
Bot hosted anywhere receives message
Note:
WebChat is just a DirectLine client. If you want to build your own WebChat, you can clone the repo and build it yourself. However, that all this does is make it so you can host your own webchat.js file, if you really want to be self-hosted.
Steps
With that in mind, all you need is:
A Direct Line client like Web Chat (specify domain property with your own endpoint when you call createDirectLine), or you can write your own client
You own DirectLine API implementation like offline-directline (more info)
Host your bot somewhere
Security
With this approach, you won't be able to use the typical appId/password setup.
You can manually implement our security protocol by following this document
Even though it is possible to manually implement the security protocol, we recommend reusing our existing open-source libraries
Based on answers, putting a more complete answer here. Since the option exists to have internet connectivity, I'd definitely suggest creating the solution as a "regular" Bot Framework bot, using the Azure Bot registration. Importantly, there are TWO options to do this - the most obvious one creates a "registration" for the bot but ALSO defaults to hosting it in an Azure Web App, which has a cost associated that can be quite significant. HOWEVER, there's another option, to create just a "Bot Channel" registration, which means you get a bot registered in Azure, but not necessarily hosted in Azure.
I've described this more in this post and you want to use the "Bot Channels Registration" in Azure, not the "Web App Bot". Then, on the "settings" screen you can define what the bot's actual address is (see here for a view of the Settings screen).
So, overall that should help - basically the bot just needs to have an HTTPS, internet-accessible endpoint. HOWEVER, that said, it's possible to host your bots inside Azure Functions, rather than Azure Web Apps, and the cost is dramatically cheaper (cents vs dollars, especially with low traffic). It's a bit of work, especially as the default samples default to the more standard options, but it works quite well.
I've recently launched a new blog, by the way, and I've got a post describing some of what I've learned so far about how bots work, that would be good to know as part of this. See How Bot Calls Actually Work.
We're in the process of migrating from an entirely on-premise solution with our own DirectLine server to Azure Bot Channels Registration because of the requirement for MS Teams integration.

Cortana channel cannot be added

I am having an issue after migrating my Bot to Azure. I have a Bot that is up and running on Cortana Chanel as well. I previously published it only for me ‘Deployed to self’ so I can see it on my Cortana Canvas but now I want to publish it for group of people but I am unable to do it from Azure portal. Whenever I click on ‘Edit’ button of Cortana Channel through Azure Portal following error prompts me:
As per the error they are expecting me to use my Microsoft Personal Account (i.e. Hotmail or Outlook Account) but unfortunately in my case it’s not possible. I have azure subscriptions in my office account not in my personal account that’s why I migrated all my bots to my office account and now trying to configure it for other peoples (i.e. Deployment for Group) but because of the above error I could not do it. As I know previously it was very straight forward all we have to go to ‘Cortana Dashboard’ and there is an option of deployment by which we can easily publish our skill sets to the group of people by just adding there email address.
Could you please help me how can I resolve this issue? All I want to use my azure account (i.e. my company account) to configure the Cortana channel and other things like Deployment to Group of peoples.

How do you connect a MS botframework bot to Skype for Business

I published a bot built using the bot framework but I can't figure out how you'd connect it to Skype for Business on an internal Corporate network.
Does any know what the process is?
----- Ed
Skype for Business is not yet supported.
I think he means is there a guide to building a bot for "Skype For Business". I'm looking to build one for our company as well.
FYI - Skype for Business was announced as a new channel today on Build 2017 :)
right now, SFB is already supported by Bot Framework. Please, go to the portal https://dev.botframework.com, select your bot, and look into the channels link. You'll see how to enable & configure your bot to be used within SFB.
Please, feel free to ask me if you have questions
I have successfully deployed my Bot to SFB referring the below link
Bot deployment to Skype For Business
But now, things are little changes, below are the high level steps
Deploy your bot to Azure App service Plan
integrate with SFB channel, azure portal will give you channel specific details. Click on Edit link to get the details on how to integrate your bot.
Azure Portal Bot Channels
Click on "Learn How"
Learn how to integrate Bot to SFB
Once Channel is added, you would need a tenant administrator who can do powershell scripting.
What you need to provide is the default URL of your bot , you can give WebChat URL (which is your default channel), Microsoft Application ID etc.
And then give a nice name to your bot.
After the integration your bot will be active after 24 hours.

How are emails sent via Workflows in Microsoft CRM 4.0

I'm Creating a workflow that needs to send the users an email on set events. This I don't have a problem with. However can someone please confirm if you need the local windows SMTP service installed or if I can use another method for it to send the emails.
UPDATE
Ok I've just read about the E-mail Router, just need to find out where it is, and how to get to the configuration settings.
UPDATE
Update 2
Right, Iv'e looked into it and the e-mail router configuration is not used on this CRM set-up, it used an Outlook Add-in which I cant find a lot of into on.
However it appears to work flawlessly.
end update 2
Thanks
AFAIK, Microsoft CRM uses Exchange server to send out emails. Haven't you configured this during setup?
You are right that the Email Router is the way to enable outbound emails from Dynamics CRM. If you haven't done so already, I strongly encourage you to download the Dynamics CRM Implementation Guide. You can jump right to the section called "Planning e-mail integration" to read about it.
What you need to do is configure the e-mail router to operate with a POP3/SMTP server. You can use Windows Server's SMTP service for that. You can use almost any service - i have configured it to work with my gmail account, for instance.
Here are three good articles that you can read to learn more about the e-mail router.
What's New in Microsoft Dynamics CRM 4.0 E-Mail Integration
Dynamics CRM 4.0 E-mail Integration Overview
Microsoft Dynamics CRM: How to configure the On-premise and Online E-mail Router in different deployment scenarios
Now when you configure an email from a workflow, CRM will automatically forward it out through the router to your SMTP email account.
It looks like there are at least two options, one which uses the SMTP or exchange. And another which is an outlook plugin. Which syncs the emails with the owners outlook and then sends out the emails.
EDIT
So the two options which both work are:
Email Router - This appears to be the standard and can use various email servers
Outlook add-in - This sends email based on the owner/email settings in the CRM record.
This works with any email CRM wants to send, and even works with workflows.
I've not got to the bottom of why the outlook add-in has been used at this site, however the workflow functions appear to run without problem, and seamlessly to the owner/user.
end edit

Resources