Ephemeral messages using Bot Composer - botframework

Any ideas on How to send "ephemeral" messages using Bot Framework Composer?
I am building a bot that "listens" in a shared channel and under certain circumstances, it should reply ONLY to a specific user. I know I could send a private message, but that will require the user to "get out" of the channel.
In Slack, it looks like this:
Ideas?
Thank you.

There is currently a bug in the C# BotFramework SDK's Slack adapter that, at present, blocks ephemeral messages from working. You can reference this GitHub issue that discusses the problem.
There is a workaround presented there, but it applies to the developer who is building his bot using the SDK. In your case, building from Composer, you could also clone the repo, make the necessary changes, and build the files locally. Then, you should be able to reference the updated library in the bot's runtime.
At this point, you ought to be able to construct an activity in Composer following the SDK's schema for a NewSlackMessage.

Related

Azure Pipelines App Slack notification not working

I hope somebody can help me with this issue.
I recently moved my azure pipeline approval release process from slack web hook to Azure pipeline App for slack, because I found that having the approve and reject button directly in slack chat was something really nice to have to make approvals easier.
This is the process I follow:
Install Azure pipeline App in slack workspace
Create a private channel and /invite #azpipelines
I signed in /azpipelines signing
Once those steps has been completed, I started to subscribe my release pipelines selecting the stages I was interesting in. Everything worked just fine for a couple of days, I was receiving the notifications and I was able to approve and reject them without any problem, which is great, but today, out of nowhere I realised that I was receiving the emails from azpipelines that a release has been issued but no notification in channel.
The documentation about azure pipeline is really poor and I have no idea what is going wrong with the configuration.
Did this happen to anyone before and can direct me on the right path of what could be the issue behind it?
Thank you very much for any help you can provide
Sometimes, I also could encounter the similar problems.
And many times, I can fix the issue via the following ways:
Unsubscribe and re-subscribe the notifications.
Log out and then log in again.
Uninstall and re-install the Azure Pipelines App.
May be you also can try this steps to see if the issue can be resolved.

How to configure bot framework C# slack adapter to work with multiple workspaces?

I have a bot in C# working with botbuilder-dotnet using the slack-adapter with my workspace. Now I want to install the slack app in other workspaces.
How can I configure the adapter to work with multiple workspaces? I think it's around this options in the constructor but couldn't find any examples: https://github.com/microsoft/botbuilder-dotnet/blob/497cb6e5192c85a82478aca475f324dd3afde4cf/libraries/Adapters/Microsoft.Bot.Builder.Adapters.Slack/SlackClientWrapper.cs#L214
Currently, the Bot Framework does not support multiple workspaces as of 4/22/21.
You did the right thing by creating a feature request in the GitHub repo. For others who're searching for this issue and would like for it to gain traction, see link tracking the issue:
https://github.com/microsoft/botbuilder-dotnet/issues/5519
The Bot Framework team will look into and assign priority to, should they decide to implement the feature request

Chatbot handoff from Messenger to Zendesk

I am developing a customer service chatbot, using Azure's Bot Framework in .NET, using the the Messenger channel. I wanted to know if anyone knows what the best way to handle the handoff to a human on Zendesk (which my platform already uses as its CRM platform). I'm not looking for when to do the handoff, but how to manage what happens next.
What I would love to be able to do would be that so when handoff is needed, a ticket on Zendesk would be created, sending for example a file (the transcript of the conversation so far). Then the agent would be able to solve the customer's problem in that ticket, having a conversation with him, having the bot sending messages back and forth between zendesk and messenger.
I don't know if this has been done before, or if it's at all possible. And I'm free to other solutions to the problem of handling this kind of handoff, without having to create a separate "chat" for the customer service agents to use, like it's explained on the azure documentation.
Thank you for your patience while I researched this. I found this resource that I believe will meet your needs. This functionality is built off of the Bot Framework utilizing .NET (it's also available for Nodejs). There are two available methods to connect a client to an agent.
The first (which should apply to you) aggregates different channels into one allowing an agent to pickup in the same channel where the bot handed off. The second opens a new channel when an agent joins the conversation.
Intermediator Bot
I was able to spin up a bot using this and confirmed the bot was listening for outside traffic.
Hope this helps.
Steve.
One thing that I'm about to try is this:
Bot conversation ends.
Bot service calls an Azure Function, passing the conversation content.
The Azure Function integrates with Trello API, creating an entry on a Kanban board.
So, instead of Trello as I want to do, you can make a call to the Zendesk API.
I'm writing a few articles about developing Azure bots. The next two actually are dealing with these very things. You can find out more here. sign up if you'd like to get notified over the next week or so when the new tutorials are online.
Hope that helps!
Tim

How to make Bot Framework channels pick up changed Bot

I have developed a small bot using Microsoft Bot Framework. I have deployed it to Azure as an App Service and hooked numerous channels to it. DirectLine, Skype, Facebook and Telegram. Everything worked as expected. I then updated my code to a new distinctly different dialog and republished to Azure from Visual Studio. Now I am seeing strange behavior. My DirectLine channel, my embedded WebChat and the emulator picked up the new bot. My Facebook channel, Skype channel and Telegram channel are still playing the old bot. Any hints what might be causing this? Is Microsoft hosting replicas of my bot? I have restarted everything and even deleted and recreated the App Service, but to no avail.
Tilo
You have probably started conversations on the channels where you still have the old version. The BotState is preserved even after code modification.
If you want to manually reset the conversation's dialog stack and state during development of your bot, you can use the /deleteprofile command to delete state data. Make sure to include the leading space in this command, to prevent the channel from interpreting it.
After your bot has been deployed to production, you can version your bot data so that if you bump the version, the associated state data is cleared. With the Bot Builder SDK for Node.js, this can be accomplished using middleware and with the Bot Builder SDK for .NET, this can be accomplished using an IPostToBot implementation.
More details on the documentation here

Is it possible to Register/provision a Bot via service

I'm looking at using the Bot Framework (https://docs.botframework.com) is it possible to register a bot programmatically e.g via service? I see there are Azure bots but still don't see a way to register via service?
At the moment you have to manually log into the portal to register the bot and obtain your keys. There has not been any indication from Microsoft that this will change in future.
from what I know about the goals of the dev team, since this is a highly requested feature, we will probably see this in action in future version of the bot framework.
But no kind of timeline yet for this feature.

Resources