De koppeling draait op drie gebeurtenissen. Het ATS stuurt een uitnodigingstrigger zodra een kandidaat de assessmentfase bereikt, Selection Lab stuurt na afronding een callback terug met status, matchscore en rapport-URL, en een mappinglaag vertaalt die uitkomst naar de juiste ATS-status, inclusief afwijzing. Wie weet in welke laag een probleem zit, lost het het snelst op.
Een assessmentplatform dat niet strak met je ATS koppelt, levert handwerk op precies het verkeerde moment. Een recruiter met 50 of meer lopende sollicitaties wil dat statusupdates, scores en afwijzingen automatisch doorlopen. Dit referentiedocument beschrijft op systeemniveau hoe de koppeling van Selection Lab met Emply, Jobylon en Salesforce werkt. Wat de uitnodiging triggert, wat er terugkomt als een kandidaat het assessment heeft afgerond en hoe een afwijzing terugkomt als status in het ATS. Werk je met Recruitee of SmartRecruiters, lees dan statusmapping van assessmentresultaten in Recruitee en SmartRecruiters.
Elke koppeling bestaat uit drie losse gebeurtenissen.
Weten in welke laag een probleem thuishoort, is de snelste manier om configuratiefouten te isoleren.
| Begrip | Betekenis |
|---|---|
| Uitnodigingsstatus | Of de uitnodiging is afgeleverd en geopend. Mogelijke waarden pending, sent, opened, failed. |
| Afrondingsstatus | De eindtoestand van de assessmentpoging. completed, declined, expired, error. |
| Rapportbeschikbaarheid | Of het volledige resultaatrapport (URL of ingebedde weergave) klaarstaat om in het ATS te tonen. |
| Kandidaatuitkomst | De vervolgactie in het ATS op basis van afrondingsstatus en scoredrempel. advance, reject, withdraw of manual review. |
Zodra een kandidaat in Emply naar een fase gaat die een Selection Lab-assessment triggert, stuurt Emply een gestructureerde payload naar het webhook-endpoint van Selection Lab. Hieronder staan de velden die in een goed ingerichte Emply-koppeling aanwezig horen te zijn. Velden met de markering [nog te bevestigen] moet je controleren in je eigen Emply-omgeving, omdat de publieke helpdocumentatie van Emply het volledige payload-schema niet publiceert.
| Veld | Type | Verplicht | Functie in Selection Lab |
|---|---|---|---|
first_name | string | Ja | Personaliseert de uitnodiging en de kop van het rapport |
last_name | string | Ja | Identiteit in het rapport, herkenning van dubbelen |
email | string (RFC 5322) | Ja | Primair kanaal voor de uitnodiging |
application_id | string | Ja | Correlatiesleutel, komt terug in de callback zodat Emply het juiste record bijwerkt |
candidate_id | string | Ja | Externe kandidaatidentiteit, gebruikt voor deduplicatie over sollicitaties heen |
requisition_id | string | Aanbevolen | Koppelt het assessment aan de juiste vacature en bepaalt het assessmentprofiel als profielen per vacature zijn gemapt |
locale / language | ISO 639-1 (bijv. nl, en) | Aanbevolen | Bepaalt de taal van het assessment en de uitnodigingstekst |
phone | string (E.164) | Optioneel | Alleen nodig als de uitnodiging via WhatsApp gaat, anders wordt e-mail gebruikt |
consent_flag | boolean | Optioneel [nog te bevestigen] | Geeft Emply een vooraf verzamelde toestemming mee, dan legt Selection Lab die vast. Anders start de eigen toestemmingsflow van Selection Lab voordat resultaten worden gedeeld |
Wat er gebeurt als optionele velden ontbreken. Ontbreekt locale, dan valt Selection Lab terug op de taal die in het assessmentprofiel is ingesteld. Ontbreekt phone terwijl het kanaal op WhatsApp staat, dan mislukt de uitnodiging zonder melding, tenzij e-mail als terugvalkanaal is ingesteld. Controleer dat terugvalgedrag in je Selection Lab-accountinstellingen.
De trigger loopt via een webhook of een connector-synchronisatie. Het exacte mechanisme is nog te bevestigen, check of jouw Emply-omgeving met webhook push of met een pollende connector werkt. De configuratie gaat zo.
requisition_id meestuurt zodat Selection Lab het juiste profiel zelf kan bepalen.Wat er gebeurt bij een authenticatiefout. Is de API-credential verlopen of verkeerd ingesteld, dan krijgt Emply een HTTP 4xx terug. Afhankelijk van de connectorconfiguratie verdwijnt de uitnodiging dan stil of komt hij in een retry-wachtrij. Controleer de integratielogs in Emply en in het adminpaneel van Selection Lab om aflevering te bevestigen.
Het retry-gedrag bij mislukte aflevering (aantal pogingen, wachttijd, dead-letter) is nog te bevestigen met je integratie-engineer bij Selection Lab.
Zodra een kandidaat het assessment afrondt of verlaat, stuurt Selection Lab een callback naar Emply. Die payload bevat de volgende onderdelen.
| Status | Betekenis |
|---|---|
completed | Kandidaat heeft alle onderdelen afgerond |
declined | Kandidaat heeft de uitnodiging actief geweigerd |
expired | Termijn verstreken zonder actie van de kandidaat |
partial | Kandidaat is begonnen maar niet klaar (als gedeeltelijke inzendingen aanstaan) |
error | Technische fout tijdens de assessmentsessie |
| Veld | Type | Toelichting |
|---|---|---|
match_score | integer (0-100) | Samengestelde matchscore tegen het functieprofiel |
component_scores | object | Uitsplitsing per onderdeel (bijv. cognitief, persoonlijkheid, hard skills). De exacte sleutelnamen hangen af van je assessmentprofiel, nog te bevestigen |
report_url | string (URL) | Directe link naar het volledige rapport in het Selection Lab-portaal, in Emply te tonen via iframe als dat is ingesteld |
report_available | boolean | Wordt true zodra de PDF van het rapport is gegenereerd en toegankelijk is |
completed_at | ISO 8601-tijdstempel | Afrondingstijd in UTC |
application_id | string | Overgenomen uit de uitnodigingspayload om het ATS-record te herkennen |
candidate_id | string | Overgenomen voor deduplicatie |
Het privacymodel van Selection Lab laat de resultaten eerst aan de kandidaat zien. Daarna wordt opnieuw om toestemming gevraagd voordat de resultaten teruggaan naar het ATS. Heeft een kandidaat het assessment afgerond maar die tweede toestemming nog niet gegeven, dan kunnen report_url en component_scores in de callback worden achtergehouden of als null terugkomen totdat de toestemming is vastgelegd. Persoonsgegevens staan opgeslagen in Frankfurt, in lijn met de Europese eisen aan dataresidentie.
Hoe Emply die toestemmingsdrempel precies afhandelt (de hele callback blokkeren of een gedeeltelijke payload sturen met een consent_pending-vlag) is nog te bevestigen bij je accountmanager van Selection Lab.
| Afrondingsstatus Selection Lab | Scorevoorwaarde | Aanbevolen doelstatus in Emply |
|---|---|---|
completed | Score >= ingestelde drempel | Door naar de volgende fase (bijv. "Interview") |
completed | Score < ingestelde drempel | "Afgewezen - Assessment" of vergelijkbaar |
declined | n.v.t. | "Teruggetrokken" of "Geen reactie" |
expired | n.v.t. | "Afgewezen - Niet verschenen" of een ingestelde fase |
error | n.v.t. | "Handmatige beoordeling" |
De exacte fase- en statusnamen in Emply zijn picklist-waarden uit jouw configuratie. De mapping in de integratie-instellingen van Selection Lab moet die tekst letterlijk overnemen. Een afwijking ("Afgewezen" tegenover "afgewezen" of "AFGEWEZEN") laat de callback stil mislukken of een 422 teruggeven.
Bij een afwijzing kan Selection Lab de kandidaat op twee manieren informeren.
De timing (direct of vertraagd) en de exacte templatevariabelen zijn nog te bevestigen in je Selection Lab-accountconfiguratie.
Uitnodigingspayload (Emply naar Selection Lab)
{
"event": "assessment.invite",
"application_id": "APP-00123",
"candidate_id": "CAND-78901",
"requisition_id": "REQ-456",
"first_name": "Jane",
"last_name": "Smith",
"email": "[email protected]",
"phone": "+31612345678",
"locale": "nl",
"consent_flag": true
}
Callback na afronding (Selection Lab naar Emply)
{
"event": "assessment.completed",
"application_id": "APP-00123",
"candidate_id": "CAND-78901",
"completion_status": "completed",
"match_score": 74,
"component_scores": {
"cognitive": 68,
"personality": 81,
"hard_skills": 72
},
"report_url": "https://app.selectionlab.com/reports/APP-00123",
"report_available": true,
"completed_at": "2026-08-30T09:14:22Z"
}
Veldnamen en de sleutels in component_scores hangen af van je actieve assessmentprofiel. Bovenstaande is illustratief, controleer het exacte schema in de integratiespecificatie van Selection Lab.
application_id ontbreekt. Zonder correlatiesleutel weet Selection Lab niet welk Emply-record bijgewerkt moet worden. Controleer in de connectorconfiguratie of Emply dit veld bij elke uitnodiging meestuurt.Jobylon documenteert assessmentkoppelingen via Pipeline Actions. Volgens de supportdocumentatie van Jobylon (27 januari 2026) richt je partnerintegraties in op fase-niveau. Ga naar Pipeline Actions, maak een actie aan naast de status die je wilt automatiseren, kies "Partner Integrations" als actietype, selecteer je assessmentleverancier en sla op. Daarna gaat automatisch een assessment uit zodra een kandidaat naar die status verhuist.
De Jobylon-koppeling is dus gebeurtenisgedreven door een statuswissel, niet door een handmatige actie van de recruiter. Buiten de Pipeline Actions is aan recruiterkant geen aparte webhookconfiguratie nodig. De uitnodiging gaat uit op het moment dat het ATS de fasewissel registreert.
Selection Lab past direct in dat model. Bereikt een kandidaat de ingestelde fase, dan ontvangt Selection Lab het uitnodigingsevent en verstuurt de assessmentuitnodiging. Recruiters zien het volledige rapport en de losse scores in het kandidaatrecord in Jobylon zodra de resultaten terug zijn.
Het supportartikel van Jobylon over partnerintegraties publiceert het volgende niet.
Vraag de integratiespecificatie voor Selection Lab en Jobylon op bij je accountmanager van Selection Lab, of kijk in de Jobylon-admin onder Settings en Integrations voor detail op veldniveau.
Voor het retourpad (resultaten terug in Jobylon) geldt hetzelfde callbackpatroon als bij Emply. Afrondingsstatus, matchscore, onderdeelscores en rapport-URL komen op het kandidaatrecord. De pipeline van Jobylon kan daarna kandidaten automatisch verplaatsen op basis van scoredrempels, met de eigen score-gebaseerde automatisering.
Het datamodel van Salesforce voor recruitment (native Salesforce Recruiting of een managed package zoals Salesforce for Recruiting) werkt met strikt getypeerde picklist-velden op objecten als Application, Assessment of eigen tussenobjecten. Dat legt strengere eisen op aan de resultaatmapping dan Emply of Jobylon.
De Salesforce-koppeling van Selection Lab zet de resultaten op een aangewezen object, meestal een custom Assessment__c of vergelijkbaar object, of een bestaand Application- of Candidate Stage-object, afhankelijk van je org-configuratie. De velden zijn inhoudelijk hetzelfde als in de Emply-callback. Afrondingsstatus, scores, rapport-URL en tijdstempel. De exacte API-veldnamen en doelobjecten hangen af van het schema van jouw Salesforce-org.
De belangrijkste beperking. Elke statuswaarde die je vanuit een Selection Lab-status mapt, moet een actieve picklist-waarde zijn in je org. Staat completed_with_low_score niet als geldige waarde in je veld Application_Status__c, dan mislukt de update met een validatiefout van Salesforce.
In Salesforce is afwijsmapping een vertaling in twee stappen.
completed, declined, expired) plus een geslaagd-of-gezakt-oordeel op basis van de scoredrempel."Rejected - Assessment", "No Longer in Consideration").Werk je met Salesforce Experience Cloud en doen kandidaten het assessment via een portaal, dan moeten de rechten van externe gebruikers op de betreffende objecten het lezen van status en rapport-URL toestaan. Dit is een veelvoorkomende oorzaak van tickets met "resultaten niet zichtbaar" bij Salesforce-implementaties.
Voor afwijsmapping met automatisch getriggerde uitnodigingen in Salesforce geldt hetzelfde patroon als bij Emply. Een ingestelde drempel zet de afwijsstatus, en het berichtkanaal (e-mail, WhatsApp) volgt uit de contactgegevens van de kandidaat en de templateconfiguratie in Selection Lab.
Welk ATS je ook gebruikt, normaliseer eerst de canonieke statussen van Selection Lab voordat je naar ATS-specifieke waarden schrijft. De matrix hieronder geldt voor Emply, Jobylon en Salesforce.
| Canonieke uitkomst Selection Lab | Scorevoorwaarde | Aanbevolen ATS-actie | Toelichting |
|---|---|---|---|
knockout_reject | Knock-outcriterium geraakt tijdens de SmartChat-intake | Direct afwijsstatus plus afwijsbericht | Geen assessment verstuurd, kandidaat valt af in de screeningslaag |
completed_pass | match_score >= drempel van de functie | Door naar de volgende fase | Recruiterreview optioneel of overgeslagen |
completed_fail | match_score < drempel van de functie | Afwijsstatus (assessmentfase) | Afwijsbericht via het ingestelde kanaal |
declined | Kandidaat weigert de uitnodiging | Teruggetrokken of "geen reactie" | Geen score beschikbaar |
expired | Termijn van de uitnodiging verstreken | Afwijzing of "niet verschenen" | Instelbaar, sommige organisaties kiezen voor handmatige beoordeling |
error | Technische fout | Wachtrij handmatige beoordeling | Nooit automatisch afwijzen, opnieuw proberen of opnieuw uitnodigen |
Het principe achter deze matrix is eerst normaliseren, dan mappen. Zet ATS-specifieke picklist-waarden nooit hard in de callbacklogica. Houd in je integratieconfiguratie een mappingtabel bij die de canonieke statussen van Selection Lab vertaalt naar jouw ATS-teksten. Hernoemt Emply een fase, dan pas je de tabel één keer aan in plaats van de integratie zelf.
application_id en candidate_id zitten in elke uitnodigingspayload| Symptoom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Kandidaat staat in de assessmentfase maar krijgt geen uitnodiging | Webhook vuurt niet of authenticatie mislukt | Check de connectorlogs, controleer credentials, controleer de Pipeline Actions (Jobylon) of de connectormapping (Emply, Salesforce) |
| Uitnodiging komt aan in de verkeerde taal | Veld locale ontbreekt of wordt niet meegestuurd | Controleer of het ATS locale meestuurt, stel een standaardtaal in op het assessmentprofiel als terugval |
| Dubbele uitnodigingen | candidate_id dedupliceert niet goed | Controleer de deduplicatielogica in je Selection Lab-tenant, check of het ATS de trigger meerdere keren vuurt bij terugkeer in een fase |
| Rate-limitfout op het uitnodigingsendpoint | Piek in volumewerving | Bespreek de API-limieten van Selection Lab met je accountmanager, zet zo nodig een wachtrij voor het versturen op |
| Symptoom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Resultaten verschijnen niet in het ATS | Toestemming staat nog open of application_id komt niet overeen | Check de toestemmingsstatus in de Selection Lab-admin, controleer of application_id correct terugkomt in de callback |
report_url geeft een 403 | Onvoldoende rechten (vaak bij Salesforce Experience Cloud) | Stel de rechten van externe gebruikers of profielen op het rapportobject in |
| ATS-status wordt niet bijgewerkt na afronding | Picklist-waarde komt niet overeen | Exporteer de ATS-picklist, werk de mappingtabel in de integratieconfiguratie bij |
| Scorevelden ontbreken in het ATS | Assessmentprofiel bevat niet alle onderdelen | Controleer de actieve onderdelen in het profiel, check het retourschema in de integratiespecificatie van Selection Lab |
Log op drie punten. (1) De dispatchlog van de ATS-connector of webhook om te zien dat de uitnodigingsevents zijn afgevuurd, (2) de eventlog in de Selection Lab-admin om te zien dat uitnodigingen zijn ontvangen en afgeleverd, en (3) de updatelog van het ATS om te zien dat de callbacks zijn toegepast. Bij Salesforce geven Apex-debuglogs of Platform Event-logs het meeste detail.
Reconciliatie. Draai wekelijks een rapport dat kandidaten in de fase "Assessment" vergelijkt met kandidaten die een afgerond Selection Lab-resultaat hebben. Elk verschil wijst op een mislukte aflevering of een resultaat dat door toestemming wordt geblokkeerd. De meeste ATS'en kunnen dit met een simpel pipelinefilter, het rapportagepaneel van Selection Lab levert een bijpassende export.
Blijven afleveringen mislukken, vraag dan bij Selection Lab een export van de audittrail op met tijdstempels, HTTP-responscodes en retry-pogingen. Dat is de snelste manier om te zien of de fout aan de kant van de ATS-connector zit of in de afleverpipeline van Selection Lab. Wil je de koppeling met jouw ATS zien werken? Vraag een demo aan.
Een fasewissel in de pipeline. Emply, Jobylon en Salesforce sturen elk een uitnodigingsevent naar Selection Lab zodra een kandidaat de ingestelde assessmentfase bereikt. In Jobylon richt je dat in via Pipeline Actions, in Emply via de connectorinstellingen, in Salesforce via een Flow, een Apex-trigger of de Selection Lab-connector.
Een afrondingsstatus (completed, declined, expired, partial of error), een matchscore van 0 tot 100, scores per onderdeel, een rapport-URL, een vlag of het rapport beschikbaar is, een UTC-tijdstempel en de application_id en candidate_id, zodat het ATS het juiste record bijwerkt.
Meestal omdat de tweede toestemming van de kandidaat nog openstaat, de application_id niet overeenkomt of de statuswaarde niet letterlijk in de ATS-picklist staat. Check eerst de toestemmingsstatus in de Selection Lab-admin, daarna de correlatiesleutel, daarna de picklist-mapping.
Eerst normaliseren, dan mappen. Vertaal de canonieke uitkomsten van Selection Lab (completed_pass, completed_fail, declined, expired, error, knockout_reject) via een mappingtabel naar je ATS-statussen. Zet picklist-teksten nooit hard in de callbacklogica en stuur een error altijd naar handmatige beoordeling, nooit naar automatische afwijzing.
Alleen als er een terugvalkanaal is ingesteld. WhatsApp vereist een telefoonnummer in E.164-formaat. Zonder nummer valt de uitnodiging terug op e-mail als dat is ingesteld, en mislukt hij stil als dat niet zo is. Controleer die instelling dus vóór livegang.

De koppeling draait op drie gebeurtenissen. Het ATS stuurt een uitnodigingstrigger zodra een kandidaat de assessmentfase bereikt, Selection Lab stuurt na afronding een callback terug met status, matchscore en rapport-URL, en een mappinglaag vertaalt die uitkomst naar de juiste ATS-status, inclusief afwijzing. Wie weet in welke laag een probleem zit, lost het het snelst op.
Een assessmentplatform dat niet strak met je ATS koppelt, levert handwerk op precies het verkeerde moment. Een recruiter met 50 of meer lopende sollicitaties wil dat statusupdates, scores en afwijzingen automatisch doorlopen. Dit referentiedocument beschrijft op systeemniveau hoe de koppeling van Selection Lab met Emply, Jobylon en Salesforce werkt. Wat de uitnodiging triggert, wat er terugkomt als een kandidaat het assessment heeft afgerond en hoe een afwijzing terugkomt als status in het ATS. Werk je met Recruitee of SmartRecruiters, lees dan statusmapping van assessmentresultaten in Recruitee en SmartRecruiters.
Elke koppeling bestaat uit drie losse gebeurtenissen.
Weten in welke laag een probleem thuishoort, is de snelste manier om configuratiefouten te isoleren.
| Begrip | Betekenis |
|---|---|
| Uitnodigingsstatus | Of de uitnodiging is afgeleverd en geopend. Mogelijke waarden pending, sent, opened, failed. |
| Afrondingsstatus | De eindtoestand van de assessmentpoging. completed, declined, expired, error. |
| Rapportbeschikbaarheid | Of het volledige resultaatrapport (URL of ingebedde weergave) klaarstaat om in het ATS te tonen. |
| Kandidaatuitkomst | De vervolgactie in het ATS op basis van afrondingsstatus en scoredrempel. advance, reject, withdraw of manual review. |
Zodra een kandidaat in Emply naar een fase gaat die een Selection Lab-assessment triggert, stuurt Emply een gestructureerde payload naar het webhook-endpoint van Selection Lab. Hieronder staan de velden die in een goed ingerichte Emply-koppeling aanwezig horen te zijn. Velden met de markering [nog te bevestigen] moet je controleren in je eigen Emply-omgeving, omdat de publieke helpdocumentatie van Emply het volledige payload-schema niet publiceert.
| Veld | Type | Verplicht | Functie in Selection Lab |
|---|---|---|---|
first_name | string | Ja | Personaliseert de uitnodiging en de kop van het rapport |
last_name | string | Ja | Identiteit in het rapport, herkenning van dubbelen |
email | string (RFC 5322) | Ja | Primair kanaal voor de uitnodiging |
application_id | string | Ja | Correlatiesleutel, komt terug in de callback zodat Emply het juiste record bijwerkt |
candidate_id | string | Ja | Externe kandidaatidentiteit, gebruikt voor deduplicatie over sollicitaties heen |
requisition_id | string | Aanbevolen | Koppelt het assessment aan de juiste vacature en bepaalt het assessmentprofiel als profielen per vacature zijn gemapt |
locale / language | ISO 639-1 (bijv. nl, en) | Aanbevolen | Bepaalt de taal van het assessment en de uitnodigingstekst |
phone | string (E.164) | Optioneel | Alleen nodig als de uitnodiging via WhatsApp gaat, anders wordt e-mail gebruikt |
consent_flag | boolean | Optioneel [nog te bevestigen] | Geeft Emply een vooraf verzamelde toestemming mee, dan legt Selection Lab die vast. Anders start de eigen toestemmingsflow van Selection Lab voordat resultaten worden gedeeld |
Wat er gebeurt als optionele velden ontbreken. Ontbreekt locale, dan valt Selection Lab terug op de taal die in het assessmentprofiel is ingesteld. Ontbreekt phone terwijl het kanaal op WhatsApp staat, dan mislukt de uitnodiging zonder melding, tenzij e-mail als terugvalkanaal is ingesteld. Controleer dat terugvalgedrag in je Selection Lab-accountinstellingen.
De trigger loopt via een webhook of een connector-synchronisatie. Het exacte mechanisme is nog te bevestigen, check of jouw Emply-omgeving met webhook push of met een pollende connector werkt. De configuratie gaat zo.
requisition_id meestuurt zodat Selection Lab het juiste profiel zelf kan bepalen.Wat er gebeurt bij een authenticatiefout. Is de API-credential verlopen of verkeerd ingesteld, dan krijgt Emply een HTTP 4xx terug. Afhankelijk van de connectorconfiguratie verdwijnt de uitnodiging dan stil of komt hij in een retry-wachtrij. Controleer de integratielogs in Emply en in het adminpaneel van Selection Lab om aflevering te bevestigen.
Het retry-gedrag bij mislukte aflevering (aantal pogingen, wachttijd, dead-letter) is nog te bevestigen met je integratie-engineer bij Selection Lab.
Zodra een kandidaat het assessment afrondt of verlaat, stuurt Selection Lab een callback naar Emply. Die payload bevat de volgende onderdelen.
| Status | Betekenis |
|---|---|
completed | Kandidaat heeft alle onderdelen afgerond |
declined | Kandidaat heeft de uitnodiging actief geweigerd |
expired | Termijn verstreken zonder actie van de kandidaat |
partial | Kandidaat is begonnen maar niet klaar (als gedeeltelijke inzendingen aanstaan) |
error | Technische fout tijdens de assessmentsessie |
| Veld | Type | Toelichting |
|---|---|---|
match_score | integer (0-100) | Samengestelde matchscore tegen het functieprofiel |
component_scores | object | Uitsplitsing per onderdeel (bijv. cognitief, persoonlijkheid, hard skills). De exacte sleutelnamen hangen af van je assessmentprofiel, nog te bevestigen |
report_url | string (URL) | Directe link naar het volledige rapport in het Selection Lab-portaal, in Emply te tonen via iframe als dat is ingesteld |
report_available | boolean | Wordt true zodra de PDF van het rapport is gegenereerd en toegankelijk is |
completed_at | ISO 8601-tijdstempel | Afrondingstijd in UTC |
application_id | string | Overgenomen uit de uitnodigingspayload om het ATS-record te herkennen |
candidate_id | string | Overgenomen voor deduplicatie |
Het privacymodel van Selection Lab laat de resultaten eerst aan de kandidaat zien. Daarna wordt opnieuw om toestemming gevraagd voordat de resultaten teruggaan naar het ATS. Heeft een kandidaat het assessment afgerond maar die tweede toestemming nog niet gegeven, dan kunnen report_url en component_scores in de callback worden achtergehouden of als null terugkomen totdat de toestemming is vastgelegd. Persoonsgegevens staan opgeslagen in Frankfurt, in lijn met de Europese eisen aan dataresidentie.
Hoe Emply die toestemmingsdrempel precies afhandelt (de hele callback blokkeren of een gedeeltelijke payload sturen met een consent_pending-vlag) is nog te bevestigen bij je accountmanager van Selection Lab.
| Afrondingsstatus Selection Lab | Scorevoorwaarde | Aanbevolen doelstatus in Emply |
|---|---|---|
completed | Score >= ingestelde drempel | Door naar de volgende fase (bijv. "Interview") |
completed | Score < ingestelde drempel | "Afgewezen - Assessment" of vergelijkbaar |
declined | n.v.t. | "Teruggetrokken" of "Geen reactie" |
expired | n.v.t. | "Afgewezen - Niet verschenen" of een ingestelde fase |
error | n.v.t. | "Handmatige beoordeling" |
De exacte fase- en statusnamen in Emply zijn picklist-waarden uit jouw configuratie. De mapping in de integratie-instellingen van Selection Lab moet die tekst letterlijk overnemen. Een afwijking ("Afgewezen" tegenover "afgewezen" of "AFGEWEZEN") laat de callback stil mislukken of een 422 teruggeven.
Bij een afwijzing kan Selection Lab de kandidaat op twee manieren informeren.
De timing (direct of vertraagd) en de exacte templatevariabelen zijn nog te bevestigen in je Selection Lab-accountconfiguratie.
Uitnodigingspayload (Emply naar Selection Lab)
{
"event": "assessment.invite",
"application_id": "APP-00123",
"candidate_id": "CAND-78901",
"requisition_id": "REQ-456",
"first_name": "Jane",
"last_name": "Smith",
"email": "[email protected]",
"phone": "+31612345678",
"locale": "nl",
"consent_flag": true
}
Callback na afronding (Selection Lab naar Emply)
{
"event": "assessment.completed",
"application_id": "APP-00123",
"candidate_id": "CAND-78901",
"completion_status": "completed",
"match_score": 74,
"component_scores": {
"cognitive": 68,
"personality": 81,
"hard_skills": 72
},
"report_url": "https://app.selectionlab.com/reports/APP-00123",
"report_available": true,
"completed_at": "2026-08-30T09:14:22Z"
}
Veldnamen en de sleutels in component_scores hangen af van je actieve assessmentprofiel. Bovenstaande is illustratief, controleer het exacte schema in de integratiespecificatie van Selection Lab.
application_id ontbreekt. Zonder correlatiesleutel weet Selection Lab niet welk Emply-record bijgewerkt moet worden. Controleer in de connectorconfiguratie of Emply dit veld bij elke uitnodiging meestuurt.Jobylon documenteert assessmentkoppelingen via Pipeline Actions. Volgens de supportdocumentatie van Jobylon (27 januari 2026) richt je partnerintegraties in op fase-niveau. Ga naar Pipeline Actions, maak een actie aan naast de status die je wilt automatiseren, kies "Partner Integrations" als actietype, selecteer je assessmentleverancier en sla op. Daarna gaat automatisch een assessment uit zodra een kandidaat naar die status verhuist.
De Jobylon-koppeling is dus gebeurtenisgedreven door een statuswissel, niet door een handmatige actie van de recruiter. Buiten de Pipeline Actions is aan recruiterkant geen aparte webhookconfiguratie nodig. De uitnodiging gaat uit op het moment dat het ATS de fasewissel registreert.
Selection Lab past direct in dat model. Bereikt een kandidaat de ingestelde fase, dan ontvangt Selection Lab het uitnodigingsevent en verstuurt de assessmentuitnodiging. Recruiters zien het volledige rapport en de losse scores in het kandidaatrecord in Jobylon zodra de resultaten terug zijn.
Het supportartikel van Jobylon over partnerintegraties publiceert het volgende niet.
Vraag de integratiespecificatie voor Selection Lab en Jobylon op bij je accountmanager van Selection Lab, of kijk in de Jobylon-admin onder Settings en Integrations voor detail op veldniveau.
Voor het retourpad (resultaten terug in Jobylon) geldt hetzelfde callbackpatroon als bij Emply. Afrondingsstatus, matchscore, onderdeelscores en rapport-URL komen op het kandidaatrecord. De pipeline van Jobylon kan daarna kandidaten automatisch verplaatsen op basis van scoredrempels, met de eigen score-gebaseerde automatisering.
Het datamodel van Salesforce voor recruitment (native Salesforce Recruiting of een managed package zoals Salesforce for Recruiting) werkt met strikt getypeerde picklist-velden op objecten als Application, Assessment of eigen tussenobjecten. Dat legt strengere eisen op aan de resultaatmapping dan Emply of Jobylon.
De Salesforce-koppeling van Selection Lab zet de resultaten op een aangewezen object, meestal een custom Assessment__c of vergelijkbaar object, of een bestaand Application- of Candidate Stage-object, afhankelijk van je org-configuratie. De velden zijn inhoudelijk hetzelfde als in de Emply-callback. Afrondingsstatus, scores, rapport-URL en tijdstempel. De exacte API-veldnamen en doelobjecten hangen af van het schema van jouw Salesforce-org.
De belangrijkste beperking. Elke statuswaarde die je vanuit een Selection Lab-status mapt, moet een actieve picklist-waarde zijn in je org. Staat completed_with_low_score niet als geldige waarde in je veld Application_Status__c, dan mislukt de update met een validatiefout van Salesforce.
In Salesforce is afwijsmapping een vertaling in twee stappen.
completed, declined, expired) plus een geslaagd-of-gezakt-oordeel op basis van de scoredrempel."Rejected - Assessment", "No Longer in Consideration").Werk je met Salesforce Experience Cloud en doen kandidaten het assessment via een portaal, dan moeten de rechten van externe gebruikers op de betreffende objecten het lezen van status en rapport-URL toestaan. Dit is een veelvoorkomende oorzaak van tickets met "resultaten niet zichtbaar" bij Salesforce-implementaties.
Voor afwijsmapping met automatisch getriggerde uitnodigingen in Salesforce geldt hetzelfde patroon als bij Emply. Een ingestelde drempel zet de afwijsstatus, en het berichtkanaal (e-mail, WhatsApp) volgt uit de contactgegevens van de kandidaat en de templateconfiguratie in Selection Lab.
Welk ATS je ook gebruikt, normaliseer eerst de canonieke statussen van Selection Lab voordat je naar ATS-specifieke waarden schrijft. De matrix hieronder geldt voor Emply, Jobylon en Salesforce.
| Canonieke uitkomst Selection Lab | Scorevoorwaarde | Aanbevolen ATS-actie | Toelichting |
|---|---|---|---|
knockout_reject | Knock-outcriterium geraakt tijdens de SmartChat-intake | Direct afwijsstatus plus afwijsbericht | Geen assessment verstuurd, kandidaat valt af in de screeningslaag |
completed_pass | match_score >= drempel van de functie | Door naar de volgende fase | Recruiterreview optioneel of overgeslagen |
completed_fail | match_score < drempel van de functie | Afwijsstatus (assessmentfase) | Afwijsbericht via het ingestelde kanaal |
declined | Kandidaat weigert de uitnodiging | Teruggetrokken of "geen reactie" | Geen score beschikbaar |
expired | Termijn van de uitnodiging verstreken | Afwijzing of "niet verschenen" | Instelbaar, sommige organisaties kiezen voor handmatige beoordeling |
error | Technische fout | Wachtrij handmatige beoordeling | Nooit automatisch afwijzen, opnieuw proberen of opnieuw uitnodigen |
Het principe achter deze matrix is eerst normaliseren, dan mappen. Zet ATS-specifieke picklist-waarden nooit hard in de callbacklogica. Houd in je integratieconfiguratie een mappingtabel bij die de canonieke statussen van Selection Lab vertaalt naar jouw ATS-teksten. Hernoemt Emply een fase, dan pas je de tabel één keer aan in plaats van de integratie zelf.
application_id en candidate_id zitten in elke uitnodigingspayload| Symptoom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Kandidaat staat in de assessmentfase maar krijgt geen uitnodiging | Webhook vuurt niet of authenticatie mislukt | Check de connectorlogs, controleer credentials, controleer de Pipeline Actions (Jobylon) of de connectormapping (Emply, Salesforce) |
| Uitnodiging komt aan in de verkeerde taal | Veld locale ontbreekt of wordt niet meegestuurd | Controleer of het ATS locale meestuurt, stel een standaardtaal in op het assessmentprofiel als terugval |
| Dubbele uitnodigingen | candidate_id dedupliceert niet goed | Controleer de deduplicatielogica in je Selection Lab-tenant, check of het ATS de trigger meerdere keren vuurt bij terugkeer in een fase |
| Rate-limitfout op het uitnodigingsendpoint | Piek in volumewerving | Bespreek de API-limieten van Selection Lab met je accountmanager, zet zo nodig een wachtrij voor het versturen op |
| Symptoom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Resultaten verschijnen niet in het ATS | Toestemming staat nog open of application_id komt niet overeen | Check de toestemmingsstatus in de Selection Lab-admin, controleer of application_id correct terugkomt in de callback |
report_url geeft een 403 | Onvoldoende rechten (vaak bij Salesforce Experience Cloud) | Stel de rechten van externe gebruikers of profielen op het rapportobject in |
| ATS-status wordt niet bijgewerkt na afronding | Picklist-waarde komt niet overeen | Exporteer de ATS-picklist, werk de mappingtabel in de integratieconfiguratie bij |
| Scorevelden ontbreken in het ATS | Assessmentprofiel bevat niet alle onderdelen | Controleer de actieve onderdelen in het profiel, check het retourschema in de integratiespecificatie van Selection Lab |
Log op drie punten. (1) De dispatchlog van de ATS-connector of webhook om te zien dat de uitnodigingsevents zijn afgevuurd, (2) de eventlog in de Selection Lab-admin om te zien dat uitnodigingen zijn ontvangen en afgeleverd, en (3) de updatelog van het ATS om te zien dat de callbacks zijn toegepast. Bij Salesforce geven Apex-debuglogs of Platform Event-logs het meeste detail.
Reconciliatie. Draai wekelijks een rapport dat kandidaten in de fase "Assessment" vergelijkt met kandidaten die een afgerond Selection Lab-resultaat hebben. Elk verschil wijst op een mislukte aflevering of een resultaat dat door toestemming wordt geblokkeerd. De meeste ATS'en kunnen dit met een simpel pipelinefilter, het rapportagepaneel van Selection Lab levert een bijpassende export.
Blijven afleveringen mislukken, vraag dan bij Selection Lab een export van de audittrail op met tijdstempels, HTTP-responscodes en retry-pogingen. Dat is de snelste manier om te zien of de fout aan de kant van de ATS-connector zit of in de afleverpipeline van Selection Lab. Wil je de koppeling met jouw ATS zien werken? Vraag een demo aan.
Een fasewissel in de pipeline. Emply, Jobylon en Salesforce sturen elk een uitnodigingsevent naar Selection Lab zodra een kandidaat de ingestelde assessmentfase bereikt. In Jobylon richt je dat in via Pipeline Actions, in Emply via de connectorinstellingen, in Salesforce via een Flow, een Apex-trigger of de Selection Lab-connector.
Een afrondingsstatus (completed, declined, expired, partial of error), een matchscore van 0 tot 100, scores per onderdeel, een rapport-URL, een vlag of het rapport beschikbaar is, een UTC-tijdstempel en de application_id en candidate_id, zodat het ATS het juiste record bijwerkt.
Meestal omdat de tweede toestemming van de kandidaat nog openstaat, de application_id niet overeenkomt of de statuswaarde niet letterlijk in de ATS-picklist staat. Check eerst de toestemmingsstatus in de Selection Lab-admin, daarna de correlatiesleutel, daarna de picklist-mapping.
Eerst normaliseren, dan mappen. Vertaal de canonieke uitkomsten van Selection Lab (completed_pass, completed_fail, declined, expired, error, knockout_reject) via een mappingtabel naar je ATS-statussen. Zet picklist-teksten nooit hard in de callbacklogica en stuur een error altijd naar handmatige beoordeling, nooit naar automatische afwijzing.
Alleen als er een terugvalkanaal is ingesteld. WhatsApp vereist een telefoonnummer in E.164-formaat. Zonder nummer valt de uitnodiging terug op e-mail als dat is ingesteld, en mislukt hij stil als dat niet zo is. Controleer die instelling dus vóór livegang.