Send Message
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 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.
To | Bot Token Accounts | User Token Accounts ( user_scope ) |
---|---|---|
Post messages in approved channels & conversations | chat:write | chat:write |
Start direct messages with people | im:write | im:write |
View lists of channels and users to select from | users:read | users: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
Type | Format | Number of Views | Examples of Upstream and Downstream Snaps | Description |
---|---|---|---|---|
Input | Document |
|
| A document with a message to send to a public channel, private channel/group or a user in a workspace. |
Output | Document |
|
| 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:
Learn more about Error handling in Pipelines. |
Snap Settings
Parameter Name | Data Type | Description | Default Value | Example |
---|---|---|---|---|
Label | String | 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. | N/A | Send Message |
Message | String/Expression | Required. 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/A | Hello there! |
Target Type | Drop-down list | Select an option from the following list of permitted Target Types and specify the corresponding details needed:
| Public Channel | Private 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 |
Channel | String/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:
| N/A | #testprivate:G019B3ETYMB |
Users | String/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:
| N/A | @user.name:W01A94P7MK1 |
Timestamp (if thread reply) | String/Expression | To reply to a message you received, enter or pass the Epoch timestamp of the received message. | N/A | 1601469028 |
Broadcast Reply | Check box | Select this check box to broadcast a reference to the threaded reply to the parent conversation. | Not selected | Selected |
Snap Execution | Drop-down list | Select one of the three following modes in which the Snap executes:
| Execute only | Validate & Execute |
Troubleshooting
Error | Reason | Resolution |
---|---|---|
Unable to send the message to the given target. missing_scope | You 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_channel | At 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_bot | You 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 exist | The 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 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.
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 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.
Downloads
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
See Also
Have feedback? Email documentation@snaplogic.com | Ask a question in the SnapLogic Community
© 2017-2024 SnapLogic, Inc.