Skip to content

Slack: Updates a message

Slack chat.update: arguments, response, policy and SDK examples.

← Chat operations · Get started

Operation slack.chat_update

Provider route: POST /chat.update. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/slack with npm, or alter-sdk-slack with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { SlackIntegration } from "@alter-ai/slack";
async function execute(input: Parameters<SlackIntegration["chat"]["update"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new SlackIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.chat.update(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_slack import SlackIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = SlackIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.chat.update(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
bodyobjectRequired within parent
body.as_userbooleanOptionalPass true to update the message as the authed user. Bot users in this context are considered authed users.
body.attachmentsstringOptionalA JSON-based array of structured attachments, presented as a URL-encoded string.
body.blocksstringOptionalA JSON-based array of structured blocks, presented as a URL-encoded string.
body.channelstringRequired within parentChannel containing the message to be updated. For direct messages, ensure that this value is a DM ID (starts with `D`) instead of a User ID (starts with either `U` or `W`).
body.file_idsstringOptionalArray of new file ids that will be sent with this message.
body.link_namesbooleanOptionalFind and link channel names and usernames. Defaults to `none`. If you do not specify a value for this field, the original value set for the message will be overwritten with the default, `none`.
body.markdown_textstringOptionalAccepts message text formatted in markdown. This argument should not be used in conjunction with `blocks` or `text`. Limit this field to 12,000 characters.
body.metadatastringOptionalJSON object with event_type and event_payload fields, presented as a URL-encoded string. If you don’t include this field, the message’s previous `metadata` will be retained. To remove previous `metadata`, include an empty object for this field. Metadata you post to Slack is accessible to any app or user who is a member of that workspace.
body.parsestringOptionalChange how messages are treated. Defaults to `client`, unlike `chat.postMessage`. Accepts either `none` or `full`. If you do not specify a value for this field, the original value set for the message will be overwritten with the default, `client`.
body.reply_broadcastbooleanOptionalBroadcast an existing thread reply to make it visible to everyone in the channel or conversation.
body.textstringOptionalHow this field works and whether it is required depends on other fields you use in your API call.
body.tsstringRequired within parentTimestamp of the message to be updated.
body.unfurled_attachmentsstringOptionalA JSON-based array of structured attachments, presented as a URL-encoded string.

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$objectRootSchema for successful response of chat.update method
channelstringOptional
messageobjectOptional
message.attachmentsarrayOptional
message.attachments[]objectEach item
message.blocksobjectOptional
message.textstringOptional
okbooleanRequired within parentMust equal: true
textstringOptional
tsstringOptional

SDK function policy ID: slack.chat_update. Catalog operation: chat_update. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Required provider scopes: ["chat:write"]

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.