Skip to content

Adding IsEmailConfirmed, WhoCanShareContactCard and IsWorkflowBot to User, and DisplayNameNormalized, Image1024 and IsCustomImage to UserProfile - #266

Merged
soxtoby merged 4 commits into
soxtoby:masterfrom
we4sz:user-is-email-confirmed
Nov 1, 2026
Merged

soxtoby merged 4 commits into
soxtoby:masterfrom
we4sz:user-is-email-confirmed

Conversation

@we4sz

@we4sz we4sz commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Six fields that Slack documents on its user object have no property in SlackNet 0.19.0. I ran into the first one building an app on SlackNet that matches Slack users to accounts in its own system by their profile email: an address Slack hasn't confirmed is whatever a workspace administrator typed, so I read is_email_confirmed from the raw users.info response next to the typed User. I found the other five by comparing a real users.info response and the reference with User and UserProfile. This models them. It is four commits, each one builds and passes the tests.

  1. User.IsEmailConfirmed (is_email_confirmed): "Whether the user's email address has been confirmed." It is what tells an app that Profile.Email is Slack's word and not an administrator's.
  2. User.WhoCanShareContactCard (who_can_share_contact_card): "Contact card sharing permission setting." A string, because the reference doesn't list the values; its example shows EVERYONE.
  3. User.IsWorkflowBot (is_workflow_bot): "Whether this is a workflow bot user.", next to IsBot.
  4. UserProfile.DisplayNameNormalized (display_name_normalized), Image1024 (image_1024) and IsCustomImage (is_custom_image), next to RealNameNormalized and the other image sizes. Image1024 needs [JsonProperty("image_1024")] like Image24 to Image512 have.

The doc comments copy Slack's one-line descriptions, as AGENTS.md asks.

Compatibility

Additive only. The new properties default to null or false.

Testing

Each field has a deserialization test in UserTests, in the same shape as the existing ones. ./do test passes on all four commits (784, 785, 786 and 788 tests). I also took the [JsonProperty("image_1024")] off Image1024 to check that its test needs it, and it fails without it.

Seen in a real response: is_email_confirmed, who_can_share_contact_card, display_name_normalized, image_1024 and is_custom_image are all in a users.info response I captured from a real workspace.

Not verified: is_workflow_bot. I haven't seen it in a real response, so it follows the reference only. I also haven't run my app against a local pack of this branch.

@soxtoby
soxtoby merged commit 9661f27 into soxtoby:master Nov 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants