WHITE PAPER Built for CX: InMoment Data...
Transcript of WHITE PAPER Built for CX: InMoment Data...
© 2016 InMoment, Inc.
The InMoment Experience Hub is the premier platform used by top brands to listen, understand, and share their customer experiences. At the core of the InMoment hub is a software architecture that is designed from the ground up to create world-class Customer Experience (CX) programs for InMoment clients. This architecture is multi-tenant, metadata driven, secure, stable, and scalable. This paper explains the InMoment data architecture, the platform that powers the best CX programs in the world.
A B S T R A C T
Built for CX: InMoment Data Architecture
W H I T E P A P E R
The InMoment data architecture is unique
and differentiated within the CX space.
While similar to architectures found in
other top SaaS platforms like SalesForce.
com, Concur, Gainsight, Microsoft Azure,
and many others, InMoment’s architecture
is designed to offer clients competitive
business advantages including:
• Built for CX- Designed to solve the
unique problems found in customer
experience programs
• Multi-tenant & metadata based- Easily
handles the wide variety of customer
experience programs found in
every industry
• Built for business users- Designed to
allow business users to modify the data
structure without the involvement of
programmers or database administrators
• Built for real time- Changes in structure
or data are available immediately, not
after a week, a few days or a few hours.
Does not use cubes or aggregation tables
so that data is always current
• Built for flexibility- Can handle constantly
changing CX programs. Adding new data
points is a breeze
• Built for stories- Designed to handle
unstructured data like customer
comments, voice messages, and
video feedback
D I F F E R E N T I A T I N G F E A T U R E S
InMoment uses a distinctive metadata-
based architecture that collects customer
experiences from millions of users around
the world. This proprietary software
was designed from the beginning to
be a new approach to storing CX data
and combines modern best-practices
in SaaS data handling with innovations
that allow better handling of CX data.
The architecture securely separates each
InMoment client’s data from other clients’
data and still allows InMoment to constantly
update and improve the overall system
to the entire community of users. The
InMoment methodology provides superior
flexibility while still allowing great analytical
capability that drives speed to insight.
[email protected] • 1-800-530-4251 • © 2016 InMoment, Inc. 3
Within the CX world there are several different approaches to hosted
database architectures. These architectural styles may be single or multi-
tenant, and have different approaches to databases structure, known as
database schema. Each approach has different characteristics reflective
of the maturity level of the provider. Below are some of the different
approaches and a brief explanation of why InMoment is different:
1. Single-tenant, custom schemas:
This approach offers the greatest
customization, but is the least scalable.
Each customer gets their own custom
database, sometimes hosted by the
vendor. While this sounds desirable, the
cost of maintaining each separate schema
is huge, which means programs will be
very expensive and time-consuming to
alter. The cost of change will result in a
program that goes stale quickly.
2. Multi-tenant with identical schemas:
While more scalable than completely
custom software, this approach limits
configurability options for each customer.
Clients are forced to shoehorn their
program into features that may not fit
well with business processes and culture,
resulting in higher failure rates on rollout.
3. Multi-tenant with custom schemas:
Some competitors try to mitigate the
weaknesses of the first two approaches
by combining multi-tenancy with custom
schemas. While this does offer greater
efficiencies by sharing platform resources,
it limits the vendor’s ability to maintain a
single unified code base and may require
custom code for each project. This
increases cost and time required to make
changes. It also may prevent customers
from receiving the benefits of constant
improvements from other customers.
Different Approaches to Hosted CX Data Architectures
InMoment’s model is highly scalable and secure, can be updated in real-time, allows for analytical performance, and still provides a highly configurable solution.
4. Multi-tenant, identical schemas but
custom analytic schemas: Some vendors
will achieve multi-tenant efficiencies
and limited analytical configurability
by pushing configurability into the
analytical layer. This is typically achieved
using customized Data Cubes, a data
warehouse aggregation technique that
provides performance improvements at
the cost of flexibility. Data cubes pre-
aggregate data, which means they can
only answer questions at the granularity
of data they were designed with. In other
words, if you didn’t think of a question
up-front, you won’t be able to ask it later.
5. The InMoment approach: The InMoment
data architecture is multi-tenant and uses
a single shared foundational schema (like
approach #2) for all customers, but we
have maintained configurability options
for clients by implementing a powerful
metadata layer and data engines to
create virtual structures and views on
the data. This means each customer
benefits from the flexibility of a custom
schema without the typical headaches of
customer-specific complexity. InMoment’s
model is highly scalable and secure,
can be updated in real-time, allows for
analytical performance, and still provides
a highly configurable solution.
The InMoment data architecture is the
foundation of the InMoment Software-
as-a-Service (SaaS) platform. It has been
designed from the beginning to handle the
extreme demands of creating CX solutions
for the the largest and most successful
customer organizations in the world. These
demands include:
• Multiple concurrent enterprise clients
• Complex organizational hierarchies
• Unique and constantly changing data
requirements per client
• Information from every touchpoint
(social, review, post transaction survey,
e-commerce, etc.)
• Real-time analytics shared at every level
of the organization
• Diverse customer journeys that require
unique domain-specific analytics patterns
• Customer data integration where every
organization values different customer
information
• Emphasis on listening to the customer’s
voice in their own words from
unstructured sources including text,
audio, and video
• Data privacy and security
B U I L T F O R C X
[email protected] • 1-800-530-4251 • © 2016 InMoment, Inc. 5
The goal of modern SaaS architecture is
to deliver software service more efficiently
and cost effectively than ever before. The
most effective design pattern for improving
the manageability of SaaS platforms is
called “multi-tenancy.” InMoment’s platform
is designed to support multiple client
organizations or “tenants” on the same
single stack of computing resources. This
concept allows InMoment to reliably deliver
an Internet-scale CX application in a cost-
effective manner.
Industry analysts and large-scale software
companies like SalesForce and Microsoft
agree that a multi-tenant architecture is
the most mature and effective strategy for
delivering a SaaS solution. By delivering the
same application to many different clients
or tenants the cost of managing software
development, staff, network infrastructure,
security, and server resources is greatly
reduced. Each tenant (a client of a SaaS
vendor) is given access to a configured
version of the same application that all
other clients use.
The economics of a multi-tenant architecture allow software providers to operate more efficiently and pass along lower total costs to their clients.
M U L T I - T E N A N T A R C H I T E C T U R E
Each tenant is virtually isolated within the
platform and is only able to access the data
and services that have been configured for
them. Their data and configuration runs
on the same platform but is secured and
separated from the other tenants. When
each tenant logs in to the platform the
software effectively morphs into a highly
configured version of the software that is
unique to the tenant.
This architecture provides a massive
economy of scale to the provider. InMoment
is able to apply software patches, secure
networks against threats, backup data,
etc. for all clients simultaneously. The
economics of a multi-tenant architecture
allow software providers to operate more
efficiently and pass along lower total costs
to their clients. But a larger benefit to
clients exists in the form of a community
of customers.
InMoment’s multi-tenant architecture
provides benefits beyond increased
efficiency and cost effective software
delivery. Every client becomes part of a
larger community of users who all share
the same set of CX needs and interests.
Unlike traditional applications, which
are separately maintained and improved
for each customer, multi-tenant SaaS
customers benefit from the collective
improvements made for all other customers.
InMoment’s architecture is designed to
provide a CX platform that is scalable, fault-
tolerant, highly available, secure, responsive,
and tailored to each client’s CX program.
Each InMoment client has completely
unique customer data requirements, unique
touchpoints, unique brand differentiators,
and unique moments of truth in delivering
the customer experience. How can each
client receive a highly tailored version
It is challenging for any company with
a customer-facing experience to stay
abreast of every trend in CX delivery.
By participating in the community of
InMoment client organizations, each tenant
is able to benefit from the requests of all
other customers. This allows InMoment
to help every customer stay out front on
CX technology issues. Every InMoment
customer benefits from a larger team of
engineers who are constantly keeping the
platform fresh with new features.
of the InMoment Platform? How can the
platform be effectively extended for each
InMoment client? How does one client tailor
the interface, business logic, analytics, and
data without affecting the other clients
on the platform? How can upgrades and
repairs be made without breaking
tenant-specific customizations? The
answer is Metadata.
The core of InMoment’s Experience Hub
has been designed to be highly dynamic
in nature. It uses an engine for data
storage that allows each client to have
its own data model and set of business
rules. The activities within the system are
orchestrated via a runtime engine that
generates user interfaces and business rules
based on metadata. Metadata is data about
data. In other words, it is the specification
of the structure of a particular client’s
data. For example, if a client wants to
store a customer’s loyalty number, a rating
for satisfaction, a rating, for employee
friendliness, an overall average score, and
A Multi-Tenant CX Community
Metadata-Driven Architecture
Owned ByData Field
Metadata (Data about data)Experience
Data Type
Platform
Platform
Tenant
Tenant
Tenant
Tenant
Numeric Identifier
Alphanumeric
Numeric Rating
Numeric Rating
Numeric Calculated
Text
ID
Loyalty_Number
Overall_Rating
Employee_Rating
Average_Rating
Comment
Loyalty #
Overall Satisfaction
5 4 3 2 1
5 4 3 2 1
Employee Friendliness
Average Rating
Comment
3.5
When I rented from the Bu�alo airport location it was somewhat confusing There wasn’t anyone at the kiosk.
GC98207X
[email protected] • 1-800-530-4251 • © 2016 InMoment, Inc. 7
The InMoment platform has clear
separation between the static underlying
application code and the dynamic
application data that describes the
customer experience. This client/tenant
specific application metadata includes
journey touchpoint and channel data,
organizational hierarchy data, customer
data, touchpoint metadata, and contextual
data. Business users are able to define
this information within the InMoment
platform so that it is aware of the CX
program being created.
InMoment’s platform is completely powered
by the metadata specifications defined
by its clients. However, it does include a
core of standardized CX metadata that is
informed by both best practices and the
industries we serve. This gives program
managers a place to start.
The distinct boundaries provided by the
InMoment metadata system allow the
Experience Hub to be configured for each
client’s unique needs, modify the system
core, or update each client’s specific
components without altering the other
client programs on the system.
Clear Separation
InMoment Dynamic User InterfacesFeedback Forms Mobile Apps Reporting Analytics
Personas
• Structure• Roles• Access Rules
• Response Elements• Social Sources• Story Structure• Program Rules
• CRM Linkages• Transactional Data• Departmental• Loyalty Specs
Journeys Channels Touchpoints
Interface Rendering Rules Processing Data Management
InMoment Static Runtime Engines
Customer Journey Metadata
Organizational Hierarchy Experience Metadata Contextual Metadata
Data
MetadataInMoment Runtime Engines
Tenant Specific Metadata
DynamicUser Interface
a customer comment, the system needs
to know that each record requires five
pieces of data or “fields,” which are an
alphanumeric loyalty number, a numeric
satisfaction rating, a numeric employee
rating, a calculated numeric score, and
finally an open-ended text comment. This
information collectively forms the metadata
for the touchpoint being measured.
InMoment’s metadata-driven multi-
tenant platform is designed to handle the
demands of enterprise-scale CX programs.
The foundation is created by modeling
client organizational structures including
org charts, data classifications, and user
groups. A data model for each channel
and touchpoint is created that includes
information about every field of data.
This information is used to create forms,
surveys, reports, dashboards, and tenant-
specific customizations to business logic.
The platform uses abstract concepts that
represent these artifacts. No actual data
tables are created. They exist as a virtual
data structure that is accessible to user
experiences that are modified at runtime to
reflect the branding, workflow, and business
rules of each tenant on the platform.
InMoment’s platform stores all client data in
just a few large shared tables that act as a
source heap for other operations. The data
engine materializes views on these tables
that are used by the rest of the system
to create reports, dashboards, and data
analytics applications. The metadata also
informs the real-time alteration of those
user interfaces.
A sophisticated data engine powers the
metadata-driven data views. Business
users define the views of data required
for analytic purposes. The engine uses the
metadata and the view definitions to pivot
the CX data at runtime into virtual tables.
Performance of these tables is critical so
the engine optimizes query generation
and caches metadata to provide
reliable performance.
Multi-Tenant Platform Architecture Overview
Cached Metadata
Platform Engines Shared Databases
Virtual Runtime CX App Components
Bulk Data Processing
Data Access
Text/ Audio/ Video Analytics
Business Rules
Recommendations
Surveys,Feedback Forms Reports Dashboard Mobile Apps
Virtual Data Views
Metadata Tables
Data Tables
[email protected] • 1-800-530-4251 • © 2016 InMoment, Inc. 9
Platform components are built on top
of, and are informed by, the InMoment
metadata architecture. The components are
combined together to create engines that
solve specific CX program problems. Some
of the major engines provided with the
InMoment platform are:
• Bulk data processing- Import and export
of bulk data including customer data,
hierarchy data, transactional data, and
contextual information.
• Data access- Data access engine
that dynamically creates virtual
views of data that can power other
application components.
Every customer experience is different. As
a result, every CX program must reflect
the highly varied nature of the brands that
own them. Each business has different
customer journeys, resulting in different
customer data points, different features
of text analytics are important, different
business rules alter workflows. Rather than
attempting to manage a vast, constantly
changing set of physical database tables,
InMoment uses a data storage mechanism
based on metadata, data tables, and
pivoted analytics tables.
• Text/audio/video analytics- Unstructured
data is processed as it is ingested and is
translated, transcribed, categorized, and
analyzed for sentiment.
• Business rules- Tenant-specific
business rules that are processed as
data is collected, including workflow,
issue escalation, survey flow, and
data validation.
• Recommendations- Predictive analytics-
powered recommendations are made to
ease the burden of end-users who can
be advised as to the next-best-action
to take.
Platform Engines
D A T A D E F I N I T I O N A N D S T O R A G E
Business Units, Regions, Districts, Categories, User Groups, etc.
HierarchyMetadatafor client specific data
Large Heap Storage of Common Data for all experience types
Data FieldChannels, Personas, Touchpoints
CX Journey
Runtime pivoted virtual table for reporting or dashboards
Virtual ViewPhysically materialized view for analytical performance
Materialized View
Virtual PivotTable Description
Views
ExperienceLarge Heap Storage of structured data for data fields
Field Data
Large Heap Storage for Calculated Values
Calculated Data
Large Heap Storage for Unstructured Text/Audio/Video
CLOB Data
Metadata TablesData TablesPivot Tables
Each enterprise has its own unique
reporting structure. Some businesses
leverage a straightforward top-down
organizational chart hierarchy that follows
leadership reporting structures. For
example, a software services business may
have different departments that roll up to
divisional leadership who roll further up
to executive leadership. Other enterprises
have frighteningly complex overlapping
hierarchies with discrete business units
reporting up through the organization
through multiple pathways. For example,
an agency-based or franchised business
may have corporate owned locations and
franchisee locations that are owned by
separate business entities. In this scenario,
data may need to be organized to provide
overlapping hierarchies to service both sets
of needs.
It is critical for a CX program to model
organizational reporting correctly so that
the right information is broadcast to the
right people, at the right time, in a manner
that fits culturally. CX providers take
several different approaches to solving
this problem, but InMoment’s approach to
handling hierarchical data is unique. Below
are three different methods including
InMoment’s method:
1. Rigid hierarchy model: Some providers
take a simplistic approach and have
created a reporting hierarchy in advance
that clients must conform to. While
simple in nature and easy to provision and
understand, this rigid method is ultimately
limiting. It also doesn’t fit a client’s culture
and will result in cognitive friction.
2. Semi-flexible hierarchy model: Other CX
providers will define a series of nested
levels and will allow clients to define
the names of the levels and possibly
some additional metadata about each
level, including data access and security.
Many organizational structures do not
conform nicely to the concept of levels
which means compromises will invariably
be made to shoehorn the client’s
organizational structure into the level
structure.
3. The InMoment multi-hierarchy model:
InMoment’s hierarchy model is completely
flexible and allows any number of nested
nodes in a tree. It also includes metadata
to describe the role or category of the
different types of nodes. This means
that almost any kind of overlapping
data hierarchy can be represented in
the system. For example, a geographic
organization of insurance agents can
be modeled alongside a mapping of
corporate divisions. Additional metadata
describing the attributes of each kind
of business unit can also be modeled to
provide extra dimensions for reporting.
InMoment’s model is bottom-up and begins
with the individual leaf-node business units.
These units can be described with reporting
attributes that give dimension to the units.
For example, a services business may have
a network of client managers who have
a skills that should factor into reporting.
Or, a product centric organization might
have products with different attributes that
can be used to cross-cut during analysis.
Unit attributes allow these cross-cutting
dimensions to be modeled in the
InMoment system.
Hierarchy Metadata
It is critical for a CX program to model organizational reporting correctly so that the right information is broadcast to the right people, at the right time, in a manner that fits culturally.
[email protected] • 1-800-530-4251 • © 2016 InMoment, Inc. 11
Each tenant in the InMoment system
has their own fully configurable set of
hierarchies. The leaf-node business units
can be further organized into hierarchies.
Units can belong to one or more categories
that can further be owned by other
categories. These categories can be
nested in an arbitrarily deep structure.
Metadata about the class, role or type of
each category provides manageability
to the hierarchy. This allows any time of
Individual users can be granted access to
data associated with nodes in the hierarchy.
This association controls the data they are
able to see within the organization and also
controls the type of reports they are sent
and the information visible within online
dashboards and reporting applications.
Data access can be further tailored to
hierarchy to be modeled. For example, let’s
say Acme Insurance has an organization
with the following reporting structure:
Brand, Region, District, Agent. Those are
the classes of category, but the actual
concrete instances of the classes are Acme
Insurance, Northwest Region, Portland
District, Thorton Insurance Agency. The
InMoment model can easily handle his
hierarchy and can add infinitely more layers
next to or on top of this structure.
protect sensitive information such as
personally identifiable information (PII).
Additional reporting hierarchies can be
created with completely separate
access policies.
Arbitrary Nesting & Types
Data Access and Security
Acme InsuranceBrand
Region
District
Agency
Concrete HierarchyHierarchy Type Metadata
Southeast Northeast
Portland
Lewis BrokersThorton Ins. Sand Bridge
Tacoma Seattle
Southeast
Data field Metadata stores information about every unique piece of data stored in the Hub.
Every CX program has the same ultimate
goal ( improve the customer’s experience),
but everything else about the program
is completely unique to each brand
employing a CX change initiative. Therefore,
every tenant on the InMoment platform
wants to store unique data in the InMoment
Experience Hub. Data field Metadata stores
information about every unique piece of
data stored in the Hub.
Each tenant organization on the platform
can define separate data sets and fields of
data to use in InMoment CX applications.
The data field metadata table contains
information about each field, it’s name,
reporting label, internationalization, data
type, and rules about data validity. This
allows information to be stored in the heap
management system of the InMoment Hub.
As data arrives, information from the data
field metadata table allows each field to
be stored as a group, defined in a master
data table. Individual data values are stored
in the heap data table. The tables are
indexed for later retrieval and reporting.
Additional tables follow this same pattern
and allow for storage of computed values
and unstructured data like comment text
and audio.
D A T A F I E L D M E T A D A T A
• OrgId• OrgName...OtherColumns
Tenant Organization• DataFieldId• OrgId• DataFieldName• DataFieldReportingLabel• DataType...OtherColumns
DataField Table• DataMasterId• Date• Time• OrgId...OtherColumns
Data Master• DataMasterId• DataFieldId• Value...OtherColumns
Data
[email protected] • 1-800-530-4251 • © 2016 InMoment, Inc. 13
The Customer Journey is an orchestration
abstraction that is superimposed on the
data stored in the InMoment Experience
Hub. Every client organization has a unique
customer journey that spans multiple
channels with key moments of truth
that can be monitored by the InMoment
platform. The platform can be customized
with metadata that models the components
of the customer journey including:
• Channel- Channels model the type of
journey the customer is currently on, and
can include touch points including online/
web, social, in-store experience, product
experience, etc.
C X J O U R N E Y M E T A D A T A
U N S T R U C T U R E D S T O R Y D A T A
• Key moments- Used to model the
moments of truth that are critical to the
customer experience
• Personas- Model the types of customers
having experiences that will be captured
in the InMoment Experience Hub
• Best practices- Recommendations and
standard operating procedures that detail
ways to make improvements to
key moments
The InMoment platform is optimized to take
advantage of the power of unstructured
customer stories in the form of text
comments, audio feedback, and video
recordings. Unstructured data is collected,
analyzed, and stored using a proprietary
workflow that leverages InMoment’s
extensive knowledge of the domains and
industries we serve.
Text, audio and video can be collected
from mobile, web, and API sources. The
InMoment platform analyzes content on
ingestion and is able to extract meaning
including topics, entities, and sentiment.
This data is further used to identify root
causes of dissatisfaction, predict changes in
key metrics, and reveal emerging topics of
interest. The cornerstone of the InMoment
unstructured data analytics system is a
highly tuned proprietary text analytics
infrastructure powered by technology from
the IBM Watson project.
InMoment is the only vendor in the CX industry to offer natively embedded hardware accelerated speech-to-text and voice analysis capabilities.
Unstructured data in the InMoment
platform is processed through a
configurable pipeline for analysis. The
pipeline consists of a contiguous series
of analytic steps that build on one
another to enrich unstructured content
with progressively more contextual
information. For example, a contact center
audio recording is collected and then
sent into the pipeline for analysis. First,
an analyzer transforms the speech into
InMoment’s unstructured analytics
infrastructure is unique within the CX
industry. Some of the most important
differentiating capabilities include:
• Comment-level meaning- Most engines
are optimized for analysis of massive
data feeds alone. While InMoment is
very capable of handling web-scale
unstructured data in real-time, the
key to becoming a customer-centric
organization is listening to each
customer individually.
• Industry- and customer-tuned-
InMoment has embedded its extensive
domain knowledge into the brain of the
The InMoment Difference
Unstructured Data Pipeline
unstructured feedback infrastructure.
That means InMoment doesn’t just have
off-the-shelf generic text analytics, it has
analytics highly tuned and optimized for
each unique industry and vertical that
we serve. It can further be tuned on a
customer-by-customer basis to reveal
insights unique to each customer.
• Real-time hardware-accelerated speech
analytics- InMoment is the only vendor
in the CX industry to offer natively
embedded hardware accelerated speech-
to-text and voice analysis capabilities.
Our platform is able to process recorded
audio from voice messages, call center
text, another analyzer lifts out sentiment,
generic industry specific analyzers extract
information about contact center scenarios,
and finally company specific analyzers.
Each step along the way adds additional
annotations, or contextual markers that
explain the content of the unstructured
audio stream. The InMoment unstructured
analytics pipeline is flexible and can be
augmented to analyze any source of
unstructured data.
TextAudioImageVideo
Speech to Text
Annotation Annotation Annotation Annotation
Sentiment Analytics
Industry Analyzer
Client Analyzer
Fact Fact Fact Fact
[email protected] • 1-800-530-4251 • © 2016 InMoment, Inc. 15
C O N C L U S I O N
The data architecture that powers the
InMoment Experience Hub is designed
to listen to, analyze, and share customer
experience stories. It is based on a
scalable and fault-tolerant design that will
support client organizations of any size
or complexity. It’s flexible data model is
purpose-built to embrace the wide variety
of CX programs our clients will have. It
About InMoment InMoment is a cloud-based customer experience (CX) optimisation platform that gives companies the
ability to listen to and engage with their customers to improve business results through better experiences.
Through its Experience Hub™, InMoment provides Voice of Customer (VoC), Social Reviews & Advocacy,
and Employee Engagement technology, as well as strategic guidance and tactical instruction, support,
and services, to 350 brands across 25 industries in 128 countries. The company is the leading VoC vendor
for the food services, retail, and contact centre industries, with deep domain expertise in B2B, healthcare,
hospitality, and numerous others.
recordings, and the audio tracks of video
feeds. Because it is hardware accelerated
it can respond in real-time. A 30-second
recording can be analyzed for topical
data in less than 2 tenths of a second,
faster than the human eye blinks.
• Video Feedback- InMoment offers video
feedback capture and analysis including
deep integration of video sources. The
audio from the video feedback can be
accomplishes this by being multi-tenant
and metadata based. It allows flexible
hierarchy modeling and is specifically
designed to handle and leverage the
power of unstructured customer data. It is
architected using battle-tested strategies
and patterns that can deliver value
today while still being built for the CX
opportunities of the future.
analyzed using the same world-class
text analytics engines as other
feedback sources.
• Industry Tuned Sentiment Analysis- Most
vendors leverage off-the-shelf sentiment
analysis, which often ignores a surprising
amount of data. InMoment’s sentiment
engine is uniquely tuned for each
industry we serve, which provides the
best possible analytics results.