Bot for Slack & Skype – Find Nearby Places

Add to Slack

Clicking on Add to Slack means, you are agreeing to the Nearby Bot Privacy Policy.
Add to Skype

Click this button to add Nearby Bot to your Skype account. Clicking on Add to Skype means, you are agreeing to the Nearby Bot Terms of Service & Privacy Policy.

Our NearbyBot is enabled by Microsoft’s Bot Framework. Bot Framework is a set of web-services that enable intelligent services and connections using conversation channels you authorize. As a service provider, Microsoft will create a Bot Framework user profile and receive content you provide to our bot/service in order to enable the service and to help improve Microsoft services. For more information about Microsoft privacy policies please see their privacy statement here: To report abuse when using a bot that uses Bot Framework to Microsoft, please visit the Microsoft Bot Framework website at and use the “Report Abuse” link in the menu to contact Microsoft.

Installing and Usage of Nearby Bot:

When you click on Add to Slack/Skype button, it will prompt you to enter team domain name or sign-in. Once you successfully add the Nearby bot to your account, go to Nearby Bot user and just say “Restaurants in Boston” that’s it, you will see all list of restaurants in Boston. Similarly you can ask anything you want to find out in your city.

Privacy Policy:

Your privacy is very important to us. Accordingly, we have developed this Policy in order for you to understand how we collect, use, communicate and disclose and make use of personal information. The following outlines our

Internet Connection

  • Nearby Bot uses internet connection for loading and displaying the nearby restaurants or book stores etc.

Collecting Your Information

  • The app doesn’t collects any information from the user except the search keyword and city information for getting data and we don’t store any information related to user.

Changes to this Privacy Policy

  • Nearby Bot may change or modify this Privacy Policy in the future. We recommend you to check this Privacy Policy from time to time to review the most current Privacy Policy.

We will make readily available to customer’s information about our policies and practices relating to the management of personal information.

Contact Us:

If you have questions about this Privacy Policy, please contact us at:

 Powered by the Microsoft Bot Framework:

Bot – Natural Speech & Intent Processing bot

Add to Slack

Clicking on Add to Slack means, you are agreeing to the Natural Speech & Intent Processing Bot Terms of Service & Privacy Policy.

Your privacy is very important to us. Accordingly, we have developed this Policy in order for you to understand how we collect, use, communicate and disclose and make use of personal information. The following outlines our

  • The application uses internet connection to show results.
  •  This  application won’t collect any personal information.
  • We will make readily available to customers information about our policies and practices relating to the management of personal information.
  • If the app is deleted, all the information is deleted automatically.

We will make readily available to customer’s information about our policies and practices relating to the management of personal information.

Contact Us:

If you have questions about this Privacy Policy, please contact us at:

Speaking at Microsoft Code Camp


Invited to speak at NOVA Code Camp in Virginia at


See my session details at

Application Insights User Guide

First step is Log-in to

In the left pane Click on Browse option, then select Application Insights then Application Insights sources will display and choose your Application Insights source


This is how your Application Insights Dashboard will look like


The Dashboard includes the following Items

1. Essentials

2. Application Overview

3. Metrics Explorer

4. Sessions

5. Crashes

6. Custom Events( If you create any)

7. Top Sessions by Country

8. Top Devices

9. Session Duration

10. Top Crashes

11. Diagnostic Search

12. Alert Rules( If you create any)

13. Events


It contains the information about the Application Insights resource which includes Resource group, Application Type, Location, Subscription name, Instrumentation Key (Which is the Key for Telemetry data) and Subscription id.


Application Overview

It contains the Graphical Representation of USERS, SESSIONS, PAGE VIEWS, and CRASHES data



Click on Users to view USERS data


It displays the Total no of Users and New Users and it also displays the users by Geographic location which is unique count of users by country or region.

If you click on USERS chart, you can customize the chart as per your needs. You can show it like Line, Area, Bar and Grid. You can add Chart Height, Add Grouping and do many more.


If you want to look at what are all the activities performed by United States region app users, then click on United States, it will display all the actions performed by the users which contains number of PAGE VIEW, CUSTOM EVENT, EXCEPTION, REQUEST AND DEPENDENCY.


If you click on any activity it gives more information regarding the user and much more information. Below picture includes all the information.


If you want to know more information just click on ‘…’ button it will give you more information.



You can add filters in the Chart to get the specific results as per your required criteria.


You can specify a Time range to see the results data in a particular time period.


Add Save Favorite

You can add favorites to your dashboard so that you can quickly view the favorite items.


You can view the favorite’s items in your dashboard.


Page Views

This segment contains the total number of page views of your app. If you want to see more about Page Views just click on PAGE VIEWS in the Application Overview.


In PAGE VIEWS section it also contains the information about all the pages in the app and the number of page views, number of users and the number of sessions for each page.


If you click on any Page name it will gives you more information about the specific page you selected.


If you click on any particular page view it will give you more information about the page from where it has been accessed and the client IP address.


If you click on ‘…’ then you will get more information


Here also you can Add chart, Time range, Filters, Alert Rules, Save favorites.



A session is nothing but the amount of time used an app by the user.

It contains all the session information about the app that has been using by the users. Session includes the time


Custom Events

Custom events are created by developer. By inserting code to send custom events from your app, you can track your users’ behavior and the usage of specific features and scenarios.


If you select any Custom event it will give you more information about the specific Custom event metrics.


If you click on any custom event it will navigates to Custom Event properties windows and if you click on All telemetry for this user session under Related Items it will give you more results.



There is 1 Exception in the results, if you click on the it will give you the exception properties which contains more info about the exception which includes the information in the given picture.


Top Sessions by Count.

It will give the overall view of your app users in the different country across the world.


Top Devices

It will give you the top devices of customers which are using your app.


If you click on any device it gives more information about the operations performed by the device, which includes the number of users, number of sessions, session duration and the crashes count if there are any. It will locate the country or region of the device.


Diagnostic Search

It includes all the information of application at one place.


Alert Rules

Using Alert Rule you can track whenever there is any huge traffic or if any exception occurs in the app. There are certain types of metrics that you can create alerts for them. If there is smoothing happens as specified in the metrics for that alert it will notify to the email id which was given during the creation of alert.


Application insights for Windows Phone and Store apps

Azure Application Insights lets you monitor your published Mobile apps


  • A subscription to Microsoft Azure
  • Visual studio 2013 or later

Create an Application Insights resource

Log in to your azure portal.

In the azure portal, create a new Application Insights resource.


Select Application Type as Windows Phone Application (here you can choose in whichever the application you want to implement Application Insights, In my case it is Windows Phone Application)


Click on Create Button, It will create the Application Insights resource. A resource in Azure is an instance of a service. This resource is where telemetry from your app will be analyzed and presented to you.

Copy the Instrumentation Key

The key identifies the resource. You’ll need it soon, to configure the SDK to send the data to the resource.


Add the Application Insights SDK to your apps

In Visual Studio, add the appropriate SDK to your project.

If it’s a Windows Universal app, repeat the steps for both the Windows Phone project and the Windows project.

Right-click the project in Solution Explorer and choose Manage NuGet Packages.


1. Select Online, Include prerelease, and search for “Application Insights”.


2. Pick the latest version of the appropriate package – one of:

  • Application Insights for Windows applications – for Windows Phone and Store apps
  • Application Insights for Web Apps
  • Application Insights API – for Windows desktop apps

3. Edit ApplicationInsights.config (which has been added by the NuGet install). Insert this just before the closing tag

Code Snippet
  1. <InstrumentationKey>the key you copied</InstrumentationKey>

Windows Universal apps: Repeat the steps for both the Phone and the Store project.


Enable network access for your app

If your app doesn’t already request outgoing network access, you’ll have to add that in the manifest as a required capability.


Run your Project

Run your application with F5 and use it, so as to generate some telemetry.

In Visual Studio, you’ll see a count of the events that have been received.


See Monitor data

Open Application Insights in your azure portal you just created you will be able to see some data in your Application Insights dashboard


Track Usage

From the Overview timeline, click through Users and Sessions charts to see more detailed analytics.

Users are tracked anonymously, so the same user on different devices would be counted twice.

A session is counted when the app is suspended (for more than a brief interval, to avoid counting accidental suspensions).

Page Views

To discover the paths that users follow through your app, insert page view telemetry into your code:

Code Snippet
  1. var telemetry = new TelemetryClient();
  3.             telemetry.TrackPageView("HubPage");

See the results on the page views chart, and by opening its details:


Click through any page to see the details of specific occurrences.

Custom Events

By inserting code to send custom events from your app, you can track your users’ behavior and the usage of specific features and scenarios.

For example:

Code Snippet
  1. var telemetry = new TelemetryClient();
  2.             telemetry.TrackEvent("AppStarted");

The data will appear in the Custom Events grid. You can either see an aggregated view in Metrics Explorer, or click through any event to see specific occurrences.


If you want you can also set up some properties and metrics along with the TrackEvent(). Below code explains how to set up properties and metrics.

Code Snippet
  1. var properties = new Dictionary<string, string> { { "IsSuccess", result.IsSuccessStatusCode.ToString() }, { "StatusCode", result.StatusCode.ToString() },
  2.                                                                     { "PlanogramId", completeOrder.PlanogramId.ToString() } };
  3.                 var metrics = new Dictionary<string, double> { { "RestockOrderAPI Process Time", stopwatch.Elapsed.TotalMilliseconds },
  4.                                                                 { "Products Count", completeOrder.linesList.Count() }};
  5.                 App.telemetry.TrackEvent("RestockOrderAPI", properties, metrics);

So, when you go to the dashboard in the Custom Events  you will ale to see the track event you created by the code and you will able to see the properties and metrics attached with the track event api.

Screenshot (218)


And if you want to see the attached properties of that particular event just click on it view more information.

Screenshot (219)


Track Trace

Use this to help diagnose problems by sending a ‘breadcrumb trail’ to Application Insights. You can send chunks of diagnostic data, and inspect them in Diagnostic search.


Code Snippet
  1. var properties1 = new Dictionary<string, string> { { "message", result.RequestMessage.ToString() } };
  2.                 App.telemetry.TrackTrace("RestockOrderAPI Track Trace", properties1);

If you want to see the trace results, just open your AI resource and click on Diagnostic Search there you can see the number of traces has occurred.

Screenshot (220)

Screenshot (222)

Detecting Exceptions

Exceptions are reported to Application Insights by calling TrackException()

Code Snippet
  1. var telemetry = new TelemetryClient();
  3.             try
  4.             {
  5.                 //put your logic here
  6.             }
  7.             catch (Exception ex)
  8.             {
  9.                 // Send the exception telemetry:
  10.                 telemetry.TrackException(ex);
  11.             }



Debug vs Release mode


If you build in debug mode, events are sent as soon as they are generated. If you lose internet connectivity and then exit the app before regaining connectivity, offline telemetry is discarded.


If you build in release configuration, events are stored in the device and sent when the application resumes. Data is also sent on the application’s first use. If there is no internet connectivity upon startup, previous telemetry as well as telemetry for the current lifecycle is stored and sent on the next resume.

Monitor Crash Frequency

If your users experience crashes in your app, you’d like to know about it quickly, and you’d like details about what happened. With Application Insights, you can monitor how frequently crashes occur, get alerts when they occur, and investigate reports of individual incidents.

“Crash” means that the application terminates because of an uncaught exception. If your app catches an exception you can report it with the TrackException() API but continue running. In that case, it will not be logged as a crash.


Set an alert to detect crashes


Click on Alert Rules and then Alert Rules menu will open, in that select Add Alert


Diagnose crashes

To find out if some versions of your app crash more than others, click through the crashes chart and then segment by Application Version:


To discover the exceptions that are causing crashes, open Diagnostic Search. You might want to remove other types of telemetry, to focus on the exceptions:


Click any exception to see its details, including associated properties and stack trace.


See the other exceptions and events that occurred close to that exception:


Using Diagnostic Search in Application Insights

When do you see Diagnostic Search?

You can open diagnostic search explicitly:


Inspect individual items

Select any telemetry item to see key fields and related items. If you want to see the full set of fields, click “…”.


Filter event types

Open the Filter blade and choose the event types you want to see. (If, later, you want to restore the filters with which you opened the blade, click Reset.)


Filter on property values

You can filter events on the values of their properties. The available properties depend on the event types you selected.


%d bloggers like this: