Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy...

35
UmniBase: 1556 Feature Reference Updated October 12, 2018 Page 1 © 2018 Umnitech Prepared David Talbot Feature Reference Executive Summary UmniBase is a working application that pre-configures the Caspio environment to enable many popular business features. Some of these features involve quite complicated coding and result from hundreds of hours of programming time. UmniBase itself is the result of thousands of hours of development. The objective is that Caspio participants can take immediate advantage of common ready-made components, such as SMS Messaging. They can then use their time and effort to expand their Caspio investment with business functions that give their organizations a commercial advantage. Caspio participants may use UmniBase in its entirety or retrofit single components to their existing implementations. UmniBase is supplied free of charge to Umnitech clients and copied into their Caspio accounts. Umnitech clients may use UmniBase in an unlimited fashion throughout their organizations. As a favor, we ask that UmniBase not is sold or given away to third parties. This document is intended as a detailed reference to UmniBase Features and is not a quick read. We suggest that interested Caspio participants schedule a screen-share demonstration and if necessary afterward look again in this Reference document for any component for which they would like additional detail. Contact Information Please email or text our CTO, David Talbot; Text: +1 310-721-4050 Email: [email protected] Screenshare: https://www.gotomeet.me/thetisclip Mailing Address: 9224 Calmante lane San Diego, California, USA 92108 “Caspio” is a Registered Trademark of Caspio, Inc. Santa Clara, California, USA Umnitech, Inc. is incorporated in the State of Arizona, Corporation ID 18604767

Transcript of Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy...

Page 1: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 1 © 2018 Umnitech – Prepared David Talbot

Feature Reference

Executive Summary

UmniBase is a working application that pre-configures the Caspio environment to enable many popular business features.

Some of these features involve quite complicated coding and result from hundreds of hours of programming time.

UmniBase itself is the result of thousands of hours of development.

The objective is that Caspio participants can take immediate advantage of common ready-made components, such as SMS

Messaging. They can then use their time and effort to expand their Caspio investment with business functions that give

their organizations a commercial advantage.

Caspio participants may use UmniBase in its entirety or retrofit single components to their existing implementations.

UmniBase is supplied free of charge to Umnitech clients and copied into their Caspio accounts. Umnitech clients may

use UmniBase in an unlimited fashion throughout their organizations. As a favor, we ask that UmniBase not is sold or

given away to third parties.

This document is intended as a detailed reference to UmniBase Features and is not a quick read.

We suggest that interested Caspio participants schedule a screen-share demonstration and if necessary afterward look

again in this Reference document for any component for which they would like additional detail.

Contact Information

Please email or text our CTO, David Talbot;

Text: +1 310-721-4050

Email: [email protected]

Screenshare: https://www.gotomeet.me/thetisclip

Mailing Address: 9224 Calmante lane

San Diego, California, USA 92108

“Caspio” is a Registered Trademark of Caspio, Inc. Santa Clara, California, USA

Umnitech, Inc. is incorporated in the State of Arizona, Corporation ID 18604767

Page 2: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 2 © 2018 Umnitech – Prepared David Talbot

Table of Contents Executive Summary ........................................................................................................................................................... 1

Contact Information ....................................................................................................................................................... 1

Multi-Tenant, Multi-Channel ............................................................................................................................................ 3

Universal Login ................................................................................................................................................................. 4

Data-driven, Role-based Menus ........................................................................................................................................ 5

Entity Structure .................................................................................................................................................................. 6

Registration ....................................................................................................................................................................... 7

Organization Self-Registration ...................................................................................................................................... 7

Member Self Registration .............................................................................................................................................. 8

System Design and Administration ................................................................................................................................... 9

Integration with Amazon AWS ..................................................................................................................................... 9

Datapage Identification.................................................................................................................................................. 9

Caspio REST APIs ...................................................................................................................................................... 10

Triggered Actions ........................................................................................................................................................ 10

App Parameters ........................................................................................................................................................... 11

Date/Time/User Record Stamp .................................................................................................................................... 12

Custom Data Elements without Schema Change ........................................................................................................ 13

System Administration subsystem ............................................................................................................................... 14

Report Structure........................................................................................................................................................... 17

Media ............................................................................................................................................................................... 19

Comments ........................................................................................................................................................................ 22

Messages ......................................................................................................................................................................... 24

Email Messages ........................................................................................................................................................... 24

SMS / WhatsApp Messages ........................................................................................................................................ 26

International Language and Label Aliases....................................................................................................................... 28

Maps ................................................................................................................................................................................ 32

Page 3: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 3 © 2018 Umnitech – Prepared David Talbot

Multi-Tenant, Multi-Channel

It just made sense to construct UmniBase as a Multi-Tenant, Multi-Channel system. Many clients will use only a single

Channel and will see no performance difference.

However, a good proportion of Organizations will eventually want to either:

• Operate the second business using the same Caspio Account and Datapages

• Provide a “Software as a Service” product to many customers

With UmniBase, the Channel Constants and Alias Label subsystem - Figure 76 – customization easy.

Figure 1 Every data table is Prefixed by a Channel ID

Figure 2 Lookups are all Cascaded from Channel ID

Figure 3 Channel Constants control the behavior of each Channel

Page 4: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 4 © 2018 Umnitech – Prepared David Talbot

Universal Login

A key driver for UmniBase features is our Universal Login structure. We split the individual information into two parts:

1. The Universal Login record, containing username, password and Authority Roles

2. The Profile record containing demographic information, address, and pictures

The advantage is that everyone logs on in the same place. However, the Profile information may be very different for

Players, Managers, Administrators, etc.

We use the Universal Login to drive Menus, and Report Filters. The key use is Report Filtering described in Figure 39.

We can also allow people to have multiple Roles. A Manager can also be a Staffer. To extend this concept, an Actor may

also be an Acting Coach, and also the Parent of a Child Actor.

To keep everything synchronized, we use Triggered Actions to do Updates to the matching tables.

Figure 4 Everone logs on in the same place

Figure 5 The Universal Login table stores the username/password and also the multiple Authority Roles

Figure 6 The Profile table is joined to the Universal Login table by the Universal Primary Key

Page 5: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 5 © 2018 Umnitech – Prepared David Talbot

Data-driven, Role-based Menus

UmniBase Menus are Data-driven, which makes set up and changes very easy. The Menus themselves are Caspio HTML

Datapages, so they include Caspio Authentication, and also the UmniBase International Language and Alias features.

Figure 7 A typical menu

Figure 8 Menu Definition is by regular Submit and Report Datapages

Figure 9 The Menu Definition table

Page 6: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 6 © 2018 Umnitech – Prepared David Talbot

Entity Structure

Almost every system needs a similar Entity Structure:

• Administration Managers who control everything and who can add Administration Staffers

• Administration Staffers who do much of the work

• Organizations – could be Suppliers, Teams, Employers

• Organization Locations – different branch offices or shops

• Organization Managers who overlook their Organizations

• Organization Staffers who look after their branch or Location

• Members who are the final customers

The Data Maintenance subsystem for this Entity Structure is a significant effort. Each level must be able to maintain

those entities within its Authority.

UmniBase has this subsystem fully developed and ready to go.

Customization may be implemented without new Datapages, using these features:

• Data-driven Menus - Figure 7

• Alias Labels - Figure 76

• Custom Data Elements - Figure 28

Figure 10 The UmniBase Entity Structure

Figure 11 Entity Structure Data Maintenance is fully developed

Page 7: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 7 © 2018 Umnitech – Prepared David Talbot

Registration

Organization Self-Registration

Organization Self Registration is a 4-step process

1. Manager inputs basic information - Figure 12

2. UmniBase uses a Triggered Action to create the first Location

3. Manager inputs personal login information and system logs off - Figure 13

4. Manager logs on and updates the Organization Profile and Locations, etc. - Figure 15

Figure 12 Organization Self-Registration Step 1: Basic Information

Figure 13 Organization Self-Registration Step 3: Manager enters personal Login information

Figure 14 System gives a message and after a time delay logs off the Manager

Figure 15 Organization Self-Registration Step 3: Manager Updates the Organization Profile

Page 8: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 8 © 2018 Umnitech – Prepared David Talbot

Member Self Registration

Member Self Registration is a 2-step process. First, the individual sets up her Username and Password.

Figure 16 Member Self Registration Step 1: Set Name, Email, Username/Password, system logs off Member

Figure 17 Member Self Registration Step 2: Member fills in a complete Profile including Address and Map Position

Page 9: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 9 © 2018 Umnitech – Prepared David Talbot

System Design and Administration

Integration with Amazon AWS

Amazon AWS is a popular and well-proven cloud system. AWS is inexpensive to use in our environment. Sometimes,

our Umnitech AWS account costs only a few dollars a month.

We use Amazon AWS for two purposes:

1. To store videos and large files to minimize the impact on the Caspio Database Size resource

2. To securely initiate external interfaces, like Twilio SMS Messaging

Because Caspio is a JavaScript-based system, we do not call AWS APIs directly. An AWS API call requires credentials,

and we do not want to put the credentials in the web page, where they could be seen using a right-click “Inspect.”

We put an extra layer inside AWS which stores the credentials and invokes the API to Twilio or PayPal, etc.

In this way, we preserve security in calls to AWS Storage or external systems.

Within Amazon, files and videos are identified only by a single long ID key. AWS has no cross reference of videos and

files to actual people or organizations.

If your company prefers Azure or another system for cloud processing, it is easy to move UmniBase cloud programs to

any cloud system. Our cloud code block is quite small and initiated from a single central Caspio Datapage group.

Datapage Identification

Datapage Identification may seem a small item, but it is important. After deployment, it is easy to forget which Datapage

is you are using in a particular place. Narrative descriptions are not precise.

With hundreds of deployed Datapages, we needed a method to identify each Datapage. For example, our clients can say

“On Datapage ABC143, could you change the Heading to xxxxx…”.

For UmniBase, the Datapage ID is essential. The Datapage ID catalogs the International Language phrases and defines

our Automated WordPress Deployment Process.

Figure 18 The Datapage ID is discreetly visible on the screen

Figure 19 Datapage IDs are part of the Datapage title

Figure 20 The Datapage ID is inserted in the Header code where programs can access it

Page 10: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 10 © 2018 Umnitech – Prepared David Talbot

Figure 21 All Datapages are registered in our Datapage Catalog

Caspio REST APIs

Our main use for Caspio REST APIs is in Asynchronous Processes or “cron” jobs, where we are interacting with external

data sources together with the Caspio tables.

For tasks wholly within Caspio, we prefer to use Triggered Actions or Calculated Fields to insert or retrieve data. As

mentioned elsewhere, we think the logic in REST APIs tends to be hidden and is less easy to maintain.

As mentioned in the AWS Section, we use an extra AWS Layer with API calls to keep credentials secure.

Triggered Actions

We like Caspio Triggered Actions a lot. Triggered Actions are an excellent resource. Triggered Actions are free, quick,

and have perfect data integrity.

Before Triggered Actions were available, we used concatenated hidden Datapages to update multiple tables in a

sequential process. The hidden Datapage approach was slow, used extra Datapages, and could lose data integrity if the

network failed. We have switched all our hidden Datapage processes to Triggered Actions.

There are situations where we want to update multiple tables. A Datapage can only update a single table.

An example is after purchasing a service; we want to insert financial records into customer billing, supplier compensation,

sales rep commission, and company percentage tables. Multiple record insertions are easy to do with a Triggered Action

on the Order table.

For Umnitech, the big advantage of Caspio Triggered Actions over Caspio REST APIs is maintainability.

We do use Caspio REST APIs in certain circumstances, but we find the REST API logic more difficult to maintain.

In contrast, Caspio Triggered Actions have a wonderful graphical interface (here in Figure 22), which makes it easy to

follow and adjust the logic.

Figure 22 Example of a Triggered Action to insert a profile record during Self-Registration – great visualization

Continued on the next page

Page 11: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 11 © 2018 Umnitech – Prepared David Talbot

App Parameters

When we use code blocks in several places, we store the code centrally in App Parameters, and then in each Datapage

instance, we have a link to the relevant App Parameter.

We use this approach with Media, Comments, Picture display, Messages, etc.

Figure 23 The Message Subsystem implemented in an Entity Datapage

Figure 24 The extensive Email and SMS API code is stored centrally in App Parameters

Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system

Page 12: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 12 © 2018 Umnitech – Prepared David Talbot

Date/Time/User Record Stamp

All tables have a Date/Time/User Record Stamp which Administrators can optionally display.

Figure 26 The Record Statistics are optionally displayed for Administrators to aid diagnostic questions

Explanation of fields:

• Active Y/N – we do not do physical deletes, deactivate the record – so we keep history

• Created Date – when the record inserted date may be different from the Transaction Date

• Last Activity – often updated by a Triggered action, for example, if the Individual posts an Event

• Sequence – we use this in API Reads to take records in 1,000 record blocks, and also for report sort sequencing

• Add/Update Fields – convenient in diagnostics

Figure 27 The Date/Time/User Stamp

Page 13: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 13 © 2018 Umnitech – Prepared David Talbot

Custom Data Elements without Schema Change

We want to accommodate variations without changing the Data Schema. Changing the Data Schema moves the code

away from UmniBase and hampers maintenance. There is little penalty for long records.

Figure 28 Special data elements for Ice Hockey Players

Figure 29 Data Elements defined in the Field Definition table, by Channel, and by Entity Type

Figure 30 Available Data Elements in each Entity Table or Transaction table

Page 14: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 14 © 2018 Umnitech – Prepared David Talbot

System Administration subsystem

UmniBase is largely data-driven, so we have a System Administration Menu and some 14 Datapages to update the system

tables.

Clients rarely change these tables after the system is in production. Hence, we recommend that clients do not “Deploy”

these Datapages, but if changes to the data are needed, clients should run these programs in Preview Mode.

Figure 31 The System Administration Menu

Menu Definitions

All Menus are Data-driven. The Channel ID defines these Menus for Multi-Channel operation.

Menus are rendered in a Caspio HTML Datapage, and so incorporate Caspio Security. Menus are Role-based and

incorporate International Language presentation - Figure 73.

Figure 32 Menu Definitions

Datapage Definitions

We catalog all Datapages in a convenient searchable list, so we can identify which client and which Datapage may need

attention. Unique Datapage IDs are a key UmniBase feature.

Figure 33 Datapage Definitions

Page 15: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 15 © 2018 Umnitech – Prepared David Talbot

Datapage Text Definitions

These Text Definitions are keyed on the Channel and Datapage ID and provide for Label Alias and International

Language presentation.

Figure 34 A Datapage-specific International Language Definition

Deployable Web Page Definitions

These Definitions are for internal UmniBase use. These Definitions drive our Automated Deployment Process

Our Automated Deployment Process for WordPress uses WordPress and Caspio APIs to generate all the WordPress Web

Pages. Then the Process creates the Caspio Deployment Codes and embeds the Caspio Deployment codes into the

associated WordPress Web Pages.

Weebly does not have “Page Create” APIs, so our Weebly implementations are manual and take just a few hours.

Figure 35 The Deployable Web Page Process table

Continued on the next page

Page 16: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 16 © 2018 Umnitech – Prepared David Talbot

Channel Constants

The most important Channel Constant is the website URL. Within UmniBase we use this value for two purposes:

1. For open Home Page Datapages, such as “Search for Events near me,” we use the URL to get the Channel ID

2. For Authentication, we crosscheck the URL as the third piece of Authentication information

Figure 36 A Channel Constants record for a particular Channel

Entity Field Definitions

We want to keep a good record of which client and which Channel uses a particular generic data element for a given

specific purpose – please see Figure 28. The Entity Field Definition table catalogs this information.

Figure 37 Entity Field Definitions

Universal Login

We use this report infrequently to investigate Login or Authority issues.

Figure 38 Universal Login List

Page 17: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 17 © 2018 Umnitech – Prepared David Talbot

Report Structure

Reports pose an important question in the balance between flexibility and economy of Datapages.

We like the 2-Datapage Report approach, favored by Caspio, shown here in Figure 39.

From a convenience point of view, it is easy to use several criteria, including external criteria. The best part is that the

criteria are visible above the Results Set, so the user knows the selection chosen.

The display is good for repetitive searching.

Figure 39 The 2-Datapage “Select” and “Report” approach

However, the 2-Datapage approach can lead to a proliferation of Datapages.

Consider the case of a company with several Client Organizations with each Client Organization having several

Locations.

On the Locations report:

• The Company Administrator can see all Locations from all Client organizations

• The Client Organization Manager can see all Locations within her Organization

• The Client Organization Staffer can only see her Location

Traditionally, we would use the User Login Role with Caspio Record Level Security to restrict the visibility required in

the above example.

One can only have a single Authentication on a given Datapage so that this approach would need 6 Datapages:

• Admin (Mgr. or Staff) Select includes a selection of “Organization” or “All Organizations.”

• Admin (Mgr. or Staff) Report no record restriction, except Channel ID

• Organization Manager Select includes a selection of “One of My Locations” or “All My Locations.”

• Organization Manager Report restricted to only “My Organization.”

• Organization Staffer Select no “Organization” or “Location Selection.”

• Organization Staffer Report restricted to only “My Location.”

This use of a large number of Datapages is not ideal. Our objective for the Report Structure was:

• 2-Datapage style Reports throughout – similar to Figure 39

• A single “Select” Datapage covering the whole implementation

• A single “Report” Datapage for a given topic that securely restricts data visibility to the user’s Authorized Role

Consider an example. We have the 3 Authority Roles from the above example (Administrator, Organization Manager, and

Organization Staffer), and we want reports on 4 Entities: Locations, People, Orders, and Payments.

Using the traditional approach, we would need 2 Datapages (Select and Report) x 3 Roles x 4 Reports = 24 Datapages.

A 24-Datapage approach is not feasible. In the UmniBase approach, we need a single system-wide Select Datapage, and

one Datapage for each of the four types of Report, or 5 Datapages total.

Continued on the next page

Page 18: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 18 © 2018 Umnitech – Prepared David Talbot

The key to our approach is twofold:

• Using our Universal Login subsystem to determine Authority Roles from a single Authentication

• In the single “Report” Datapage, instead of Record Level Security, use the “Logic” tab to narrow down the data

selectivity

In developing our approach, we were very sensitive to security and rejected several approaches because an experienced

programmer could figure out the sensitive data.

We think our approach is 100% secure as all parameters are “Bridge” server-side parameters, and not visible in the

browser address bar or on an “Inspect.” Even if the person knew the Caspio App key, he could not get to unauthorized

data.

Figure 40 Reports use the UmniBase Universal Login to determine Authority Role from a single Authentication

Figure 41 The “Report” Datapage uses the Logic tab for selectivity, rather than Record Level Security

,

Page 19: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 19 © 2018 Umnitech – Prepared David Talbot

Media

Our UmniBase Media Subsystem allows you to store unlimited Videos, Images, PDFs, etc. from any of your Entity or

Transaction Detail Pages.

For example, you might want to attach a scan of an original invoice to a Payment Transaction. A hockey player may want

to show a video of the goal she scored. Real estate folks want high quality, high resolution, and large file size property

pictures.

We can attach our Media Subsystem to all of your Detail pages, using a small code snippet, such as illustrated in the

Figure 23 section.

The Media Subsystem reuses just 2 Datapages across your whole system. We store Media securely in Amazon AWS, so

file sizes do not impact your Caspio Database Size Resource.

Media Example

Figure 42 Media Step 1: Code Snippet shows outstanding Media/Comments/Messages

Figure 43 Media Step 2: No Media so far, but “Add Media”

Figure 44 Media Step 3: Choose a video

Page 20: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 20 © 2018 Umnitech – Prepared David Talbot

For security, we use AWS APIs invoked from an AWS server-side object.

Figure 45 Media Step 4: Upload Media

Figure 46 Media Step 5: Progress Bar

Figure 47 Media Step 6: Media stored in AWS

Figure 48 Media Step 7: The video is in the Results Page

Figure 49 Media Step 8: Play the video

Page 21: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 21 © 2018 Umnitech – Prepared David Talbot

Figure 50 Media Step 9: Add more videos, pictures, and PDFs

Figure 51 Media Step 10: Right Click to Open Image full size in a new tab

Figure 52 Media Step 11: PDFs can be scrolled or right click to view full size or print

Page 22: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 22 © 2018 Umnitech – Prepared David Talbot

Comments

In a similar fashion to Media, Comments may be enabled system-wide using just 2 Datapages.

As Comments are text and very small in file size, we store Comments directly within Caspio.

In contrast, videos have large file sizes, so we store the actual video files external to Caspio in Amazon AWS. In Caspio

we store the AWS reference key – maybe 15 characters.

Comments Example

Figure 53 Comments Step 1: Datapage enabled with Comments code link to App Parameters – zero Comments

Figure 54 Comments Step 2: Add Comment button

Figure 55 Comments Step 3: Adding a Comment

Figure 56 Comments Step 4: Comment first few characters listed – View Detail

Continued on the next page

Page 23: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 23 © 2018 Umnitech – Prepared David Talbot

Figure 57 Comments Step 5: Optionally on the Detail Page the Administrator can see diagnostic information

Figure 58 Comments Step 6: The Comment count is updated

Page 24: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 24 © 2018 Umnitech – Prepared David Talbot

Messages

At this time, UmniBase only supports Outbound Messages. Inbound Messages will be a future feature.

Email Messages

For Email Messages, we interface with SendGrid via our secure AWS API layer. Up to 100 emails per day are free; then

the cost is very minimal.

For low volume acknowledgment emails, we recommend the Caspio email subsystem.

In addition to Caspio, we wanted an approach that:

• Could be attached to any Detail Page

• Is suitable for high volume emails

• Allows us to build a complete Message History

• Only takes 2 Datapages to be available across your whole Caspio implementation

For an Entity, such as an Organization, one needs to define an Email Address (such as [email protected]) and an SMS Phone

Number, as shown in Figure 60.

Figure 59 Sendgrid: https://sendgrid.com/

Figure 60 Contact Information for Messaging to an Organization

Email Message Example

Figure 61 Email Message Step 1: There are already eight previous Messages to this Organization – click button

Continued on the next page

Page 25: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 25 © 2018 Umnitech – Prepared David Talbot

Figure 62 Email Message Step 2: Message History plus “Send Message” button

Figure 63 Email Message Step 3: Choose Email Message, type text and “Send Message

Figure 64 Email Message Step 4: Confirmation of “Send” – (does not confirm “Receipt”)

Figure 65 Email Message Step 5: Email Is Received

Figure 66 Email Message Step 6: We record Emails in the Message History

Page 26: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 26 © 2018 Umnitech – Prepared David Talbot

Figure 67 Email Message Step 7: Message Detail from Message History

SMS / WhatsApp Messages

For SMS / WhatsApp Messages, we interface with Twilio via our secure AWS API layer. You may send unlimited

Messages within the United States or internationally for about 1 cent per message.

As corporate phone systems usually do not accept SMS Messages, and Organization/Location, etc. must input the

Messaging Phone Number as shown above in Figure 60.

The phone number must have the Country Code Prefix, such as +44 for the UK.

Figure 68 Twilio: https://www.twilio.com/

SMS Message Example

Figure 69 SMS Message Step 1: Send Message button

Figure 70 SMS Message Step 2: Select SMS Message, compose Message and “Send”

Continued on the next page

Page 27: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 27 © 2018 Umnitech – Prepared David Talbot

Figure 71 SMS Message Step 3: Message is received

Figure 72 SMS Message Step 4: Message added to Message History

Page 28: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 28 © 2018 Umnitech – Prepared David Talbot

International Language and Label Aliases

Caspio manages International Language using Localizations, and this is a very good approach if the need is for a small

number of Datapages and Languages.

The limitation is that each Datapage needs a duplicate Datapage for each Language. 3 Datapages in 4 Languages would

require 12 Datapages. Apart from using the Datapage Resource pool, extra Datapages mean more maintenance. In that

example, to implement a change on a Datapage, you must replicate and test the change on all 12 Datapages.

For UmniBase we had the following objectives:

• Enable Unlimited Datapages and Languages without additional Datapages

• Minimal change to enable International Language on an existing Datapage - Figure 75 below

• Represent right-to-left and symbolic (logogram) Languages like Chinese

• Display Label Aliases for different user types or Channels on the same Datapage

• Have both System-wide and Datapage-specific Phrase Definitions

• Enable a link to Google Translate

Figure 73 A menu showing Language Selection Flags (some people prefer Language Names)

Figure 74 Supported Languages from Channel Constants in Figure 3

Figure 75 To enable complete International Language on an existing Datapage, copy this line into the Footer

Page 29: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 29 © 2018 Umnitech – Prepared David Talbot

We put the UmniBase Translator code in App Parameters – see Figure 23 – and so we need to paste the small code

snippet into each Datapage - Figure 75.

On launching the Datapage, the Translator scans the Datapage for Labels. The UmniBase Translator matches each Label

against both the System Phrase Library and the Datapage-specific Phrase Library for the requested Language. If the

Translator finds a match, the desired Language is displayed instead of the default English.

We also use this approach in Multi-Channel systems, where one Channel calls its Organizations “Employers” and the

second Channel calls its Organizations “Teams.”

We have configured the Translator for a direct interface to Google Translate. However, for Labels, Google Translate is

probably not quite good enough, so we do not yet have an operational Google Translate implementation.

Label Alias Example

Figure 76 Alias Step 1: Original Page

Figure 77 Alias Step 2: Change the Label Definition in the Text Definition Phrase Library for Datapage “TGB023”

Figure 78 Alias Step 3: New Label is displayed – no change to the Datapage

Page 30: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 30 © 2018 Umnitech – Prepared David Talbot

System-wide Example

Figure 79 System-wide Step 1: New Label for the common phrase “Log Out” with alternate Languages

Figure 80 System-wide Step 2: Default Label shows

Figure 81 System-wide Step 3: Click Russian Flag (no need to sign out)

Figure 82 System-wide Step 4: Click Chinese (Mandarin) Flag

Continued on the next page

Page 31: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 31 © 2018 Umnitech – Prepared David Talbot

Datapage-specific Example

Figure 83 Datapage-specific Step 1: Default setting

Figure 84 Datapage-specific Step 2: Defining the Language Phrases for Datapage “TGB023”

Figure 85 Datapage-specific Step 3: Click on German Flag (This is a “session variable” – active for this session)

Figure 86 Datapage-specific Step 4: Click on Arabic Flag

Page 32: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 32 © 2018 Umnitech – Prepared David Talbot

Maps

Maps Example

UmniBase has a worldwide location, and Latitude/Longitude capability which we can retrofit to any Submit or Detail

Datapage. To add maps, we generally do not require any extra Datapages.

Example: Caspio office in Ukraine:

Barykadna St, 15A

Dnipro

Dnipropetrovsk Region, Ukraine 49000

Figure 87 Map Step 1: The Map Centers on the City from Country/Region/City lookup (or USA City/State/Zip)

When you enter the street name and number, and press “Center Map,” UmniBase sends the street address to Google

Maps, and receives back the exact building coordinates and then centers the pointer on the building.

We use the “Center Map” button to avoid “chattering” between Caspio and Google Maps.

Figure 88 Map Step 2: Enter the street name and number and press “Center Map” – map positions on the building

Figure 89 Map Step 3: You can move the pointer to a different building if required

Page 33: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 33 © 2018 Umnitech – Prepared David Talbot

On Update, UmniBase calls a Google Maps API to retrieve and store the Latitude and Longitude.

Figure 90 Map Step 4: We store the exact position and Latitude and Longitude in your Caspio database

Figure 91 Additional Maps Example: Your Homepage can have searchable map Events, etc.

Single Worldwide Places table

Figure 92 We retrieve City Lookups from our single Worldwide Places table

Figure 93 For specific Countries (here UK) we have appended City/Lat/Long additional data to Worldwide Places

Page 34: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 34 © 2018 Umnitech – Prepared David Talbot

Map Examples

Figure 94 Old high school

Figure 95 Previous apartment in a small town in Russia - exact apartment number on the map

Figure 96 Software company in Romania – exact position of the main entrance to the building

Figure 97 Friend in Kaliningrad, Russia – exact apartment number

Page 35: Feature Reference - UmniTech...Figure 25 The Datapage needs only a small code snippet – it is easy to retrofit across your whole system UmniBase: 1556 – Feature Reference Updated

UmniBase: 1556 – Feature Reference Updated October 12, 2018 Page 35 © 2018 Umnitech – Prepared David Talbot

Figure 98 House in San Diego – exact position

(end of document)