QnA Maker

Bots and AI are all the rage these days as the next technologies promising to improve productivity, build efficiencies and capabilities that don’t exist today, change how humans engage with technology, and change the world.

You can see these technologies in play today in Alexa, Google Home, Siri, and Cortana.  These technologies have been integrated into laptops, tablets, and phones.  These same technologies have also spawned whole new families of consumer devices such as the Amazon Echo and other personal assistant devices.  These Bots and AI will eventually be deeply integrated in every device, application, and service.

The most basic and common use of bots has been developing Question and Answer solutions, such as Knowledge Base information and FAQs.  You often see this in adds for the new class of personal assistant devices…”Alexa, what’s the weather tomorrow?”, “Google, who won the Super Bowl?”, “Siri, how far is the north pole?”.  In these cases, the knowledge bases are Search Engine results, which are queried, indexed based on relevance, and read/written back to the user.

The thing about bots is that they can outperform a search engine. Search engines don’t generally give you answers to questions. They give you the source of the answer to your question. You still have to read through the sources to find the answer.  A bot, on the other hand, can actually answer the question directly, providing a link to the source for reference.

As for Office 365 and other Microsoft applications and services, they released the Bot Framework for developers to integrate into their applications.  The first service that Microsoft natively integrated bots into was Microsoft Teams (using a variation of the Bot Framework). Rest assured that it wouldn’t be long before they are integrated into all of Office 365 and other Microsoft products (including SharePoint on premises) for basic application and service based questions.

What’s most important to businesses (i.e. Office 365 customers) however is that bots will allow employees to add frequently used, business relevant and critical knowledge bases to Office 365 (including Teams, SharePoint, Outlook, etc.).  This can all but solve the age-old findability problems for most of their business-critical content, resources, and other assets without employees taking the time to search and identifying relevant results.  This is a game changer for most businesses as they can see huge productivity gains!

Up to now, implementing the Bot Framework or bots into Office 365 requires a developer to implement a bot.  This is why most organizational bot development examples thus far have been FAQs.  Although developing bots allow for big capabilities and potential for business beyond Question and Answer problem, it is a too common use case to need development efforts at each organization.  Microsoft has recognized that re-inventing the wheel here for every organization isn’t wise and has come out with the “QnA Maker” (in preview) to address this common need.  It also allows organizations to start building bots without needing development projects.

With the QnA Maker, the time-consuming part is populating the list of questions and answers to start. Once it’s set up, it’ll be smooth sailing. And you’ll save massive amounts of combined searching time within your organization.

QnA Maker

I first learned about the ‘QnA Maker’ from the good people at BIZZY.  They have SPFx solutions to integrate bots into SharePoint Online, take a look…

SharePoint 2013 Content Search WebPart and Search Results

http://en.share-gate.com/blog/sharepoint-2013-content-search-webpart

This article has a video which has the best explanation between the CSWP and the SRWP.  Great job Ben!

Now that the CSWP is available in SPO, we can actually utilize its power in O365!

SharePoint 2013 CSOM Property Bag Properties

Recently I was trying to configure some site properties via CSOM using PowerShell and I discovered that for many of the site/web properties that you could modify via the server side API were not available in CSOM.  It took a bit of head scratching before I found the answer.

So, it turns out that most Site/Web properties that are related/tied to features will only be accessible via the Site/Web Property Bag.  Ok, so where can we find the reference for all the Property Bag keys and values…ya, after much searching, blood, and tears, I couldn’t find it (as of this writting).  So I’m sure MS will unceremoniously post it one of these days, please notify me when that happens.  Until then, below is a working breakout of all the Property Bag keys and example values I could find.

You can get a breakout of all the Property Bag keys and values on your site by opening this URL [http://host/site/_api/web/allProperties] in your browser.

Again, this is a working breakout, so please notify me as you see errors or you find keys and/or values I might have missed.

 

 

PROPERTY FRIENDLY NAME KEY
KEY: allowdesigner

  • TYPE: int
  • VALUE EXAMPLE: 1
KEY: allowmasterpageediting

  • TYPE: int
  • VALUE EXAMPLE: 1
KEY: allowrevertfromtemplate

  • TYPE: int
  • VALUE EXAMPLE: 1
KEY: allowslistpolicy

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: Community_MembersCount

  • TYPE: int
  • VALUE EXAMPLE: 1
KEY: Community_RepliesCount

  • TYPE: int
  • VALUE EXAMPLE: 1
KEY: Community_TopicsCount

  • TYPE: int
  • VALUE EXAMPLE: 1
KEY: disabledhelpcollections

  • VALUE EXAMPLE: WSSEndUser;#WSSCentralAdmin;#FastEndUser;#FastCentralAdmin;#MSSEndUser;#MSSCentralAdmin;#PPSDesignerEndUser;#SQLWSSAddIn
KEY: dlc_sitehasexpirationpolicy

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: dlc_sitehaspolicy

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: dlc_webhasexpirationpolicy

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: enabledhelpcollections

  • VALUE EXAMPLE: VGSEndUser;#SPOLite
KEY: FollowLinkEnabled

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: helplibraryurl

  • TYPE: string:SiteRelPath
  • VALUE EXAMPLE: Lists/Site Collection Help
KEY: htmldesignviewnamealldevicechannelssimplelisting

  • TYPE: guid
KEY: htmldesignviewnamedesigntemplates

  • TYPE: guid
KEY: htmldesignviewnamehtmldesignfiles

  • TYPE: guid
KEY: htmldesignviewnamehtmldesignsandrelatedfiles

  • TYPE: guid
KEY: htmldesignviewnamehtmlmasterpages

  • TYPE: guid
KEY: htmldesignviewnamehtmlpagelayouts

  • TYPE: guid
KEY: Microsoft.SharePoint.WorkflowServices.SPWebApplicationIdentifier

KEY: Microsoft.SharePoint.WorkflowServices.SPWebScopeProperties

  • TYPE: string
  • VALUE EXAMPLE 1: Pacific Standard Time;-480;(UTC-08:00) Pacific Time (US & Canada);Pacific Standard Time;Pacific Daylight Time;[01:01:0001;12:31:2006;60;[0;02:00:00;4;1;0;];[0;02:00:00;10;5;0;];][01:01:2007;12:31:9999;60;[0;02:00:00;3;2;0;];[0;02:00:00;11;1;0;];];UTC;0;UTC;UTC;UTC;;en-US
  • VALUE EXAMPLE 2: Eastern Standard Time;-300;(UTC-05:00) Eastern Time (US & Canada);Eastern Standard Time;Eastern Daylight Time;[01:01:0001;12:31:2006;60;[0;02:00:00;4;1;0;];[0;02:00:00;10;5;0;];][01:01:2007;12:31:9999;60;[0;02:00:00;3;2;0;];[0;02:00:00;11;1;0;];];UTC;0;UTC;UTC;UTC;;en-US
KEY: Microsoft.SharePoint.WorkflowServices.SPWebScopeUri

KEY: OData___AllowExternalEmbedding

  • TYPE: int
  • VALUE EXAMPLE: 1
KEY: OData___CacheProfileListId

  • TYPE: guid
KEY: OData___CurrentDynamicChildLimit

  • TYPE: int
  • VALUE EXAMPLE: 20
KEY: OData___CurrentNavigationExcludes

  • TYPE: guid
KEY: OData___CurrentNavigationIncludeTypes

  • TYPE: int
  • VALUE EXAMPLE: 0
KEY: OData___DefaultPageLayout

  • TYPE: string
  • VALUE EXAMPLE: <layout guid=”d291ae7d-81dc-411e-a2b9-c9a201193255″ url=”_catalogs/masterpage/PageFromDocLayout.aspx” />
KEY: OData___DisplayShowHideRibbonActionId

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: OData___DocumentsListId

  • TYPE: guid
KEY: OData___GlobalDynamicChildLimit

  • TYPE: int
  • VALUE EXAMPLE: 20
KEY: OData___GlobalNavigationExcludes

  • TYPE: guid
KEY: OData___GlobalNavigationIncludeTypes

  • TYPE: int
  • VALUE EXAMPLE: 0
KEY: OData___ImagesListId

  • TYPE: guid
KEY: OData___NavigationOrderingMethod

  • TYPE: int
  • VALUE EXAMPLE: 2
KEY: OData___NoMobileMappingf300e892f08347d4b47b1a32e65f7ba6

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: OData___PagesListId

  • TYPE: guid
KEY: OData___PublishingFeatureActivated

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: OData___PublishingFeatureMdsDisabled

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: OData___ScriptSafeInternalPages

  • TYPE: string:filename[]
  • VALUE EXAMPLE: WopiFrame.aspx;videoembedplayer.aspx;
KEY: OData___SiteColDocumentsListId

  • TYPE: guid
KEY: OData___SiteColImagesListId

  • TYPE: guid
KEY: OData__auditlogreportstoragelocation

  • TYPE: string:RelPath
  • VALUE EXAMPLE: /sites/xyz/Shared Documents
KEY: OData__auditlogtrimmingcallout

  • TYPE: string:DLLStrongName
  • VALUE EXAMPLE: Microsoft.Office.RecordsManagement.Reporting.AuditLogTrimmingReportCallout Microsoft.Office.Policy Version=15.0.0.0 Culture=neutral PublicKeyToken=71e9bce111e9429c
KEY: OData__auditlogtrimmingretention

  • TYPE: int
  • VALUE EXAMPLE: 0
KEY: OData__holds_list_cache_

  • TYPE: string
  • VALUE EXAMPLE: ;[local]/departments/legal/records/Lists/Holds
KEY: OData__PublishedLinksListId

  • TYPE: guid
KEY: OData__ReusableContentListId

  • TYPE: guid
KEY: OData__SmtReportsListId

  • TYPE: guid
KEY: OData__VarLabelsListId

  • TYPE: guid
KEY: OData__VarRelationshipsListId

  • TYPE: guid
KEY: OData__VTI_ACCESSREQUESTSLISTID

  • TYPE: int
KEY: OData__VTI_PENDINGREQUESTSVIEWID

  • TYPE: string:RelPath
  • VALUE EXAMPLE: /Access Requests/pendingreq.aspx
KEY:

    profileschemaversion

  • TYPE: int
  • VALUE EXAMPLE: 6
KEY: SaveSiteAsTemplateEnabled

  • TYPE: bool
  • VALUE EXAMPLE: FALSE
KEY: seocanonicallinkparameterlistpropertyname

KEY: seocustommetatagpropertyname

KEY: seoenablecanonicallinkparameterspropertyname

  • TYPE: bool
  • VALUE EXAMPLE: FALSE
KEY: seoincludecustommetatagpropertyname

  • TYPE: bool
  • VALUE EXAMPLE: FALSE
KEY: seositemapgeneratedpropertyname

  • TYPE: bool
  • VALUE EXAMPLE: TRUE
KEY: sharepointhelpoverride

  • TYPE: string
  • VALUE EXAMPLE 1: SPOLite
  • VALUE EXAMPLE 2: SPOStandard
KEY: showurlstructure

  • TYPE: int
  • VALUE EXAMPLE: 1
KEY: SiteCollectionGroupIdf5d847c7_x002d_3f02_x002d_4b79_x002d_a0d1_x002d_cc182cef3aa6

  • TYPE: guid
Search Center URL KEY: SRCH_ENH_FTR_URL

  • TYPE: string:RelPath
  • VALUE EXAMPLE: /sites/xyz/SearchCenter/Pages
Search Center URL (SITE) KEY: SRCH_ENH_FTR_URL_SITE

  • TYPE: string:RelPath
  • VALUE EXAMPLE: /sites/xyz/SearchCenter/Pages
Search Center URL (Web) KEY: SRCH_ENH_FTR_URL_WEB

  • TYPE: string:RelPath
  • VALUE EXAMPLE: /sites/xyz/SearchCenter/Pages
KEY: SRCH_SB_SET_SITE

  • TYPE: JSON
  • VALUE EXAMPLE: {“Inherit”:false, “ResultsPageAddress”:”/sites/xyz/SearchCenter/Pages/Results2.aspx”, “ShowNavigation”:false}
KEY: SRCH_SB_SET_WEB

  • TYPE: JSON
  • VALUE EXAMPLE: {“Inherit”:false,”ResultsPageAddress”:”/sites/xyz/SearchCenter/Pages/Results2.aspx”,”ShowNavigation”:false}
Search Scope Drop Down Options Mode KEY: SRCH_SITE_DROPDOWN_MODE

  • TYPE: string
  • VALUE EXAMPLE 1: HideScopeDD_DefaultContextual
  • VALUE EXAMPLE 2: HideScopeDD
  • VALUE EXAMPLE 3: ShowDD
  • VALUE EXAMPLE 4: ShowDD_DefaultURL
  • VALUE EXAMPLE 5: ShowDD_DefaultContextual
  • VALUE EXAMPLE 6: ShowDD_NoContextual
  • VALUE EXAMPLE 7: ShowDD_NoContextual_DefaultURL
Target Search Results Page KEY: SRCH_TRAGET_RESULTS_PAGE

  • TYPE: string:RelPath
  • VALUE EXAMPLE: /sites/Search/Pages/results.aspx
KEY: taxonomyhiddenlist

  • TYPE: guid
KEY: vti_approvallevels

  • TYPE: string
  • VALUE EXAMPLE: Approved Rejected Pending\ Review
KEY: vti_associategroups

  • TYPE: int[]
  • VALUE EXAMPLE: 3;28;31;32;33;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;55;56;57;58;59;60;61;62;63;64;65;66;67;68;6;7;8;10;11;12;13;14;15;69;79
KEY: vti_associatemembergroup

  • TYPE: int
  • VALUE EXAMPLE: 8
KEY: vti_associateownergroup

  • TYPE: int
  • VALUE EXAMPLE: 6
KEY: vti_associatevisitorgroup

  • TYPE: int
  • VALUE EXAMPLE: 7
KEY: vti_categories

  • TYPE: string
  • VALUE EXAMPLE: Travel Expense\ Report Business Competition Goals/Objectives Ideas Miscellaneous Waiting VIP In\ Process Planning Schedule
KEY: vti_createdassociategroups

  • TYPE: int[]
  • VALUE EXAMPLE: 6;7;8
KEY: vti_customuploadpage

  • TYPE: string:SiteRelPath
  • VALUE EXAMPLE: /_layouts/15/UploadEx.aspx
KEY: vti_defaultcharset

  • TYPE: string
  • VALUE EXAMPLE: utf-8
KEY: vti_defaultlanguage

  • TYPE: string:local
  • VALUE EXAMPLE: en-us
KEY: vti_extenderversion

  • TYPE: string:Version
  • VALUE EXAMPLE: 15.0.0.4433
KEY: vti_filedialogpostprocessorid

  • TYPE: {guid}
KEY: vti_filenotfoundpage

  • TYPE: string:SiteRelPath
  • VALUE EXAMPLE: /Pages/PageNotFoundError.aspx
KEY: vti_ignorekeyboard

  • TYPE: int
  • VALUE EXAMPLE: 0
KEY: vti_indexedpropertykeys

  • TYPE: string:Token
  • VALUE EXAMPLE: QwBvAG0AbQB1AG4AaQB0AHkAXwBNAGUAbQBiAGUAcgBzAEMAbwB1AG4AdAA=|QwBvAG0AbQB1AG4AaQB0AHkAXwBUAG8AcABpAGMAcwBDAG8AdQBuAHQA|QwBvAG0AbQB1AG4AaQB0AHkAXwBSAGUAcABsAGkAZQBzAEMAbwB1AG4AdAA=|
KEY: vti_mastercssfilecache

  • TYPE: string:filename
  • VALUE EXAMPLE: corev15app.css
KEY: vti_navbuttonhomelabel

  • TYPE: string
  • VALUE EXAMPLE: Home
KEY: vti_navbuttonnextlabel

  • TYPE: string
  • VALUE EXAMPLE: Next
KEY: vti_navbuttonprevlabel

  • TYPE: string
  • VALUE EXAMPLE: Back
KEY: vti_navbuttonuplabel

  • TYPE: string
  • VALUE EXAMPLE: Up
KEY: vti_siteusagetotalbandwidth

  • TYPE: int
  • VALUE EXAMPLE: 0
KEY: vti_siteusagetotalvisits

  • TYPE: int
  • VALUE EXAMPLE: 0
KEY: vti_usernames

Assign Document IDs KEY: docid_enabled

  • TYPE: string
  • VALUE EXAMPLE: 1
Begin IDs with the following characters (Site Prefix) KEY: docid_msft_hier_siteprefix

  • TYPE: string
  • VALUE EXAMPLE: HR