Bouw je datamodel
Bepaal wat je bedrijf bijhoudt met entiteiten, velden en koppelingen, en wijzig ze veilig in Preview.
Het datamodel van je organisatie zegt wat ze bijhoudt. Alles in de organisatie deelt het, dus een klant is dezelfde klant, waar je hem ook ziet.
Builders en Administrators wijzigen het datamodel, altijd in Preview. Je team ziet een wijziging zodra ze naar Live is gepubliceerd (zie Wijzigingen publiceren en terugdraaien). Members kunnen het model bekijken, maar niet wijzigen. Meerdere mensen kunnen het tegelijk wijzigen: zie Samenwerken.
Entiteiten
Section titled “Entiteiten”Een entiteit is een soort ding waarvan je records bijhoudt: Klanten, Producten, Diensten, Bestelwagens. Data toont elke entiteit, met haar API-naam en hoeveel records, velden en koppelingen ze heeft.
Een nieuwe organisatie begint met drie entiteiten: Members, één record voor elk lid van je organisatie (zie Records van leden), Customers, voor wie je apps gebruikt (zie Klanten), en Documents, voor losse bestanden (zie Documenten hieronder). Ze heten in het begin zo, met Engelse veldnamen; je kunt ze en hun velden hernoemen, bijvoorbeeld naar Medewerkers, Klanten of Documenten. Al de rest voeg je zelf toe, of beschrijf je aan de assistent.
Om er een toe te voegen, schakel je naar Preview, open je Data en kies je Nieuwe entiteit:
- Eén record heet: hoe één ervan heet, zoals Klant.
- De records heten: hoe meerdere ervan heten, zoals Klanten.
- API-naam: de technische naam die apps, automatisaties en de API gebruiken, zoals customers. Hij vult zich in vanuit hoe de records heten; je kunt hem aanpassen (zie API-namen).
- Kies Entiteit toevoegen.

Elke entiteit krijgt om te beginnen een veld Status, met de opties Active en Inactive. Je kunt er meer opties aan geven, maar het veld niet verwijderen.
Om een entiteit te hernoemen of te verwijderen, open je haar pagina Velden.

API-namen
Section titled “API-namen”Elke entiteit, elk veld en elke koppeling heeft een API-naam: de technische naam die apps, automatisaties en de API gebruiken, zoals customers of email. Liefst is die in het Engels, zodat hij hetzelfde leest voor elke ontwikkelaar en elke tool, in welke taal je organisatie ook werkt. Engels is niet verplicht. Mensen zien hem nooit: zij zien de namen die jij geeft, in elke taal.
De API-naam vult zich in vanuit de naam terwijl je typt, tot je hem zelf aanpast. Zodra je stopt met typen in de naam, wordt er een Engelse API-naam voorgesteld, die je nog kunt wijzigen; heb je zelf al in de API-naam getypt, dan wordt er niets voorgesteld. Hij bestaat uit kleine letters, cijfers en koppeltekens, zoals start-time, en moet verschillen van de andere namen ernaast. Na het aanmaken kun je hem niet meer wijzigen; een entiteit of veld hernoemen verandert alleen wat mensen zien. De i naast API-naam zegt hetzelfde.
Velden
Section titled “Velden”Een veld is iets wat elk record bevat, zoals het e-mailadres van een klant. Open de pagina Velden van een entiteit om ze te zien, elk met zijn API-naam, zijn type, of het verplicht is en zijn regels in een paar woorden; open een veld om zijn regels te zien en te wijzigen. Kies Veld toevoegen om er een toe te voegen:
- Naam: hoe het heet, zoals E-mail.
- API-naam: de technische naam, zoals email. Hij vult zich in vanuit de naam.
- Soort: wat voor waarde het bevat.
- Verplicht: of elk record een waarde moet hebben.
| Soort | Voor | Voorbeeld |
|---|---|---|
| Tekst | Een korte regel tekst | Een naam, een telefoonnummer |
| Lange tekst | Meerdere regels | Opmerkingen, een beschrijving |
| Geheel getal | Tellen | Aantal in voorraad |
| Getal | Bedragen met decimalen | Een prijs, gewerkte uren |
| Ja of nee | Iets wat zo is of niet | Betaald, moet bijbesteld worden |
| Datum | Een dag | Een verjaardag, een vervaldatum |
| Datum en tijd | Een moment | Wanneer een dienst begint |
| Keuzes | Eén keuze uit een vaste lijst | Small, Medium of Large |
| Bestanden | Afbeeldingen en documenten | Een productfoto, een ondertekend contract |
| Volgnummer | Een doorlopend nummer dat kvyk.ai geeft | Een factuurnummer, 2026-0042 |
Een veld kan ook berekend zijn, zoals de gewerkte uren van een dienst of het totaal van een factuur: zie Berekende velden.
Op dezelfde pagina kun je een veld hernoemen of verwijderen. Een veld verwijderen verwijdert ook de waarden ervan; zie Verwijderde gegevens herstellen voor hoelang je ze nog kunt terughalen.
Ingebouwde velden
Section titled “Ingebouwde velden”Elke entiteit heeft ook vier ingebouwde velden die kvyk.ai zelf invult:
- Aangemaakt op: wanneer het record werd toegevoegd;
- Aangemaakt door: wie het toevoegde;
- Laatst gewijzigd op: wanneer het laatst werd gewijzigd;
- Laatst gewijzigd door: wie het laatst wijzigde.
De pagina Velden toont ze onder de eigen velden van de entiteit, gemarkeerd als Ingebouwd. Niemand kan ze wijzigen, hernoemen of verwijderen, en niemand vult hun waarden in, geen persoon, geen app en geen assistent. Je vindt ze overal waar een veld wordt aangeboden: als kolommen, in filters en sorteringen, in exports, op de pagina van een record en als invulveld in sjablonen. Lijsten tonen eerst Aangemaakt op; vink de andere aan onder Kolommen om ze ook te tonen.
Regels voor de waarden
Section titled “Regels voor de waarden”Zodra je een soort kiest, toont het formulier de regels die bij die soort horen, zodat niemand iets invult wat nergens op slaat. Laat een vak leeg voor geen grens.
| Soort | Regels |
|---|---|
| Tekst | Minste tekens, Meeste tekens, en Moet zijn: een e-mailadres, een telefoonnummer of een webadres |
| Lange tekst | Minste tekens, Meeste tekens |
| Geheel getal | Laagste, Hoogste: van -2.147.483.648 tot 2.147.483.647, wat een veld met een geheel getal kan bewaren |
| Getal | Laagste, Hoogste (tot een biljoen in beide richtingen), Meeste cijfers na de komma |
| Datum | Vroegste, Laatste: een datum, Vandaag, of een aantal dagen, weken, maanden of jaren voor of na vandaag |
| Datum en tijd | Vroegste, Laatste: een datum en tijd tot op de minuut, Nu, of een aantal seconden, minuten, uren, dagen, weken, maanden of jaren voor of na nu |
| Bestanden | Meeste bestanden: van 1 tot 20; één tenzij je het verandert |
Een nieuw tekstveld neemt hoogstens 200 tekens en een lange tekst 10.000, tenzij je dat verandert. Ja-of-neevelden en keuzevelden hebben geen regels nodig. Staat er in een vak iets wat het niet kan bevatten, zoals een hoogste waarde groter dan een veld met een geheel getal kan bewaren, dan zegt het formulier dat onder dat vak en bewaart het niets tot het klopt.
Om de regels van een veld later te wijzigen, open je het veld via de pagina Velden van de entiteit, pas je ze aan en kies je Wijzigingen bewaren. Wie een waarde invult die een regel breekt, krijgt te horen wat mag, zoals Uren mag hoogstens 24 zijn., en het record wordt pas bewaard als het klopt. Records die al zo’n waarde hebben, houden die tot iemand ze wijzigt; de pagina zegt hoeveel het er in Preview zijn.
Wijzigingen bewaren kun je kiezen zodra je iets hebt gewijzigd, en brengt je terug naar de pagina Velden van de entiteit, tenzij records de nieuwe regels al breken: dan blijft de pagina staan om te zeggen hoeveel. Annuleren gaat terug zonder te bewaren; als je iets hebt gewijzigd, vraagt het eerst of je je wijzigingen wilt weggooien.
Regels horen bij het datamodel: je wijzigt ze in Preview, en ze komen in Live wanneer je publiceert. De assistent kan ze ook instellen: zeg wat een waarde moet zijn, zoals “niemand werkt meer dan 12 uur in één dienst”, en hij stelt de regel voor op een kaart.

Bestandsvelden
Section titled “Bestandsvelden”Een bestandsveld bewaart afbeeldingen en documenten bij een record: de foto van een medewerker, de pdf van een factuur. Kies bij het toevoegen of wijzigen van een record Bestanden toevoegen. Elk bestand wordt eerst op virussen gecontroleerd, terwijl er een draaiend teken naast de naam staat, en hoort bij het record zodra je het opslaat; het record wordt opgeslagen zodra elk bestand gecontroleerd is, en wie eerder opslaat, krijgt te horen dat de controle nog loopt; het is hoogstens 20 MB. Kies × bij een bestand om het eruit te halen. Een veld bevat één bestand, tenzij je er meer toelaat bij Meeste bestanden.
Op de pagina van het record staan afbeeldingen klein en kun je elk bestand downloaden. Wie het record en het veld mag zien, mag de bestanden zien, en alleen zij. Een bestand dat je eruit haalt, of waarvan je het record verwijdert, wordt ook verwijderd.
Volgnummervelden
Section titled “Volgnummervelden”Een volgnummerveld geeft elk record het volgende nummer in een reeks, zoals een factuurnummer: 2026-0001, 2026-0002, enzovoort. kvyk.ai geeft het nummer, nooit een persoon, een app of de assistent, en geen nummer wordt twee keer gegeven of overgeslagen, ook niet als er veel records tegelijk bijkomen.
Als je er een toevoegt, stel je de Nummering in:
- Tekst ervoor: zoals Q- voor Q-00042, of niets.
- Toon het jaar: zet het jaar voor het nummer, zoals in 2026-0042.
- Cijfers: hoeveel cijfers het nummer minstens heeft, aangevuld met nullen.
- Eerste nummer: waar de telling begint, zoals 1042 voor C1042.
- Elk jaar opnieuw beginnen bij het eerste nummer: met het jaar getoond begint de telling op 1 januari opnieuw.
- Geef het nummer: wanneer het record wordt toegevoegd, of pas wanneer een keuzeveld een van de opties wordt die je aanvinkt, zoals wanneer Status Verzonden wordt. Tot dan heeft het record nog geen nummer.
- Genummerde records bewaren: records met een nummer kunnen niet worden verwijderd. Zet dit aan voor nummers die je moet bewaren, zoals factuurnummers.
Het formulier toont hoe de nummers eruit zullen zien. Een gegeven nummer verandert nooit meer, en niemand kan er zelf een intypen.
Je kunt een record met een nummer verwijderen. Het nummer wordt nooit opnieuw gegeven, en de geschiedenis van het record toont het nog. Met Genummerde records bewaren aan kan een record met een nummer niet worden verwijderd, zodat de reeks zonder gaten blijft: wil je het niet meer gebruiken, wijzig dan de status, met een optie zoals Geannuleerd in je Status-veld. Ook als de gegevens van een klant worden gewist, blijft het nummer.
Zijn alle nummers gegeven die in de cijfers passen, dan worden de nummers een cijfer langer, zoals 2026-10000 na 2026-9999, en ze staan nog altijd in de juiste volgorde. De pagina van het veld waarschuwt je zodra 90% ervan gebruikt is, zodat je op tijd een cijfer kunt toevoegen en alle nummers even lang blijven.
De tekst ervoor, het jaar, de cijfers of het jaarlijks opnieuw beginnen wijzigen, of het eerste nummer verlagen, bij een veld dat al nummers gaf, vraagt eerst om bevestiging. Records houden de nummers die ze hebben. Preview en Live tellen apart, zodat testrecords in Preview nooit de nummers van Live opgebruiken.

Berekende velden
Section titled “Berekende velden”Een berekend veld bevat een waarde die kvyk.ai uitrekent, zoals de gewerkte uren van een dienst uit wanneer die begint en eindigt, of het totaal van een factuur uit de regels. Niemand vult het in, geen persoon, geen app en niet de assistent, en kvyk.ai houdt het bij: als een record verandert, en als een record dat eraan gekoppeld is wordt toegevoegd, gewijzigd of verwijderd.
Als je in Preview een veld toevoegt, kies je de Waarde:
- Ingevuld: mensen vullen het in, zoals bij elk veld.
- Berekend uit de eigen velden: een formule met de andere velden van het record. Kies wat je berekent:
- twee waarden opgeteld, afgetrokken, vermenigvuldigd of gedeeld, zoals Uren maal Tarief, afgerond op het aantal decimalen dat je kiest;
- de tijd tussen twee datums, in minuten, uren of dagen, zoals van Begin tot Einde;
- een datum enkele dagen later, zoals Factuurdatum plus 30 dagen;
- teksten samengevoegd, zoals Voornaam en Achternaam met een spatie ertussen;
- de ene of de andere waarde, volgens een voorwaarde, zoals 10 als Klaar ja is, anders 0.
- Totaal van gekoppelde records: hoeveel records eraan gekoppeld zijn, of de som, het gemiddelde, het laagste of het hoogste van een van hun velden, zoals de som van de Uren van de diensten van een medewerker. Voeg regels toe om er maar enkele te tellen, zoals alleen de diensten die Klaar zijn.
Het formulier toont wat voor waarde het veld zal bevatten. Een berekend veld wordt getoond, gefilterd, gesorteerd, doorzocht en geëxporteerd zoals elk ander veld, in de gegevensbrowser, in weergaven, dashboards, documenten en apps. Op de pagina van een record staat waaruit het berekend wordt. De toegang per veld van een datarol geldt ervoor zoals voor elk ander veld: verborgen zien de houders het niet, ook niet als ze de velden zien waaruit het berekend wordt.
Je kunt een berekening later wijzigen, in een die hetzelfde soort waarde geeft. Een veld of koppeling die een berekening gebruikt, kan niet worden verwijderd zolang ze dat doet; de melding noemt het berekende veld. Een totaal telt de records die rechtstreeks gekoppeld zijn; het kan de records die daaraan gekoppeld zijn niet optellen.
Je kunt het ook aan de assistent vragen: “Voeg de gewerkte uren toe aan elke dienst”, of “Toon de uren van elke medewerker deze maand”.

Documenten
Section titled “Documenten”Elke organisatie heeft een ingebouwde entiteit Documents voor bestanden die bij geen ander record horen: een reglement, een prijslijst, een plattegrond. Elk document heeft een naam, een map en één bestand. Net als bij Customers kun je ze een andere naam en meer velden geven, maar je kunt ze en hun eigen velden niet verwijderen. Wie documenten mag zien en wijzigen, bepalen de datarollen, zoals bij elke entiteit.
Keuzevelden
Section titled “Keuzevelden”Een keuzeveld biedt een vaste lijst om uit te kiezen. Als je er een toevoegt, typ je de opties. Is het verplicht, dan krijgen nieuwe records de eerste optie.
Open het veld later via de pagina Velden van de entiteit om de opties te wijzigen: hernoem ze, voeg nieuwe toe, verander de volgorde of faseer oude uit met het vinkje Buiten gebruik. Records houden een uitgefaseerde optie, maar nieuwe records kunnen ze niet meer kiezen. Een optie kan niet verwijderd worden, zodat er geen gegevens verloren gaan die ze gebruiken.

Koppelingen
Section titled “Koppelingen”Een koppeling verbindt de records van twee entiteiten: elke verhuur met één bestelwagen, elke bestelling met één klant, elke student met de cursussen die hij volgt. Aan de andere kant toont elke bestelwagen de verhuringen die ernaar wijzen.
Kies op de pagina Velden van een entiteit, onder Koppelingen, voor Koppeling toevoegen:
- Kies de entiteit waarnaar je wilt wijzen.
- Heet hier: hoe de koppeling aan deze kant heet, zoals Bestelwagen.
- Heet vanaf daar: hoe de records die terugwijzen aan de andere kant heten, zoals Verhuringen. Onder elke naam staat een API-naam, ingevuld vanuit de naam.
- Hoeveel:
- Veel op één: meerdere records hier kunnen naar hetzelfde record daar wijzen, zoals veel verhuringen naar één bestelwagen. Dit is de gewone keuze.
- Eén op één: elk record daar is aan hoogstens één record hier gekoppeld, zoals elke medewerker en zijn eigen kluisje. Een tweede medewerker aan hetzelfde kluisje koppelen wordt geweigerd, met een melding dat het al gekoppeld is.
- Veel op veel: elk record hier kan aan veel records daar gekoppeld zijn, en elk daarvan aan veel records hier, zoals studenten en hun cursussen. Je koppelt de records op de pagina van een record, vanaf beide kanten.

De tabel met koppelingen toont hoeveel elke koppeling toestaat. Om dat te veranderen, verwijder je de koppeling en voeg je haar opnieuw toe. In dezelfde tabel kun je een koppeling ook weer verwijderen.
Koppelingen naar personen
Section titled “Koppelingen naar personen”Een koppeling kan ook de personen van je organisatie houden in plaats van records: wie elke dienst leidt, welke vrijwilligers erop staan, wie elke taak doet. Kies Koppeling toevoegen en kies onder Koppelt naar voor Personen:
- Heet hier: hoe de koppeling aan deze kant heet, zoals Vrijwilligers, met de API-naam eronder.
- Hoeveel:
- Eén persoon: elk record houdt hoogstens één persoon, zoals een taak en wie die doet.
- Meerdere personen: elk record houdt tot 100 personen, zoals een dienst en zijn vrijwilligers.
- Wie: Leden, Klanten of Leden en klanten. Alleen personen van die soort kun je kiezen.
- Voor een koppeling die klanten neemt: Namen tonen aan klanten die het record kunnen lezen. Dat staat uit tot je het aanvinkt: klanten zien dan nooit wie er gekoppeld is. Staat het aan, dan zien klanten de namen, nooit e-mailadressen.

Koppelingen naar personen hebben hun eigen tabel onder Koppelingen, met wie elke koppeling neemt, hoeveel, en of klanten de namen zien. Die laatste keuze kun je daar altijd veranderen.
Vertrekt een lid en gaan zijn records naar een collega, dan neemt die collega zijn plaats in in de koppelingen die leden nemen. Een klant die verwijderd of gewist wordt, gaat uit elke koppeling.
Verwijderen gebeurt voorzichtig
Section titled “Verwijderen gebeurt voorzichtig”Als je een entiteit, een veld of een koppeling verwijdert, vraagt kvyk.ai eerst om te bevestigen. Ze verdwijnt meteen uit Preview, met de testrecords van Preview. Live houdt ze tot je publiceert, en na het publiceren bewaart Live de gegevens nog een tijd, zodat je ze kunt herstellen. Zie Verwijderde gegevens herstellen.