n8n

How to Automate Slack to S3 File Management?

Teams that share files in Slack often need a clean way to store them and keep channels tidy. This build collects uploads from Slack, opens a simple modal to choose a target folder, and moves the files into S3 for long term storage. It then posts a clear status back in Slack so everyone knows what happened.

Slack events arrive through an n8n Webhook and a Set node extracts the payload. Switch nodes detect the intent, open the Slack modal, and route actions like create folder or pick folder. After the modal is closed, files are split into items and processed in batches. Each file is downloaded from Slack using a user token, uploaded to S3, then checked by an If node for success. An Aggregate node combines all results, and a Slack message shares the outcome with a simple summary.

Setup needs a Slack app with Events API and Interactivity enabled, plus bot and user tokens with file permissions. An S3 account and bucket are required for storage, with access keys added to n8n. Expect a big cut in manual downloads and reuploads, and fewer misfiled assets because users choose the folder at the start. This fits marketing asset drops, support log captures, and internal image handoffs managed inside Slack.

What are the key features?

  • Slack Events intake via Webhook with payload parsing using a Set node
  • Dynamic routing with Switch nodes to handle commands, modal actions, and no action paths
  • Opens a Slack modal with views.open and clears the modal when finished
  • Splits files into items and loops in batches for reliable processing
  • Downloads file binaries from Slack and uploads them to S3
  • Checks upload success with an If node and combines results with Aggregate
  • Posts a summary back to Slack so users see success and failure details

What are the benefits?

  • Reduce manual downloads and uploads from 30 minutes to a few minutes per batch
  • Connect Slack and Amazon S3 so files move with no copy paste
  • Cut misfiled assets by letting users pick folders at the start
  • Handle high volumes with batch processing and clear status checks
  • Give instant feedback in Slack so teams know what worked and what did not

How do you set it up?

  1. Import the template into n8n: Create a new workflow in n8n > Click the three dots menu > Select 'Import from File' > Choose the downloaded JSON file.
  2. You'll need accounts with Slack and Amazon S3. See the Tools Required section above for links to create accounts with these services.
  3. In the Slack API dashboard, create or open your Slack app. Enable Event Subscriptions and Interactivity. Use the Webhook URL shown on the Webhook node in n8n as the Request URL and verify.
  4. Install the Slack app to your workspace. Copy the Bot User OAuth token. If your files are private, also create a user token with files read scope.
  5. In n8n, open Credentials. Create a Slack API credential for the bot token. Create a second Slack credential for the user token used by the file download node.
  6. Double click the Slack HTTP Request and Slack nodes and attach the right credential: use the bot token for modal and message actions, and the user token for file downloads. If unsure, click Create new credential in the credential dropdown and follow on screen steps.
  7. In n8n Credentials, add an Amazon S3 credential with Access Key ID and Secret Access Key. Set the region or endpoint and save.
  8. Open the Upload to S3 node. Select your S3 credential, choose the bucket, and map the file name and path from the Slack file fields.
  9. Check the Switch nodes for routing rules. Confirm the conditions match your Slack actions and modal callback IDs.
  10. Click the Webhook node, copy the Production URL, and make sure it is set in the Slack Event Subscriptions and Interactivity pages until Slack shows Verified.
  11. Run a live test. Upload a file in Slack and trigger the action. Pick a folder in the modal. Watch for the success message back in Slack.
  12. Validate in Amazon S3 that the file is present in the expected folder. If you see permission errors, update IAM policies and bucket access. If Slack cannot download files, confirm the user token has files read scope.

Tools Required

$24 / mo or $20 / mo billed annually to use n8n in the cloud. However, the local or self-hosted n8n Community Edition is free.

Amazon S3

Sign up

AWS Free Tier: 5 GB S3 Standard storage, 20,000 GET requests, 2,000 PUT/COPY/POST/LIST requests, and 100 GB data transfer out / mo

Slack

Sign up

Free plan: $0 / mo; limited to 10 apps (third-party or custom) and usable via Slack API

Similar Templates

Join Futurise to access 1,200+ automation templates

Get instant access to ready-made automation workflows for n8n, Make.com, AI agents, and more. Download, customise, and deploy in minutes.