Design Overview
An overview of the Digital-Clay platform from a design and architectural point of view.
Goals
Digital-Clay is a generic and comprehensive platform enabling users to build almost any conceivable system that revolves around data, without writing a single line of code, script or SQL query.
The user interface is layered, showing extremely simple, user-friendly and intuitive tools for basic users, while still providing underlying, powerful and very flexible tools and features for more advanced users or developers building a system, all using a point-and-click interface. See below for more on the basic types of users.
Note that Digital-Clay is not designed to be a front-end to other systems, but is a stand-alone and complete system with its own database, which is capable of being integrated with other systems with minimal programming. See below for integration options.
The system is designed so that a single implementation may be deployed with a variety of databases and clients. Most features work identically regardless of the underlying database, and users can connect to a single Digital-Clay system via desktop clients, web browsers, and an Outlook plugin. Users may also work offline.
Scope
Digital-Clay covers a wide range of functionality and is completely generic. Digital-Clay has been implemented to manage everything from CRM data, human resources, and accounting, to school curriculums, warehouses, disaster management, article management, various BI and analysis projects, billing systems, various unique service providers, etc.
The core functionality categories covered by Digital-Clay are:
Each of these categories include thousands of features for customizing the system based on years of working closely with customers. Features are constantly being added and improved at a rapid pace based on customer feedback.
Architecture
The diagram on the right presents the layered architecture stack of the Digital-Clay platform. Some notes:
All clients connect to the ClayCentral server, not to the database. ClayCentral provides database abstraction, automation triggers, and enforces security permissions and field properties.
The database can and should be locked down so that only ClayCentral can connect to it. That is, unless you need to extract information directly from the database for external systems. Note, however, that while any system may read from the database, only ClayCentral is allowed to write to it. See below for integration options.
Offline Usage is available with desktop clients, retrieving data from a local synchronized MDB database.
Users
A Digital-Clay system allows for a separation, as necessary, between the following types of users:
System Administrators: Standard server, database and network administrators with minimal knowledge of Digital-Clay. Responsibilities may include hardware and operating system configuration, network administration, database administration, backup systems, web-server configuration, failover clusters, Digital-Clay deployment and
installations, etc. Most of these tasks may be offloaded to a third-party or hosted by a solution provider.
Digital-Clay Administrators: These are usually advanced Clay users or experts, either handled by in-house administrators, or by project managers via third-party solution providers. These users typically use the ClayStudio and ClayIntegrator clients. Their responsibilities may be further separated as follows, but these are often handled by the same people:
Database structure, tables, fields and links. No SQL knowledge is necessary but understanding of basic database concepts is useful. Also, because of Digital-Clay's unique
Custom Links abstraction, all other users do not have to know the table structure or how to join tables for queries and analysis.
Automation: Building the logic to enforce company business rules. This is usually handled by the same person that builds the tables.
Profile and user management, permissions, layouts, toolbars, etc. Managers can centrally manage their employees, fine-tuning their permissions, adding queries, templates, and other objects to the profile toolbars as needed, all customized per user or group of users.
Integration: Importing and exporting data, or calling external systems. This is usually handled by experts of both systems, but in basic cases may involve a simple import session using the
ClayIntegrator.
End-users: These users often require little or no training and use the various types of ClayStation clients. Power users may customize their own local profiles, otherwise they use profiles assigned to them and built by their administrator. Users can add and use filters and columns easily without understanding table structures, and analysts can use powerful BI tools with minimal training and without building SQL queries or joining tables.
Integration
Integrating Digital-Clay with other systems is done primarily through any of the several options listed here for importing and exporting data.
If custom logic is required beyond the standard Custom Functions in Digital-Clay, External Functions may be used to program custom functions using database code, or via web applications (custom or third-party) in order to retrieve or transform values.
If programming a customized GUI is required, or the user interface must be integrated with an external application, see Add-Ons/External GUI for some available options.
A REST API is also available for complete programmable control of Clay from external applications, or for use in a completely custom-programmed front-end to Clay.
Tip for synchronizing data between applications: When synchronizing records between Digital-Clay and an external data source, a custom field can be added that contains the external ID used for identifying the record, or a combination of fields (e.g. Name+Phone) may be used to uniquely identify the record.
Importing Data
For importing many records at once, either one time or periodically, use
ClayIntegrator. ClayIntegrator can also mass-transform data using advanced transformation rules. This is a pull action that can run on a schedule.
To import or update individual records in real-time triggered by external applications or database triggers, use
Data Injection.
Automation rules can be used to further process the incoming data in real-time. This is a push action.
For retrieving field values dynamically and on-demand from other systems or web sites, use
External Functions. This is a pull action that runs based on Digital-Clay triggers.
Exporting Data
Use
External Functions to send updates in real-time to web sites, databases and web services.
To pull information from Digital-Clay, or to extract data with custom SQL queries, you can connect to the ClayCentral database directly. Bulk Actions may be used to create pre-aggregated data on large tables. Note that this is for reading data only. Writing data into the database directly is forbidden as this bypasses ClayCentral and can therefore cause numerous problems or even corrupt data.
Reports can be generated manually with
Document Templates and sent via e-mail. But you can also automate this and periodically send reports to external users and systems using Automation.