# Prompting

Ninox 4 comes with a built in AI assistant. You can think of it as a helpful colleague who is very fast at reading, writing and explaining things. It also knows a lot about data, logic and language.

In the beginning, you use the [Ninox AI assistant](/getting-started/builder-getting-started/intro-to-the-ninox-ui/ninox-ai-assistant.md) mainly for one thing:\
to create your first app from a description and refine that description until the app fits your needs.

## What a prompt is in Ninox 4 <a href="#what-a-prompt-is-in-ninox-4" id="what-a-prompt-is-in-ninox-4"></a>

A prompt is what you type into the Ninox AI assistant to describe the app you want to build.

You tell Ninox AI:

* what kind of app you want,
* for which use case or team,
* and which data you want to track.

Ninox AI then turns this description into an initial data model:

* tables,
* fields in each table,
* relationships between tables.

You stay in control. If you do not like the result, you refine your description and try again or adjust the data model manually.

## Getting started: describe your first app <a href="#getting-started-describe-your-first-app" id="getting-started-describe-your-first-app"></a>

When you land on the blank app creation screen, you see the Ninox AI assistant panel with an input field like “Describe what you want to create”.

<figure><img src="/files/CkPJgHp81izNukyYWqUL" alt=""><figcaption></figcaption></figure>

You can start with a short sentence. For example: "I want an app to manage customer projects and invoices."

This is enough for Ninox AI to create a basic structure, but you will get a better result if you add a bit more detail.

### Examples of better and worse prompts <a href="#examples-of-better-and-worse-prompts" id="examples-of-better-and-worse-prompts"></a>

Seeing concrete examples is often the easiest way to learn prompting. In the following pairs you will find a short, vague prompt next to a more helpful version for the same task.\
You do not have to write long texts every time. A few extra words of context already make a big difference in the first version of your app.\
Notice how a little extra context, a clear goal and a hint about the outcome already help.

#### CRM example <a href="#crm-example" id="crm-example"></a>

<table data-header-hidden><thead><tr><th width="153.6953125">Quality</th><th width="279.86328125">Prompt</th><th>Explanation</th></tr></thead><tbody><tr><td>⛔️ Less helpful</td><td>"Create CRM app."</td><td><p>Ninox AI has very little to work with:</p><ul><li>It does not explain what kind of CRM you need.</li><li>It does not say who will use it or for which process.</li><li>It does not describe which data you want to store or report on.</li></ul></td></tr><tr><td>✅ More helpful</td><td>"I need a simple CRM app to track B2B customers and sales opportunities.<br>Create the main tables for this, including useful fields and relationships between them."</td><td><p>This more helpful prompt works better because:</p><ul><li>It describes the use case: B2B customers and sales opportunities.</li><li>It defines the scope: a simple CRM app.</li><li>It tells Ninox AI to create tables, fields and relationships.</li></ul></td></tr></tbody></table>

#### Projects example <a href="#projects-example" id="projects-example"></a>

<table data-header-hidden><thead><tr><th width="153.6953125">Quality</th><th width="279.86328125">Prompt</th><th>Explanation</th></tr></thead><tbody><tr><td>⛔️ Less helpful</td><td>"Create an app for projects."</td><td><p>This is very general:</p><ul><li>It does not say what “projects” means in your context.</li><li>It does not say which information you need for each project.</li><li>It does not show how projects relate to other data, such as customers or tasks.</li></ul></td></tr><tr><td>✅ More helpful</td><td>"I want an app to manage customer projects for a small agency.<br>Each project belongs to one customer and has a budget, start date, end date and status.<br>Create tables for Customers, Projects and Tasks, with tasks linked to projects."</td><td><p>This more helpful prompt works better because:</p><ul><li>It names the context: a small agency with customer projects.</li><li>It lists important fields for projects: budget, start date, end date and status.</li><li>It mentions relationships between tables: customers, projects and tasks.</li></ul></td></tr></tbody></table>

#### Vacation planner example <a href="#vacation-example" id="vacation-example"></a>

<table data-header-hidden><thead><tr><th width="153.6953125">Quality</th><th width="279.86328125">Prompt</th><th>Explanation</th></tr></thead><tbody><tr><td>⛔️ Less helpful</td><td>"Create holiday tracker."</td><td><p>Ninox AI has to guess many things:</p><ul><li>It does not say whether you track people, requests or both.</li><li>It does not describe which dates and status values you need.</li><li>It does not explain how approvals should work.</li></ul></td></tr><tr><td>✅ More helpful</td><td>"I need an app to manage employee vacation requests.<br>Create tables for employees and vacation requests.<br>Each vacation request should have an employee, start date, end date, status and approver."</td><td><p>This more helpful prompt works better because:</p><ul><li>It defines the main tables: Employees and Vacation requests.</li><li>It lists key fields for each request: start date, end date, status and approver.</li><li>It shows how records are linked: each vacation request belongs to one employee.</li></ul></td></tr></tbody></table>

### General principles for good prompts <a href="#general-principles-for-good-prompts-in-the-app-creation-flow" id="general-principles-for-good-prompts-in-the-app-creation-flow"></a>

There is no perfect prompt, but a few simple principles help you get better first apps.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><h4 id="be-clear-about-your-goal">Be clear about your goal</h4></td><td><p></p><p>Tell Ninox AI what you want the app to help you with:</p><ul><li>“I want an app that helps me track …”</li><li>“I need a simple app for my team to manage …”</li></ul></td></tr><tr><td><h4 id="describe-your-main-objects">Describe your main objects</h4></td><td><p></p><p>Think about what you want to track and name those things:</p><ul><li>Customers, projects, invoices</li><li>Employees, requests, approvals</li><li>Assets, locations, maintenance logs</li></ul></td></tr><tr><td><h4 id="mention-important-fields">Mention important fields</h4></td><td><p></p><p>Add a short list of key information for each object:</p><ul><li>For customers: name, email, phone, industry, status</li><li>For projects: customer, budget, start date, end date, status</li><li>For invoices: invoice number, date, amount, status</li></ul></td></tr><tr><td><h4 id="point-out-relationships">Point out relationships</h4></td><td><p></p><p>If things belong together, say so:</p><ul><li>“Each project belongs to one customer.”</li><li>“Each invoice is linked to a project.”</li><li>“Each task is linked to a project and assigned to one employee.”</li></ul></td></tr></tbody></table>

### Iterating on your prompt <a href="#iterating-on-your-prompt" id="iterating-on-your-prompt"></a>

You rarely get the ideal app structure on the first try. It is normal to refine and try a few variants.

After Ninox AI has created a first data model:

* look at the tables and fields it created,
* note what is missing or not useful,
* update your description and run it again.

Here are some useful follow up prompts you can use:

* “Also include a table for quotes before they become invoices.”
* “Add a field in the Projects table to track the current project manager.”
* “Remove anything related to tasks. I only want customers and invoices for now.”
* “Also track the payment method and due date for each invoice.”

You can extend your original description or write a short follow up like: "Update the app so that each invoice also stores the due date and payment method."

Ninox AI then updates the data model. You can repeat this until the structure feels right.


---

# Agent Instructions: 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:

```
GET https://docs.ninox.com/getting-started/builder-getting-started/prompting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
