Nibor / Docs / Prompt library Book a demo

Prompt library: copy, paste, build

Copy a prompt, paste it in the Studio chat, review the result, then move to the next feature. Every prompt is written for how Nibor actually works: roles and access live in the database, logic becomes server functions, integrations are declared once and called from them. English and Swedish both work; the chat answers in the language you write.

New here? Read Studio first: Build mode changes the app, Plan mode only thinks it through. The reply to every build lists what changed, verified against the saved app, so you can trust it or send it back.

Start and shape

The first message decides the data model. Name the things, who uses them and what has to happen; leave colours and pages for later.

Describe a whole app

Press + New in the Studio and paste. Nibor plans models, roles, pages and logic, then builds.

English
Build a purchase approval app for a company with 40 employees. Employees create purchase requests (title, amount, supplier, cost centre, attachment). Requests under 5,000 kr are approved by the employee's manager, above that by the CFO as well. Nobody can approve their own request. Approvers get an email. Every request keeps a history of who did what and when. Roles: employee, manager, cfo, admin. No example data.
Svenska
Bygg en inköpsattestapp för ett företag med 40 anställda. Anställda skapar inköpsbegäran (titel, belopp, leverantör, kostnadsställe, bilaga). Begäran under 5 000 kr attesteras av den anställdes chef, över det även av CFO. Ingen kan attestera sin egen begäran. Attestanter får ett mejl. Varje begäran har en historik över vem som gjorde vad och när. Roller: anställd, chef, cfo, admin. Ingen exempeldata.

Add a model

One model per message gives the clearest result. Say which existing model it belongs to.

English
Add a Supplier model with name, org number, email, phone and a status (active, blocked). Each purchase request should point at one supplier. Add a suppliers list page and a detail page with the supplier's requests.
Svenska
Lägg till modellen Leverantör med namn, organisationsnummer, e-post, telefon och status (aktiv, spärrad). Varje inköpsbegäran ska peka på en leverantör. Lägg till en lista över leverantörer och en detaljsida med leverantörens begäran.

Add a page

Name the route, the audience and what the page shows. Lists on a detail page should say which relation they follow.

English
Add a page /my-requests that shows only the signed-in user's purchase requests, newest first, with status, amount and a button to open each one.
Svenska
Lägg till sidan /mina-begaran som bara visar den inloggade användarens inköpsbegäran, nyast först, med status, belopp och en knapp för att öppna varje.

Switch the app to Swedish

Sets the app locale: labels, statuses, dates, the confirm dialog and the emails follow.

English
Make Swedish the app's language. Translate every label, status value, button, empty state and email template. Keep the model and field names in the code as they are.
Svenska
Gör svenska till appens språk. Översätt alla etiketter, statusvärden, knappar, tomma lägen och mejlmallar. Behåll modell- och fältnamnen i koden som de är.

Design and style

Nibor apps are themed with CSS variables and 150+ built-in components. Ask for a direction, not pixel positions.

Use our brand

Upload the logo in Portal under Organization first; the prompt then only names colours.

English
Use our brand: primary colour #0f766e, a white background, the logo from the organisation settings in the sidebar, Inter as the font. Keep the component library's spacing; only the colours and the logo change.
Svenska
Använd vårt varumärke: primärfärg #0f766e, vit bakgrund, logotypen från organisationens inställningar i sidomenyn, Inter som typsnitt. Behåll komponentbibliotekets avstånd; bara färgerna och logotypen ändras.

Dark mode

The theme already has dark tokens; this makes sure nothing is hardcoded against them.

English
Add a dark mode that follows the user's system setting, with a toggle in the sidebar. Check every page for hardcoded colours that break in dark mode and fix them.
Svenska
Lägg till ett mörkt läge som följer användarens systeminställning, med en växlare i sidomenyn. Kontrollera varje sida efter hårdkodade färger som går sönder i mörkt läge och rätta dem.

Dense tables for power users

Tables and cards are different components; say which one and why.

English
The requests list is used all day by the finance team. Make it a dense table: small font, no cards, sortable columns, a search box, status as a coloured badge, and the amount right-aligned with thousands separators.
Svenska
Listan över begäran används hela dagen av ekonomiteamet. Gör den till en tät tabell: liten text, inga kort, sorterbara kolumner, en sökruta, status som en färgad bricka och beloppet högerställt med tusentalsavgränsare.

Phone first for field workers

Say who uses the phone and for what; the layout follows the task.

English
Site leads report hours on their phones. Make the /report page phone-first: one column, big tap targets, the station picker as large buttons, the submit button fixed at the bottom. The admin pages stay as they are.
Svenska
Platschefer rapporterar timmar i mobilen. Gör sidan /rapportera mobilanpassad först: en kolumn, stora tryckytor, stationsvalet som stora knappar, spara-knappen fast längst ner. Adminsidorna lämnas som de är.

Accounts and roles

Sign-in is already there: members sign in with their Nibor accounts. What you decide is roles and what each role may read and change.

Roles and what they see

Roles live on the app; data access is enforced in the database, not only in the menu.

English
Roles: employee, manager, admin. Employees see and edit only their own requests. Managers see every request in their cost centre and can approve. Admins see everything and manage cost centres and users. Hide the admin pages from the menu for everyone else.
Svenska
Roller: anställd, chef, admin. Anställda ser och redigerar bara sina egna begäran. Chefer ser alla begäran i sitt kostnadsställe och kan attestera. Admin ser allt och hanterar kostnadsställen och användare. Dölj adminsidorna i menyn för alla andra.

Only my items

The signed-in user is available to any list filter as {{user.id}}.

English
On the dashboard, show only tasks assigned to the signed-in user. Add a count of my open tasks at the top.
Svenska
Visa bara uppgifter tilldelade den inloggade användaren på översikten. Lägg till ett antal öppna uppgifter för mig högst upp.

Staff-only page

Page roles hide the page; model access protects the data behind it. Ask for both.

English
Add an /admin/cost-centres page visible only to admins, with create, edit and deactivate. Make sure the cost centre data cannot be changed by other roles through the API either.
Svenska
Lägg till sidan /admin/kostnadsstallen som bara admin ser, med skapa, redigera och avaktivera. Se till att kostnadsställen inte heller kan ändras av andra roller via API:et.

Give a colleague a role

The chat can manage app users; the change applies on their next page load.

English
Give anna@example.se the manager role in this app.
Svenska
Ge anna@example.se rollen chef i den här appen.

Core app features

Dashboards, detail pages, search, files, exports and status flows. One feature per message; review, then the next.

Dashboard with real numbers

Say what each number is a count or a sum of. Unclear numbers become guesses.

English
Add a dashboard: number of open requests, total amount awaiting approval this month, average days from request to approval, and a bar chart of approved amount per cost centre for the last 6 months.
Svenska
Lägg till en översikt: antal öppna begäran, totalt belopp som väntar på attest den här månaden, genomsnittligt antal dagar från begäran till attest, och ett stapeldiagram över attesterat belopp per kostnadsställe de senaste 6 månaderna.

Detail page with related records

Name the relation the related list follows, so it is not filtered by the page itself.

English
On the company detail page, show the company's contacts and its deals as two lists under the company facts. Each list has an "add" button that opens a form with the company already filled in.
Svenska
På företagets detaljsida, visa företagets kontakter och dess affärer som två listor under företagsfakta. Varje lista har en lägg till-knapp som öppnar ett formulär med företaget redan ifyllt.

Search and filters

Say which fields are searched and which filters are pills.

English
Add search over title and supplier on the requests list, and filter pills for status (all, pending, approved, rejected) and cost centre. Remember the chosen filter in the URL.
Svenska
Lägg till sökning på titel och leverantör i listan över begäran, och filterknappar för status (alla, väntar, attesterad, avslagen) och kostnadsställe. Kom ihåg valt filter i adressen.

Files on a record

Files go to the app's private storage; say who may open them.

English
Let users attach a quote (PDF or image) to a purchase request. Show the attachments on the request page with a preview for PDFs. Only people who can see the request can open its files.
Svenska
Låt användare bifoga en offert (PDF eller bild) till en inköpsbegäran. Visa bilagorna på begärans sida med förhandsvisning för PDF. Bara de som ser begäran kan öppna dess filer.

Export

CSV for spreadsheets, PDF for a document with your branding.

English
Add an "Export CSV" button on the requests list that exports the rows currently shown with the active filters, and a "Download PDF" button on each approved request with the company logo, the request facts and the approval history.
Svenska
Lägg till en knapp Exportera CSV i listan över begäran som exporterar raderna som visas med aktiva filter, och en knapp Ladda ner PDF på varje attesterad begäran med företagets logotyp, begärans fakta och attesthistoriken.

Status flow

List the statuses and who may move between them. The platform enforces the transitions in a server function.

English
Requests have the statuses draft, submitted, approved, rejected, paid. Employees move draft to submitted. Managers move submitted to approved or rejected (with a reason). Finance moves approved to paid. No other transition is allowed, not even by admins.
Svenska
Begäran har statusarna utkast, inskickad, attesterad, avslagen, betald. Anställda flyttar utkast till inskickad. Chefer flyttar inskickad till attesterad eller avslagen (med motivering). Ekonomi flyttar attesterad till betald. Inga andra övergångar tillåts, inte ens av admin.

Workflows and approvals

Business rules become server functions that run in the database, with the caller's role checked there. Describe the rule, not the code.

Approval with limits

Amounts, who approves, and what is forbidden. The function refuses anything else.

English
Approval rule: under 5,000 kr the manager approves; 5,000 kr and above the manager and then the CFO, in that order. A person can never approve a request they created. Record each approval with who, when and a comment.
Svenska
Attestregel: under 5 000 kr attesterar chefen; 5 000 kr och uppåt chefen och sedan CFO, i den ordningen. En person kan aldrig attestera en begäran hen själv skapat. Spara varje attest med vem, när och en kommentar.

History on every record

A history model the functions write to; the page shows it read-only.

English
Keep a history on each request: created, submitted, approved, rejected, paid, edited, with who and when. Show it as a timeline at the bottom of the request page. Nobody can edit the history.
Svenska
Spara en historik på varje begäran: skapad, inskickad, attesterad, avslagen, betald, ändrad, med vem och när. Visa den som en tidslinje längst ner på begärans sida. Ingen kan redigera historiken.

Email when something needs you

Email goes through the platform (Resend); no keys to set up. Name the moments and the recipients.

English
Email the approver when a request is submitted to them, and email the requester when their request is approved or rejected, with the reason. Use the company name and logo in the emails.
Svenska
Mejla attestanten när en begäran skickas till hen, och mejla den som begärde när begäran attesteras eller avslås, med motiveringen. Använd företagets namn och logotyp i mejlen.

Steps and checklists

For production, onboarding or inspections: stations or steps with checks, in order.

English
A production order passes stations in order: cutting, welding, painting, quality check, warehouse. Each station has a checklist that must be complete before the order can move on. A failed quality check sends the order back to the station named in the failure.
Svenska
En produktionsorder passerar stationer i ordning: kapning, svetsning, lackering, kvalitetskontroll, lager. Varje station har en checklista som måste vara klar innan ordern kan gå vidare. En underkänd kvalitetskontroll skickar ordern tillbaka till stationen som anges i underkännandet.

Connect other systems

Integrations are declared in App Hub (or org-wide in Connect) and called from server functions. Keys are stored by the platform, never in the app.

Fortnox through Connect

An administrator connects Fortnox once under Portal, Connect. Apps then ask for what they need.

English
When a request is marked paid, create a supplier invoice in Fortnox through the organisation's Fortnox connection: supplier, amount, cost centre, due date. Store the Fortnox invoice number on the request and show it.
Svenska
När en begäran markeras betald, skapa en leverantörsfaktura i Fortnox via organisationens Fortnox-koppling: leverantör, belopp, kostnadsställe, förfallodatum. Spara Fortnox fakturanummer på begäran och visa det.

Take payment with Stripe

The checkout button is a built-in component; add the Stripe keys under App Hub, Integrations.

English
Let customers pay for a booking with card through Stripe Checkout. After payment, mark the booking paid and email the receipt. Until the Stripe keys are added, show a clear "payments not configured" message instead of failing.
Svenska
Låt kunder betala en bokning med kort via Stripe Checkout. Efter betalning, markera bokningen betald och mejla kvittot. Tills Stripe-nycklarna är tillagda, visa ett tydligt meddelande om att betalning inte är konfigurerad i stället för att misslyckas.

Sign with BankID

BankID identification and signing run through Idura, declared as an integration on the app.

English
Before a rental agreement is created, the customer identifies with BankID, and the agreement PDF is signed with BankID. Store the signed document on the agreement and show "signed" with the date.
Svenska
Innan ett hyresavtal skapas identifierar sig kunden med BankID, och avtals-PDF:en signeras med BankID. Spara det signerade dokumentet på avtalet och visa "signerat" med datum.

Receive a webhook

Incoming events from another system land in a handler that runs in the database.

English
Add a webhook that receives "order.shipped" events from our logistics provider and sets the matching order to shipped with the tracking number. Reject events with an invalid signature.
Svenska
Lägg till en webhook som tar emot händelsen "order.shipped" från vår logistikleverantör och sätter matchande order till skickad med spårningsnumret. Avvisa händelser med ogiltig signatur.

Notify another system

Outbound webhooks fire on record events; the other side gets a signed POST.

English
When a request is approved, send a webhook to https://example.com/hooks/nibor with the request id, amount and approver, so our ERP can pick it up.
Svenska
När en begäran attesteras, skicka en webhook till https://example.com/hooks/nibor med begärans id, belopp och attestant, så att vårt affärssystem kan hämta den.

Automations and scheduled jobs

Scheduled jobs run in the database on a cron schedule. Record and button triggers run while the app is open. Say which you need.

Weekly digest

A scheduled job that emails a summary. Name the day, the audience and the content.

English
Every Monday at 07:00, email each manager a digest of their cost centre: requests awaiting their approval, approved last week, total amount. Skip managers with nothing to report.
Svenska
Varje måndag kl. 07:00, mejla varje chef en sammanställning för sitt kostnadsställe: begäran som väntar på attest, attesterade förra veckan, totalt belopp. Hoppa över chefer utan något att rapportera.

Reminder before a due date

A daily job that looks ahead and emails.

English
Every day at 08:00, email the responsible person for every task due within 2 days that is not done. One email per person listing their tasks.
Svenska
Varje dag kl. 08:00, mejla den ansvarige för varje uppgift som förfaller inom 2 dagar och inte är klar. Ett mejl per person med hens uppgifter.

React when a record is created

Record triggers run in the browser while the app is open; use a server function or a job for anything that must always happen.

English
When a new support ticket is created, assign it to the on-call person for its category and post a message in the company Chat channel #support with a link to it.
Svenska
När ett nytt supportärende skapas, tilldela det jourpersonen för dess kategori och skicka ett meddelande i företagets Chat-kanal #support med en länk till det.

AI and the company map (ONAS)

Your organisation's own AI key powers the apps; ONAS is the map of systems, people and flows your AI reads. The Studio chat can set both up.

Use our own AI key

Set under Portal, Organization, AI. Apps built afterwards use it; nothing leaves your key's provider.

English
Our organisation has its own Anthropic API key configured under Portal. Make this app's AI features use it: a "summarise this request" button on each request and a "draft a rejection reason" helper for managers.
Svenska
Vår organisation har en egen Anthropic API-nyckel konfigurerad under Portal. Låt den här appens AI-funktioner använda den: en knapp "sammanfatta begäran" på varje begäran och en hjälp "skriv utkast till avslagsmotivering" för chefer.

Let agents work with the app

Every app has an MCP endpoint under App Hub. Describe what an agent may do, and the tools follow the app's access rules.

English
Expose this app to our AI agents: they may read requests and suppliers, create a draft request, and never approve anything. Show me the MCP endpoint and the tools it offers.
Svenska
Exponera den här appen för våra AI-agenter: de får läsa begäran och leverantörer, skapa en utkastbegäran, och aldrig attestera något. Visa mig MCP-adressen och verktygen den erbjuder.

Describe how the company works

ONAS captures systems, roles and hand-overs so apps and agents share one picture. Start with one flow.

English
In ONAS, describe our purchase flow: a request starts with an employee, is approved by the manager, booked by finance in Fortnox, and paid by the bank file on Fridays. Name the systems and the people responsible at each step.
Svenska
Beskriv vårt inköpsflöde i ONAS: en begäran börjar hos en anställd, attesteras av chefen, bokförs av ekonomi i Fortnox och betalas via bankfilen på fredagar. Namnge systemen och de ansvariga i varje steg.

Test, debug and secure

Ask the chat to check its own work. It runs tests against the real database and reports what it finds; the reply lists what actually changed, verified against the saved app.

Run the tests

Executes the app's test suite and the static checks; failures come back as a list.

English
Run all tests and fix what fails. Tell me what you changed, and if something cannot be fixed, say why.
Svenska
Kör alla tester och rätta det som fallerar. Berätta vad du ändrade, och om något inte går att rätta, säg varför.

Check access rules

Access is enforced in the database. Ask for a review before you invite the team.

English
Review every model's access rules against the roles. List anything an employee could read or change that they should not, and fix it. Then confirm the public pages work when signed out.
Svenska
Granska varje modells åtkomstregler mot rollerna. Lista allt en anställd kan läsa eller ändra som hen inte borde, och rätta det. Bekräfta sedan att de publika sidorna fungerar utloggad.

Explain an error

Paste the message the app showed. The chat finds the cause instead of guessing.

English
When I create a cost centre I get "You do not have permission to do this". Find out why, fix the actual cause, and tell me how you verified it.
Svenska
När jag skapar ett kostnadsställe får jag "Du har inte behörighet att göra detta". Ta reda på varför, rätta den verkliga orsaken och berätta hur du kontrollerade det.

Plan before building

Switch the chat to Plan mode first; nothing changes until you send the plan in Build mode.

English
Plan the changes needed to add a second approval level for amounts over 50,000 kr. List the models, pages and functions you would touch and what could break. Do not build yet.
Svenska
Planera ändringarna som krävs för en andra attestnivå för belopp över 50 000 kr. Lista modellerna, sidorna och funktionerna du skulle röra och vad som kan gå sönder. Bygg inte än.

Publish and grow

Publishing puts the app in your Workspace and Nibor OS for every member. Custom domains are added in Portal.

Publish

The preflight lists anything inert or invisible before the app goes live.

English
Publish the app. Before you do, list any warnings from the preflight and fix the ones that affect end users.
Svenska
Publicera appen. Innan du gör det, lista varningarna från förhandskontrollen och rätta de som påverkar slutanvändarna.

Own domain

Add the domain under Portal, Domains, verify the TXT record, then point the app at it.

English
Serve this app at app.example.se. Tell me the DNS records to add, and after I confirm, make the app answer there with sign-in working.
Svenska
Servera den här appen på app.example.se. Berätta vilka DNS-poster som ska läggas till, och när jag bekräftat, låt appen svara där med inloggningen fungerande.

Public landing page

Public pages are declared as such; everything else stays behind sign-in.

English
Add a public landing page at / with what the service offers, prices and a "book now" button into the booking flow. Keep every other page behind sign-in. Add a page title and description for search engines.
Svenska
Lägg till en publik startsida på / med vad tjänsten erbjuder, priser och en boka nu-knapp in i bokningsflödet. Behåll alla andra sidor bakom inloggning. Lägg till sidtitel och beskrivning för sökmotorer.

Write your own prompt

The pattern behind every prompt above: who, what, which rule, what you do not want. One feature per message, then review.

The template

Fill the brackets and delete the rest. Short beats complete; the chat asks when something is missing.

English
Add [the feature] for [who uses it]. It should [what happens, in order]. Rule: [the one rule that must hold]. Do not [what you do not want: example data, new pages, changes to other pages]. When done, tell me what changed and how you tested it.
Svenska
Lägg till [funktionen] för [vem som använder den]. Den ska [vad som händer, i ordning]. Regel: [den regel som alltid måste gälla]. Gör inte [det du inte vill ha: exempeldata, nya sidor, ändringar på andra sidor]. När du är klar, berätta vad som ändrades och hur du testade det.

Questions

Does the chat understand Swedish? Yes. Write in the language your team uses; the models, pages and emails follow the app language you set.

Why one feature per message? The reply lists exactly what changed and the tests that ran. Smaller steps make that list readable and a wrong step cheap to undo: every turn has a restore point in the Studio.

Can I ask for something the platform cannot do? You can ask; the chat says so instead of building a lookalike. Server functions have no network of their own, so an outbound call needs a declared integration or a webhook, and the chat will tell you which.