Jouw stack roept het aan. Of het roept jouw stack aan.
Eén REST API over elk object in het account, server-side SDK’s voor Node, PHP en Python, native mobiele SDK’s, een client-side JavaScript API en een MCP-server voor assistenten. Plus automatiseringsregels en geplande rapporten die blijven draaien als niemand het panel open heeft.
Geen webview en geen HTML. De app krijgt JSON en tekent het met zijn eigen componenten, dus het blijft eruitzien als jouw app.
Je assistentGekoppeld via MCPlezen + schrijven, afgebakend
Welke campagnes verloren vorige week verkeer, en wat moet ik als volgende testen?
get_traffic_analyticsDrie gingen achteruit, en de prijspagina het meest. Daar komt je Enterprise-doelgroep ook het vaakst binnen. Het kan die test opzetten en naar staging zetten zonder dat iemand het panel opent.
Prijspagina−18%
Checkout−12%
Categorie−6%
Dezelfde objecten die de REST API aanbiedt — dit keer als tools, met de rechten die jij hebt gegeven.
SDK’s en endpoints
Drie varianten van één endpoint.
Server-side, in de app of in de pagina. Kies wat past bij waar de beslissing moet landen.
Server-side
Node, PHP en Python
Eén JSON-endpoint in drie varianten. De aanroeper levert de user-id en houdt een ondoorzichtige sessie-id bij, dus het werkt voor een kiosk, een settopbox of een pagina die je framework rendert voordat een browser hem ooit ziet.
decide()identify()track()
Mobiel
iOS, Android, React Native
Native SDK’s met eigen tracker-, conditie- en actie-API’s — dezelfde doelgroepen en dezelfde doelen als de website, teruggegeven als JSON die je componenten tekenen.
trackerconditiesacties
In de pagina
Client-side JavaScript API
Lees het profiel, vuur een doel af, vraag om een beslissing of voer een plaatsing opnieuw uit vanuit je eigen script — handig als de pagina een single-page app is en er niets herlaadt.
profieldoelenplaatsingen
1,500+
Merken die Personyze in productie gebruiken
4.6/5
G2CapterraCrozdesk
Gemiddelde beoordeling op G2, Capterra & Crozdesk
Geen exports
Geen nachtelijke sync, en geen tweede kopie van het profiel die verouderd raakt
Eén sleutel
Alles wat het panel bewerkt, via één endpoint.
Geen alleen-lezen feed van wat er gebeurde. Dezelfde objecten, aangemaakt en gewijzigd vanuit je eigen code.
CAMPAGNES · ACTIESlezenaanmakenwijzigen
Alles wat het campagnescherm bewerkt, vanuit je eigen code.
Maak een campagne, voeg er acties aan toe, wijzig hun inhoud en zet ze aan. Het zijn dezelfde records die het panel schrijft, met dezelfde versiebeheer eronder, dus een wijziging door een script is net zo herstelbaar als een wijziging door een mens.
Wat je kunt doen4
Maak een concept en laat het uit staan tot iemand ernaar heeft gekeken.
Vervang inhoud van één actie zonder de campagne eromheen aan te raken.
Verdeel verkeer tussen varianten, of laat de verdeling aan de engine over.
Dupliceer een campagne naar een ander account van jou.
Goed om te weten2
Versiebeheer werkt per actie — een inhoudswijziging maakt een versie, en de live versie is wat bezoekers krijgen.
Directe databasewrites repliceren nooit — ga via de API of het panel, anders blijven bezoekers de oude inhoud zien.
GET POST PUT /rest/campaigns
DOELGROEPEN · LEDENlezenaanmakenwijzigen
Segmenten die je bouwt, of segmenten die je vult.
Een doelgroep kan een set condities zijn die de engine evalueert, of een statische lijst die je eigen systeem bijhoudt door leden toe te voegen en te verwijderen zodra mensen in aanmerking komen. Beide soorten zijn overal op het platform te targeten.
Wat je kunt doen3
Definieer condities op gedrag, CRM-velden, locatie, apparaat of winkelwagenwaarde.
Push leden één voor één of in bulk, en verwijder ze als ze niet meer in aanmerking komen.
Groepeer pagina’s zodat een regel "de prijspagina’s" betekent in plaats van een lijst URL’s.
Goed om te weten2
Een statische doelgroep onderhoud je zelf — niets laat leden automatisch verlopen.
Condities zijn de condities van het panel — dezelfde operatoren, dus een segment leest op beide plekken hetzelfde.
POST /rest/audience_members
BEZOEKERS · VELDENlezenaanmakenwijzigen
Eén profiel, wie er ook om vraagt.
Lees een profiel, schrijf je eigen velden erop, of geef de engine een identiteit uit je CRM, zodat de website, de app, de e-mail en een webhook allemaal over dezelfde persoon praten in plaats van over vier anonieme sessies.
Wat je kunt doen3
Identificeer een bezoeker met je eigen user-id of een e-mailhash.
Schrijf eigen velden op het profiel — abonnement, seats, verlengdatum, alles wat je systeem weet en de browser niet.
Lees het profiel terug om iets te beslissen in je eigen code.
Goed om te weten2
De identiteit is de koppelsleutel — geef overal dezelfde door en er is één profiel; geef verschillende door en er zijn er meerdere.
Een server-side sessie duurt 90 minuten vanaf de laatste aanroep, gekoppeld aan die identiteit.
POST /rest/identify
PRODUCTEN · ARTIKELENlezenaanmakenwijzigen
Je catalogus, gerangschikt voor één persoon.
Push producten of artikelen, houd prijzen en voorraad actueel, en laat de aanbevelingsengine rangschikken op wat je vandaag echt verkoopt in plaats van op een nachtelijke export van wat je gisteren verkocht.
Wat je kunt doen3
Upsert items met je eigen attributen, niet alleen een titel en een prijs.
Werk voorraad en prijs bij los, zonder de catalogus opnieuw te sturen.
Verwijs naar een feed en laat die in plaats daarvan volgens schema verversen.
Goed om te weten2
Uitverkocht is een filter, geen verwijdering — het item houdt zijn geschiedenis, dus het rankt weer zodra het terug is.
Artikelen ranken met dezelfde engine als producten, zodat content en commerce in één widget kunnen staan als je dat wilt.
PUT /rest/products
DOELEN · CONVERSIESlezenaanmakenwijzigen
Wat telt, gemeld waar het gebeurt.
Bepaal wat een conversie is en meld die vanaf je server wanneer die ergens gebeurt waar de browser hem nooit had kunnen zien — een telefonische bestelling, een getekend contract, een terugbetaling die er één van het bord moet halen.
Wat je kunt doen3
Meld een conversie met een waarde en een valuta, vanaf elke aanroeper.
Wijs hem toe aan de bezoekersidentiteit die je overal al doorgeeft.
Lees doelen terug zodat jouw dashboard en het onze hetzelfde tellen.
Goed om te weten2
Een doel dat twee keer gemeld wordt, telt twee keer — stuur je eigen idempotency key mee als de aanroeper het opnieuw kan proberen.
Omzet is optioneel maar het maakt van een A/B-resultaat een getal waar iemand buiten marketing op handelt.
POST /rest/goal_reached
RAPPORTEN · ANALYTICSlezenaanmakenwijzigen
Dezelfde cijfers als op de schermen.
Campagneprestaties, verkeer, productstatistieken en A/B-resultaten, met de metriekdefinities van het panel. Haal ze op wanneer je wilt, of laat ze volgens schema versturen naar mensen die nooit inloggen.
Wat je kunt doen3
Haal een rapport op op id, voor elke periode die het scherm aanbiedt.
Plan er een in dagelijks, wekelijks of per campagne, naar een lijst adressen.
Lees A/B-resultaten inclusief betrouwbaarheid, zodat je eigen tooling kan beslissen.
Goed om te weten2
Bewust alleen-lezen — cijfers worden afgeleid, dus hier valt niets te schrijven.
Definities komen overeen met het panel — een cijfer dat je ophaalt, is het cijfer dat iemand anders op het scherm ziet, en daar draait het om.
GET /rest/reports/:id
Het blijft draaien
Regels, tests en rapporten die jou niet nodig hebben.
De onderdelen die zouden moeten gebeuren zonder dat iemand besluit ze te laten gebeuren — en de winnaar die vanzelf live gaat zodra hij de winnaar is.
Automatiseringsregels
Als dit, dan dat
Houd een segment, een doel of een feed in de gaten en handel ernaar — zet een campagne aan, verplaats iemand naar een lijst, stuur een event naar je analytics. De regel draait volgens het schema dat jij instelt, niet wanneer iemand eraan denkt.
triggersconditiesacties
Geplande rapporten
Het komt binnen vóór de meeting
Het rapport dat je anders had geëxporteerd, volgens schema verstuurd naar de mensen die erom vragen — met dezelfde uitsplitsingen en dezelfde metriekdefinities als het scherm waar het vandaan komt.
dagelijkswekelijksper campagne
Experimenten
Twee versies, één winnaar
Verdeel verkeer over varianten, volg de cijfers waar je ze al volgt, en laat de engine de winnaar serveren zodra die zeker is. Elke aanroeper serveert hem op hetzelfde moment — niets opnieuw te deployen, niets te onthouden.
verdelingsignificantieauto-serve
Assistenten
Of laat een assistent de vragen stellen.
De MCP-server zet het account achter een open protocol, zodat Claude, ChatGPT of elke MCP-client het in een gesprek kan lezen en wijzigen — met de rechten die jij hebt gegeven, en los in te trekken.
MCP
Vraag het over het account
“Welke campagnes gingen deze maand achteruit?” — en het leest dezelfde prestatiecijfers die het panel toont, geen screenshot ervan.
MCP
Laat het de conceptversie bouwen
Een campagneconcept, een doelgroep uit een beschrijving, een paginagroep, een doel. Het komt terug als concept dat jij opent en controleert, niet als iets dat al live is.
MCP
Laat het handelen op wat het vond
Iemand naar een doelgroep verplaatsen, een campagne aanzetten, een stuk content wijzigen, een supportticket openen — elk een tool waarvoor toestemming nodig was.
Wat een server authenticeert, is bewust niet wat een assistent authenticeert.
Voor je eigen codeEen server-side API-sleutel
StaatOp je server, nooit in een pagina
BereiktElk object in het account
VernieuwdZonder je codepaden aan te raken
Voor een assistentEen OAuth 2.1-toestemming
StaatBij de MCP-client, nooit bij jou
BereiktAlleen de tools die je toestond
IngetrokkenLos, zonder de sleutel te vernieuwen
Hoe dan ook draait een server-side beslissing in een sessievenster van 90 minuten gekoppeld aan de identiteit die je doorgeeft — zodat een telefoon, een pagina en een webhook allemaal hetzelfde bezoek kunnen zijn.
Vragen
Wat mensen vragen voordat ze het koppelen.
Beantwoord zoals we dat in een gesprek zouden doen.
Moet ik de JavaScript-tag überhaupt gebruiken?
Nee. De REST API en de server-side SDK’s nemen een beslissing vanaf je eigen server en geven je de content om te renderen — er hoeft niets in de browser te draaien. De meeste accounts gebruiken beide: de tag voor het gedragssignaal, de API voor de beslissingen die ze zelf in handen willen houden.
Hoe blijft dezelfde persoon dezelfde persoon?
Je geeft een identiteit door — je user-id, een e-mailhash, hoe je systeem ze ook al noemt. Elke aanroeper die dezelfde identiteit doorgeeft, leest en schrijft één profiel, en dat voorkomt dat de website en de app twee verschillende aanbiedingen doen.
Kan ik campagnes via de API aanmaken, of alleen lezen?
Allebei. Campagnes, acties, doelgroepen, doelen, catalogi en paginagroepen kunnen worden aangemaakt en gewijzigd, niet alleen opgesomd. Inhoudswijzigingen lopen via hetzelfde versiebeheer als het panel, dus een foute wijziging is herstelbaar.
Wat gebeurt er als jullie dienst traag of onbereikbaar is?
De time-out van een server-side aanroep bepaal jij. Stel een budget in waar je je prettig bij voelt, val terug op je standaardcontent als dat wordt overschreden, en de pagina rendert gewoon. Je eigen rendering leunt nergens op de beslissing.
Is MCP een ander product dan de API?
Nee — het is hetzelfde account achter een open protocol. De tools die een assistent ziet, komen overeen met dezelfde objecten die de REST API aanbiedt, met rechten die jij geeft en los van je API-sleutel kunt intrekken.
Moet er iemand ingelogd zijn voor automatiseringsregels en geplande rapporten?
Daar zijn ze juist voor. Regels evalueren volgens hun schema en rapporten worden volgens het hunne verstuurd, of iemand het panel nu open heeft of niet.
Aan de slag
Eén keer koppelen. Overal aanroepen.
Begin met de REST API en voeg de onderdelen toe die je nodig hebt — server-side SDK’s, de mobiele SDK’s, de MCP-server, regels en rapporten. Niets hiervan is een ander product; het is dezelfde engine die een andere aanroeper antwoordt.