Skip to main content

Domain Language Glossary

Actors

  • Bank Administrators - banks employees responsible for managing Insight Definitions through Insights Portal user interface. No technical knowledge is expected from this actors.

Definition of the insight

  • Insight Definition - describes an insight. It contains information about Triggering Conditions, Target Audience, selected Channels and Insight Definition Content Template defined for each of those Channels.

    Insight Definition is created with a certain goal (e.g. "Manage finances") and category (e.g."Savings") scope. There are two kinds of Insight Definitions:

    • triggered by an event (e.g. occurrence of the new transaction)
    • triggered by a time schedule (e.g. once a week).
  • Scheduled Insight Definition - a certain kind of Insight Definition triggered by time schedule. Scheduled Insight Definition could be either one-off or recurring.

    One-off Scheduled Insight Definition is created for a specific date and is processed only once. For example, it could be an Insight Definition scheduled for 2021-12-31T23:59:59, aiming to send all users new years' wishes.

    Recurring Scheduled Insight Definition follows up some periodic routine and is processed each time a satisfying this routine time point occurs (e.g. Every other Monday at 10 AM). In the system, recurring insight definition schedule is described by a set of properties.

  • Insight Source - the term strictly connected with Insight Definitions triggered by an event. It describes an event, which properties can be used in defining the Target Audience and Triggering Conditions of Insight Definition. During condition evaluation process Insight Sources are deduplicated to ensure the most current version of the event data is being used for Insight Messages creation.

Insight Library

  • Insight Definition Template - a preconfigured and read-only template for creating new _Insight Definitions__. It consists from a predefined Trigger and Target Audience which will serve as a basis for a new Insight Definition and can be later adjusted based on tailored requirements. Can be used by Bank Administrators to quickly start working with Insight Factory.

  • Insight Library - Insight portal module allowing to browse through all available Insight Definition Templates. The collection of available templates can grow over time along with the number of integration to Insights Factory system, insights delivered by Meniga Product Experts or Bank Administrators.

Read more on Insight Library

Decomposition of the insight

Insight decomposition

  • Insight Message - It is the output of the Insight Definition evaluation process ran for the specified end-user and given Channel. After evaluation process finishes, created Insight Messages are passed to parts of the system responsible for message delivery.

  • Irrelevant Insight Message - an Insight Message, which should not be delivered to the end-user.

    The message could be marked as irrelevant due to the occurrence of either a new version or an event informing about deleting of the Insight Source connected to Insight Definition, which evaluation process resulted in the creation of given Insight Message.

  • Trigger - describes when an Insight Definition should be triggered to initiate the creation of Insight Messages. Trigger could be either time-related or event-based. It is a combination of an event and conditions revolving around this event.

For example, Trigger for the event-based definition could be an occurrence of the second transaction in the "Fast food" category in the past 30 days.

  • Target Audience - describes a group of end-users that satisfy specific criteria to whom Insight Messages should be delivered.

    Note: Both Triggering Conditions and Audience Conditions could use event properties and functions defined in the system or injected to the Triggering Engine application from plugins.

  • Channel Type - is a grouping of Channels that are split according to how a specific Channel will be consumed. There are two fundamental types:

    • Push - a Channel to which the system will push Insight Messages to. Examples of Push Channels are: SMS, e-mail, mobile push notification, web push notification, 3rd party system (e.g. bank's customer relationship management system - CRM)
    • Pull - a Channel which will pull Insight Messages from the system to present them to the end-user or leverage them in another way (e.g. in bank's content management system).
  • Channel - represents a way for the user or 3rd party system to reach or receive and consume Insight Messages.

  • Channel Dispatcher - a part of the system responsible for delivering rendered Insight Message the end-user or bank's system via given Channel.

  • Content Type - defines the type of the Content Template (e.g. Text with media). Can be used to group similar Content Templates.

  • Content Template - holds reusable definition and configurable fields of specific Insight Definition Content Template. It has a dualistic role in the system.

    1. Content Template instructs the Bank Admin on how to configure the template and display its preview on the UI.

    In the following Insight Portal user interface picture, the "Content" and "Preview" sections need to be constructed dynamically based on the Content Template

    Rich text with background image

    1. Content Template is linked to Channel and contains information on how to render the content in the form acceptable by the Channel Dispatcher. Each Channel can support one or multiple Content Templates. For instance, an email channel could have two Content Templates assigned: a newsletter email with rich text formatting - and an email with a report template.
  • Bank Admin Template - a part of Content Template which has information on how Bank Admin UI should display both input forms for fields from Bank Admin Data Model, and how to construct preview of the generated insight.

Example:

Bank Admin Template
 {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"title": "Title"
},
"description": {
"type": "string",
"title": "Description"
},
"deepLink": {
"type": "string",
"title": "Action link"
},
"heroImageUrl": {
"type": "string",
"title": "Url to image"
},
"heroImageAltText": {
"type": "string",
"title": "Hero image alt text"
},
"buttonText": {
"type": "string",
"title": "Call to Action text"
}
}
},
"uiSchema": {
"type": "VerticalLayout",
"elements": [
{
"type": "Control",
"scope": "#/properties/title",
"options": null
},
{
"type": "Control",
"scope": "#/properties/description",
"options": {
"multi": true,
"rows": 10,
"cols": null
}
},
{
"type": "Control",
"scope": "#/properties/deepLink",
"options": null
},
{
"type": "Control",
"scope": "#/properties/heroImageUrl",
"options": null
},
{
"type": "Control",
"scope": "#/properties/heroImageAltText",
"options": null
},
{
"type": "Control",
"scope": "#/properties/buttonText",
"options": null
}
]
},
"preview": {
"imageUrl": "https://meniga.cdn.prismic.io/meniga/f1eb18fc-e00a-47d4-9df9-7775f9869b05_main-hero-3.svg",
"imageAltText": "Widget preview"
}
}
  • Bank Admin Data Model - a part of Content template - JSON containing data model fields that can be configured by the Bank Admin. It could also contain default values for defined fields.

Example:

Bank Admin Data Model
{
"title":"Widget title",
"description":"",
"deepLink":"/home",
"heroImageUrl":"https://meniga.com/meniga.png",
"heroImageAltText":"Meniga",
"buttonText":"CALL TO ACTION"
}
  • Dispatcher Template - a part of Content Template - JSON model containing information on how to render the content in a format that can be understood by the Channel Dispatcher.

Example:

Dispatcher Template
  {
"Body":"<img src='{{heroImageUrl}}' class='a-background-image' alt='{{heroImageAltText}}' /><h1>{{title}}</h1><p>{{description}}<<a href='{{deepLink}}'><button>{{buttonText}}</button></a>",
"DeepLink":"{{deepLink}}"
}
  • Insight Definition Content Template - model derived from Content Template, built for specific Insight Definition and Channel. It contains Data Model based on Bank Admin Data Model from referenced Content Template, customized for the given Insight Definition.

Example:

InsightDefinitionContentTemplate
  {
"DataModel":
{
"title":"Find financial balance",
"description":"Hi {{e.userName}}. We noticed your {{e.AccountName}} balance went into overdraft. See ways to find your financial balance. Establish healthy habbits ",
"deepLink":"/tips/financial-balance",
"heroImageUrl":"https://cdn.meniga.com/financial-balance.jpg",
"heroImageAltText":"Woman balancing while doing yoga",
"buttonText":"FIND YOUR BALANCE"
}
}
  • ContentAsJSON - it is the result of the first step of the Insight Message content rendering process. It is generated via calling renderer mechanisms on InsightDefinitionContentTemplate.DataModel using required data from Insight Source and external data source plugins.

Example:

ContentAsJSON
  {
"title":"Find financial balance",
"description":"Hi, Emily. We noticed your 'My dream vacation savings account' balance went into overdraft. See ways to find your financial balance. Establish healthy habbits ",
"deepLink":"/tips/financial-balance",
"heroImageUrl":"https://cdn.meniga.com/financial-balance.jpg",
"heroImageAltText":"Woman balancing while doing yoga",
"buttonText":"FIND YOUR BALANCE"
}
  • Content - a static piece of information that is delivered/displayed to the end-user or bank's system via given Channel as the part of Insight Message. All dynamic parts are replaced with proper data.

It is the output of the second step of content rendering process as the result of rendering InsightDefinitionContentTemplate.ContentTemplate.DispatcherTemplate using ContentAsJSON data.

Content is what is sent in "SendMessage/SendFeedMessage" message from "Triggering Engine" application to the Channel Dispatcher mechanisms.

Example:

Content
  {
"Body":"<img src='https://cdn.meniga.com/financial-balance.jpg' class='a-background-image' alt='Woman balancing while doing yoga'/><h1>Find financial balance</h1><p>Hi, Emily. We noticed your 'My dream vacation savings account' balance went into overdraft. See ways to find your financial balance. Establish healthy habbits<<a href='/tips/financial-balance'><button>FIND YOUR BALANCE</button></a>",
"DeepLink":"/tips/financial-balance"
}

Insight Factory provides the functionality of using external data sources to create and evaluate Insight Definition's Target Audience and Triggering Conditions and render dynamic Content of the Insight Message.

External data sources are being exposed from plugins to Insight Factory modules in the form of Repository methods and Alias functions.

  • Repository methods - methods defined in external data source plugins. Detailed descriptions of Repositories are provided here: [Repositories in Bank Admin](../Bank Admin/repositories.md) and [Repositories in Triggering Engine](../Triggering Engine/repositories.md).

  • Alias functions - extension methods to the functionality defined in Repositories, created for the purpose of making complex calculations more accessible for Bank Admin, while creating/updating an Insight Definition.

Example: Calculation of the sum of transaction amounts in given period [@dateFrom, @dateTo], which could be represented as

r.TransactionRepository.Transactions.Where(x => x.Date <= @dateTo && x.Date >= @dateFrom).Sum(x => x.Amount)

could be covered by the Alias function SumOfTransactionAmounts(@dateFrom, @dateTo).

The main difference between Repository methods and Alias functions is the fact that the source code of the Alias function is stored directly in the database. Therefore, adding new functionality to the system via creating a new Alias function is dynamic - no deployment or release is needed. Alias function can use multiple repositories. Such repositories should be passed as function parameters.

  • Metadata - represent additional information about Triggering events, Repositories methods and Alias functions injected from plugins into the system. They contain information such as a description, human-readable name, function return type and parameters definition. They are created in order to make Insight Definition creation/update process more enjoyable for the Bank Admin .