Ondernemer werkt op een laptop aan een webapplicatie aan een houten tafel
GidsUitgebreide gids16 september · 17:0016 min leestijd

Wix-data exporteren naar n8n: API, CSV en eigenaarschap testen

Exporteer Wix CMS-data gecontroleerd naar n8n, CRM of voorraad. Test API en CSV naast elkaar, map veld-ID’s, vang paginering en rechten af en leg vast wat bij jou blijft.

Je wilt de klantrecords uit Wix naar je CRM sturen, de CMS-voorraad in n8n verwerken of een kopie van je orderdata bewaren. Dan ontdek je snel dat ‘exporteren’ drie verschillende klussen kan betekenen. Een CSV-download is een momentopname. De Wix Data API is een herhaalbare route. Orders en contacten vallen soms onder andere Wix-API’s dan je CMS-collectie.

De fout zit meestal niet in n8n. Die zit in een onduidelijke sleutel, een tweede pagina die nooit wordt opgehaald of een API-sleutel die op naam van de webbouwer staat. Na deze gids heb je een testbare export, een veilige n8n-stroom en een eerlijk antwoord op de eigendomsvraag: welke data, logica en toegang kun je morgen meenemen?

Welke Wix-uitgang past bij jouw koppeling?

Begin met de uitgang, niet met de connector. Gebruik CSV voor een eenmalige migratie, een controlebestand of een terugval wanneer een live API-route niet beschikbaar is. Gebruik de Wix Data API voor een terugkerende synchronisatie, filters, paginering en een controleerbaar watermerk op wijzigingen. Kies maatwerk zodra je meerdere Wix-domeinen combineert, veel uitzonderingen hebt of een doel schrijft waar dubbele records geld of voorraad raken.

Wix-data exporteren betekent een afgebakende kopie maken van een Wix-databron met behoud van betekenis, identificatie en controleerbaarheid. Bij een CMS-collectie zijn de records en veldwaarden overdraagbaar via CSV of de Data Items API. De site-opmaak, pagina’s, datasetverbindingen, Wix-automations, API-sleutels en leveranciersspecifieke logica zitten daar niet automatisch bij.

De officiële Wix-documentatie splitst Wix Data op in data-items, collectiebeheer, bewerkingen en externe databases. Een collectie-export is dus iets anders dan een complete export van je website, webshop of klantomgeving. De CMS-API-beschrijving van Wix maakt duidelijk dat Wix Data over de databascollecties van je site gaat. Dat bepaalt je ontwerp van de koppeling. De CMS-documentatie is op 16 september 2026 gecontroleerd.

Orders en klantcontacten verdienen een eigen controle. Wix heeft een aparte Orders API voor de levenscyclus van e-commerceorders en een Contacts API voor contacten. Een CMS-collectie met een veld email is daarmee nog geen volledige Wix-contactadministratie. De drie Wix-API-bronnen zijn op 16 september 2026 gecontroleerd.

Wat je nodig hebt voordat je exporteert

Regel eerst toegang en betekenis. Met alleen een Wix-login en een lege n8n-workflow bouw je een route die technisch kan draaien, maar inhoudelijk niet te vertrouwen is. Leg dit klaar:

  • Een afgebakende bron. Noteer de Wix-site, de exacte collectie-ID en of je Live Collection of Sandbox Collection bedoelt. Voor orders en contacten noteer je de aparte API en de benodigde rechten.
  • Een veldinventaris. Leg per veld de zichtbare naam, het vaste veld-ID, het type, de tijdzone, de betekenis en de doelkolom vast. Neem de systeemvelden _id, _createdDate, _updatedDate en _owner mee als je de herkomst of wijzigingen wilt kunnen controleren.
  • Een zakelijke sleutel. Gebruik bij voorkeur _id voor een CMS-item of een eigen stabiele externe sleutel. Een titel, productnaam of e-mailadres mag een matchveld zijn, maar is een slechte primaire sleutel.
  • Wix-app- of Headless-toegang. Voor Query Data Items heb je een geïnstalleerde Wix-app met de app-scope Read Data Items, een app-ID, app-secret en bij een self-managed app een app-instance-ID nodig. Leg vast dat de organisatie eigenaar is van deze gegevens. Een Wix-user-identiteit hoort bij een Wix-context en is geen vervanging voor een onbeheerde n8n-credential.
  • Ingeschakelde code-editor. De Wix Data API's vereisen voor deze werkwijze dat de code-editor van de site is ingeschakeld. Open in Wix Code en kies Start Coding. Zie je geen code-editor, stop dan vóór de API-test en laat een beheerder de ontwikkelmodus inschakelen.
  • Een n8n-omgeving. n8n Cloud Starter kost op 16 september 2026 €20 per maand bij jaarlijkse betaling voor 2.500 workflow-uitvoeringen met onbeperkte stappen. Pro kost €50 per maand bij jaarlijkse betaling voor 10.000 uitvoeringen. De Community Edition is self-hosted beschikbaar zonder licentiekosten, maar hosting, updates, back-ups en beveiliging blijven dan jouw werk.
  • Testdata en een doel. Gebruik 10 tot 20 records met een lege waarde, een datum, een referentie en minstens één record dat je bewust opnieuw aanbiedt. Kies waar de data naartoe gaat: een CRM, voorraadapp, boekhouding, Google Sheets als controlelaag of een eigen database.
  • Een register en terugvalplek. Noteer bron, doel, richting, frequentie, credential-eigenaar, laatste geslaagde run, recordtelling, foutqueue en CSV-locatie. Een regel per gegevensstroom met eigenaar, sleutel en vervaldatum geeft je de juiste start voor de technische configuratie.
Voordat je de Wix-koppeling bouwt
0/9

De twee belangrijke grenzen staan bij Wix zelf. Een data-item kan volgens de CMS-API-documentatie maximaal 500 KB zijn. Een zware collectie met grote rich-contentvelden, media-structuren of objecten is daarom een andere klus dan een tabel met tekst en getallen. Dezelfde documentatie noemt voor gewone CMS-collecties een aanvraagtime-out van 5 seconden op gratis en de meeste premiumplannen, en 10 seconden op Business Elite en Elite Premium. Zet geen brede, ongesorteerde query op productie zonder eerst te meten.

Concrete stappen: van Wix naar n8n

Je maakt eerst een controlebestand en een stabiele veldkaart, laat n8n zich daarna als Wix-app authenticeren, test één antwoord en haalt vervolgens alle pagina's op. Elke succesvolle pagina krijgt een vaste sortering, een overlapvenster en een opgeslagen hervatpunt. Pas na telling, deduplicatie en foutcontrole schrijf je naar je doel.

Volg deze genummerde controles:

1. Schrijf de gegevensstroom op één regel

Schrijf bijvoorbeeld: Wix CMS collectie Voorraad -> n8n -> voorraad-API, elke nacht, alleen lezen, sleutel _id. Voeg toe wie de zakelijke eigenaar is, wie de technische beheerder is en wat er na één gemiste run gebeurt. Maak een tweede regel voor Wix Orders API -> n8n -> boekhouding als je orders nodig hebt. Meng die twee niet omdat ze allebei ‘Wix-data’ heten.

Bepaal daarna wie welk veld bezit. Een Wix-CMS-collectie kan eigenaar zijn van omschrijving en adviesprijs, terwijl een voorraadpakket beschikbaar beheert. Per veld één bronhouder, sleutel, synchronisatieregel en herstelpad voorkomt dat n8n de laatste schrijver laat winnen.

Controlepunt: iemand die niet aan de bouw heeft meegewerkt kan aan de regel zien wat er gebeurt, hoe vaak en wie een fout oplost.

2. Maak eerst een structurele export

Open in Wix het CMS, kies de collectie en ga naar More Actions, daarna Export to CSV. Kies eerst Collection fields. Wix exporteert dan de structuur, inclusief verborgen en systeemvelden, zodat je niet alleen de zichtbare kolomkoppen uit je tabel overneemt. Bewaar dit bestand als wix-voorraad-structuur-2026-09-16.csv.

Exporteer daarna The entire collection uit de juiste omgeving. Wix ondersteunt ook export van alleen de huidige filter. Gebruik die optie alleen als je de filter en de reden ervan in het register vastlegt. De Wix-helptekst voor export is op 16 september 2026 gecontroleerd en noemt UTF-8 voor niet-Latijnse tekens en UTC+0 voor tijdvelden in het CSV-bestand. De export bevat bij een volledige collectie ook verborgen en systeemvelden.

Open het bestand in LibreOffice Calc, Excel of een controleprogramma en kijk naar drie dingen: de kolomkoppen, het aantal rijen en de tijdzone. Sla het originele bestand onveranderd op. Maak voor n8n een kopie. Zo blijft later zichtbaar wat Wix werkelijk heeft geleverd.

Controlepunt: je kent de verwachte telling, de exacte veld-ID’s en de tijdzone voordat er een record naar een ander systeem gaat.

3. Maak een veldkaart met ID’s, niet met schermnamen

De zichtbare naam Beschikbare voorraad is voor mensen. De API werkt met een veld-ID zoals availableStock. Wix maakt het ID bij het aanmaken van een veld automatisch op basis van de naam. Zodra het veld bestaat, kun je het ID niet meer wijzigen. In de veldinstellingen kun je de naam wel veranderen. Daardoor kan een n8n-mapping blijven werken terwijl een redacteur de schermnaam aanpast, zolang niemand de kolom opnieuw aanmaakt.

Wix noemt in de documentatie een veld-ID een code-veld voor Velo en de Data API. Systeemvelden hebben vaste IDs: _id, _createdDate, _updatedDate en _owner. Een _id die je bij import zelf invult, blijft de itemidentiteit. Zonder eigen ID maakt Wix een willekeurige UUID. Het veld-ID is dus de technische sleutel, niet de tekst boven de kolom. De veldreferentie is op 16 september 2026 gecontroleerd.

Maak een kaart zoals deze:

Wix-veld-IDBetekenisTypeDoelveldRegel
_idStabiele itemidentiteitTekstwix_item_idNooit overschrijven
skuArtikelnummerTekstskuMatch op exact tekenpatroon
titlePublieke productnaamTekstnameAlleen bron naar doel
availableStockVerkoopbare voorraadGetalavailable_stockNegatief naar foutqueue
_updatedDateLaatste wijzigingDatum en tijdsource_updated_atBewaren als ISO-tijd

Let op referentievelden, media en rich content. Een referentie is een relatie, geen gewone tekst. Kies of n8n alleen de ID bewaart of gerelateerde data inline opvraagt. Een afbeeldingveld kan een Wix-mediareferentie bevatten die buiten je CSV of doelpakket geen bruikbaar bestand is. Exporteer in dat geval de media apart en leg de relatie via _id vast.

Controlepunt: voor elk doelveld staat een bronveld-ID, een typeconversie en een beslissing voor lege waarden.

4. Maak Wix-app-credentials die het bedrijf kan terugnemen

Voor deze specifieke methode moet de authenticatie als Wix-app of Wix-user lopen. Een API-key met wix-site-id is hier dus geen werkende route, ook niet als de sleutel door een account owner is gemaakt. Voor een nachtelijke n8n-flow is de Wix-app-identiteit via OAuth client_credentials de praktische keuze. De actuele Wix-authenticatiedocumentatie maakt het onderscheid tussen app-tokens, user-contexten en API-key-admin-authenticatie. Controleer dit op 16 september 2026 opnieuw als Wix de authenticatiemethode wijzigt.

Maak in Wix Dev Center een self-managed OAuth-app en installeer die op de bedoelde site. Geef de app alleen de scope Read Data Items. Noteer het app-ID, de app-secret en het app-instance-ID. Wix levert dat instance-ID bijvoorbeeld via de installatie-webhook. Gebruik je een Headless-project, dan hoort de OAuth-client bij één site en is geen instance-ID nodig. Bewaar de secret in een beheerde kluis; de organisatie moet de app kunnen intrekken en opnieuw uitgeven zonder afhankelijk te zijn van een webbouwer.

Maak in n8n een credential van het type OAuth2 API met deze waarden. De actuele OAuth2 API-velden en HTTP Request-credentialconfiguratie zijn op 16 september 2026 gecontroleerd in de n8n-documentatie voor HTTP Request-credentials:

  • Grant Type: Client Credentials.
  • Access Token URL: https://www.wixapis.com/oauth2/token.
  • Client ID: het Wix-app-ID.
  • Client Secret: de Wix-app-secret.
  • Authentication: Body, omdat Wix de clientgegevens als token-request verwacht.
  • Send Additional Body Properties: aan.
  • Additional Body Properties: {"instance_id":"JOUW_APP_INSTANCE_ID"}.

Koppel deze credential aan de HTTP Request-node die de Data Items API aanroept. n8n haalt dan een app-token op en vernieuwt het wanneer nodig. Een app-token is kortlevend, volgens de OAuth-uitleg vier uur; bij een losse token-node haal je per nieuwe run of na een 401 opnieuw een token op. Stuur bij deze app-authenticatie alleen de Authorization-header met het token. Voeg niet alsnog wix-site-id toe om een API-key-route na te bootsen.

Als jouw n8n-versie geen extra body-eigenschap in de OAuth2-credential toont, gebruik dan twee HTTP Request-nodes. De eerste haalt het token op. Zet app-ID, secret en instance-ID in n8n Variables, External Secrets of een andere credentiallaag, niet als vaste tekst in de workflow:

{
  "grant_type": "client_credentials",
  "client_id": "{{$env.WIX_APP_ID}}",
  "client_secret": "{{$env.WIX_APP_SECRET}}",
  "instance_id": "{{$env.WIX_APP_INSTANCE_ID}}"
}

De tweede node gebruikt de response als headerwaarde: Authorization: ={{$json.access_token}}. De endpoint voor het token is POST https://www.wixapis.com/oauth2/token. In n8n Cloud gebruik je hiervoor de secretvelden van de OAuth2-credential of een gekoppelde secret store als $env niet beschikbaar is. De OAuth-uitleg en het Create Access Token-endpoint van Wix zijn op 16 september 2026 gecontroleerd.

Een API-key plus site-ID kan dus wel bij REST-methoden waarvan de documentatie de identiteit API key admin noemt, bijvoorbeeld ondersteunde site- of accountbeheeracties en imports. Dan stuur je de API-key in Authorization en precies één van wix-site-id of wix-account-id. Voor Query Data Items geldt die uitzondering niet. Een Wix-user-identiteit werkt in een Wix SDK- of dashboardcontext, maar een Wix-login in n8n plakken maakt geen geldige servercredential.

Controlepunt: in de credentialtest staat een app-token, de workflow bevat geen API-key of site-ID-header voor deze query, en een tweede beheerder kan de app-secret roteren zonder de flow opnieuw te ontwerpen.

5. Test eerst één Data Items-query

Controleerbare prerequisite vóór de API-test: Wix Data API's vereisen dat de code-editor van de site is ingeschakeld. Open in Wix de site-editor, klik op Code en kies Start Coding. Controleer dat het codepaneel zichtbaar is en noteer in je register code_editor_enabled=true, de omgeving (Live of Sandbox) en de controledatum. Zonder die vink ga je niet naar n8n en test je geen credential. Wix beschrijft dit inschakelen als de start van de ontwikkelomgeving voor code en Data API-gebruik; de instructie is op 16 september 2026 gecontroleerd via de Wix Quick Start.

Maak in n8n een workflow met Manual Trigger, HTTP Request en een tijdelijke Edit Fields- of Code-node. Koppel de OAuth2 API-credential uit stap 4. Kies in HTTP Request POST en gebruik dit endpoint:

https://www.wixapis.com/wix-data/v2/items/query

Stuur alleen Content-Type: application/json en de OAuth2-credential mee. Gebruik voor de eerste test een kleine limiet en een expliciete sortering:

{
  "dataCollectionId": "Voorraad",
  "query": {
    "sort": [
      { "fieldName": "_updatedDate", "order": "ASC" }
    ],
    "paging": {
      "limit": 20,
      "offset": 0
    }
  }
}

Voorraad is hier de collectie-ID, niet per se de Nederlandse schermnaam. Controleer die ID in Wix. De response bevat dataItems. Binnen ieder item staat data met de veld-ID's en systeemvelden. Vergelijk drie records op _id met de CSV-export. Controleer ook de HTTP-status, dataItems.length, pagingMetadata en of pagingMetadata.hasNext aanwezig is. Schrijf nog niets naar je doel.

De Data Items API ondersteunt offset- en cursor-paging. Wix adviseert offset wanneer iedere aanvraag een eigen filter of sortering nodig heeft of wanneer je de totale telling wilt opvragen. Cursor-paging is bedoeld om verder te gaan met dezelfde resultaatset. Bij cursorvervolgverzoeken gebruik je alleen de teruggegeven cursor, omdat filter en sortering daarna worden genegeerd. De Query Data Items-documentatie beschrijft deze keuze en vereist voor deze methode een Wix-app- of Wix-user-identiteit.

Controlepunt: de eerste API-pagina levert dezelfde records en veldwaarden als de CSV-export, afgezien van het feit dat JSON-datumvelden anders worden weergegeven, en de response is verkregen met een OAuth-app-token.

6. Bouw paginering voor meer dan 1.000 records

Een n8n HTTP Request-node haalt niet vanzelf alle pagina's van iedere API op. Controleer eerst de collectie-specificatie. Voor native Wix-collecties is de maximale pagina 1.000 records bij offset-paging en 100 records bij cursor-paging. Externe collecties hebben standaard een maximum van 50, met een providerlimiet tot 1.000. De Wix Data Collection-specificatie noemt deze maxima en de beschikbare paging-modes; die pagina is op 16 september 2026 gecontroleerd.

Voor een volledige native CMS-export kun je offset-paging gebruiken. Zet een vaste sortering op _updatedDate en gebruik de eigenlijke paginagrootte:

{
  "dataCollectionId": "Voorraad",
  "query": {
    "sort": [
      { "fieldName": "_updatedDate", "order": "ASC" }
    ],
    "paging": {
      "limit": 1000,
      "offset": 0
    }
  },
  "returnTotalCount": true
}

Verhoog offset na een succesvolle pagina met het aantal werkelijk ontvangen items, niet blind met 1.000. Stop alleen wanneer pagingMetadata.hasNext expliciet false is. Een lege pagina met hasNext=true is een foutsignaal en mag de run niet groen maken. Bewaar per pagina de offset, ontvangen telling, eerste en laatste _id en de totale telling. Als returnTotalCount een totaal teruggeeft, vergelijk dat met de opgetelde records.

Voor cursor-paging gebruik je op een native collectie maximaal 100:

{
  "dataCollectionId": "Voorraad",
  "query": {
    "sort": [
      { "fieldName": "_updatedDate", "order": "ASC" }
    ],
    "cursorPaging": {
      "limit": 100
    }
  }
}

De volgende aanvraag bevat alleen de cursor uit pagingMetadata.cursors.next. Laat filter en sort weg, want Wix negeert die in een cursorvervolgverzoek:

{
  "dataCollectionId": "Voorraad",
  "query": {
    "cursorPaging": {
      "cursor": "CURSOR_UIT_VORIGE_RESPONSE"
    }
  }
}

Stop de cursorlus wanneer hasNext=false is. Ontbreekt de volgende cursor terwijl hasNext=true is, markeer de run als mislukt. Cursors kunnen verlopen. Hervat dan niet met een oud token, maar start met dezelfde filter en sortering. Voor een dagelijkse delta-run is een offsetroute met een overlapvenster vaak eenvoudiger te hervatten.

Uitvoerbaar n8n-voorbeeld met offset, overlap en hervatten. Laat een Run state-node of Data Store per run deze velden leveren: watermark (bijvoorbeeld de vorige succesvolle run minus tien minuten), run_started_at, next_offset en seen_ids. Houd bij een retry dezelfde watermark aan. De HTTP Request-node zet zijn body op Expression en gebruikt:

={{ {
  dataCollectionId: "Voorraad",
  query: {
    filter: {
      _updatedDate: {
        $gte: { $date: $json.watermark }
      }
    },
    sort: [
      { fieldName: "_updatedDate", order: "ASC" }
    ],
    paging: {
      limit: 1000,
      offset: Number($json.next_offset ?? 0)
    }
  },
  returnTotalCount: false
} }}

Na de HTTP Request zet een Code-node de pagina om in unieke records. Dit is de inhoud van de Code-node in de modus Run Once for All Items:

const state = $("Run state").first().json;
const response = $json;
const seen = new Set(state.seen_ids ?? []);
const page = response.dataItems ?? [];
const records = [];

for (const item of page) {
  const data = item.data ?? {};
  const id = data._id ?? item.id;
  if (!id || seen.has(id)) continue;
  seen.add(id);
  records.push({
    ...data,
    wix_item_id: id,
    source_updated_at: data._updatedDate?.$date ?? data._updatedDate ?? null
  });
}

const received = page.length;
const currentOffset = Number(state.next_offset ?? 0);
return [{
  json: {
    records,
    page_received: received,
    next_offset: currentOffset + received,
    has_next: response.pagingMetadata?.hasNext === true,
    seen_ids: [...seen]
  }
}];

Plaats daarna Split Out op records, de doel-upsert op wix_item_id en pas daarna de state-update. Sla next_offset en seen_ids alleen op nadat alle records van die pagina succesvol zijn verwerkt. Bij een HTTP-, upsert- of netwerkfout blijft het vorige hervatpunt staan, waardoor de volgende run dezelfde pagina opnieuw leest en de deduplicatie plus idempotente upsert dubbele doelrecords voorkomt. Bij has_next=false zet je run_started_at als volgende hoge watermerkwaarde en begin je de volgende run opnieuw met hetzelfde overlapvenster. Een vaste sortering op _updatedDate en de overlap vangen wijzigingen op die precies op de grens vallen.

Controlepunt: bij 2.360 records levert offset-paging drie pagina's op (1.000, 1.000 en 360). Cursor-paging levert 24 pagina's op (23 keer 100 en één keer 60). De eindtelling en het aantal unieke _id's zijn beide 2.360, en een geforceerde fout op pagina twee hervat op de laatst opgeslagen offset.

Haal in n8n alleen dataItems[].data naar de volgende stap. Bewaar voor audit en herstel ook de ruwe response of een verwijzing naar het origineel. Zet lege velden niet automatisch om naar een lege tekst. Een lege availableStock kan betekenen dat de bron niet weet hoeveel er beschikbaar is. Dat is een uitzondering, geen nul.

Gebruik een upsert op wix_item_id of een eigen externe sleutel. De volgorde is: zoek de sleutel in het doel, maak aan als hij niet bestaat, werk bij als hij wel bestaat, en registreer de uitkomst. Voer dezelfde pagina twee keer uit tijdens de test. Het doel mag dan niet dubbel vullen.

Bepaal ook wat een verwijdering betekent. Een query retourneert de huidige collectie, geen lijst met verwijderde items sinds gisteren. Bij een periodieke delta-flow ontdek je een verwijdering alleen als Wix een verwijdermarkering levert of als je de actuele sleutelset periodiek vergelijkt met de doelset. Kies expliciet tussen archiveren, deactiveren en verwijderen.

Maak een aparte fouttak voor 401, 403, 404, 409, 429 en lege responses. Bij 401 controleer je app-token, tokenvervaldatum en app-installatie. Bij 403 controleer je de app-scope en de collectiepermissies. Bij 429 pauzeer je en probeer je later opnieuw. Bij 409 of een typefout stuur je het record naar de foutqueue, niet terug de bron in.

Voor rate limits gebruikt n8n Retry On Fail of de combinatie Loop Over Items en Wait. Stel een concrete wachttijd in en log het aantal pogingen. De n8n-documentatie beschrijft deze retry- en batchinstellingen, gecontroleerd op 16 september 2026.

Controlepunt: je kunt na een run beantwoorden hoeveel records zijn gelezen, aangemaakt, bijgewerkt, overgeslagen en afgewezen, en je weet vanaf welke sleutel je veilig kunt hervatten.

Valkuilen die je export onbetrouwbaar maken

  • De schermnaam gebruiken als API-sleutel. Beschikbare voorraad kan een andere technische naam hebben. Maak een structurele export en leg veld-ID’s vast. Test de kaart na elke wijziging in Wix.
  • Alleen de eerste 50 of 1.000 records ophalen. Een groene n8n-run zegt niets over volledigheid. Log pagina’s, tellingen, eerste en laatste sleutel en vergelijk periodiek met een CSV of telling uit Wix.
  • Een cursor als permanente bookmark bewaren. Cursors kunnen verlopen en filters worden bij vervolgverzoeken genegeerd. Start na een verlopen cursor opnieuw met dezelfde query en markeer de onvolledige run.
  • Live en Sandbox door elkaar halen. Wix kan een export of API-test in de Sandbox laten draaien terwijl je denkt dat je Live gebruikt. Zet de omgeving in de naam van de workflow en controleer de telling met een herkenbaar testrecord.
  • Een CMS-collectie aanzien voor orders of contacten. email in een collectie is geen volledige CRM-record. Gebruik voor orders en contacten de aparte Wix-API’s, met eigen scopes en testdata.
  • Iedereen toegang geven omdat n8n anders 403 geeft. Een collectie met de Wix-permissie ‘Everyone’ kan via de API voor iedere bezoeker leesbaar worden. De permissiedocumentatie is op 16 september 2026 gecontroleerd. Los een rechtenprobleem op met de juiste server-side identiteit en scope. Zet gevoelige collectiepermissies niet open voor gemak.
  • Een app-secret of toegangstoken in de workflow of een screenshot zetten. App-secrets en tokens zijn wachtwoorden met toegang tot sitegegevens. Bewaar ze in n8n Credentials of een secret store, exporteer geen echte waarden en roteer bij een vermoeden van lek.
  • UTC+0 als lokale tijd lezen. Wix exporteert tijdvelden in UTC+0. Een Nederlandse deadline kan daardoor op een andere kalenderdag vallen. Bewaar de ruwe tijd en zet pas in de doelstap om naar Europe/Amsterdam.
  • Verwijderingen vergeten. Alleen nieuwe en gewijzigde records bijwerken laat oude records in het doel staan. Plan een sleutelsetvergelijking en leg vast of je archiveert of verwijdert.
  • Twee schrijf-routes tegelijk activeren. Een CSV-import naast een API-upsert kan dubbele records maken of oude waarden terugzetten. Gebruik CSV eerst als controle en zet maar één route aan die schrijft.
  • API-key en site-ID als universele Wix-authenticatie zien. Dat paar kan bij API-key-adminmethoden werken, maar niet bij Query Data Items. Gebruik voor deze query een Wix-app-token met Read Data Items en controleer de app-installatie, scope en sitecontext.
  • Een grote query laten time-outen. Wix noemt voor veel CMS-plannen een limiet van 5 seconden. Filter op een wijzigingsveld, beperk de velden waar mogelijk en splits een zware collectie op.

Beslis-kader: wanneer is kant-en-klaar genoeg?

De praktische grens loopt langs vier vragen: hoe vaak verandert de data, hoeveel systemen schrijven, wat kost een fout en wie beheert de credentials en foutqueue? Een kleine eenrichtingsstroom met weinig uitzonderingen kan prima in n8n Cloud. Een eenmalige migratie heeft vaak genoeg aan CSV plus een controlebestand. Een route met orders, betalingen, retouren of voorraadcorrecties vraagt sneller maatwerk, omdat herstel belangrijker is dan de eerste succesvolle API-call.

Kies CSV als eenmalige export wanneer je een site migreert, een nulmeting maakt of hooguit af en toe een bestand aanlevert. Het is eenvoudig te controleren en onafhankelijk van een live credential. De grens is duidelijk: het is geen synchronisatie en verwijdert geen oude records uit het doel.

Kies n8n met Wix Data API wanneer je één of enkele collecties periodiek leest, de sleutel en velden stabiel zijn en een eigenaar de workflow kan onderhouden. n8n Cloud is logisch als je geen server wilt beheren. Self-hosted n8n past als data binnen je eigen omgeving moet blijven en iemand updates, back-ups en monitoring kan uitvoeren.

Kies n8n met CSV als gecontroleerde terugval wanneer de API tijdelijk niet werkt, de leverancier alleen bestandsexport toestaat of een nachtelijke batch voldoende is. Maak de CSV-import idempotent op dezelfde sleutel als de API-route. Anders heb je een terugval die je data juist verder uit elkaar trekt.

Kies maatwerk op een eigen beheerde route wanneer je meerdere Wix-API’s combineert, grote collecties met delta’s en sleutelvergelijking verwerkt, of writes met financiële of voorraadgevolgen doet. Maatwerk is ook passend wanneer de organisatie een testomgeving, auditlog, uitzonderingsqueue, menselijke vrijgave en geoefende terugval nodig heeft.

Welke Wix-exportroute past bij jouw situatie?

Hoe vaak moet de Wix-data naar het doel?

De keuzehulp verandert het kader niet. Hij maakt de volgorde zichtbaar. Voor de meeste MKB-routes is n8n met de Data API de beste eerste proef: snel genoeg om echte data te testen en flexibel genoeg om paginering en logging toe te voegen. CSV blijft je onafhankelijke controle. Maatwerk komt in beeld bij aantoonbare grenzen, niet omdat een workflow er professioneler uitziet.

Uitgewerkt voorbeeld: 2.360 Wix-records naar n8n

Neem een denkbeeldige groothandel met een Wix CMS-collectie Voorraad. De collectie bevat 2.360 artikelen. Het doel is een interne voorraadapp die iedere nacht de verkoopbare voorraad bijwerkt. De getallen hieronder maken de route concreet; ze zijn geen marktbenchmark.

De eigenaar legt eerst deze registerregel vast: Wix CMS Voorraad -> n8n -> voorraad-API, alleen lezen uit Wix, dagelijks om 02:00, sleutel _id, zakelijke eigenaar de voorraadmanager, technische eigenaar de applicatiebeheerder. Een verschil in availableStock mag niet automatisch negatief worden geschreven. Dat record gaat naar de foutqueue.

De code-editor van de site staat aan. De beheerder noteert code_editor_enabled=true, Live als omgeving en 16 september 2026 als controledatum. De veldkaart bevat _id, sku, title, availableStock en _updatedDate. Eerst worden de structuur en daarna de volledige collectie geëxporteerd. De CSV telt 2.360 records. Een controle in LibreOffice laat zien dat availableStock een getal is en _updatedDate als UTC+0 is opgeslagen. Het origineel gaat naar een bedrijfsmap met datum in de bestandsnaam.

Voor deze query gebruikt de beheerder geen API-key en geen wix-site-id-header. In plaats daarvan is een self-managed Wix-app op de site geïnstalleerd met de scope Read Data Items. Het OAuth2 API-credential in n8n bevat app-ID, app-secret, instance-ID, token-URL en de extra body-eigenschap instance_id. De workflow krijgt een app-token en gebruikt alleen dat token in Authorization. De workflownaam bevat LIVE, zodat een Sandbox-test niet stil in productie belandt.

De eerste n8n-aanvraag gebruikt limit: 20 en sorteert op _updatedDate oplopend. De response bevat 20 dataItems, waaronder _id en availableStock. De beheerder vergelijkt drie items met dezelfde _id in de CSV. Eén item bevat geen voorraadwaarde. De mapping zet die waarde niet om naar nul, maar naar status needs_review. De eerste test schrijft nog niets.

Voor de volledige run kiest de beheerder offset-paging met maximaal 1.000 records per pagina. Pagina één levert 1.000 items, pagina twee 1.000 en pagina drie 360. De workflow logt pages=3, received=2360 en unique_ids=2360. De Code-node dedupliceert op _id. Een fouttak stopt als unique_ids lager is dan received of als hasNext ten onrechte blijft staan na de derde pagina.

Als dezelfde collectie in plaats daarvan cursor-paging gebruikt, is de limiet 100. Dezelfde 2.360 records worden dan verdeeld over 24 pagina's: 23 pagina's van 100 en de laatste van 60. De cursor vervolgaanvraag bevat alleen de teruggegeven cursor. De workflow logt dus niet ten onrechte drie cursorpagina's met 1.000 records.

De doelstap doet een upsert op wix_item_id. Na een eerste test met 20 records draait dezelfde test nog een keer. Het doel bevat nog steeds 20 regels. Daarna draait de volledige offset-import. De voorraadapp bevat 2.360 regels, waarvan 2.359 een getal hebben en één item in de foutqueue staat. Dat is een geslaagde technische export met één zichtbare inhoudelijke uitzondering. Een workflow die 2.360 groene items meldt zou hier juist minder betrouwbaar zijn.

De state bevat tijdens een delta-run watermark, next_offset en seen_ids. Een overlap van tien minuten en de vaste sortering op _updatedDate nemen grenswijzigingen opnieuw mee. De state-update gebeurt pas na de succesvolle upsert van een pagina. Als pagina twee faalt, blijft de offset van pagina één bewaard; de retry leest pagina twee opnieuw en de upsert op wix_item_id maakt geen duplicaten.

De volgende nacht verwijdert de beheerder in Wix één testrecord en wijzigt twee voorraden. De delta-run ziet de twee gewijzigde records via _updatedDate, maar ziet de verwijdering niet. De nachtelijke reconciliatie vergelijkt de actuele sleutelset met de doelset en markeert de verdwenen _id als archived. Het record wordt niet direct verwijderd, zodat de voorraadmanager de reden kan controleren.

Als de API die nacht een 429 teruggeeft, wacht n8n en probeert hij opnieuw volgens de ingestelde limiet. Bij een verlopen cursor start de workflow een nieuwe query en markeert hij de vorige run als onvolledig. Bij een 403 controleert de beheerder de app-installatie, scope en collectiepermissie. Bij een structurele Wix-wijziging wordt de CSV opnieuw geëxporteerd en naast de veldkaart gelegd.

Dit voorbeeld laat de echte omvang zien. De query zelf is een klein onderdeel. Het werk zit in de code-editor-prerequisite, de bronafbakening, de veldkaart, het app-credential, de pagina's, de upsert, de foutqueue, de verwijderingscontrole en de terugval.\n\n## API, CSV of maatwerk naast elkaar

RouteWanneer kiezenKostenorde op 16 september 2026Sterk puntBreekpuntWie beheert het?
Wix CSV-exportEenmalige migratie, archief of controleGeen losse exportprijs genoemd in de Wix-helptekst; Wix-plan en CMS-toegang bepalen de contextSnel te inspecteren, onafhankelijk controlebestandGeen live synchronisatie, verwijderingen en logica vragen eigen werkBedrijfseigenaar of beheerder
n8n Cloud Starter + Wix Data APIPeriodieke leesstroom met beperkte logica€20 per maand bij jaarlijkse betaling, 2.500 uitvoeringen, onbeperkte stappenGeen serverbeheer, API en CSV in één workflowCloudafhankelijkheid en uitvoeringlimietWorkflow-eigenaar
n8n Cloud Pro + Wix Data APIMeer workflows, teambeheer en 10.000 uitvoeringen€50 per maand bij jaarlijkse betalingMeer uitvoeringen en beheerfunctiesNog steeds onderhoud van mappings en credentialsWorkflow-eigenaar met vervanger
n8n Community Edition self-hostedData binnen eigen omgeving, technische beheerder beschikbaarGeen n8n-licentie; server, back-ups, updates en monitoring zijn eigen kostenMeer controle over data en runtimeBeveiliging en beschikbaarheid worden jouw verantwoordelijkheidTechnisch beheerder
Maatwerk op eigen routeMeerdere Wix-API’s, hoge foutkosten, reconciliatie en vrijgaveProject- en beheerwerk, geen eerlijke vaste prijs zonder scopeEigen datamodel, auditlog en terugvalHogere startinspanning en eigen ontwerpbesluitenBedrijf plus ontwikkelaar

De n8n-prijzen zijn op 16 september 2026 gecontroleerd in de officiële prijslijst. n8n rekent Cloud per volledige workflow-uitvoering, ongeacht het aantal stappen. De actuele prijspagina noemt Starter met 2.500 en Pro met 10.000 uitvoeringen en onbeperkte stappen. Een dagelijkse volledige Wix-export is ongeveer 30 of 31 uitvoeringen per maand als je hem in één workflow houdt. Een route die iedere vijf minuten start, komt volgens n8n zelf uit op ongeveer 8.600 tot 8.900 uitvoeringen per maand. Tel retries en parallelle workflows mee.

Wat blijft van jou als je Wix verlaat?

Een goede export maakt je data koppelbaar, maar maakt je volledige digitale product nog niet draagbaar. Leg daarom drie lagen apart vast.

Data: records, veldwaarden, systeem-ID’s en een eventueel apart mediabestand kun je exporteren. Controleer of referenties, afbeeldingen, rich content, verborgen velden en tijdzones begrijpelijk blijven. Orders, contacten, betalingen en analytics hebben mogelijk eigen API’s en exportpaden. Een CSV met een URL naar een Wix-afbeelding draagt nog niet automatisch het afbeeldingsbestand over.

Logica: n8n-workflows, veldtransformaties, filters, foutregels, reconciliatie en de betekenis van lege waarden zijn jouw bedrijfslogica. Een Wix-pagina kan een dataset aan een collectie binden, maar die binding komt niet mee met een CMS-CSV. Noteer daarom de logica in een workflow-export zonder secrets, een veldkaart en een korte beslisnotitie.

Eigendom en toegang: het app-ID, de app-secret, het instance-ID, de Wix-account, eventuele site-ID's, domeinnaam, n8n-project, server, back-ups en betaalrelaties moeten onder een bedrijfsaccount staan. Een webbouwer mag beheer uitvoeren, maar mag niet de enige eigenaar van de sleutel of het herstelpad zijn. De Autoriteit Persoonsgegevens maakt het onderscheid helder: de organisatie die doel en middelen van persoonsgegevens bepaalt is verwerkingsverantwoordelijke; een leverancier die in opdracht uitvoert is meestal verwerker. De AP legt dit onderscheid uit voor organisaties die cloud- of andere dienstverleners inschakelen. De uitleg is op 16 september 2026 geraadpleegd. Dat is geen eigendomsakte voor je CMS, maar wel een goede reden om rollen, verwerkersafspraken, toegang en verwijdering schriftelijk vast te leggen.

Bewaar minstens één keer per kwartaal een volledige CSV van iedere kritieke CMS-collectie, plus de structuur-export, veldkaart, workflow zonder secrets en een testverslag. Test ook of een tweede beheerder de export kan uitvoeren. Een bestand dat alleen bestaat op de laptop van de bouwer is geen back-up.

Een Wix-koppeling is pas klaar als de data ergens aankomt én je kunt uitleggen waarom die data klopt. De grens van 1.000 records bij offset, 100 bij cursor, de UTC-tijd, een veld-ID en een app-token zijn geen technische voetnoten. Ze bepalen of je voorraad, CRM of administratie morgen nog hetzelfde verhaal vertelt. Houd de bronwaarde stabiel, maak de tussenstap controleerbaar en oefen de terugval voordat je hem nodig hebt.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

Van Wix-export naar eigendom

Ik denk met je mee over de juiste Wix-uitgang, leg veldbezit en terugval vast en realiseer de koppeling end-to-end, van API-test en n8n-flow tot logging en beheer bij jouw organisatie.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Genoemde integraties

Dit artikel noemt deze tools. Ik koppel ze op maat aan je eigen systemen.

Gerelateerde artikelen

Single source of truth: per veld eigenaarschap, reconciliatie en herstel
Gids
Uitgebreide gids17 min

16 sep 09:00

Single source of truth: per veld eigenaarschap, reconciliatie en herstel

Maak klant-, voorraad- en orderdata bestuurbaar. Wijs per veld een bronhouder aan, leg sleutels en synchronisatieregels vast en herstel verschillen zonder dubbelen of stille overschrijvingen.

API-uitfasering migreren: van register naar veilige vrijgave
Gids
Uitgebreide gids18 min

14 sep 17:00

API-uitfasering migreren: van register naar veilige vrijgave

Een leverancier wijzigt je API of authenticatie. Met deze methode inventariseer je de impact, test je oud en nieuw naast elkaar, laat je bewust vrijgeven en houd je een terugvalpad dat met data rekening houdt.

AI-kennisbank bouwen: zonder bron-eigenaar is je kennisbank slechts een snellere gedeelde map
Gids
Uitgebreide gids17 min

13 sep 09:00

AI-kennisbank bouwen: zonder bron-eigenaar is je kennisbank slechts een snellere gedeelde map

Een AI-kennisbank zonder bron-eigenaar is slechts een snellere gedeelde map. Leer hoe je twintig echte vragen koppelt aan vrijgegeven bronnen, eigenaars, rechtenfilters, uitzonderingen en een meetbare vrijgavepoort.

Exact, Visma en Neno verschuiven de boekhouding naar de AI-laag
Signaal
8 min

13 sep 08:44

Exact, Visma en Neno verschuiven de boekhouding naar de AI-laag

Exact, Visma en Neno bouwen ieder een andere route van boekhouding naar AI-agent. De gemene deler zit niet in het taalmodel, maar in de financiële bron: wie die beheert, bepaalt straks toegang, actie en menselijke controle.

Kabinet herijkt WBSO en verruimt innovatiebox voor mkb
Nieuws
3 min

16 sep 10:15

Kabinet herijkt WBSO en verruimt innovatiebox voor mkb

Het kabinet wil de WBSO beter laten aansluiten op AI-softwareontwikkeling en verhoogt het forfaitaire innovatieboxplafond voor mkb’ers van €25.000 naar €100.000. De WBSO-afbakening is nog niet definitief.

Databricks investeert ruim 350 miljoen dollar in Singapore
Nieuws
4 min

16 sep 08:44

Databricks investeert ruim 350 miljoen dollar in Singapore

Databricks investeert meer dan 350 miljoen dollar in Singapore en bouwt er zijn enterprise-AI-ecosysteem uit. Voor Nederlandse datateams is vooral de koppeling van agentcontext, governance, modelkeuze en kostencontrole relevant.