Kernconcepten
Hoe lijsten, velden, relaties, dealtotalen, rechten, widgets en webhooks in het datamodel van Customermates samenwerken, met hun berekeningen.
Customermates bewaart CRM-gegevens in configureerbare lijsten. Elke werkruimte bepaalt zijn eigen lijsten, zoals Contactpersonen, Deals, Projecten of Aanvragen, en kan er op elk moment meer toevoegen zonder release. Elk record houdt een vast id, dus als je een lijst of veld hernoemt, raakt er geen verwijzing kapot. Een opgeslagen weergave toont records van een lijst zonder ze te kopiëren.
Welke lijsten heeft een werkruimte en waar komen ze vandaan?
Er is geen enkele lijst ingebouwd. Op Customermates Cloud ontwerpt de AI-setup in de onboarding de hele werkruimte op basis van je antwoorden en, als je die geeft, je website: elke lijst met velden, relaties en berekeningen, de lijstweergaven, voorbeeldrecords of een geïmporteerde spreadsheet, het dashboard en de Kennisbank. Een zelf gehoste werkruimte begint zonder lijsten: wie het datamodel beheert, maakt ze aan in Datamodel. Werkruimtes die zijn aangemaakt vóór de AI-configuratie houden de lijsten waarmee ze zijn begonnen.
| Lijst die de configuratie aanmaakt | Wanneer | Wat erin staat |
|---|---|---|
| Personen, bijvoorbeeld Contactpersonen | Altijd | Eén record per persoon, met een veld Contactgegevens en een profielfoto, zodat berichten bij de juiste persoon terechtkomen |
| Taken | Altijd | Werkitems |
| Organisaties | Meestal | De bedrijven of accounts waar je personen bij horen |
| Deals | Meestal | Verkoopkansen in fases die elk een winkans hebben, met één gewonnen en één verloren fase |
| Aanbod, bijvoorbeeld Diensten of Producten | Als je producten of diensten verkoopt | Je catalogus met eenheidsprijzen; deals krijgen dan regelitems |
De namen volgen je bedrijf, dus je dealslijst kan Kansen of Bestellingen heten. Lijsten uit de configuratie zijn gewone lijsten: je kunt ze hernoemen en hun velden, relaties en indeling uitbreiden of wijzigen in Datamodel, net als bij elke lijst die je zelf aanmaakt. Om berichten aan records te koppelen heeft een lijst een veld Contactgegevens nodig: de telefoonnummers, e-mailadressen en socialemediaprofielen van een record. Een telefoonnummer kun je bellen en komt ook overeen met WhatsApp-chats van hetzelfde nummer. De personenlijst uit de configuratie heeft er een; je kunt er een toevoegen aan elke andere lijst. Het is een gewoon veld dat je kunt verplaatsen, vastpinnen, filteren en bewerken zoals elk ander veld; één identifier kan bij meerdere records passen.
Hoe wordt de totale waarde van een deal berekend?
Als je producten of diensten verkoopt, geeft de AI-setup je dealslijst Regelitems, een sublijst: elke regel hoort bij één deal, wordt erin bewerkt, deelt de toegang ervan en wordt er samen mee verwijderd. Elke regel heeft een aanbodonderdeel, een aantal, een prijsstelling en een effectieve eenheidsprijs. Regelbedrag = aantal × effectieve eenheidsprijs. De dealwaarde is de som van de regelbedragen; zonder regelitems is het een gewone geldwaarde. Hetzelfde aanbodonderdeel kan op meerdere regels voorkomen. Actuele prijs volgt latere wijzigingen in de prijs van het aanbodonderdeel; opgeslagen prijs behoudt de vastgelegde prijs. Elk geldveld heeft zijn eigen valuta, en bedragen in verschillende valuta worden nooit stilzwijgend opgeteld.
Het totaal is een geconfigureerde berekening, dus wie het schema beheert, kan het wijzigen of omzetten in een handmatige waarde nadat de betrokken records en widgets in de voorvertoning zijn bekeken. Een ontbrekende invoer, een waarde die je niet mag zien, nul en een rekenfout zijn verschillende toestanden. Zie gewogen pipeline.
Hoe koppelen relaties records, bijvoorbeeld een contactpersoon aan meerdere organisaties?
Een relatie verbindt twee lijsten. Elke kant heeft een eigen label, en elke kant staat één of meerdere records toe, dus één contactpersoon kan bij meerdere organisaties horen en een project kan contactpersonen en deals koppelen. Beide records tonen de koppeling. In het recordformulier is een relatie een veld: kies de records en klik op Opslaan. In Datamodel voeg je er een toe met Toevoegen en dan Relatie op de configuratiepagina van een lijst, of door in de grafiek van het stipje van de ene lijst naar een andere te slepen. Het tabblad Relaties toont elke relatie als een rij met het label, hoeveel records worden gekoppeld (bijvoorbeeld Een-op-veel) en de andere lijst; een lijst zonder relaties toont Relatie toevoegen. In het zijpaneel stel je beide labels in, hoeveel records worden gekoppeld en, onder Bij verwijderen, wat er met gekoppelde records gebeurt.
Een relatie kan ook de berichten van direct gekoppelde records tonen bij de Activiteiten van de andere lijst, per richting in te stellen. De AI-setup zet dit aan voor de relaties van je personenlijst, zodat een deal of organisatie de berichten van de gekoppelde personen toont. In het zijpaneel van de relatie zet één schakelaar per richting dit aan of uit, bijvoorbeeld Hun berichten tonen bij Organisaties.
De app controleert lijsttypen, kardinaliteit, duplicaten en wat er bij verwijderen gebeurt. Een lookup of rollup over meerdere gekoppelde records vereist een aggregatie zoals som of aantal.
Wat zijn velden en welke veldtypen zijn er?
Elke lijst begint met enkele velden en je kunt je eigen toevoegen; tabellen tonen ze als kolommen. De veldtypen zijn Tekst, Opgemaakte tekst, Getal, Geldbedrag, Ja of nee, Datum, Datum en tijd, Datumbereik, Datum- en tijdbereik, Enkele keuze, Meerkeuze, Webadres, Lid, Adres, Bestand en Telefoon, e-mail en social media. Telefoonnummers en e-mailadressen hebben geen eigen veldtype: ze horen in het veld Contactgegevens van een lijst, dat het type Telefoon, e-mail en social media heeft. Een veld Adres bevat één postadres, gecontroleerd op het adresformaat van het land, zie Hoe voer ik een adres in?. Velden voor tekst, webadres en bestand kunnen Meerdere waarden toestaan (een bestandsveld bevat dan maximaal 20 bestanden, zie Hoe voeg ik bestanden toe aan een record?); bij velden voor webadressen bepaalt Bij klikken of een klik op een waarde die opent in een nieuw tabblad (de standaard) of kopieert, zie CRM-records. Keuzeopties behouden een vast id als je ze hernoemt. Een veld Enkele keuze omzetten naar Meerkeuze behoudt elke waarde; terugzetten lukt alleen zolang elk record hooguit één optie bevat.
Een veld wordt met de hand ingevoerd of berekend: uit andere velden van hetzelfde record, overgenomen uit een gekoppeld record, of geteld of opgeteld uit gekoppelde records. Een berekende waarde is altijd actueel, tenzij je ervoor kiest hem op een bepaald moment op te slaan, bijvoorbeeld wanneer het record wordt aangemaakt. Formules gebruiken een gecontroleerde expressietaal en voeren nooit willekeurige code uit; cycli, niet-passende typen en te dure definities worden geweigerd. Velden kunnen worden gebruikt in filters, sorteringen, weergaven, widgets, routines en Mate, voor zover de toegang dat toestaat.
Kan ik het type van een veld wijzigen als records al waarden hebben?
Ja. Kies een ander Waardetype in het zijpaneel van het veld; de voorvertoning controleert elke bestaande waarde en zet de waarden die zonder verlies passen om. Tekst wordt een Getal als het een gewoon getal is zoals 1250.50, een Datum als het is geschreven als 2026-10-12, een Datum en tijd in ISO-vorm en een Webadres als het een geldig adres is. Tekst die overeenkomt met het label van een optie wordt die optie van een veld Enkele keuze of Meerkeuze. Getallen, datums, waarden van Ja of nee en keuzes worden Tekst. Een veld Enkele keuze omzetten naar Meerkeuze behoudt elke waarde; terugzetten lukt alleen zolang elk record hooguit één optie bevat.
Als sommige waarden niet passen, wordt de wijziging geblokkeerd, en de voorvertoning zegt hoeveel records zulke waarden bevatten en toont er maximaal drie, bijvoorbeeld: 2 records hebben waarden in Budget die niet passen bij de wijziging, bijvoorbeeld "n/a", "tbd". Corrigeer of wis ze eerst. Via MCP en REST bevat het voorvertoningsprobleem existing_values_incompatible dezelfde count en examples.
Hoe voeg ik velden toe, wijzig of verwijder ik ze, ook het veld voor de dealfase?
Open Datamodel, dat alle lijsten als een grafiek toont. Bij elke lijst opent de kop de configuratiepagina van de lijst, toont de body de eerste velden (een vermelding zoals 3 velden meer klapt de rest ter plekke uit, Minder tonen klapt ze weer in) en opent het aantal records in de voet de lijst. Sublijsten staan met hun bovenliggende lijst in één kader en verplaatsen mee. Posities en uitgeklapte lijsten worden voor jou opgeslagen; Lay-out herstellen zet de standaardindeling terug.
De knop + bij een lijst in de grafiek en het menu Toevoegen op de configuratiepagina bieden dezelfde opties: Veld, Berekend veld, Relatie, Contactgegevens (alleen zolang de lijst er geen heeft) en Sublijst, elk in een eigen zijpaneel. Sublijst opent een zijpaneel zoals Nieuwe sublijst van Contactpersonen en vereist naast het recht voor het datamodel ook Bewerken op Gebruikers & rollen; een sublijst kan geen eigen sublijsten hebben, en REST en MCP weigeren zo'n wijziging met recordSublistNested. Een sublijst zoals Regelitems toont Sublijst van Deals op zijn pagina en in de grafiek, met de uitleg dat elk item bij één Deal-record hoort, erin wordt bewerkt, de toegang ervan deelt en er samen mee wordt verwijderd. De configuratiepagina van een lijst schakelt tussen Algemeen, Velden en Relaties, en relaties verschijnen als rijen zoals velden. Een veld voor de dealfase staat op de configuratiepagina van je dealslijst. Voordat een wijziging wordt toegepast, toont de voorvertoning de betrokken records, weergaven, widgets, routines en formules, en wijzigingen die iets zouden breken, worden geblokkeerd totdat je ze oplost.
Om een eigen veld of een ander veld, een lijst of een relatie te verwijderen, gebruik je Verwijderen in het zijpaneel of in het menu van de pagina. De bevestiging noemt alles wat automatisch wordt aangepast (filters, kolommen en sorteringen van weergaven, filters en groeperingen van widgets, een widget die het veld meette, telt voortaan records, webhooks laten het uit hun trigger vallen en worden op pauze gezet als het hun enige trigger was, en contactgegevens, profielfoto of agenda-instellingen stoppen met het gebruiken ervan) en blokkeert alleen bij zaken die verkeerd zouden rekenen: berekeningen, routines en de velden die de toegang tot de werkruimte regelen. Elk veld kan worden verwijderd, ook het veld dat de records een naam geeft: het volgende tekstveld in de veldvolgorde van de lijst geeft ze dan een naam, en de bevestiging zegt welk veld dat is; als er geen tekstveld over is, tonen records zich als naamloos. Als je het veld herstelt, krijgt het de naam terug, tenzij het naamveld sindsdien is gewijzigd, en komt het weer terug in de contactgegevens, profielfoto of agenda-instellingen; widgets die nu records tellen en webhooktriggers blijven zoals ze zijn. Verwijderde items gaan naar de Prullenbak, waar je ze 30 dagen kunt Herstellen of na het typen van de naam Permanent verwijderen; na 30 dagen worden ze permanent verwijderd. Permanent verwijderen wist ook de opgeslagen waarden, en bij een lijst de records en koppelingen ervan.
Namen zijn uniek: lijstnamen, veldnamen binnen een lijst, relatielabels per kant en optielabels per veld, zonder onderscheid tussen hoofdletters en kleine letters of accenten. Het datamodel beheren is een eigen recht, los van het bewerken van records; het geeft geen recordtoegang en geen rolbeheer.
Hoe bouw ik een berekend veld?
Kies Berekend veld in het menu Toevoegen van een lijst op de configuratiepagina in Datamodel, of open daar een bestaand berekend veld. Waardebron bepaalt waar de waarde vandaan komt: Berekend op basis van dit record, Overgenomen uit een gekoppeld record of Geteld of opgeteld uit gekoppelde records. Het waardetype volgt uit de berekening en wordt bij het resultaat getoond, dus een totaal van geldvelden is een geldbedrag en een aantal is een getal.
Het onderdeel Berekening tekent de berekening van boven naar beneden met dezelfde vakken als de grafiek van Datamodel. Voor een waarde uit gekoppelde records begint het met de lijst zelf, volgt het een relatie die als chip wordt getoond, zoals Regelitems · Een-op-veel, en eindigt het in de gekoppelde lijst met Nemen Prijs of, voor een totaal, Som van Bedrag of Aantal gekoppelde Regelitems. Een berekening uit het record toont de Invoer en daarna één vak per stap, zoals Vermenigvuldigen met de twee invoeren. Elke keuze is een chip: klik erop om de velden van de lijst te doorzoeken, onder Verder gaan nog een relatie te volgen of een Vaste waarde in te voeren. Invoer toevoegen en Stap toevoegen breiden een berekening uit, en het menu Meer acties van een stap verwijdert hem.
Het laatste vak toont het resultaattype en een voorbeeld: een record van de lijst met de waarde die deze berekening eraan geeft, en een pijl om een ander record te tonen. Onder de vakken zegt één zin wat het veld doet, bijvoorbeeld "Waarde telt de Bedrag van alle gekoppelde Regelitems op." Zolang er iets ontbreekt, noemt de zin het, zoals "Kies welke waarde je wilt optellen.", en Opslaan markeert het onvolledige vak.
Meer opties stelt Bijwerken in: Altijd actueel, Opgeslagen wanneer het record wordt aangemaakt, Opgeslagen wanneer een veld verandert (kies het veld en de waarde die het activeert) of Opgeslagen op verzoek. Een opgeslagen waarde kan Laat mensen het overschrijven toestaan. Als gekoppelde records erbij betrokken zijn, laat Tonen aan iedereen die de Deal kan zien mensen deze waarde zien, ook als ze de gekoppelde records niet kunnen openen; bij één gekoppelde waarde of een totaal over één record zien ze die waarde precies, dus voor het wijzigen van zo'n berekening is de goedkeuring van een beheerder nodig.
Hoe worden berekende geldwaarden afgerond?
Een berekend veld Geldbedrag zonder Decimalen rondt zijn resultaat voordat het wordt opgeslagen half-up af op de kleinste eenheid van zijn valuta: twee decimalen voor EUR of USD, geen voor JPY, drie voor KWD. Met Decimalen ingesteld rondt een berekende waarde in plaats daarvan af op dat aantal decimalen. De app, de REST API, exports en webhooks geven de afgeronde waarde terug. Elke waarde rondt zelfstandig af, dus een dealtotaal telt al afgeronde regelbedragen op en kan een cent verschillen van een som van niet-afgeronde cijfers. Opgeslagen waarden veranderen wanneer ze de volgende keer opnieuw worden berekend. Ingevoerde waarden worden nooit afgerond; Decimalen bepaalt alleen hoe ze worden getoond.
Hoe werkt een gewogen pipeline en hoe wordt de gewogen waarde berekend?
Gewogen dealwaarde = dealwaarde × kans per fase / 100. De fases zijn een veld Enkele keuze waarvan elke optie een kans van 0 tot 100 procent heeft, die de AI-setup overneemt van de winkans van elke fase. De gewogen waarde is een optioneel berekend veld. Een deal van 2.600 met 60 procent draagt 1.560 bij; een fase van nul procent draagt nul bij, en een ontbrekende kans laat de gewogen waarde leeg. Een gewijzigde actuele prijs van een aanbodonderdeel berekent afhankelijke waarden opnieuw; een opgeslagen offerteprijs niet.
Wie het schema beheert, bewerkt de fases, hun kansen of de formule op de configuratiepagina van de dealslijst in Datamodel, en de voorvertoning toont het effect op bestaande deals en widgets. Mensen die niet elke invoer van een berekening kunnen lezen, zien een beperkte waarde in plaats van het totaal, en de formule zelf wordt alleen getoond aan mensen die al haar invoeren kunnen lezen.
Wat zijn widgets?
Een grafiekwidget op het Dashboard kiest een bronlijst en een aggregatie, een waardeveld voor andere aggregaties dan aantal, optionele filters, een groepering en een weergavestijl, bijvoorbeeld de som van Dealwaarde per Fase of het aantal Projecten per Eigenaar. Elk record telt één keer mee bij de lijst waar het vandaan komt; een deal die aan twee organisaties is gekoppeld, telt volledig mee in beide groepen, dus gegroepeerde totalen kunnen hoger zijn dan het totaal. Een aantalgrafiek met een aanbodlijst als bron telt de records ervan; een grafiek met Regelitems als bron telt records van Regelitems. Widgets volgen dezelfde toegangsregels als lijsten. Activiteitenwidgets tonen een feed in plaats van een getal. Zie Dashboard.
Wat zijn webhooks?
Een webhook of een routine kan zich abonneren op recordgebeurtenissen van een of meer lijsten, optioneel gefilterd op velden. Leveringen komen in de wachtrij nadat de wijziging is opgeslagen. Een mislukte levering wordt opnieuw geprobeerd met dezelfde gebeurtenis- en leveringsidentiteit, zodat een ontvanger één gebeurtenis meer dan eens kan zien. De toegang wordt op het moment van verzenden opnieuw gecontroleerd, en eerdere leveringen worden gemaskeerd voor de persoon die ze bekijkt. Zie Webhooks.
Wat is opgemaakte tekst, en is dat markdown?
Een veld Opgemaakte tekst bevat opgemaakte tekst bij een record, zoals notities, beschrijvingen of samenvattingen. Het is een veld zoals elk ander: het heeft een plek in het overzicht, kan worden vastgepind of verborgen, en je kunt er zoveel toevoegen als een lijst nodig heeft. De tekst wordt opgeslagen als een gecontroleerd document in plaats van als markdowntekst. Overal waar hij als platte tekst of markdown verschijnt, is dat een conversie van hetzelfde document, geen tweede kopie.
Wie zijn gebruikers, rollen en het bedrijf, en wat betekent leestoegang Toegewezen?
Leden zijn de mensen in een werkruimte. Rollen geven aanmaken, lezen, bewerken en verwijderen per lijst. Leestoegang Alle omvat elk record van de lijst, Toegewezen alleen records die aan dat lid zijn toegewezen, Geen niets. Voor bewerken en verwijderen is ook toegang tot het specifieke record nodig. Nieuwe lijsten beginnen zonder toegang. Elke zoekopdracht, berekening, export, widget en Mate-antwoord past de toegang van de lezer toe.
Volgende
- CRM-records: lijsten, editors en weergaven.
- Filtersyntaxis: filters en relatieoperatoren.
- MCP-toolcatalogus: record- en configuratietools.
Voor agents
Lees lijst- en veld-id's met discover_record_types en get_record_model. Elke recordverwijzing bevat zowel typeId als recordId. Koppel of ontkoppel records met mutate_crm_record met relatie-id's uit get_record_model. Opgemaakte tekst wordt geschreven als een getypeerde waarde richText, of toegevoegd aan het einde van de huidige tekst met {fieldId, append} in een update. configure_record_model toont een voorvertoning van een schemawijziging en past die toe met een verwachte revisie en een idempotentiesleutel; een verouderde revisie vereist een nieuwe voorvertoning.