Veldkoppeling & sync-herhalingen
Brevo, webhooks, Google Sheets, HubSpot, Mailchimp, Notion en Airtable delen één veldkoppelingssysteem: elk doelveld wordt gekoppeld aan een bron aan de quizkant, optioneel getransformeerd, en gevalideerd vóór elke synchronisatiepoging. Slack ondersteunt geen veldkoppeling — dat stuurt in plaats daarvan een vast opgemaakt bericht.
Laatst bijgewerkt
Hoe werkt veldkoppeling bij FluoTest-integraties?
Elk doelveld wordt gekoppeld aan een standaard quizveld, een specifieke vraag, of een berekende waarde, met een optionele transformatie, voorwaarde en terugvalwaarde. Het doelschema wordt live uitgelezen uit het gekoppelde account. Mislukte synchronisatiepogingen worden gelogd en automatisch opnieuw geprobeerd met oplopende vertraging voordat ze als dood worden gemarkeerd.
Providers met veldkoppeling
De volgende providers ondersteunen veldkoppeling. Elk leest zijn doelschema live uit het gekoppelde account of de gekoppelde bron; een webhook heeft geen schema om op te halen, dus de doelsleutels zijn vrij te bepalen.
| Provider | Bron van doelschema |
|---|---|
| Brevo | Contactattributen van het gekoppelde Brevo-account. |
| Webhook | Geen — doelsleutels zijn vrij te bepalen. |
| Google Sheets | De kopregel van het geselecteerde sheet. |
| HubSpot | Contacteigenschappen van het gekoppelde HubSpot-account. |
| Mailchimp | Merge fields van de geselecteerde doelgroep. |
| Notion | Eigenschappen van de geselecteerde database. |
| Airtable | Velden van de geselecteerde tabel. |
Bronvelden
Elke quiz biedt dezelfde set standaard bronvelden, plus één veld per vraag.
| Veld | Beschrijving |
|---|---|
| E-mailadres van de respondent. | |
| name | Volledige naam. |
| first_name | Voornaam. |
| last_name | Achternaam. |
| company | Bedrijfsnaam, indien verzameld. |
| score | Totaalscore. |
| max_score | Maximaal mogelijke score. |
| score_percent | Score als percentage. |
| tier | Label van het gematchte scoreniveau. |
| outcome | Sleutel van de gematchte primaire uitkomst (Pro-uitkomstsysteem). |
| tags | Het niveaulabel, als lijst met één item — gebruikt als tags-doel bij providers die tags ondersteunen. |
| submitted_at | Tijdstempel van de inzending. |
| quiz_name | Naam van de quiz. |
| country | Wordt momenteel niet verzameld; altijd leeg. |
Elke vraag in de quiz is ook beschikbaar als bronveld, gelabeld met de vraagtekst.
Transformatietypes
Een koppeling kan één van de volgende transformaties toepassen op de opgehaalde bronwaarde voordat deze wordt verstuurd.
| Type | Beschrijving |
|---|---|
| none | Stuurt de bronwaarde ongewijzigd. |
| lowercase | Zet een tekstwaarde om naar kleine letters. |
| uppercase | Zet een tekstwaarde om naar hoofdletters. |
| concat | Voegt meerdere velden en/of vaste tekst samen met een scheidingsteken. |
| json_path | Leest een geneste waarde uit het answers- of scores-object van de inzending via een puntpad. |
| constant | Stuurt altijd een vaste waarde, ongeacht enig bronveld. |
| computed | Leidt een waarde af die FluoTest berekent: full_name, score_fraction (bijv. "8/10"), of score_percent. |
| custom | Een sjabloontekst met {field_key}-plaatshouders die worden vervangen door bronvelden. |
Voorwaardelijke koppeling
Een koppeling kan één voorwaarde bevatten: deze wordt alleen toegepast als een vergelijking met een bronveld (gelijk aan, ongelijk aan, groter dan, kleiner dan, of bevat) waar is. Zo kan één doelveld anders — of helemaal niet — worden gevuld, afhankelijk van quizantwoorden of score.
Terugvalwaarden
Als de opgehaalde waarde van een koppeling leeg is, wordt in plaats daarvan de terugvalwaarde gebruikt (indien ingesteld). Een koppeling met een terugvalwaarde en geen bronveld stuurt altijd die terugvalwaarde.
Verplichte velden en validatie
Een doelveld dat door het schema als verplicht is gemarkeerd, moet via een koppeling — een bron, een constante of een terugvalwaarde — een niet-lege waarde krijgen, anders mislukt de synchronisatie op validatie voordat deze wordt geprobeerd. Validatiefouten worden niet automatisch opnieuw geprobeerd, omdat opnieuw proberen zonder de koppeling te wijzigen hetzelfde resultaat oplevert; de koppeling moet worden gecorrigeerd.
Aflevering, herhalingen en mislukkingen
Elke synchronisatiepoging — of deze nu slaagt, mislukt, of opnieuw wordt geprobeerd — wordt gelogd. Een mislukte poging (behalve een validatiefout) wordt in de wachtrij gezet voor een nieuwe poging met oplopende vertraging.
| Status | Betekenis |
|---|---|
| success | Zonder fout afgeleverd. |
| failed | De meest recente poging is mislukt; kan nog opnieuw worden geprobeerd. |
| retrying | In de wachtrij voor een volgende poging op een gepland tijdstip. |
| dead | Alle herhalingspogingen zijn uitgeput, of de mislukking was een validatiefout — geen verdere automatische pogingen. |
Herhalingen worden gepland 1 minuut, 5 minuten en 30 minuten na elke mislukte poging (tot 3 herhalingen bovenop de eerste poging, in totaal 4 pogingen). Een achtergrondtaak controleert elke minuut op verschuldigde herhalingen. Een in de wachtrij staande of dode synchronisatie kan ook handmatig opnieuw worden geprobeerd vanuit het integratiedashboard van de quiz.
Veelgestelde vragen
Welke integraties ondersteunen veldkoppeling?
Brevo, webhooks, Google Sheets, HubSpot, Mailchimp, Notion en Airtable. Slack stuurt in plaats daarvan een vast opgemaakt bericht en gebruikt geen veldkoppeling.
Waar komt de lijst met doelvelden vandaan?
Deze wordt live uitgelezen uit het gekoppelde account of de gekoppelde bron — bijvoorbeeld de contacteigenschappen van HubSpot, of de kopregel van een Google Sheet — in plaats van een vaste lijst, zodat aangepaste velden worden weergegeven.
Wat gebeurt er als een verplicht doelveld geen koppeling heeft?
De synchronisatie mislukt op validatie en wordt niet geprobeerd of opnieuw geprobeerd. Door een bronveld, constante of terugvalwaarde aan het verplichte veld te koppelen, wordt dit opgelost.
Hoe vaak probeert FluoTest een mislukte synchronisatie opnieuw?
Tot 3 extra pogingen na de eerste, met vertragingen van 1, 5 en 30 minuten. Daarna, of direct bij een validatiefout, wordt de synchronisatie als dood gemarkeerd en kan deze handmatig opnieuw worden geprobeerd.