Webhook events
This page describes the different events you can get from our web hooks as a partner
Setting up webhooks
In your dashboard go to Data Links. There you can fill in your web-hook url and secret key.
Choose a long difficult secret and do not share you secret key with anyone
Once you have done this you can press the test button to check your implementation.
Here is a sample for express that can be used in a lambda serverless (node) to save these events to your own database:
const express = require("express")
const bodyParser = require("body-parser")
// Initialize express and define a port
const app = express()
const PORT = 3000
const KEY = 'mysecretkey'
// Tell express to use body-parser's JSON parsing
app.use(bodyParser.json())
app.post("/hook", (req, res) => {
if (req.headers['x-api-key'] !== KEY) return res.status(401).end()
console.log(req.body) // Call your action on the request here, save to db etc...
res.status(200).end() // Responding 200 is important
})
// Start express on the defined port
app.listen(PORT, () => console.log(`🚀 Server running on port ${PORT}`))
Supported events
Samplers: appointmentCreated, appointmentUpdated, appointmentCancelled, appointmentCompleted, sampleUpdated
Labs: sampleReceived, sampleUpdated
Clients: codeUsed
Providers: appAuthorized, patientUpdated, sampleUpdated, appDeauthorized
All: dataDeletionRequest
Coming soon
Samplers, labs, clients: covidPositiveAlert
Checkers: resultVerified
More events can be added on request.
Examples
appointmentCreated, appointmentUpdated, appointmentCancelled
{
"eventName": "appointmentCreated",
"data": {
"dashboardUrl": "https://dashboard.daslab.app/samplers/123/appointments/123",
"userUrl": "https://web.daslab.app/appointments/123",
"appointmentId": 123,
"locationId": 123,
"datetime": "2020-11-16 10:00:00+00",
"paymentMethod": "stripe"
}
}
dataDeletionRequest
For GDPR requests, please comply
{
"eventName": "dataDeletionRequest",
"data": {
"userId": 123,
"userEmail": "[email protected]",
"userPhoneNumber": "+39000000000"
}
}
dataShareAccepted
For external applications
{
"eventName": "dataShareAccepted",
"data": {
"userId": 123,
"patientId": 123,
"integrationId": 123,
"userEmail": "[email protected]",
"userPhoneNumber": "+39000000000",
"scope": ["patientData","resultData"],
}
}
sampleUpdated
When a result is added, or a sample is moved to your (lab) facility
{
"eventName": "sampleUpdated",
"data": {
"dashboardUrl": "https://dashboard.daslab.app/samplers/123/results/123",
"userUrl": "https://web.daslab.app/results/123",
"appointmentId": 123,
"locationId": 123,
"sampleId": 123,
"resultId": 123,
"patientId": 123
}
}
Last updated
Was this helpful?