You are helping me build the following AI agent workflow. ## Goal Upload Images To S3 Via Slack: Upload images from Slack to a Cloudflare S3 bucket via a modal, choosing folders and receiving direct file URLs in the chat. ## Specification - What it does: Upload images directly from Slack by selecting a folder in a modal, then instantly receive direct file URLs for your public-facing assets without leaving the chat. The workflow automatically stores these files in your Cloudflare S3 bucket while managing dynamic folder organization for you. - Trigger: Run manually (Manual ยท on demand via Slack modal) - Autonomy: Fully hands-off - Expected setup effort: about an afternoon - Tools/services involved: - Slack: User interaction and confirmation - S3: Cloud storage upload - HTTP Request: Workflow orchestration and API calls ## Known pitfalls, handle each one explicitly in your implementation 1. Slack has a strict file size limit for direct uploads so you must verify the image dimensions and resolution before initiating the S3 transfer to avoid silent failures. 2. Pre-signed URLs expire quickly so ensure your workflow logic generates them immediately before the upload attempt rather than storing them in long-term variables. 3. Cloudflare R2 does not support standard AWS SDK signatures directly in all HTTP libraries so you may need to manually construct the Authorization header using HMAC-SHA256. 4. Special characters in folder names can break S3 object keys so sanitize user input by replacing spaces with hyphens and removing non-alphanumeric symbols. ## Reference implementation https://n8n.io/workflows/2585 (workflow template) Fetch and inspect this before building. If it matches my stack, adapt it; if not, rebuild the pattern with my tools. ## Process requirements 1. Before building: ask me which of the listed tools I actually use and what my platform is (n8n / Make / code / other). Do not assume. 2. Adapt the pattern to my answers; do not force the reference stack. 3. Address every pitfall above; tell me how you handled each. 4. Provide a test plan I can run before letting this touch real data. 5. Ask before any step that sends messages, modifies data, or spends money. Source: https://usecasesforagents.com/use-case/upload-images-to-s3-via-slack/ via usecasesforagents.com