> For the complete documentation index, see [llms.txt](https://docs.infotopics.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.infotopics.com/trulyp/writebackextreme/schemas.md).

# Schemas

A schema is the collection which contains everything about your use-case. The schema will contain information about the selected database, module, user groups and the configuration of the structure of the write-back table. Whenever you create a new schema you have to choose one of our modules first. Depending on the selected module the setup of your schema will be different.

### Create a new schema

#### Step 1: Type & Connection

To create a schema:

1. Go to the **Schemas** section in Trulyp, under WriteBackExtreme.

<figure><img src="https://2312557015-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWbWxEBax8PKTjFYRLWgi%2Fuploads%2FhE6HxZyrOBJMesehhLUV%2FWriteBackExtreme_Schemas_Create_Step1.png?alt=media&amp;token=c0a234a2-770a-4b92-8781-94401317513d" alt=""><figcaption></figcaption></figure>

2. Choose your schema type. If you don't know what type of schema best fits your needs, you can find out under [#what-kind-of-schema-should-you-use](#what-kind-of-schema-should-you-use "mention"). For this example, we will make an "Add Data" schema.
3. Afterwards, choose what your connection, or add a new one if you have the right permissions. If you don't see any connections, none of your groups have any connections assigned to them. Ask a **connections manager** or **admin** to assign one for you. Afterwards, press **continue**.

<figure><img src="https://2312557015-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWbWxEBax8PKTjFYRLWgi%2Fuploads%2FG0n8v10JKZVkcCKU22WY%2FWriteBackExtreme_Schemas_Create_Step1.2.png?alt=media&amp;token=68cfb5d0-879d-4a95-9205-347dcac61671" alt=""><figcaption></figcaption></figure>

#### Step 2: Schema & Fields

In this step, we will add the label and table name, along with the **Fields** that we want to use for the Schema. In this example, I want an **id,** **name** and **age** column. The id is the primary key, name is a single line text, and age is a number.

#### 🧩 Supported field types

When adding fields to your schema form, you can choose from the following input types:

* **Single Line Text** – For short entries like names or codes
* **Paragraph Text** – For longer free-text comments
* **Number** – For numerical values
* **Boolean (Yes/No)** – For binary selections
* **Dropdown Select** – For predefined options
* **Date/Datetime** – For selecting dates or timestamps

<figure><img src="https://2312557015-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWbWxEBax8PKTjFYRLWgi%2Fuploads%2FjsaKshzDV59szXeWvcSa%2Fimage.png?alt=media&amp;token=2b19ec16-19b6-4ba3-9f4c-bca6da50d42f" alt=""><figcaption></figcaption></figure>

After you have created all the fields you require, click **continue.**

#### Step 3: Review

<figure><img src="https://2312557015-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWbWxEBax8PKTjFYRLWgi%2Fuploads%2FAGBFVfZ4yob2bEKN6jPB%2Fimage.png?alt=media&amp;token=5c712004-6b39-420d-8cae-3eba33e2cb75" alt=""><figcaption></figcaption></figure>

The final step is to review the schema. If everything looks correct, press **Create schema**.

## What kind of schema should you use?

Choose a module based on **what you want users to do with data in Tableau**. For example use cases, you can click on the following pages

| If you want to...                                                                                                                                                | Use                                  |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| [Add targets, forecasts, scenarios, or other new records](/trulyp/writebackextreme/schemas/what-type-of-schema/add-targets-goals-or-new-records.md)              | **Add Data**                         |
| [Correct or update existing data](/trulyp/writebackextreme/schemas/what-type-of-schema/correct-or-update-existing-data.md)                                       | **Data Correction**                  |
| [Maintain helper tables, mappings, lists, or supporting data](/trulyp/writebackextreme/schemas/what-type-of-schema/maintain-helper-tables-or-supporting-data.md) | **Data Helper**                      |
| [Discuss and annotate data](/trulyp/writebackextreme/schemas/what-type-of-schema/discuss-and-annotate-data.md)                                                   | **Collaboration** *(Add Data addon)* |

***

### Create schema based on an existing schema

For a data correction schema it is possible to connect to a database table that already exists in your database. The only requirement is that the table has ONE primary key. (Compound keys are not allowed)

To create a schema from an existing table follow these steps:

1. Create new schema
2. Select `Data correction` module
3. Select `Use existing schema`
4. Select the connection which connects to the database where the table is located
5. A list of all tables will be presented, Select your table. (when the list is to large, just use Ctrl+F to actiate the search function in your browser)
6. The new schema wizard will show with all detected columns matched to the field types that WriteBackExtreme uses.

{% hint style="warning" %}
For best compatibility make sure the ID column of the table is a UUID column for example CHAR(36). An example statement for a table could look like:

create or replace MY\_TABLE(\
ID CHAR(36) NOT NULL,\
COLUMN\_1 VARCHAR(16777216),\
constraint MY\_TABLE\_ID primary key (ID)\
);
{% endhint %}

{% hint style="info" %}
When the management console shows an error about a missing primary key, the best way to verify this is by getting the `DDL statement` or `Create table` statement from a third party database management tool like DBeaver. This is the easiest way since every database has it's own way of retrieving the primary key information.

<img src="https://content.gitbook.com/content/WbWxEBax8PKTjFYRLWgi/blobs/OQwYpMUpNRSQ4My7k2yW/Screenshot%202025-02-05%20at%2013.59.49.png" alt="" data-size="original">
{% endhint %}

{% hint style="info" %}
This `Create schema from existing schema` feature can be disabled by an administrator via the advanced settings page.
{% endhint %}

{% hint style="info" %}
When there is an error in retrieving the tables or the details of a table, the error log will probably show the true cause. Go to Info & license -> Click on system logs and click the laravel log of today to see the details of the error.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.infotopics.com/trulyp/writebackextreme/schemas.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
