In this article

Overview

Use this Snap to send messages to a fellow team member, group, or channel that you have the permissions to.

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
View lists of channels and users to select fromusers:readusers:read

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.

Known Issues

None.

Snap Views

TypeFormatNumber of ViewsExamples of Upstream and Downstream SnapsDescription
Input 

Document

  • Min: 0
  • Max: 1
  • Mapper
  • JSON Generator
A document with a message to send to a public channel, private channel/group or a user in a workspace.
Output

Document

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

A document containing the output/result for the Send Message operation.

Error

Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:

  • Stop Pipeline Execution: Stops the current pipeline execution when the Snap encounters an error.

  • Discard Error Data and Continue: Ignores the error, discards that record, and continues with the rest of the records.

  • Route Error Data to Error View: Routes the error data to an error view without stopping the Snap execution.

Learn more about Error handling in Pipelines.

Snap Settings

Parameter NameData TypeDescriptionDefault ValueExample 
LabelString
N/ASend Message
MessageString/ExpressionRequired. Enter the message to send to the 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/AHello there!
Target TypeDrop-down list

Select an option from the following list of permitted Target Types and specify the corresponding details needed:

  • Public Channel. To send the message to one of the public channels in the workspace. Requires Channel.
  • Private Channel/Group. To send the message to a private channel or group within the workspace. You must be a participant of the respective channel or group. Requires Channel.
  • Users. To send the message to one or more individual users. Requires Users.
  • User Emails: To find user ID with email and then call a slack API to send a message.

Public ChannelPrivate Channel/Group

User Emails


String/Expression

Appears when you select User Emails as the Target Type.

Specify the emails of the users' separated by commas. When the Snap sends a message, the specified user receives a message on Slack App.


Specify the Scope as users:read:email in the Slack account to enable the Snap to suggest user emails.


.N/A

user@snaplogic.com
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
Timestamp (if thread reply)String/ExpressionTo reply to a message you received, enter or pass the Epoch timestamp of the received message.N/A1601469028
Broadcast ReplyCheck boxSelect this check box to broadcast a reference to the threaded reply to the parent conversation.Not selectedSelected
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

ErrorReasonResolution
Unable to send the message to the given target. missing_scopeYou have not added/defined the required Slack Scope for your App.Ensure that your App is configured with the required Scopes and that the token and the inputs are valid before running the Pipeline again.
Unable to send the message to the given target. not_in_channelAt least one of the Users you specified is not available in the Channel.Ensure that the user is added to the target Channel/Private group before running the Pipeline again.
Unable to create an interim channel for the given list of users. cannot_dm_botYou have selected a Bot account to send the message to. Hence the Snap is unable to create an interim channel for sending the message to the selected recipients (as it includes the Bot).Ensure that you have selected only individual users and not any Bot for sending the message to. And run the Pipeline again.
Unable to load account definition. Account named "OAuth2SlackAccount_Bot" does not existThe account that you specified for the Snap to connect to Slack workspace is not valid.Update the account details for the Snap and validate the account before running the Pipeline again.
account.property_map.settings.access_token.value: Missing property value, String is too short (0 characters), it must have a minimum of 1 characters The Account settings for the Snap are incorrect. Ensure that you provide/generate a valid User Token in the Snap account before running the Pipeline again.

Examples

Sending a Message and Updating it

This example demonstrates how we can use the Send Message Snap to send 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 Update Message Snap to pass 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 New 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.