Proactively Install / Push Apps in Teams for Multiple Users - botframework

I have a query regarding, How to Proactively Install / Push Apps in Teams for Multiple Users ?.
We have added our Bot Application as part of Teams App Catalogue, and I followed below document regarding Manage App Setup Policies in Microsoft Teams to install apps:
https://learn.microsoft.com/en-US/microsoftteams/teams-app-setup-policies?WT.mc_id=TeamsAdminCenterCSH#install-apps
Though above link clearly states that it automatically installs apps for users, but when we follow above link it only adds application as part of Teams App Catalogue.
So just wanted to know that does installation here mean, only adding in App List and not installing as such on user machine ?.
The other method we can follow is to create a custom script and use Graph API queries as described in below link:
https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/proactive-bots-and-messages/graph-proactive-bots-and-messages#proactive-app-installation-in-teams
So wanted to know as per Microsoft, what is the recommended way of Pushing Bot App to multiple users on MS Teams. Can this be handled with Teams Admin Center ?.
Any help or guidance on the approach to achieve proactive app installation in Teams would be great.
Thanks In Advance!!!..

Both of these approaches should work fine. App Setup Policies is the easiest though as you don't need to write any code, but be aware that it can take a while for the policy to apply (I think up to a day or even two). There's a way to force it to update, I think if the user signs out of Teams entirely and signs back in.

I tried with Teams Admin Center and tested 2 scenarios:
1.) For User Already Logged In
2.) For New User Logging the First Time
The policies take time to be applied / be effective for users (not immediate). In my testing, I logged in after ~2 hours for New User and waited ~2 days for already logged in User. We have to test the same for your respective environment. Also these are not Standard Timelines, and we have Test in our environment accordingly.

Related

Microsoft teams app: How to maintain versioning of backend services

We have developed a app for Microsoft teams and our first version was published on the app store. We are now working on the next version. However we are not sure how we have to submit the new version for team store review without impacting the existing users. For instance, some of our bot commands will behave differently in the new version. If we have only one backend instance running, when we submit it to store team for review we will impact the experience of existing production users as well.
Ideally we would follow a blue-green approach to release new features to selected customers, but in this case we are not really sure how and where to differentiate requests coming (mainly through bot communication, since we can add a app version header in web communication) from multiple versions of the app. We thought of creating new set of resources (app registration, bot channel registration etc) on Azure portal but I guess that would be treated as a new app and not a version update.
Any ideas or pointers on how to achieve this would be of great help.
This is a good point, I don't think there's anything out of the box to deal with this. What you've suggested might indeed be the best way:
create new app registration & bot channel registration, with temporary name (e.g. MyBot2)
update manifest to use new bot, and submit for store approval with this manifest
once approved, and app is live (you can schedule a go-live time when you submit the app), rename both bots (original to MyBotV1 or something, and MyBot2 to MyBot)
In any case, I'd work with the app submission team around this, they're very helpful and engaged.

How to resolve first registration user mobile app

i’m writing because i’ve a very big doubt to get answered... i’ve created an app that require a lot of users for enjoy at 100% because it shows some posts info at globally level, but my question is: the first user that is registered didn’t see anything inside the app because is all empty
How can i resolve this doubt?
I got your question. There should be some strategy for launching such applications.
First Launch Strategy :
When you are launching such application specially on both the platforms make sure you should schedule the launching
Most importantly for a specific laugh day you should arrange a small launching event with Friends or Family to which you can invite on the launch event & can provide a demonstration of the application
Make sure while before or immediately after launching you should have at least 50 users there. So now you need to target from where you should get this users
If you are running company they should be your staff members or if you have a good friend circle you should request them
If your application doesn't requires a real users than in that case you can create at least few dummy users whom you can remove later on when you have enough genuine users
Also try & get some good reviews / ratings for the application
Use google analytics & try to understand which feature are used more by the user & try focus improving & adding more facility to that feature
Use Push notification & Local notifications to let your app interact with the user & daily remind them to use the application. That will improve your app indexing.
Promotional Campaigns :
Another most important thing is when you first launch the application there is a default boost provides by the application for 24-48 hours to let your application fly
So try & utilise that time to get maximum user engagement & make your app maximum visible across the users
Reason behind the strategy :
If you wants to attract or inspire users to get connect with your app they will already first check how many users using this app. How is the ratings of the application. Ratings will always matter.
I hope you & everyone get help from this answer.

Skype Bots - Please tell me I'm missing something

Working on an application and developing chat integration bot. Note that contrary to some news bots or other tools, there is no central website or server that the bot gets its data from. The software installation comes with a repository, and that is where the bot connects to. Thus, every user, upon installing the software, will basically get their own copy of the bot, alongside with their own repository, etc.
Now, having done that for Telegram: You open the telegram client, initiate a chat with the botfather, get the token for your new bot with one or two commands, and then add that token to my application. Done. Easy for the user to follow, takes a few minutes at most and they have a working bot.
Trying to do the same with Skype, the users must:
Sign up for an Azure account
Provide credit card and phone number verification (that's probably where some users will stop right away)
Log on to the Azure Portal
Create a bot channel, through a myriad of different screens I have to guide the user through.
Have the user obtain the bot's password, again through a variety of different screens he needs to be guided through. (if the user hasn't given up yet, at this point he'll definitely get grumpy)
Enable the Skype channel, and enable the bot to be added to group chats.
Attempt to locate the bot via Skype and eventually add it in.
Now, if I wanted to document this properly, this will be a 10-15 page document with tons of screenshots and all. To do what Telegram does in two minutes or even less. There's so many opportunities in all of this for something to go wrong, that I can't even consider forcing my users to go through this.
Surely, I must be missing something? It can't be that you have to go through this horrible mess of an over-engineering spectacle that is second to none, just to get the most basic bot to function?
All I need is a means to say "this is the bots name, give me its token and API URL so that it can send messages using the REST API". But I can't seem to find this for Skype.

Webhook when new domain installed my app

I'm working on GSuite application and wondered how my backend can be notified when new domain admin installs my app?
You can use the license notification api to retrieve a list of current installs. https://developers.google.com/apps-marketplace/v2/reference/licenseNotification/list
After installation the user will probably start or setup your app. You could add your own webhook notification when the user goes through this First Run Experience. (This is what we did)
There is another thing you might be able to pull off: As far as i know, an event is fired to Google Analytics on install. Maybe you can add an alert/webhook in Google Analytics.
However, i was having some problems with the events to show up in GA in the first place.

Cortana Skill only works for developer account that created it

I built a bot in bot framework and provisioned it across Teams, in addition to the default of Skype and Web.
Then, I turned on the Cortana skill, and it worked for me for that channel.
Now, when I add users in testing via the deploy to group option, although they are able to select "Join Group", they're not actually able to use the Skill.
I tried this myself on my machine, but with a new outlook account and Cortana failed to invoke the skill.
Is there something about the accounts I add to the group that I need to configure?
These same users are able to use other skills that have been publicly published in Cortana.
I have experienced the same condition. In the end I deleted the bot / skill and recreated it from the cortana dashboard (new skill) instead of directly via botframework dashboard - worked fine and group members could then access - strange as ultimately it ends up in the same place - perhaps it was more due to the recent updates on the MS sites.
I've recently worked on a Cortana Skill, and deployed to a group for testing. You do not need to configure anything else besides providing the emails in the 'Deploy to group' option.
This however, works for MSA accounts only. Make sure that other members of your group are using their live/outlook account.

Resources