NML Logo

Building EVA for Nedgroup Investments


UX & UI DesignAPI Development and IntegrationFront-End DevelopmentOnboardingTransactional Platforms


Nedgroup Investments



An AI assistant that can be accessed via a mobile-friendly chat widget on the Nedgroup Investments website, with the option to host on other channels like Facebook Messengers. test
client logo


Direct investors prefer to connect with a business on the channel of their choice instead of having to remember a password to log onto a desktop-focused website.


The EVA AI assistant that can be accessed via a mobile-friendly chat widget on the website, with the option to host on other channels.

Project Overview

Nedgroup Investments saw the potential of automation and robotics in their investment business and approached Atura to build South Africa’s first fully transactional AI assistant, EVA, which went live in early 2017.

Initially, EVA allowed users to query information available on the public Nedgroup Investments website to speak to a live agent through a convenient chat widget embedded in the website.

In the next phase, we enhanced EVA further so that users could log in, query balances, and retrieve statements and tax certificates.

In the last phase, we gave EVA the ability to transfer money to and from an investor’s account via the chat interface.

We helped lighten the load on the Nedgroup Investment call center since EVA can answer many questions without any human interaction.

Nedgroup Investments’ staff and financial planners also use EVA to quickly load relevant pieces of information rather than having to trawl the website.

Feature Highlights

  • Fully customised AI assistant
  • Deep integration into Nedgroup Investments systems
  • Service desk
  • Natural language processing
  • Remembering conversation context
  • Login via USSD or SMS
  • “Web Views” for complex input
  • Multi-channel support
  • Reporting and Analytics
Feature 1

Fully customized AI Assistant

We built the Atura platform with abstraction in mind so that we can easily build customised client instances by leveraging our core infrastructure.

The EVA conversation flows were mocked-up on paper without any constraint, and then translated to the running AI Assistant visible today on the Nedgroup Investments website. Since our bots are built with C# code running on the MS Bot Framework, they are extremely flexible and fast to build.

Deep integration into Nedgroup Investments systems AI assistants without context are boring and have limited practical usefulness. We focus on integrating with client back-end systems to give the assistant as much user context as possible while keeping privacy and security in mind.

EVA integrates with the Nedgroup Investments web services via standardised HTTPS protocols, giving her access to user data (context) and the ability to perform financial transactions on behalf of the user. These transactions include:

Adding funds to accounts Requesting statements Requesting tax certificates Checking balances


EVA active

Feature 2

Service desk

AI assistants may be able to answer all questions in future, but that is not possible yet. In situations where EVA is unsure, she gives the user the option to chat to a client services agent, while still in the chat window, so that a real person can help resolve issues and answer questions. When the agent has finished helping the user, control is passed back to EVA.

Following is a screenshot of the agent service desk with new and unresolved “conversations” awaiting attention:

Feature 3

Natural language understanding

EVA allows users to type questions in plain text. Internally we send the user’s text to Microsoft’s LUIS service that uses machine learning models to translate the user’s query into an “Intent”. This allows the

user to ask things like: “How risky is your guraded[sic] fund?” and EVA will know the user is asking about the “Risk Category” for the “Nedgroup Investments Guarded Fund”.


Machine learning


Conversation context



Feature 4

Login via USSD or SMS

When logging in, EVA requests the user’s ID number, then prompts for approval via the user’s pre-existing cell phone number on the back-end system.

No username or password is required, because the user has to accept/reject the login request on their mobile device:


Log in

Feature 5

“Web Views” for complex input

Some input is better suited for entry on a typical web form, as certain types of functionality will be very cumbersome to represent via text chat. EVA supports rendering “web views” which are custom web pages embedded in the chat window.


Web view

Feature 6

Multi-channel support

It is possible for us to expose EVA over channels other than chat widgets with minimal changes to the code. This is possible because we use the MS Bot Framework as an intermediate layer that translates messages to the appropriate format for different channels.

For example, our webchat channel shows richly formatted buttons, while rendering plain text in WhatsApp:


In webchat

Feature 7

Reporting and Analytics

Atura has a reporting function that gives insight to: conversation duration, messages per support agent, nr of help requests within and out of office hours, most popular “Intents”, etc.

Feature 8



Technical Requirements

To ensure the success of Eva for Nedgroup Investments, the following technical requirements needed to be met:

Mobile-friendly, Low latency, Secure digital advisor, available 24/7, chat widget on the Nedgroup Investments website with the option to host on other channels like Facebook Messenger.


  • Microsoft Bot Framework
  • React, ES6+, Babel, Webpack
  • Azure
  • Key Vault, App Services, Table Store, ServiceBus, Functions, Cosmos DB, Active Directory, LUIS


We take security very seriously, so we required that EVA be scanned by an automated vulnerability scanner, as well as undergo multiple audits by an external information security company.

All communication is done over secure channels, so data is encrypted over the wire and at rest.

Useful technical features

Consultant/agent takeover capability

Allows the AI assistant to pause a Bot Framework flow and let a real human to take over the conversation.

Multiple channel support

Facebook Messenger, Slack, custom embedded webchat widget, etc. with a common codebase.

Forms engine

Allows the use of the powerful and flexible Atura Forms Engine to guide users through populating many fields of input (as is usually done on traditional web forms).

Unit testing base classes

Makes unit testing full conversation flows simple and facilitates a TDD approach to AI assistant writing.

Flexible NLP engine

Allows the use of Microsoft LUIS, or an alternative NLP engines, wip.ai or IBM Watson for example.

Helper dialogs

A collection of dialogs that assist with complex tasks such as handling waiting for slow external web service calls.

Auto-publishing to a service bus

Automatically sends conversations to a service bus for further processing by external systems.

Auto-archiving of conversations

All conversations are saved for reporting and analytics purposes.

Root coordinator dialogs

Creates a consistent way to generate “Root” dialog that branch off into other dialog.

Like this project?

You can view a selection of completed projects on our work page