This FAQs are addressing common concerns, questions or objections that might come up to your mind, when get into touch with Smarti development.

Administration

What value should be passed by the chat as 'clientID'?

Since Smarti has a multi client architecture a per 'customer' configuration is required.

In Smarti Client is used to represent customer information. Each Client has a unique name ([a-z0-9-_\.:]+).

For the Rocket.Chat integration this name MUST BE configured as clientId (versions < 0.7)

All conversations refer exact one client. This concept enables to protect conversation access across clients.

Integration and API

Do I have to wait for the webhook’s response after sending a 'POST/rocket/{clientId}'

For Smarti versions before 0.7 the retrieval of processing and query results

GET /conversation/{id}/template
GET /conversation/{id}/template/{template}/{creator}

is complete only when the processing of the webhook has been completed.

Messages, can be transmitted at any time at any frequency and speed.

Smarti v0.7 will introduce a revamped webservice API where updates for conversations will be synchronous and requests for processing results will allow for both synchronous and asynchronous execution via webhook’s

Should I only send the customer’s messages to Smarti API or should I send messages from the agents as well?

All messages of a conversation should be sent to the Smarti API. Messages of agents do also contain keywords, entities, etc. Including those is important for both suggestions and conversation search.

Could you please describe the workflow for interacting with the conversational API?

this describes the workflow until v0.6.*
  1. The Rocket.Chat server sends the message to Rocket.Chat Endpoint of Smarti POST /rocket/{clientId}.

  2. Smarti answers to the chat server via a web hook as soon as the processing of the message has been completed.

  3. call GET /conversation/{conversationId}/template and extracts the correct values for template and creator from the result.

    1. call GET /conversation/{conversationId}/template/{template}/{creator} to execute a the query provided by the creator based on the template

    2. or use the information provided by the template.query to directly execute the query

For more Information see the Working with Smarti processing results section of the Smarti Integration Guide

Why do sent messages do not appear as suggestions, even if I enter the same question?

A conversation consists of multiple messages send by different callers. In oder to make a conversation available as suggestion, it needs to be published. In Rocket.Chat this happens when a room is closed, but if this is not the case one can manually trigger publish a conversation by calling:

POST /conversation/{conversationId}/publish
After a conversation is published a new conversation will be automatically created on the next message sent to a room.

Knowledge Base

Do suggestions always refer to the last message within a conversation?

Currently (v0.6.*) suggestions always refer to the entire conversation. By default a conversation is the sum of all messages within a room.

As long as every single message of a conversation has been sent to Smarti, all of them are considered by Smarti for retrieving suggestions.

This might change in future version through as rules (e.g. ageing, classification, …​) might be introduced the automatically split messages in a room to different conversations.