Upload File

In this article

Overview

Use this Snap to upload and share one or more files with a user/group/channel either directly or as a reply to a thread.

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)
To upload, edit, and delete filesfiles:write

files: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 Input and Output

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

Document

  • Min: 0
  • Max: 1
  • Mapper
  • Copy
  • JSON Generator
  • Sort
A document containing information and paths of one or more files to upload to Slack and the recipient user/channel details.
Output

Document

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

A document containing the success / failure status of each file uploaded.

Snap Settings

Parameter NameData TypeDescriptionDefault ValueExample 
LabelString

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.

Upload FileUpload File
FileString/Expression

Required. Enter the file name or its path in SLDB or Snaplex including the file name to upload the file. The path can use either file protocol or sldb protocol. Alternatively, you can

  • Upload files from your local system. Upload the files, preferably, to your project folder (SLDB) and then, click the  icon at the far right end of this field to browse, filter and select files to upload.
  • Locate and upload files from your Snaplex using the file protocol, depending on your Snaplex folder permissions.

See File Types article in Slack API documentation for a generic list of file extensions that the upload operation supports.

Use the preview icon -  to preview the file, when this field contains only one file path.

N/A

car.jpeg, (SLDB project folder)

/Pipelines/My_Pipeline.slp (SLDB other folder)

sldb:///myfolder/filename.png (SLDB full folder path)

file:///snaplogic/files/name.pdf (Snaplex)

../../shared/1234.pdf (SLDB)

ChannelsString/Expression/Suggestion

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

Click the  icon and select a recipient from the suggested values. To add more recipients, enter comma-separated values manually in the format: @user.name:<11-character alphanumeric user ID>

It is important to follow this format for adding valid users as Slack creates an interim channel with the list of users provided in this field and sends the intimation to the users through this interim channel, once the file is uploaded. The Snap is most likely to return an error if even one of the recipients is not found in the Workspace.

N/A@user.name:W01A94P7MK1
File TypeString/ExpressionProvide a brief description of the file and its format (extension). N/Ajpeg
Initial CommentString/ExpressionAdd any comments related to the file to be uploaded.N/AHere is the doc I was talking about.
Timestamp (if thread reply)String/ExpressionTo upload the file in reply to a message or a message in a thread, provide the timestamp of the corresponding message. This timestamp must correspond to a message in the channel or the direct conversations with the users, as specified above.N/A1601469028.000100
TitleString/Expression

Enter the file name with extension in this field. It is displayed along with the uploaded file, in the Slack message.

If no value is provided in this field, Slack defaults the value to the file name excluding its file extension.

N/Acar.jpeg
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

IO error while performing the operation

File not found on elastic.snaplogic.com at /api/1/rest/.../Slack_SnapPack/filename.extn

Ensure that the file you want to upload is available in your project folder and try uploading the file again.

Unable to create an interim channel for the given list of users, Reason: user_not_foundThe Snap could not find one or more recipients in the current workspace and hence could not create an interim channel for sending the file. Ensure that all of the recipient users are mentioned in a valid format and retry uploading the file.
Error uploading file Reason: missing_scopeThe Snap account does not have the required Scopes to upload file into the workspace.Ensure that the Snap account is configured to have the required Scopes and Permissions provided in Prerequisites section of this document.
Auth error, Reason: No user token present in the OAuth2 responseA valid token is not available for the account to make a successful OAuth2 connection with your Slack app.Ensure your OAuth2 app is configured correctly, and try authorizing account again.
Error uploading file, Reason: invalid_channelThere exists no channel with one of the names/IDs you have specified in the Channels field. Ensure that all the channels you mentioned in the Channels field are valid and try uploading the file again.

Examples

Uploading and Deleting Files

This example demonstrates how we can use the Upload File Snap to share files with one or more recipients. To delete a file that you have sent to another Slack user/Channel/private group, you need to use the Delete File Snap to pass the id of the file to be deleted. The same can be done for multiple files, at once.

In this example, we use the Upload File Snap to upload and share a file with members of a Channel. 

Upload File SnapOutput

Now, we connect a Search Snap to locate an uploaded file and collect the file details using a Mapper Snap.

Search SnapOutput
Mapper SnapOutput

Using the id parameter captured through the Mapper Snap, we can delete the file from the Slack Channel, Private Group, or Direct Message where it has been shared.

Delete File SnapOutput

The file is deleted and the result of this operation is displayed in the Snap output.

Download this Pipeline

Downloads

Important Steps to Successfully Reuse Pipelines

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

  File Modified

File Example_Slack_FileOperations.slp

Mar 11, 2022 by Subhajit Sengupta


Snap Pack History

 Click here to expand...

Release

Snap Pack Version 

Date

Type

Updates

November 2024main29029 

Stable

Updated and certified against the current SnapLogic Platform release.

August 2024

main27765

 

Stable

Upgraded the org.json.json library from v20090211 to v20240303, which is fully backward compatible.

May 2024

main26341

 

Stable

Updated and certified against the current SnapLogic Platform release.

February 2024main25112 StableUpdated and certified against the current SnapLogic Platform release.
November 2023main23721 StableUpdated and certified against the current SnapLogic Platform release.
August 2023main22460 StableUpdated and certified against the current SnapLogic Platform release.

May 2023

main21015

 

Stable

Upgraded with the latest SnapLogic Platform release.

February 2023main19844 StableUpgraded with the latest SnapLogic Platform release.
November 2022main18944 StableUpgraded with the latest SnapLogic Platform release.
August 2022main17386 StableUpgraded with the latest SnapLogic Platform release.
4.29 Patch429patches16199 Latest
  • Fixed an issue with the Send Message Snap where the Snap displayed a Null Pointer Exception error when you select User Emails for the Target Type field and the user email id contained null, for example, @slackbot:null. Now, the Snap displays a valid error message.

  • Fixed an issue with the User ID field for the following Slack Snaps where the Snap failed with the User not found error when using @user.name in the User ID field.
4.29main15993 Stable

Enhanced the Slack - Send Message Snap with User Emails option for the Target Type dropdown list to send messages on Slack app using the user’s email.

4.28main14627 

Stable

Upgraded with the latest SnapLogic Platform release.
4.27main12833 StableUpgraded with the latest SnapLogic Platform release.
4.26main11181 LatestUpgraded with the latest SnapLogic Platform release.
4.25 Patch425patches10994 Latest

Improved the error messages in the Channel Operations Snap where the Snap fails with Null Pointer Exception when the account reference provided is invalid.

4.25main9554 StableNo updates made.
4.24main855613 Feb 2021StableNo updates made.

4.23

main7430

 

Stable

Initial release of the Snap Pack with the following Snaps and Accounts:


See Also