In this article

The page's title should always be the Snap's name.  For example, File Reader. 

Overview

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.

Provide a functional overview of the Snap. Do not mention anything about the Snap's internal technology or techniques. The user should be able to understand what the Snap. Include a screenshot of a well-configured Snap 600px.  

Prerequisites

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 appSee 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.

To

Bot Token Accounts
(scope)

User Token Accounts
(user_scope)
Post messages in approved channels & conversationschat:writechat:write
Start direct messages with peopleim:writeim:write
Read direct messages based on their IDsim:readim:read
View lists of channels and users to select fromusers:readusers:read

List all prerequisites for using the Snap as a bullet list. Use direct sentences. For example, in case of a Write-type Snap a prerequisite would be that the user must have write access. Include links to external official documentation, if required. Use "None." if there no prerequisites. 

Support for Ultra Pipelines

Works in Ultra Pipelines

Limitations

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.

List all Snap-specific limitations as a bullet list. Limitations can be imposed by the Snap's development environment and also by the endpoint's API. List both. Use direct sentences. Include links to external official documentation, if required. Use "None.: if there are no limitations.  

Known Issues

None.

Snap Input and Output

Type of view: Document/Binary/Both. Get number of views from the Views tab in the Snap. List at least three compatible Snaps in each category. Provide a brief of the input/output required. If the input/output is optional then preface the description with "Optional." For example, "Transaction data complying with the Orderful schema as a JSON document."

Input/OutputType of ViewNumber of ViewsExamples of Upstream and Downstream SnapsDescription
Input 

Document

  • Min: 0
  • Max: 1
  • Mapper
  • JSON Generator
  • Search (Slack)
  • Copy
  • Sort
A document containing the updated message and one or more timestamps of the original messages.
Output

Document

  • Min: 0
  • Max: 1
  • Mapper
  • JSON Formatter
  • CSV Parser

A document containing details of the updates made to one or more respective messages.

Snap Settings

Parameter NameData TypeDescriptionDefault ValueExample 
LabelString
Update MessageUpdate Message
Target TypeDrop-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 ChannelPrivate Channel/Group
ChannelString/Expression/Suggestion

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
  • #channel.name OR
  • <11-character alphanumeric channel ID>
N/A#testprivate:G019B3ETYMB
UsersString/Expression/Suggestion

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
  • @user.name OR
  • @<11-character alphanumeric user ID>
N/A@user.name:W01A94P7MK1
TimestampString/ExpressionRequired. To edit the message you sent earlier, enter or pass its Epoch timestamp.N/A1601469028
New MessageString/ExpressionRequired. 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/AHi there!
Snap ExecutionDrop-down list

Select one of the three following modes in which the Snap executes:

  • Validate & Execute. Performs limited execution of the Snap and generates a data preview during Pipeline validation, then performs full execution of the Snap (unlimited records) during Pipeline runtime.
  • Execute only. Performs full execution of the Snap during Pipeline execution without generating preview data.
  • Disabled. Disables the Snap and all Snaps downstream from it.

Execute onlyValidate & Execute

Troubleshooting

You can get information for this section from the Snap's source code, typically the Messages.java file in GitHub. Ask the developer to access this file. Do not use "Please" in the Reason or Resolution. If there is "Please" in the error message then contact the developer to have it removed as needed.

ErrorReasonResolution
Enter the error message that is displayed.

Unable to update the message with the given target and timestamp: message_not_found

Briefly describe why this error is triggered. An experienced user will be able to troubleshoot the error looking at the reason itself.

The Snap cannot locate the target message to update it.

List the steps that the user must take, if necessary, to rectify this error. If a procedure is extensive, add it as a separate section after this table and reference it with a link in this cell.

Ensure that the Channel and Timestamp provided correspond to a valid message that exists before running the Pipeline again.

Input error: Target (user/channel) missingYou 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.

Examples

Updating/Editing a Message Already Sent

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 SnapOutput

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.

Mapper Snap

Mapper Output

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 SnapOutput

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.

Add a download link to the Pipeline in the the "Download" text above. Explain the Pipeline/Snap configuration in detail if a complex enough example has been used. Ensure that the functionality you are trying to illustrate is captured correctly. Include caveats as appropriate. To insert link: Press Ctrl + K --> Files --> Select the SLP file corresponding to the example. 

Downloads

  1. Download and import the Pipeline into SnapLogic.
  2. Configure Snap accounts as applicable.
  3. Provide Pipeline parameters as applicable.



Edit the Excerpt Include macro below to link to the Snap Pack page for this Snap page. Ensure that the heading Snap Pack History is not within the Snap Pack's history Excerpt. 


See Also

Provide links to the endpoint's official documentation, any relevant or related internal documentation, and any other links you have referred to on this page. Care should be taken when referencing external sites/documentation that it is an official site/documentation. Do not refer to forums such as stackoverflow.