Skip to content

Commit 4ac83f7

Browse files
author
Slack API Ref Buildbot
committed
Updated from Slack docs, 2025/10/21
1 parent 7775718 commit 4ac83f7

File tree

8 files changed

+227
-9
lines changed

8 files changed

+227
-9
lines changed

docs.slack.dev/events/events.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,14 @@
429429
"RTM"
430430
]
431431
},
432+
{
433+
"name": "entity_details_requested",
434+
"description": "This event is sent to your app when a user clicks on a Work Object unfurl or refreshes the flexpane",
435+
"scopes": [],
436+
"APIs": [
437+
"Events"
438+
]
439+
},
432440
{
433441
"name": "external_org_migration_finished",
434442
"description": "An enterprise org migration has finished on an external workspace",

docs.slack.dev/methods/chat.unfurl.json

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@
1515
"args": {
1616
"type": "object",
1717
"required": [
18-
"token",
19-
"channel",
20-
"ts",
21-
"unfurls"
18+
"token"
2219
],
2320
"properties": {
2421
"token": {
@@ -37,7 +34,7 @@
3734
"type": "string"
3835
},
3936
"unfurls": {
40-
"desc": "URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments.",
37+
"desc": "URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments. Either `unfurls` or `metadata` must be provided.",
4138
"type": "string"
4239
},
4340
"user_auth_message": {
@@ -85,6 +82,17 @@
8582
"composer",
8683
"conversations_history"
8784
]
85+
},
86+
"metadata": {
87+
"desc": "JSON object with `entity_type` and `entity_payload` fields, presented as a URL-encoded string. Either `unfurls` or `metadata` must be provided.",
88+
"anyOf": [
89+
{
90+
"type": "string"
91+
},
92+
{
93+
"type": "null"
94+
}
95+
]
8896
}
8997
}
9098
},
@@ -140,6 +148,9 @@
140148
},
141149
"missing_unfurls": {
142150
"desc": "The request is missing the `unfurls` parameter."
151+
},
152+
"error_processing_metadata": {
153+
"desc": "The metadata parameter was invalid."
143154
}
144155
},
145156
"examples": {
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
{
2+
"desc": "Provide custom flexpane behavior for Work Objects. Apps call this endpoint to send per-user flexpane metadata to the client.",
3+
"http_method": "POST",
4+
"scope": "none",
5+
"rate_limits": "t3",
6+
"json_input_supported": true,
7+
"slack_connect_workspaces_allowed": true,
8+
"args": {
9+
"type": "object",
10+
"required": [
11+
"token",
12+
"trigger_id"
13+
],
14+
"properties": {
15+
"token": {
16+
"type": "string",
17+
"subtype": "auth",
18+
"org_app": {
19+
"allowed": true,
20+
"derive_team_context_from": "token"
21+
},
22+
"example": "xxxx-xxxxxxxxx-xxxx"
23+
},
24+
"metadata": {
25+
"desc": "URL-encoded JSON object containing flexpane metadata from the app that will be conformed to a Work Object metadata schema, keyed by entity ID.",
26+
"type": "object"
27+
},
28+
"trigger_id": {
29+
"type": "string",
30+
"desc": "A reference to the original user action that initiated the request."
31+
},
32+
"user_auth_required": {
33+
"default": "0",
34+
"desc": "Set to true (or 1) to indicate that the user must authenticate to view full flexpane data.",
35+
"type": "boolean"
36+
},
37+
"user_auth_url": {
38+
"desc": "A custom URL to which users are directed for authentication if required.",
39+
"example": "https://example.com/onboarding?user_id=xxx",
40+
"type": "string"
41+
},
42+
"error": {
43+
"schema": "error"
44+
}
45+
}
46+
},
47+
"output": null,
48+
"errors": {
49+
"invalid_metadata": {
50+
"desc": "The provided `metadata` argument could not be parsed or understood."
51+
},
52+
"feature_not_enabled": {
53+
"desc": "temporarily gating API"
54+
},
55+
"invalid_app_id": {
56+
"desc": "App ID is not a valid format"
57+
},
58+
"user_auth_url_missing": {
59+
"desc": "User auth url is required if user_auth_required is true"
60+
},
61+
"invalid_trigger_id": {
62+
"desc": "Trigger id is not valid"
63+
},
64+
"entity_metadata_does_not_match_trigger": {
65+
"desc": "The provided entity's ID does not match the ID of the entity used to initiate the request"
66+
},
67+
"missing_interactivity_url": {
68+
"desc": "App does not have an interactivity URL configured"
69+
},
70+
"missing_options_load_url": {
71+
"desc": "App does not have an options load URL configured"
72+
},
73+
"invalid_auth": {
74+
"desc": "Invalid token provided"
75+
}
76+
},
77+
"examples": {
78+
"success": {
79+
"url": "/api/entity.presentDetails?token=YOUR_TOKEN",
80+
"description": "Typical success response",
81+
"example": {
82+
"ok": true
83+
}
84+
},
85+
"error": {
86+
"url": "/api/entity.presentDetails?token=INVALID_TOKEN",
87+
"description": "Typical error response",
88+
"example": {
89+
"ok": false,
90+
"error": "invalid_auth"
91+
}
92+
}
93+
}
94+
}

docs.slack.dev/methods/methods.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,6 +1371,13 @@
13711371
"emoji"
13721372
]
13731373
},
1374+
{
1375+
"name": "entity.presentDetails",
1376+
"description": "Provide custom flexpane behavior for Work Objects. Apps call this endpoint to send per-user flexpane metadata to the client.",
1377+
"family": [
1378+
"entity"
1379+
]
1380+
},
13741381
{
13751382
"name": "files.comments.delete",
13761383
"description": "Deletes an existing comment on a file.",
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "entity_details_requested",
3+
"desc": "This event is sent to your app when a user clicks on a Work Object unfurl or refreshes the flexpane.",
4+
"scopes": [],
5+
"APIs": [
6+
"Events"
7+
]
8+
}

groups/entity.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"name": "entity"
3+
}

methods/chat/chat.unfurl.json

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55
"desc": "Provide custom unfurl behavior for user-posted URLs",
66
"args": {
77
"channel": {
8-
"required": true,
8+
"required": false,
99
"desc": "Channel ID of the message. Both channel and ts must be provided together, or unfurl_id and source must be provided together.",
1010
"type": "channel"
1111
},
1212
"ts": {
13-
"required": true,
13+
"required": false,
1414
"desc": "Timestamp of the message to add unfurl behavior to.",
1515
"type": "timestamp"
1616
},
1717
"unfurls": {
18-
"required": true,
19-
"desc": "URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments.",
18+
"required": false,
19+
"desc": "URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments. Either unfurls or metadata must be provided.",
2020
"type": "string",
2121
"format": "json"
2222
},
@@ -53,6 +53,12 @@
5353
"example": "composer",
5454
"desc": "The source of the link to unfurl. The source may either be composer, when the link is inside the message composer, or conversations_history, when the link has been posted to a conversation.",
5555
"type": "enum"
56+
},
57+
"metadata": {
58+
"required": false,
59+
"desc": "JSON object with entity_type and entity_payload fields, presented as a URL-encoded string. Either unfurls or metadata must be provided.",
60+
"type": "string",
61+
"format": "json"
5662
}
5763
},
5864
"response": {
@@ -76,6 +82,7 @@
7682
"deprecated_endpoint": "The endpoint has been deprecated.",
7783
"ekm_access_denied": "Administrators have suspended the ability to post a message.",
7884
"enterprise_is_restricted": "The method cannot be called from an Enterprise.",
85+
"error_processing_metadata": "The metadata parameter was invalid.",
7986
"fatal_error": "The server could not complete your operation(s) without encountering a catastrophic error. It's possible some aspect of the operation succeeded before the error was raised.",
8087
"invalid_arg_name": "The method was passed an argument whose name falls outside the bounds of accepted or expected values. This includes very long names and names with non-alphanumeric characters other than _. If you get this error, it is typically an indication that you have made a very malformed API call.",
8188
"invalid_array_arg": "The method was passed an array as an argument. Please only input valid strings.",
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
{
2+
"group": "entity",
3+
"name": "entity.presentDetails",
4+
"deprecated": false,
5+
"desc": "Provide custom flexpane behavior for Work Objects. Apps call this endpoint to send per-user flexpane metadata to the client.",
6+
"args": {
7+
"metadata": {
8+
"required": false,
9+
"desc": "URL-encoded JSON object containing flexpane metadata from the app that will be conformed to a Work Object metadata schema, keyed by entity ID.",
10+
"type": "object",
11+
"format": "json"
12+
},
13+
"trigger_id": {
14+
"required": true,
15+
"desc": "A reference to the original user action that initiated the request.",
16+
"type": "string"
17+
},
18+
"user_auth_required": {
19+
"required": false,
20+
"example": "0",
21+
"desc": "Set to true (or 1) to indicate that the user must authenticate to view full flexpane data.",
22+
"type": "boolean"
23+
},
24+
"user_auth_url": {
25+
"required": false,
26+
"example": "https://example.com/onboarding?user_id=xxx",
27+
"desc": "A custom URL to which users are directed for authentication if required.",
28+
"type": "string"
29+
},
30+
"error": {
31+
"required": false,
32+
"desc": ""
33+
}
34+
},
35+
"response": {
36+
"examples": [
37+
"{\n \"ok\": true\n}",
38+
"{\n \"ok\": false,\n \"error\": \"invalid_auth\"\n}"
39+
]
40+
},
41+
"errors": {
42+
"access_denied": "Access to a resource specified in the request is denied.",
43+
"accesslimited": "Access to this method is limited on the current network.",
44+
"account_inactive": "Authentication token is for a deleted user or workspace when using a bot token.",
45+
"deprecated_endpoint": "The endpoint has been deprecated.",
46+
"ekm_access_denied": "Administrators have suspended the ability to post a message.",
47+
"enterprise_is_restricted": "The method cannot be called from an Enterprise.",
48+
"entity_metadata_does_not_match_trigger": "The provided entity's ID does not match the ID of the entity used to initiate the request",
49+
"fatal_error": "The server could not complete your operation(s) without encountering a catastrophic error. It's possible some aspect of the operation succeeded before the error was raised.",
50+
"feature_not_enabled": "temporarily gating API",
51+
"invalid_app_id": "App ID is not a valid format",
52+
"invalid_arg_name": "The method was passed an argument whose name falls outside the bounds of accepted or expected values. This includes very long names and names with non-alphanumeric characters other than _. If you get this error, it is typically an indication that you have made a very malformed API call.",
53+
"invalid_array_arg": "The method was passed an array as an argument. Please only input valid strings.",
54+
"invalid_auth": "Invalid token provided",
55+
"invalid_charset": "The method was called via a POST request, but the charset specified in the Content-Type header was invalid. Valid charset names are: utf-8 iso-8859-1.",
56+
"invalid_form_data": "The method was called via a POST request with Content-Type application/x-www-form-urlencoded or multipart/form-data, but the form data was either missing or syntactically invalid.",
57+
"invalid_metadata": "The provided `metadata` argument could not be parsed or understood.",
58+
"invalid_post_type": "The method was called via a POST request, but the specified Content-Type was invalid. Valid types are: application/json application/x-www-form-urlencoded multipart/form-data text/plain.",
59+
"invalid_trigger_id": "Trigger id is not valid",
60+
"is_bot": "This method cannot be called by a legacy bot.",
61+
"method_deprecated": "The method has been deprecated.",
62+
"missing_interactivity_url": "App does not have an interactivity URL configured",
63+
"missing_options_load_url": "App does not have an options load URL configured",
64+
"missing_post_type": "The method was called via a POST request and included a data payload, but the request did not include a Content-Type header.",
65+
"missing_scope": "The token used is not granted the specific scope permissions required to complete this request.",
66+
"no_permission": "The workspace token used in this request does not have the permissions necessary to complete the request. Make sure your app is a member of the conversation it's attempting to post a message to.",
67+
"not_allowed_token_type": "The token type used in this request is not allowed.",
68+
"not_authed": "No authentication token provided.",
69+
"org_login_required": "The workspace is undergoing an enterprise migration and will not be available until migration is complete.",
70+
"ratelimited": "The request has been ratelimited. Refer to the Retry-After header for when to retry the request.",
71+
"request_timeout": "The method was called via a POST request, but the POST data was either missing or truncated.",
72+
"service_unavailable": "The service is temporarily unavailable.",
73+
"team_added_to_org": "The workspace associated with your request is currently undergoing migration to an Enterprise Organization. Web API and other platform operations will be intermittently unavailable until the transition is complete.",
74+
"token_expired": "Authentication token has expired.",
75+
"token_revoked": "Authentication token is for a deleted user or workspace or the app has been removed when using a user token.",
76+
"two_factor_setup_required": "Two factor setup is required.",
77+
"unknown_method": "This method is currently not available.",
78+
"user_auth_url_missing": "User auth url is required if user_auth_required is true"
79+
}
80+
}

0 commit comments

Comments
 (0)