Documentation

Overview

Workbase allows you to build workflow automation directly on top of your data warehouse. Your data warehouse is your source of truth for key company data. Workbase enables Analytics and Operations teams to activate this data for internal business consumption without engineering resources.

Unlike event-based automation tools, Workbase specializes in record-based, analytics-based automations. This makes us more suited for scaled use cases that rely on the data warehouse.



Key Concepts

Data Sources
Workbase primarily connects to data warehouses like Snowflake, BigQuery, and Redshift. We also support specific SaaS tools like Zendesk and Intercom. However, we recommend loading data from your data warehouse wherever possible.


Data Modeling
Unlike a generic SaaS tool, Workbase ingests flexible schemas without requiring additional field mapping. (Unless you’re using us for reverse ETL capability).

We require each workspace to have a unified data model. An account can have multiple workspaces, but each workspace has one unified data model. This promotes better consistency, governance, and ease-of-use, particular for business end users.

The unified data model is defined by objects and relationships between objects.
- An object is defined as any table(s) in the data source; for example, Accounts can be an object
- A relationship is a join between tables. We support full joins and left joins

The unified data model is a Workbase abstraction. Objects can be created from multiple data sources. For example, an account could be defined by the intersection of Salesforce Accounts and Zendesk Orgs. Once created, all data fields in an object can be referenced.


Data Sync
Workbase stores a copy of the data as defined in the unified data model. The sync frequency is set in the app. Currently, daily, weekly, and custom hourly intervals are supported. Data syncs are managed on an object basis. We currently do not have a limit on row or field count for each sync.

However, performance is most optimized when the row limit is within 100,000 for each object. This is subject to change as we continue to invest in scalable infrastructure.

Workbase keeps track of records that have already been synced and only syncs new records or data fields. We currently only support UI-based deletion of records.



Application

Modules
A module provides a namespace for users to organize their use cases on Workbase. A single module can contain any number of actions, formulas, syncs, and pages in Workbase. These components make up the core of Workbase functionality.


Actions
An action is defined as a set of conditions and one or more downstream actions to be taken if the conditions evaluate to true per record. Actions can be defined on any object in the unified data model.

Conditions are boolean operators that can access any field loaded in the unified data model. The user interface allows for nesting of AND and OR operators. If a new record is created, Workbase automatically sets all conditions to be false. This allows for actions to be triggered when a new record is created.
Note: unlike event-based tools, Workbase evaluates conditions only when a data update is detected. Practically, this means conditions are only evaluated when a data sync is completed.


Formulas
A formula is a set of arithmetic or other operations on any combination of fields in the unified data model. Each formula is stored natively within Workbase for the object to which it pertains. 

There is no limit on the number of formulas that can be created. Formulas can reference other formulas. In scenarios where multiple formulas reference each other, Workbase stops the evaluation after 5 iterations.

Actions can refer to formulas just as any other field in the unified data model.

Formulas are a powerful tool to build business logic, last-mile analytics, chained business calculations, and additional data modeling (eg., aggregations, look-ups) into Workbase.

For example, they can be used to super-charge alerts:
Comparisons
Filtering
State store
Benchmarking
Time-based
Stacking
L1M users >20% L12M users
Only Enterprise accounts
Go from Red account to Green
Top 5 log-ins among accounts
30 days since renewal
No change since first alert


Syncs

A sync is an integration that copies a field in Workbase into a corresponding field in a downstream SaaS tool. This effectively provides reverse ETL capability.
We primarily support Salesforce and Hubspot for downstream syncs, and require these two data sources to be directly integrated with Workbase.
A sync is defined by attaching a formula to any data field pulled in from Salesforce or Hubspot. It is evaluated after data is first synced into Workbase, and after all action triggers and formulas are evaluated.


Pages
A page is a UI-based dashboard that can be built within Workbase for each object. A template of the dashboard is built with a no-code, drag-and-drop interface that can access all underlying data in the unified data model. 
Once the template is created, Workbase applies the template to each record for that object that is loaded into Workbase.
Workbase hosts the dashboard on our servers. We also support embedding the dashboard as an iFrame within Salesforce.



Supported Integrations

Primary
Data Warehouses: Snowflake, Redshift, BigQuery
CRM System: Salesforce, Hubspot

Enrich
SaaS Apps: Amplitude, Google Sheets, Intercom, Jira, Marketo, Zendesk, NetSuite
Delivery Channels: Slack, Email, Salesforce

Contact us for additional integrations requests.



Architecture Diagram
Workbase runs on Google Cloud Platform (“GCP”) and is expanding to Amazon Web Services (“AWS”). On GCP, server-side code is run on Cloud Functions. Data is stored in a combination of real-time schema-less databases and standard relational databases. Presentation, business logic, and data storage layers are separated to promote scalability and security.


Warehouse Setup


A. Provide access credentials

Workbase requires access credentials for any data warehouse connection.

Hostname: IP address or domain of database
Username: user name (read-only or service account)
Password: password (securely encrypted)
Database Name: name of database to connect to
Schema: schema if different from default schema
Port: port number if not the standard port

Support for security protocols like VPC peering, whitelisting static IPs, etc. can be supported upon request.
B. Choose a table to sync

Workbase allows users to load in any table that an account has access to. 

Label: name of table
Path: internal path of table
Unique Field: field to use as the primary key
Display Field: field to designate name of each record
Sync Type: core (full join) or enrichment (left join)
Sync Schedule: nightly, weekly or custom (ie., 2 hours)
Sync Status: enabled or disabled
C. JOIN on data fields

Workbase allows users to define joins across tables once and use everywhere.

Joining two tables together entails defining the field(s) from one table that need to match the corresponding field(s) from the second table. Workbase supports complex nesting.

Workbase helps maintain a graph of all tables that are joined together. This means that the user can directly access all data fields in joined tables, so joins are not limited to only pairwise operations.

‘Core’ sync types are full joins while ‘enrichment’ sync types are left joins.
D. WHERE criteria are met (optional)

Workbase by default pulls in all records from tables it has connected to.

In situations where it’s not necessary to pull in all records, Workbase supports filtering on individual record fields.
Actions

A. Slack
Workbase supports sending of text-based messages to Slack channels. We require the Workbase Slack Bot to be invited to a channel in order for us to send messages there.

Channel: channel to target
Message: message to send. Currently, messages are capped at 5,000 characters. Any field in the unified data model with {{ }}.  For example, {{ account_name__c }}
Botname: display name of the Workbase bot. Default is ‘Workbase Bot’
Icon: logo of the Workbase bot. Default is the Workbase logo
User Name: any users to tag. This can be dynamically referenced by the Slack user ID within {{ }}. For example, {{ slack_id }}


B. Email
Workbase supports sending of text-based messages via email. Workbase uses Sendgrid as our email provider.

To, CC, BCC: email address of recipient. This can be dynamically referenced by any email address within {{ }}.  For example, {{ account_owner_email__c }}
Subject: email subject. Any field in the unified data model with {{ }}.  For example, {{ account_name__c }}
Email Body: email body. Any field in the unified data model with {{ }}.  For example, {{ account_name__c }}. Linking to specific account and opportunity pages also possible. Currently, rich text-based emails are not supported, but we will provide support soon
Attachments: currently not supported, but we will provide support soon


C. Salesforce
Workbase supports creating leads in Salesforce. Support for creating other objects (Opps, Accounts, Tasks, Campaign Members) is coming. Workbase automatically pulls in all fields in the leads object, including required fields. Please note that if required fields are not filled out, the creation of the lead will be rejected.

Last Name: last name
Company: company name
Email: email address
Other fields as provided...


D. Hubspot
Workbase supports creating deals in Hubspot. Support for creating other objects (Company, Contact) is coming. Workbase automatically pulls in all fields in the deals object, including required fields. Please note that if required fields are not filled out, the creation of the lead will be rejected.
Deal Name: deal name
Amount: amount
Stage: deal stage (selector)
Hubspot Owner ID: owner ID
Other fields as provided...



Pages Widgets

As of April 2021