Community release: 06/04/22 at 5pm BST
Enterprise release: 13/04/22 at 5pm BST

For those of you that have wanted to access the interaction data between your end-users and Rainbird (i.e. the questions asked, answers given and the result), it has always been challenging.

Commonly this is required to provide to end-users as a transcript, to pick out relevant data to display in a custom report or to store for record keeping or further analysis.

Interaction recording would need to be switched on, but when it was, this data was only displayed in the Studio or downloaded manually as a CSV file.

Neither supported the use of this data in a fully integrated solution.

As part of our new release, we have launched a range of tools to support easier access to this data. Including:

  • Interaction-log API: this new end-point (documented here) provides access to interaction data per session in either JSON or CSV format. This function is supported within our JavaScript SDK and shortly our Go SDK. This will provide software developers and automation engineers with an easy method to fetch this information to incorporate into your end-user or internal reporting.
  • Flow component for interaction logs: configure your Rainbird workflows to retrieve this data in either JSON or CSV to present in spreadsheets/emails etc. or store for later use.
  • Configurable sharing settings: by default, authentication will be required to access this information. However, if you need to generate a shareable link so an end-user can, for example, download the interaction transcript as CSV, this can be enabled in the Studio.

 

Below shows a simple example of how this can be incorporated into a workflow to provide a transcript over email, following the completion of a query.

Workflow using interaction log component
Workflow using interaction log component

 

Following the user answering questions and getting a result from the Workflow Agent, the Interaction Log component can use the ID of the session to retrieve the data from this interaction in either JSON or CSV format.

 

To obtain the configuration details for the Interaction Log component, you need to open your knowledge map, browse to the Publish page and copy the URL and interaction key. If link sharing is enabled, the access key won't be required when requesting data.



In this example, we request CSV. Using this CSV data the workflow creates a CSV file, which is then attached to and sent with the email. Below shows an example of the email that is distributed, complete with attached CSV.

Example email produced by the workflow showing attached transcript
Example email produced by the workflow showing attached transcript

 

Below shows a sample of the interaction log in CSV format from this demo.

 

JSON can also be requested, which can be searched and traversed using common techniques. A sample of the JSON format of the same data is shown at the end of this article.

The sample shows a selection of common events that can be recorded. However the full list of events includes:

EventDescription
StartA new session has started. As interaction logs are per session, this event will only appear once.
InjectThe user has injected facts into the session (often prior to a query).
QueryA user has made a query. This event could occur multiple times within a session.
QuestionRainbird asks a question. Where question grouping is used, this may contain an array of questions.
AnswerThe user provides an answer. Where the relationship is plural OR question grouping has been used, this may contain an array of answers.
DatasourceRainbird has called an external datasource.
ResultRainbird provides a result. Where the relationship was plural, this may be an array of results.

Details of the API schema and sample responses can be found in our API documentation.

Please let us know if you have any comments, feedback or questions on this new functionality.

Cheers,

The Platform Team

 

Sample JSON response

[
  {
    "values": {
      "start": {
        "useDraft": true,
        "kmVersionID": "Removed",
        "sessionID": "Removed"
      }
    },
    "event": "start",
    "created": "2022-04-05T08:54:23.606Z"
  },
  {
    "values": {
      "query": {
        "subject": "Recruitment Ltd",
        "relationship": "receives overall",
        "object": null
      }
    },
    "event": "query",
    "created": "2022-04-05T08:54:23.714Z"
  },
  {
    "values": {
      "questions": [
        {
          "prompt": "Which candidate is Recruitment Ltd considering?",
          "relationship": "considering",
          "subject": "Recruitment Ltd"
        }
      ]
    },
    "event": "question",
    "created": "2022-04-05T08:54:23.816Z"
  },
  {
    "values": {
      "answers": [
        {
          "subject": "Recruitment Ltd",
          "object": "Fred",
          "relationship": "considering",
          "certainty": 100
        }
      ]
    },
    "event": "answer",
    "created": "2022-04-05T08:54:27.973Z"
  },
  {
    "values": {
      "questions": [
        {
          "prompt": "Which of the following requirements does Fred meet?",
          "relationship": "meets",
          "subject": "Fred"
        }
      ]
    },
    "event": "question",
    "created": "2022-04-05T08:54:28.040Z"
  },
  {
    "values": {
      "answers": [
        {
          "subject": "Fred",
          "object": "Banking experience",
          "relationship": "meets",
          "certainty": 100
        },
        {
          "subject": "Fred",
          "object": "Full UK driving license",
          "relationship": "meets",
          "certainty": 100
        },
        {
          "subject": "Fred",
          "object": "3 x A levels",
          "relationship": "meets",
          "certainty": 100
        },
        {
          "subject": "Fred",
          "object": "Knowledge of finance and risk management processes",
          "relationship": "meets",
          "certainty": 100
        },
        {
          "subject": "Fred",
          "object": "Diploma in financial advice",
          "relationship": "meets",
          "certainty": 100
        }
      ]
    },
    "event": "answer",
    "created": "2022-04-05T08:54:34.266Z"
  },
  {
    "values": {
      "questions": [
        {
          "prompt": "Which date did Fred last work in the banking sector?",
          "relationship": "last worked in banking",
          "subject": "Fred"
        }
      ]
    },
    "event": "question",
    "created": "2022-04-05T08:54:34.333Z"
  },
  {
    "values": {
      "answers": [
        {
          "subject": "Fred",
          "object": 1646092800000,
          "relationship": "last worked in banking",
          "certainty": 100
        }
      ]
    },
    "event": "answer",
    "created": "2022-04-05T08:54:39.357Z"
  },
  {
    "values": {
      "questions": [
        {
          "prompt": "How many years banking experience does Fred have?",
          "relationship": "candidate has banking experience for",
          "subject": "Fred"
        }
      ]
    },
    "event": "question",
    "created": "2022-04-05T08:54:39.423Z"
  },
  {
    "values": {
      "answers": [
        {
          "subject": "Fred",
          "object": 9,
          "relationship": "candidate has banking experience for",
          "certainty": 100
        }
      ]
    },
    "event": "answer",
    "created": "2022-04-05T08:54:41.939Z"
  },
  {
    "values": {
      "results": [
        {
          "subject": "Recruitment Ltd",
          "object": "Fred is suitable for Retail Financial Advisor",
          "relationship": "receives overall",
          "certainty": 100
        }
      ]
    },
    "event": "result",
    "created": "2022-04-05T08:54:42.094Z"
  }
]