Webhooks provide data that is inconsistent with REST APIs in Confluence Cloud

If I look at the following data:

GET: https://hiya.atlassian.net/wiki/rest/api/user/current?expand=isExternalCollaborator

Response body:

{
    "type": "known",
    "accountId": "****************",
    "accountType": "atlassian",
    "email": "",
    "publicName": "David at David Simpson Apps",
    "timeZone": "Europe/London",
    "profilePicture": {
        ...
    },
    "displayName": "David Simpson",
    "isExternalCollaborator": false,
    "_expandable": {
        "operations": "",
        "personalSpace": ""
    },
    "_links": {
        ...
    }
}

Webhook: ‘attachment_viewed’

Response body:

{
  attachments: [
    ...
  ],
  attachedTo: {
    ...
  },
  userAccountId: '************',
  timestamp: 1707131140186,
  accountType: 'customer'
}

For the same user, the webhooks are inconsistent with the REST API:

  • accountType is:
    • atlassian for REST API
    • customer for webhook
  • isExternalCollaborator is:
    • a valid value for REST API
    • not set for webhook
  • accountId is:
    • named accountId for REST API
    • named userAccountId for webhook

What is the mapping logic between accountType customer in webhooks and atlassian in REST APIs?

What happens when an external collaborator attaches a file?

  • What is their accountType for the webhook?
  • Is isExternalCollaborator also sent for them on the webhook?

If these inconsistencies are cleaned up, will there be a change notification and changelog entry so that we can update our logic if Atlassian fix this?

2 Likes