No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


The steps to reproduce the full Hackathon which was done at Coveo Impact 2018.


We indexed a Sitemap and a Youtube source.

Web site/Sitemap

  • Create a new source, using a Sitemap connector: Website.
  • Add fields:
    • mybrand, String, Facet
    • mycategory, String, Facet
    • myprice, Decimal
    • myrating, Int 32
    • allmetadatavalues, String (NO FACET, used for debugging metadata values)
  • Add Mappings (on your source), these are coming from META header tags from the page:
    • myprice: %[productlistprice]
    • mybrand: %[productbrandname]
  • Add Extension script to only index '/Shop/' items, called: OnlyShop.
  • Add Extension script to debug metadata values, called: Trace.
  • Add Extension script to get Category, called: GetCategoryAndOthers.
  • Assign the Extension script OnlyShop as a pre-conversion script to your source.
  • Assign the Extension script Trace as a post-conversion script to your source.
  • Assign the Extension script GetCategoryAndOthers as a post-conversion script to your source.

The configuration of the Sitemap should be: Sitemap.json. Full configuration: SitemapComplete.json.


  • Create a new source, using a Youtube connector: Youtube.
  • Disable the Refresh Schedule.

Full configuration: YoutubeComplete.json.


Create a search page. Insert the HTML into it.


Restore the ChatBot in your Chatbot agent. That will contain all Intents and Entities. The Fullfillment must be manually imported.


  • Make sure to use a proper Google account (some google accounts are restricted).
  • Make sure to link a Billing Profile to your Agent (because we are calling external services).


Enable Inline Editor for the Fullfillment. Insert into package.json. Insert into index.js.

To make it work, first make sure to change the proper URL and insert your API KEY in index.js.

const API_KEY = 'APIKEY'

In the bottom of the index.js file there is the definition of the intents:

app.intent('Get Latest Products', specsHelper);
app.intent('Get products in stock', specsHelper);
app.intent('Get high rated products', specsHelper);
app.intent('Get products from brand', specsHelper);
app.intent('Get products from brand - in stock', specsHelper);
app.intent('Get products from brand - rated', specsHelper);
app.intent('Get products from brand - price', specsHelper);
app.intent('SpecsHelper - videos', specsHelper);