Webhook filters
Bij het configureren van een webhook kan een filter worden ingesteld om meer specifiek te kunnen bepalen wanneer er informatie naar een extern systeem wordt gestuurd.
Het filter is een template dat gerenderd wordt met het bericht als input en een boolean
waarde moet teruggeven (true
of false
). Andere resultaten leveren een exceptie. Wanneer er geen filter wordt ingesteld zal hier altijd true
uitkomen.
Templates worden ingesteld met in de Liquid specificatie. Meer informatie vind je hier.
Bijvoorbeeld
Een gegeven orderstatus changed bericht (zonder resources)
{
"orderNumber": "O-0000303",
"previousStatus": "Accepted",
"newStatus": "Assigned",
"resourceReference": "/tenants/1/orders/017a1434-117a-4d6f-8842-3fa81e0427d4",
"eventType": "nl.assistanceonline.webhooks.orderstatuschanged.v1",
"resources": {
}
}
Een ingesteld filter van een webhook (let op escaping bij het configureren via de API)
{% if newStatus == "Assigned" %}true{% else %}false{% endif %}
Dit template levert true
bij het voorbeeld bericht op. Het bericht zal dus worden verzonden.
Bij andere waarden voor newStatus
wordt false
geleverd en zal het bericht niet verzonden worden.
Bij het afhandelen van een event in Assistance Online door een webhook, worden eerst alle resources opgehaald, waarna het filter wordt toegepast.
Â
Voorbeelden
Alleen ter plaatse meldingen doorsturen
{% if newStatus == "Arrived" %}true{% else %}false{% endif %}
Alleen updates voor een specifieke relatie (of klant) met nummer 000002
{% assign order = resources[resourceReference] %}
{% assign customer = resources[order.customer] %}
{% if customer.debtorNumber == "000002" %}
true
{% else %}
false
{% endif %}
Â