Inhoudsopgave
Algemeen
API-Versies
SSL certificaat
1 - Verbinding opzetten met Tigris/Salesforce
2 - Ontvangen van de vacatures
Vacature online plaatsen/offline halen
Vacature wordt verwijderd
3 - Vacature gegevens terug sturen naar Tigris
4 - Sollicitaties doorsturen naar Tigris
UTM / Bron van sollicitatie
AVG / privacy verklaring
Belangrijke zaken vooraf
Met de Tigris Website API is het mogelijk om uw eigen website te integreren met uw Tigris
omgeving. Hierdoor is het mogelijk om vanuit het systeem vacatures op je website te plaatsen en sollicitaties automatisch binnen te laten komen in Tigris. Zorg ervoor dat de volgende zaken gecheckt worden voordat de connectie opgezet wordt:
API-Versies
Salesforce released met elke update (Spring, Summer, Fall en Winter), een nieuwe API versie uit. Daarmee laten ze ook elke x aantal updates een aantal API-versies verlopen.
Vanaf de Summer '23 update (Verwachting rond juni 2023) worden de volgende API-versies niet meer ondersteund: v21.0 t/m v30.0. Deze versies kunnen nog gebruikt worden tot 1 juni 2023.
LET OP: Dat betekent dat dus vanaf de summer '23 update dus geen vacatures en geen sollicitaties meer van of naar Salesforce gestuurd kunnen worden als de API-versie niet op minimaal v31.0 is ingesteld.
Gebruik daarom zoveel mogelijk de nieuwste API versie. De meest actuele versie is op te halen via Setup van de omgeving waar je mee wilt koppelen. Uw Tigris consultant kan u helpen aan de meest recente versie:
Je kunt dit versienummer ophogen in de url waartoe je de request/post doet. Bijvoorbeeld: https://<jouwdomein>.my.salesforce.com/services/data/v57.0/sobjects/tigris__vacancy__c/<recordid>
Huidige versie (laatste geupdate februari 2023): v57.0
SSL certificaat
Het (test) domein dient te beschikken over een geldig SSL-certificaat. Let erop dat hier specifieke eisen aan verbonden zijn vanuit Salesforce. De exacte uitleg en vereisten vind je hier
Om direct te testen of het certificaat aan alle eisen voldoet, kun je hier je domein checken. Als 1 van de check faalt, dan moet het certificaat geüpdatet worden om de verbinding met Tigris tot stand te kunnen brengen
1 - Verbinding opzetten met Tigris/Salesforce
De verbinding wordt opgezet middels een connected app in Salesforce. Een Tigris consultant zal deze app aanmaken, waarna de tokens voor de verbinding veilig worden gedeeld via Lastpass.
Om de verbonden app goed in te kunnen stellen heeft Tigris, en om vacatures te kunnen posten zijn de onderstaande URL's nodig:
1. Callback URL (voor authenticatie)
2. Streaming URL (voor het posten van de XML met de vacatures)
Deze URL's moeten dus zo snel mogelijk aan Tigris verstrekt worden, zodat de app opgezet kan worden. Vervolgens worden de tokens gedeeld met de webbouwer. Deze kan dan aan de slag om de connectie op te zetten. Zie voor de technische aspecten van het opzetten van de connectie en het uitwisselen van data de volgende documentatie:
- Algemene REST API documentatie: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_defining_remote_access_applications.htm
- Gebruikte endpoints: https://help.salesforce.com/articleView?id=remoteaccess_oauth_endpoints.htm&type=5
- Autorisatie flow (via refresh/bearer token): https://help.salesforce.com/articleView?id=sf.remoteaccess_oauth_refresh_token_flow.htm&type=5
Let op: Met de consumer key en consumer secret is het mogelijk om de verbinding op te zetten en een bearer token op te halen. Deze token verloopt ook weer. Aan de kant van de website dient dus gecontroleerd te worden of de bearer token nog geldig is. Zo niet dan dient hij opnieuw aangevraagd te worden voordat je een API call kunt doen. Maak nooit gebruik van alleen de Salesforce gebruikersnaam en wachtwoord zelf. Deze kunnen namelijk veranderen waardoor de verbinding daarna er uit zal liggen.
2 - Ontvangen van de vacatures
Tigris stuurt een vacature door naar de opgegeven streaming URL (uit stap 1) wanneer er een vacature is gemaakt en bij elke wijziging
Een voorbeeld van de volledige POST inclusief de XML die verzonden wordt (afhankelijk van welke velden nodig zijn):
{
"method": "POST",
"url": "<streaming-URL>",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "host",
"value": "<domein>"
},
{
"name": "connection",
"value": "close"
},
{
"name": "accept-encoding",
"value": "gzip"
},
{
"name": "x-forwarded-for",
"value": "<IP>,<IP>, <IP>"
},
{
"name": "cf-ray",
"value": "654eba7f4f41592e-IAD"
},
{
"name": "x-forwarded-proto",
"value": "http"
},
{
"name": "cf-visitor",
"value": "{\"scheme\":\"http\"}"
},
{
"name": "content-type",
"value": "text/xml"
},
{
"name": "accept",
"value": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
},
{
"name": "cf-connecting-ip",
"value": "<IP>"
},
{
"name": "cdn-loop",
"value": "cloudflare"
},
{
"name": "cf-request-id",
"value": "0a4512e3910000592eb6175000000001"
},
{
"name": "x-request-id",
"value": "7de7ce4d-27c4-46fd-837c-8afb5f7d1c5b"
},
{
"name": "x-forwarded-port",
"value": "80"
},
{
"name": "via",
"value": "1.1 vegur"
},
{
"name": "connect-time",
"value": "1"
},
{
"name": "x-request-start",
"value": "1621945338789"
},
{
"name": "total-route-time",
"value": "0"
},
{
"name": "content-length",
"value": "4758"
}
],
"queryString": [
{
"name": "foo",
"value": [
"bar",
"baz"
]
}
],
"postData": {
"mimeType": "text/xml",
"text": "<?xml version="1.0" encoding="UTF-8"?>
<Data>
<OrganizationId> <![CDATA[00D1t000000qDyLEAU]]> </OrganizationId>
<Notifications><Notification>
<ActionType> <![CDATA[update]]> </ActionType>
<sObject>
<Id> <![CDATA[a0m6N000000oXzwQAE]]></Id>
<Name> <![CDATA[Consultant]]> </Name>
<Tigris__Offline__c> <![CDATA[false]]> </Tigris__Offline__c>
<Tigris__Geplaatst__c> <![CDATA[true]]> </Tigris__Geplaatst__c>
<CreatedById> <![CDATA[0051t000000x2b5AAA]]></CreatedById>
<CreatedDate> <![CDATA[2021-05-25 12:22:09]]></CreatedDate>
<Tigris__Bedrijfsomschrijving__c> <![CDATA[<p>Dit is en voorbeeld van de bedrijfsomschrijving!</p>]]></Tigris__Bedrijfsomschrijving__c>
<Tigris__Branche__c> <![CDATA[ICT]]> </Tigris__Branche__c>
<Tigris__Company_name__c> <![CDATA[Tigris]]> </Tigris__Company_name__c>
<Tigris__Company_site__c> <![CDATA[www.tigris.nl]]> </Tigris__Company_site__c>
<Tigris__Functiegroep__c> <![CDATA[ICT]]> </Tigris__Functiegroep__c>
<Tigris__Geboden_wordt__c> <![CDATA[<p>Dit is een voorbeeld van wat er geboden wordt aan de sollicitant!</p>]]></Tigris__Geboden_wordt__c>
<Tigris__Gevraagd_wordt__c> <![CDATA[<p>Dit is een voorbeeld van wat er gevraagd wordt aan de sollicitant!</p>]]></Tigris__Gevraagd_wordt__c>
<Tigris__Interne_vacature__c> <![CDATA[false]]> </Tigris__Interne_vacature__c>
<Tigris__Introductie__c> <![CDATA[Dit is een introductie naar de vacature]]></Tigris__Introductie__c>
<Tigris__Land__c> <![CDATA[Nederland]]> </Tigris__Land__c>
<Tigris__Language__c> <![CDATA[Nederlands]]> </Tigris__Language__c>
<Tigris__Opleidingsniveau__c> <![CDATA[HBO]]> </Tigris__Opleidingsniveau__c>
<Tigris__Owner_name__c> <![CDATA[Demo Tigris]]> </Tigris__Owner_name__c>
<Tigris__Photo_URL__c> <![CDATA[https://tigris-public.s3.amazonaws.com/00D1t000000qDyLEAU/3c967e84-338b-9e43-f549-080021479030/a0w6N000000x5BXQAY/Fotografietips-Licht-tijdens-ondergaande-zon.jpg]]></Tigris__Photo_URL__c>
<Tigris__Plaats__c> <![CDATA[Alblasserdam]]> </Tigris__Plaats__c>
<Tigris__Postcode__c> <![CDATA[2952 AD]]> </Tigris__Postcode__c>
<Tigris__Region__c> <![CDATA[Zuid-Holland]]> </Tigris__Region__c>
<Tigris__Salaris_per__c> <![CDATA[Maand]]> </Tigris__Salaris_per__c>
<Tigris__Salaris_tot__c> <![CDATA[2500.00]]> </Tigris__Salaris_tot__c>
<Tigris__Salaris_van__c> <![CDATA[3500.00]]> </Tigris__Salaris_van__c>
<Tigris__Soort_dienstverband__c> <![CDATA[Vast]]> </Tigris__Soort_dienstverband__c>
<Tigris__Uren_per_week__c> <![CDATA[40.00]]> </Tigris__Uren_per_week__c>
<Tigris__Vacature_omschrijving__c> <![CDATA[<p>Dit is en voorbeeld van de vacature omschrijving</p>]]></Tigris__Vacature_omschrijving__c>
<Tigris__Vacaturenummer__c> <![CDATA[V-00003555]]> </Tigris__Vacaturenummer__c>
<Tigris__Video_url__c> <![CDATA[URL]> </Tigris__Video_url__c>
</sObject>
</Notification></Notifications>
</Data>",
"params": []
},
"headersSize": 668,
"bodySize": 4758
}
Vacature online plaatsen/offline halen
Tigris__Offline__c = Wanneer deze op “true” staat is de vacature offline gehaald.
Tigris__Geplaatst__c = Wanneer deze op “true” staat is de vacature online gezet.
Wanneer ze beide op true staan dan dient de vacature offline te zijn.
Vacature wordt verwijderd
Als een vacature volledig wordt verwijderd uit Tigris zonder dat deze eerst offline is gehaald, wordt er ook een signaal gestuurd naar de website zodat de vacature wel netjes offline gehaald kan worden. De POST die dan gestuurd wordt heeft een ActionType = delete
<?xml version="1.0" encoding="UTF-8"?>
<Data>
<OrganizationId><![CDATA[00D1t000000qDyLEAU]]></OrganizationId>
<Notifications><Notification>
<ActionType><![CDATA[delete]]></ActionType>
<sObject>
<Id><![CDATA[a0m6N000000co8pQAA]]></Id>
</sObject>
</Notification></Notifications>
</Data>
Voorbeeld volledig POST
{
"method": "POST",
"url": "http://mockbin.org/bin/bcf397ad-3a9c-4d11-bb5a-ab6239a8b7be?foo=bar&foo=baz",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{ "name": "host", "value": "mockbin.org" },
{ "name": "connection", "value": "close" },
{ "name": "accept-encoding", "value": "gzip" },
{ "name": "x-forwarded-for", "value": "85.222.150.8,18.193.224.214, 172.68.50.172" },
{ "name": "cf-ray", "value": "6d9d4ae7ae490d5e-VIE" },
{ "name": "x-forwarded-proto", "value": "http" },
{ "name": "cf-visitor", "value": "{\"scheme\":\"http\"}" },
{ "name": "content-type", "value": "text/xml" },
{ "name": "accept", "value": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" },
{ "name": "cf-connecting-ip", "value": "18.193. 224.214" },
{ "name": "cdn-loop", "value": "cloudflare" },
{ "name": "x-request-id", "value": "fb295283-9322-4ca1-93fc-c608f5a768f8" },
{ "name": "x-forwarded-port", "value": "80" },
{ "name": "via", "value": "1.1 vegur" },
{ "name": "connect-time", "value": "0" },
{ "name": "x-request-start", "value": "1644243979695" },
{ "name": "total-route-time", "value": "0" },
{ "name": "content-length", "value": "275" }
],
"queryString": [
{ "name": "foo", "value": [ "bar", "baz" ] }
],
"postData": { "mimeType": "text/xml", "text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Data>
<OrganizationId><![CDATA[00D1t000000qDyLEAU]]></OrganizationId>
<Notifications><Notification>
<ActionType><![CDATA[delete]]></ActionType>
<sObject>
<Id><![CDATA[a0m6N000000co8pQAA]]></Id>
</sObject>
</Notification></Notifications>
</Data>",
"params": [] },
"headersSize": 618,
"bodySize": 275
}
3 - Vacature gegevens terug sturen naar Tigris
Nadat de vacature zichtbaar is op de website is het nodig om het externe ID (Post ID) en URL
van de vacature terug te sturen naar Tigris.
Het externe ID wordt gebruikt om een sollicitatie te matchen aan een vacature (zie stap 4). De vacature URL wordt voor 2 zaken gebruikt:
- De gebruiker in Tigris kan direct de vacature controleren door op de URL te klikken.
- de URL wordt meegegeven in de integratie voor multiposting (VONQ) en Indeed.
Om de gegevens terug te sturen naar Tigris wordt een patch methode gebruikt.
URL die gebruikt wordt om te updaten: https://<jouwdomein>.my.salesforce.com/services/data/v57.0/sobjects/tigris__vacancy__c/<recordid>
Het vacaturenummer van de vacature is zichtbaar geworden op de website.
Voorbeeld json:
{
"Tigris__Vacature_url__c": "www.tigris.nl/hello",
"Tigris__Extern_vacature_ID__c": "12345"
}
Wanneer je een compleet nieuwe vacature wil sturen is dit mogelijk met de volgende URL: https://<jouwdomein>.my.salesforce.com/services/data/v57.0/sobjects/Tigris__Vacancy__c
Alle velden die in de eerder genoemde voorbeeld XML zichtbaar zijn, zijn te vullen. Mocht het nodig zijn dan is het mogelijk om aan de Tigris kant extra velden aan te maken.
4 - Sollicitaties doorsturen naar Tigris
Wanneer er op een vacature gesolliciteerd wordt dient dit naar Tigris gestuurd te worden.
Hiervoor wordt een post methode gebruikt.
URL die gebruikt wordt om de sollicitatie naartoe te sturen: https://<jouwdomein>.my.salesforce.com/services/data/v57.0/sobjects/Tigris__sollicitatie__c
Voorbeeld json:
{
"Tigris__Voornaam_kandidaat__c": "MaxwellHo",
"Tigris__Achternaam_kandidaat__c": "Lambert",
"Tigris__Mobiel_nummer__c": "+1 (867) 429-2788",
"Tigris__Email__c": "test@tigris.nl",
"Tigris__Extern_vacature_ID__c" : "extern id van de vacature",
"Tigris__UTM_url__c ": "url inclusief utm”,
"Tigris__Opmerking__c":"Motivatie/Tekstvlak op de website"
}
Na insert wordt er een succesbericht teruggestuurd, met daarin het ID van het sollicitatierecord (applicationID).
Voorbeeld succesbericht
{
"id": "a0V1n00000DjC1dEAF",
"success": true,
"errors": []
}
Dit ID kan dan gebruikt worden om de bijlage te relateren aan het sollicitatierecord.
Bijlage URL: https://<jouwdomein>.my.salesforce.com/services/data/v57.0/sobjects/Attachment/
Voorbeeld bijlage toevoegen
{
'ParentId': applicationID,
'Name': 'test_cv.txt',
'body': body
}
Belangrijk: Bij de naam van het CV dient als suffix _cv aan toegevoegd te worden. Zo weet het systeem dat het om een CV gaat en deze ook geparset mag worden door Textkernel.
UTM / Bron van sollicitatie
Tigris__UTM_url__c = Hier verwacht Tigris de volledige sollicitatie URL. Dit is de URL van de vacature + de beschikbare UTM. Op basis hiervan herkent Tigris de bron en de eventuele overige gegevens. Tigris herkent de volgende tags:
- <tag1> = utm_source: (Oorspronkelijke) bron van de kandidaat
- <tag2> = utm_medium: medium wat gebruikt is (bijv. referral of cpc)
- <tag3> = utm_campaign: campagne tag
De URL kan als volgt worden doorgegeven: <vacaturelink>?<tag1>&<tag2>&<tag3>
Voorbeeld van een URL inclusief UTM:
https://tigris.nl/vacatures/leerling-timmerman?utm_source=Indeed&utm_medium=referral&utm_campaign=IGB
AVG / privacy verklaring
Als de sollicitant akkoord gaat met de algemene voorwaarden/privacy verklaring, moet dit worden doorgegeven bij de sollicitatie zodat de verdere afhandeling voor de AVG in Tigris goed kan worden afgehandeld. Hiervoor zijn drie checkboxen aanwezig op het Sollicitatie object. De eerste 2 moeten op TRUE gezet worden als iemand toestemming geeft om zijn gegevens op te slaan.
De laatste kan op TRUE gezet worden als er toestemming is om bijv. marketing mails te versturen.
- Tigris__Approval_data_processing__c
- Tigris__Akkoord_algemene_voorwaarden__c
- (optioneel) Tigris__Approval_marketing__c
5 - Open sollicitaties
Een open sollicitatie werkt met dezelfde methode als stap 4. Echter is deze sollicitatie niet
op een vacature dus is er geen extern vacature ID bekend. Dit veld (Tigris__Extern_vacature_ID__c) moet dus leeg worden gelaten bij een open sollicitatie.
Om de open sollicitatie correct te kunnen linken aan de juiste persoon in Tigris is een extra veld noodzakelijk voor dit type sollicitaties, namelijk de vestiging (Tigris__Office_from_website__c). In Tigris wordt er per vestiging een gebruiker toegewezen aan wie de sollicitatie moet worden toegewezen.
Meestal wordt de vestiging uitgevraagd door in het open sollicitatieformulier een keuzelijst met vestigingen toe te voegen en de geselecteerde waarde mee te sturen naar Tigris.
Voeg deze tag toe aan de json:
"Tigris__Office_from_website__c": "Alblasserdam",
Bron van de kandidaat
In de <head> van de website moet ook de volgende code geplaatst worden. Hiermee kan Tigris beter de bron van de sollicitanten meten.
Voorbeeld(!):
<!-- Tigris Insights Tag -->
<script>
var _mtm=window._mtm=window._mtm||[];
_mtm.TIGRISInsightsID="XXXXXXXXXXX",
_mtm.push({"mtm.startTime":new Date().getTime(),event:"mtm.Start"});
var d=document,g=d.createElement("script"),s=d.getElementsByTagName("script")[0];g.async=!0,g.src="https://insights.tigris.works/js/container_"+_mtm.TIGRISInsightsID+".js",s.parentNode.insertBefore(g,s);
</script>
<!-- End Tigris Insights Tag -->
De token kan ingevuld worden bij de variabele: _mtm.TIGRISInsightsID="XXXXXXXXXXX", (Line 4)
De token kan op aanvraag geleverd worden door onze support afdeling.
Extra opties
XML / Velden aanpassen
Het is mogelijk om extra velden mee te geven in de XML die via de streaming URL wordt gestuurd. Hiervoor is er een veldset API Access Fieldset Job Detailed op het object Vacature.
In dit veldset kun je (custom) velden toevoegen, deze worden dan vervolgens meegegeven in de XML
XML bestand testen
Als je de XML wilt testen zonder dat je zelf al iets hebt gebouwd om de XML te ontvangen, dan kun je dit bijvoorbeeld via Mockbin doen.
Hier maak je vervolgens een 'bin' aan
Je krijgt vervolgens een streaming URL te zien waar je posts heen kunt sturen.
Deze streaming URL stel je in in Tigris:
Vervolgens kun je een testvacature posten en via de site de volledige POST + header inzien:
Check op online vacatures
Het is mogelijk om ter controle alle vacatures eens per dag op te halen. Je kunt hier
een query voor bouwen. Een voorbeeld hiervan:
https://<jouwdomein>.my.salesforce.com/services/data/v57.0/query/?q=SELECT+name,
Tigris__geplaatst__c+from+Tigris__Vacancy__c+where+Tigris__geplaatst__c=true