Obtenir l'utilisateur cible pour les événements de webhook de notification

I see that webhooks now support notifications which is fantastic. Something we really need. However the payload is missing one critical piece of information - the user the notification is for. In this example payload we can see the author of the post that triggered the notification, but not the user that should receive the notification.

{
  "notification": {
    "id": 119,
    "notification_type": 9,
    "read": false,
    "created_at": "2019-09-18T13:42:21.248Z",
    "post_number": 1,
    "topic_id": 75,
    "fancy_title": "Phallguy should get a notice about this",
    "slug": "phallguy-should-get-a-notice-about-this",
    "data": {
      "topic_title": "Phallguy should get a notice about this",
      "original_post_id": 111,
      "original_post_type": 1,
      "original_username": "Paul_Alexander",
      "revision_number": null,
      "display_username": "Paul_Alexander"
    }
  }
}

I’ve looked to see if there’s an API to get the target user from notification id but haven’t found anything documented. Is there a way we can get the target username/id in the notification payload?

For context, we are trying to consolidate notifications from multiple systems into a single experience for our users.

@Falco or @blake do you have any thoughts on how I can figure out which user a notification is for when received through the new notification webhook?

Just looked at this briefly to see if there was a quick answer, and you are right, it does not look like we have a get api endpoint for fetching an individual notification by id, but that wouldn’t be very efficient to call every time anyways.

Most likely this will require a code change to the notification serializer to include the user_id/username inside of the notification payload, so that a separate api request wouldn’t be necessary.

We’re using the hosted service at the moment otherwise I’d build my own plugin. Would you folks consider adding the user id/username to then notification payload in the webhook?

Did you check the headers?

I did - hoping to find some extra meta data in there but didn’t find anything user specific.

Request URL: https://XXX
Request method: POST
Accept: */*
Connection: close
Content-Length: 420
Content-Type: application/json
Host: XXX
User-Agent: Discourse/2.4.0.beta4
X-Discourse-Instance: https://XXX
X-Discourse-Event-Id: 11
X-Discourse-Event-Type: notification
X-Discourse-Event: notification_created
X-Discourse-Event-Signature: sha256=XXX

Checking in to see if you folks have any thoughts/updates. The notification webhook without a target user isn’t really of much use.

Hey guys have you had a chance to review the issue? Is there any hope that we can get the target user id in the notification event?

I’ve created a pr that will add the user_id to the notification webhook json payload:

Bonjour @blake, serait-il possible d’ajouter également l’external_id de l’utilisateur ? Nous utilisons le SSO de Discourse et nous n’avons pas vraiment les identifiants d’utilisateur Discourse dans notre système.

Bonjour Albert !

Je pense que c’est une bonne idée, et j’ai créé un commit qui ajoutera l’external_id de l’utilisateur si le SSO est activé.

J’espère que cela t’aidera ! Cela sera ajouté à ton site lors de la prochaine déploiement, ce qui devrait avoir lieu cette semaine.

Wow, c’était rapide ! Merci beaucoup, c’est vraiment apprécié :smiley: Savez-vous quel est l’ETA approximatif pour que ces modifications soient déployées sur les serveurs Discourse hébergés ?

Oh, peu importe, je n’ai pas lu la dernière phrase :sweat_smile:. Merci encore !!