Hello, I don't quite understand the webhook flow

You shouldn’t use the link header to determine which topic the notification is for, as that goes against the WebSub spec.

There are 2 ways usually used to identify the topic and that is either by callback URL path, or by callback URL querystring param.

So for example you could have a callback url of https://my.domain/webhooks/streamChanged/1234, and then if you’re using something like Express you could have a single route handler such as:

app.post('/webhooks/:topic/:userID', (req, res) => {
    // You can identify the topic/userID with req.params.topic, req.params.userID
})

Or whatever the equivalent is in the language/hosting service you’re using.

Alternatively another way would be to use a querystring, such as https://my.domain/webhooks?topic=streamChanged&userID=1234 which can be accessed in much the same way as path parameters.

This would mean each topic you subscribe to would have its own unique callback URL, but they would all be going to the same handler, just with path/querystring params to uniquely identify the topic and user associated with notifications coming in.