In this article
Use this Snap to edit messages you have sent to a user, private group/channel or a public channel. The Snap instantly updates the messages.
Add valid Slack Scopes based on the intended operation. See Required Slack Scopes below for details.
Required Slack Scopes
Any action you want to perform within a Slack Workspace, additionally needs appropriate Scopes assigned to your app. See the Scope and Permissions article in Slack API documentation for the complete list and each Account page under Configuring Slack Accounts for information on defining Scopes for your app.
Bot Token Accounts
|User Token Accounts|
|Post messages in approved channels & conversations|
|Start direct messages with people|
|Read direct messages based on their IDs|
|View lists of channels and users to select from|
Support for Ultra Pipelines
Works in Ultra Pipelines.
Snaps in this Snap Pack use conditional display/hiding of fields. So, ensure that you always use the New Form UI (and not the classic UI) for the Snaps to function as designed/expected.
Snap Input and Output
|Input/Output||Type of View||Number of Views||Examples of Upstream and Downstream Snaps||Description|
- JSON Generator
- Search (Slack)
|A document containing the updated message and one or more timestamps of the original messages.|
- JSON Formatter
- CSV Parser
A document containing details of the updates made to one or more respective messages.
|Parameter Name||Data Type||Description||Default Value||Example |
Specify a name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your Pipeline.
|Update Message||Update Message|
|Target Type||Drop-down list|
Select an option from the following list of permitted Target Types and specify the corresponding details needed:
- Public Channel. To update the message sent to one of the public channels in the workspace. Requires Channel.
- Private Channel/Group. To update the message sent to a private channel or group within the workspace. You must be a participant of the respective channel or group. Requires Channel.
- Users. To update the message sent to one or more individual users. Requires Users.
|Public Channel||Private Channel/Group|
Required for Target Types - Public Channel and Private Channel/Group.
Click the icon and select a channel from the suggested values. To add more channels, enter comma-separated values manually in one of the following formats:
#channel.name:<11-character alphanumeric channel ID> OR
<11-character alphanumeric channel ID>
Required for Target Type - Users.
Click the icon and select a recipient from the suggested values. To add more recipients, enter comma-separated values manually in one of the following formats:
@user.name:<11-character alphanumeric user ID> OR
@<11-character alphanumeric user ID>
|Timestamp||String/Expression||Required. To edit the message you sent earlier, enter or pass its Epoch timestamp.||N/A||1601469028|
|New Message||String/Expression||Required. Enter the updated message to send to same set of recipients. See Formatting Messages for instructions to format your message text in the same manner as allowed in the web/desktop versions of Slack, using markup syntaxes.||N/A||Hi there!|
|Snap Execution||Drop-down list|
Select one of the three following modes in which the Snap executes:
|Execute only||Validate & Execute|
Unable to update the message with the given target and timestamp: message_not_found
The Snap cannot locate the target message to update it.
Ensure that the Channel and Timestamp provided correspond to a valid message that exists before running the Pipeline again.
|Input error: Target (user/channel) missing||You have not supplied either the Channel or the Timestamp for the target message to update it.||Ensure that you provide the required parameters to delete the message before running the Pipeline again.|
This example demonstrates how we can use the Send Message and Update Message Snaps to send update messages to one or more recipients. To update a message that you have sent to another Slack user/Channel/private group, you need to use the timestamp of the original message. The same can be done for multiple messages, at once.
In this example, we use the Send Message Snap to send a message defined as normal text (string) to a user. You can try with sending to a Channel or private group.
|Send Message Snap||Output|
|Message in Slack|
Notice that when the Message field is not defined as an expression, the new-line character \n is not rendered as expected.
We connect a Mapper Snap to capture the timestamp of the message sent. Alternatively, you can feed the timestamp using any other upstream Snap.
Now, to update the original message, connect an Update Message Snap to the Mapper and pass the updated Message text, Channel/User and Timestamp values to it. The Snap replaces the original message with this updated message and shows the following output.
|Update Message Snap||Output|
|Updated Message in Slack|
Notice that we have defined the New Message field as an expression and that it contains the new-line character \n that renders the message with multiple lines, as expected.
Download this Pipeline.
Important Steps to Successfully Reuse Pipelines
- Download and import the Pipeline into SnapLogic.
- Configure Snap accounts as applicable.
- Provide Pipeline parameters as applicable.
Snap Pack History