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:

index.js
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": "test@daslab.de",
          "userPhoneNumber": "+39000000000"
       }
}

dataShareAccepted

For external applications

{
     "eventName": "dataShareAccepted",
     "data": {
          "userId": 123,
          "patientId": 123,
          "integrationId": 123,
          "userEmail": "test@daslab.de",
          "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?