Toegestane domeinen
Een eigenaar of manager zet de domeinen in het developer dashboard, onder Toegestane domeinen. Je kunt ze niet met een API-sleutel wijzigen. Zo kan iemand met een gelekte sleutel medewerkers niet naar een eigen pagina in de huisstijl van de werkgever sturen.
- Eén domein per regel, met
https:/, zoals/ https:/. Een pad laten we weg. Jokertekens kunnen niet: noem elk subdomein apart. Hooguit 20 domeinen./ app. jouwapp. nl - De sandbox volgt de lijst van de organisatie zelf.
- Bij een softwarepartner tellen twee lijsten: die van de werkgever en die van de partner. Een partner zet zijn eigen domeinen één keer en kan ze dan gebruiken voor elke werkgever die hem toelaat.
GET /geeft de lijst terug inv1/ organization allowed_origins.
Terugsturen met return_url
Geef bij het aanmaken options. mee. Na het versturen toont de statuspagina een knop terug naar dat adres.
{ "options": { "return_url": "https://app.jouwapp.nl/onboarding/klaar?sollicitant=4711" } }- Alleen
https, op een toegestaan domein. Anders krijg je422 return_url_not_allowed(geen toegestaan domein) of422 return_url_invalid(geen https-adres). - Zet geen persoonsgegevens in het adres; een eigen kenmerk zoals een sollicitant-id kan wel.
De onboarding in je eigen site
Laad embed. en geef het de hosted_url uit POST /. Het script maakt een iframe die meegroeit met de inhoud.
<div id="onboarding"></div>
<script src="https://app.agreli.nl/embed.js"></script>
<script>
const onboarding = Agreli.mount("#onboarding", {
url: hostedUrl, // hosted_url uit POST /v1/onboardings
onEvent: (e) => {
if (e.type === "submitted") toonBedankt();
if (e.type === "status") console.log("Stand:", e.state);
},
});
// Later weghalen: onboarding.destroy();
</script>De iframe werkt alleen op een toegestaan domein. Op elke andere site weigert de browser hem; daarvoor zet Agreli per link de kop Content-Security-Policy: frame-ancestors met jouw domeinen.
Berichten aan je pagina
onEvent krijgt berichten met source: "agreli" en een type. Ze bevatten nooit persoonsgegevens.
| type | Wanneer | Extra |
|---|---|---|
ready | De pagina is geladen. | |
resize | De hoogte van de inhoud verandert. embed. past de iframe zelf aan. | height |
verified | De medewerker heeft de eenmalige code bevestigd. | |
submitted | De medewerker heeft de gegevens verstuurd. | |
signed | De medewerker heeft het contract getekend. | |
status | De stand van de onboarding, bij elke wijziging. | state |
return | De medewerker klikt op de knop terug naar je return_url. De hele pagina gaat daarheen, niet alleen de iframe. | return_url |
closed | De medewerker sluit af. |
Vertrouw voor je administratie niet op deze berichten: ze komen uit de browser. Gebruik webhooks of GET / voor de echte stand.
Goed om te weten
- Inloggen. Ook ingebed bevestigt de medewerker met een eenmalige code. Omdat browsers cookies van een ander domein in een iframe vaak blokkeren, onthoudt de pagina de sessie alleen zolang de iframe open is. Na herladen vraagt de medewerker een nieuwe code.
- Camera.
embed.geeft de iframe toestemming voor de camera, voor de scan van het identiteitsbewijs. Zet je zelf eenjs Permissions-Policy, sta dancameratoe voorhttps:/./ app. agreli. nl - Je eigen CSP. Heeft je site een Content-Security-Policy, voeg dan
https:/toe aan/ app. agreli. nl script-src(voorembed.) en aanjs frame-src. - Zonder script. Een eigen iframe kan ook:
https:/, met/ app. agreli. nl/ m/ …?embed=1&origin=https:/ / app. jouwapp. nl allow="camera". Berichten komen dan alspostMessagebinnen. Controleer altijd datevent.gelijk is aanorigin https:/./ app. agreli. nl - Huisstijl. De pagina toont het logo en de kleur van de werkgever, ook ingebed.