Portal Community

user/get

Retrieve detailed information for a single Slack user by their user ID. Returns identity fields, bot status, account status, display name, email address, and avatar URL.

When to Use

Configuration

Connection

FieldRequiredDescription
botTokenRequiredSlack Bot Token starting with xoxb-. Requires both users:read and users:read.email OAuth scopes to return email address.

Operation Fields

FieldRequiredDescription
userIdRequiredThe Slack user identifier, always starting with U (e.g. U01ABCDEFGH). Retrieved from message events, channel member lists, or other Slack API responses.

Sample Configuration

{
  "operation": "user/get",
  "connection": {
    "botToken": "{{ $credentials.slackBot.token }}"
  },
  "userId": "{{ $trigger.slackEvent.user }}"
}

Validation Errors

Error CodeCauseResolution
user_not_foundNo user with the given ID exists in the workspace.Confirm the user ID is correct. Bot user IDs (starting with B) are not valid for users.info — use the bot's associated user ID instead.
missing_scopeToken lacks users:read or users:read.email scope.Add the required scopes under OAuth & Permissions in your Slack App and reinstall.
invalid_authBot token is invalid or revoked.Regenerate the bot token and update the credential.

Output

Success Port

FieldTypeDescription
userIdstringSlack user ID (echoed from input).
userNamestringSlack username (handle), unique within the workspace.
isBotbooleantrue if the user is a bot or app. false for human users.
deletedbooleantrue if the account has been deactivated. Deactivated users still exist in the API but cannot receive messages.
realNamestringUser's full real name as set in their Slack profile.
displayNamestringUser's display name as shown in Slack messages.
emailstringUser's workspace email address. Only populated when users:read.email scope is present.
statusTextstringUser's current status text (e.g. "In a meeting").
statusEmojistringEmoji associated with current status (e.g. :calendar:).
avatarUrlstringURL of the user's avatar image (512px version).
statusstring"success" on successful retrieval.
errorCodestringEmpty on success. Slack API error code on failure.
payloadobjectRaw Slack API response with full profile fields.

Error Port

Activated when the user is not found or the token lacks the required scopes. Check isBot and deleted on the success path before proceeding to user-targeted operations.

Sample Output

{
  "userId": "U01ALICE123",
  "userName": "alice.johnson",
  "isBot": false,
  "deleted": false,
  "realName": "Alice Johnson",
  "displayName": "Alice",
  "email": "alice.johnson@acme.com",
  "statusText": "In a meeting",
  "statusEmoji": ":calendar:",
  "avatarUrl": "https://avatars.slack-edge.com/2026-01-01/U01ALICE123_512.jpg",
  "status": "success",
  "errorCode": "",
  "payload": {
    "ok": true,
    "user": {
      "id": "U01ALICE123",
      "name": "alice.johnson",
      "deleted": false,
      "is_bot": false,
      "profile": {
        "real_name": "Alice Johnson",
        "display_name": "Alice",
        "email": "alice.johnson@acme.com",
        "status_text": "In a meeting",
        "status_emoji": ":calendar:",
        "image_512": "https://avatars.slack-edge.com/2026-01-01/U01ALICE123_512.jpg"
      }
    }
  }
}

Expression Reference

ExpressionResult
{{ $output.getUser.email }}User's email address for cross-system lookup or notification routing.
{{ $output.getUser.displayName }}Display name for personalizing messages (e.g. "Hi Alice,").
{{ $output.getUser.isBot }}Boolean — use in a condition to filter bots from human user workflows.
{{ $output.getUser.deleted }}Boolean — check before sending DMs to avoid sending to deactivated accounts.
{{ $output.getUser.avatarUrl }}Avatar image URL for profile card or dashboard.
{{ $output.getUser.userId }}User ID for use in downstream Slack API nodes.

Node Policies & GuardRails

Policy AreaRecommendation
Bot FilteringAlways check isBot when processing messages from channels. Bot user IDs should be excluded from human-targeted operations like DMs and on-call routing.
Deleted UsersCheck deleted: true before sending messages or assigning tasks. Deactivated accounts still appear in Slack API responses but cannot interact.
Email ScopeThe users:read.email scope is separate from users:read. If email returns empty, confirm this scope is added and the app has been reinstalled after scope changes.
PII HandlingEmail addresses and real names are PII. Do not log these fields to unencrypted outputs. Mask or exclude from workflow logs.
CachingUser identity rarely changes. Cache results for 10–30 minutes in high-frequency workflows to reduce API calls and avoid rate limits.

Examples

Look Up Email from Slack ID for CRM Sync

When a Slack event provides a user ID, look up the email and use it to match the user in a CRM system.

{
  "operation": "user/get",
  "userId": "{{ $trigger.slackEvent.user }}"
}
// Then in CRM lookup: search by {{ $output.getUser.email }}

Guard Against Bot Messages

In a support ticket workflow, verify the message sender is a human before creating a ticket.

{
  "operation": "user/get",
  "userId": "{{ $trigger.message.user }}"
}
// Branch condition: {{ $output.getUser.isBot }} === false AND {{ $output.getUser.deleted }} === false

Personalize Notification Message

Retrieve display name before sending a personalized DM to the user.

{
  "operation": "user/get",
  "userId": "{{ $input.targetUserId }}"
}
// Then in message/send: "Hi {{ $output.getUser.displayName }}, your report is ready."