Skip to main content

Overview

Connect Slack to ChartCastr to automatically share charts, dashboards, and data visualizations with your team. Send to channels, private groups, or direct messages on a schedule or on-demand.

Features

  • Channel Integration: Post to any public or private channel
  • Rich Formatting: Use Slack’s Block Kit for beautiful messages
  • Threading: Keep conversations organized with threaded replies
  • Reactions: Enable quick feedback with emoji reactions
  • File Uploads: Attach high-resolution images and PDFs
  • Interactive Messages: Add buttons for actions and feedback

Setup Guide

Step 1: Install Slack App

1

Navigate to Destinations

Go to the Destinations page in your dashboard
2

Click Add Slack

Select “Connect Slack” to begin OAuth flow
3

Choose Workspace

Select your Slack workspace from the list
4

Authorize Access

Review and approve the requested permissions

Step 2: Select a Channel

After connecting, choose where to post:
  1. Public Channels: Any channel you’re a member of
  2. Private Channels: Invite the ChartCastr bot first
  3. Direct Messages: Send to specific users
  4. Group DMs: Share with multiple users at once
For private channels, use /invite @ChartCastr in the channel before configuring the destination.

Step 3: Configure Message Format

Customize how your charts appear in Slack:
Example Message Configuration
{
  "text": "📊 Daily Sales Report",
  "include_summary": true,
  "thread_replies": true,
  "mention_users": ["@sales-team"],
  "add_actions": true
}

Step 4: Test Your Setup

Always send a test message before scheduling:
  1. Click “Send Test Message”
  2. Check the message in your Slack channel
  3. Verify image quality and formatting
  4. Ensure all links work correctly

Permissions Required

ChartCastr requests the following Slack scopes:
ScopePurpose
chat:writePost messages to channels
files:writeUpload image files
channels:readList available channels
groups:readAccess private channels
users:readMention users in messages
chat:write.publicPost to channels without joining
All permissions are read-only except for posting messages. ChartCastr cannot read your Slack messages.

Message Formatting

Basic Message

📊 **Weekly Sales Dashboard**

Here's your weekly sales summary for the team.

🔗 [View in Google Sheets](https://docs.google.com/spreadsheets/...)

With AI Summary

When AI summaries are enabled:
📊 **Weekly Sales Dashboard**

📈 **Key Insights:**
- Sales increased 15% compared to last week
- Top performing region: West Coast (+23%)
- Product category "Software" shows strong growth trend

🔗 [View in Google Sheets](https://docs.google.com/spreadsheets/...)

Interactive Message

Add action buttons:
{
  "type": "actions",
  "elements": [
    {
      "type": "button",
      "text": "View Full Report",
      "url": "https://..."
    },
    {
      "type": "button",
      "text": "Subscribe",
      "action": "subscribe"
    }
  ]
}

Advanced Features

Threading

Keep your channel organized by posting updates in threads:
First message creates a new thread with the chart image
Subsequent updates post as replies to the original thread
Choose whether thread replies appear in channel

Mentions

Notify specific users or groups:
@sales-team New weekly report is ready!
@channel Check out this month's performance 🎉
Use @channel and @here sparingly to avoid notification fatigue.

Conditional Delivery

Send only when specific conditions are met:
Alert Configuration
condition: "sales_change > 10%"
message: "🚨 Alert: Sales changed by {{sales_change}}%"
priority: high

Scheduled Delivery

schedule: "0 9 * * *"  # 9 AM every day
timezone: "America/New_York"
skip_weekends: true

Image Options

Optimize images for Slack:
SettingRecommendedNotes
FormatPNGBetter quality than JPEG
Max Width2000pxSlack’s display limit
Max Height2000pxPrevents downscaling
Max File Size8MBSlack’s upload limit
DPI144Retina display quality
Slack automatically creates thumbnails. High-resolution images can be viewed at full size by clicking.

Rate Limits

Slack API has the following limits:
TierRate LimitBurst
Free Plan1 per second20
Paid Plan50 per minute100
Enterprise100 per minute200
Posting too frequently may trigger rate limits. ChartCastr automatically handles retries with exponential backoff.

Use Cases

Daily Standup Reports

Configuration
name: "Daily Standup Metrics"
source: google-sheets-kpis
destination: slack-team-standup
schedule: "0 9 * * MON-FRI"
format: "compact"
thread: true

Real-time Alerts

Configuration
name: "High-Priority Sales Alert"
source: bigquery-sales-monitor
destination: slack-sales-urgent
trigger: "value > threshold"
priority: "immediate"
mention: "@sales-leadership"

Weekly Executive Summary

Configuration
name: "Executive Dashboard"
source: looker-exec-dashboard
destination: slack-leadership
schedule: "0 10 * * MON"
format: "detailed"
ai_summary: true
pdf_attachment: true

Troubleshooting

Issue: “ChartCastr cannot post to this channel”Solutions:
  • Invite the bot: /invite @ChartCastr
  • For private channels, make sure you’re an admin
  • Check workspace settings allow app integrations
Issue: Markdown or formatting not displaying correctlySolutions:
  • Slack uses Block Kit, not standard markdown
  • Check message preview in ChartCastr dashboard
  • Verify Slack app is up to date
  • Review Block Kit syntax in Slack docs
Issue: Chart appears as a link instead of imageSolutions:
  • Check file size is under 8MB
  • Verify files:write permission is granted
  • Ensure image format is supported (PNG, JPEG, GIF)
  • Try re-authenticating the Slack connection
Issue: “rate_limited” error in logsSolutions:
  • Reduce posting frequency
  • Combine multiple charts into one message
  • Upgrade to Slack paid plan for higher limits
  • Contact support if limits seem incorrect
Issue: “token_expired” or “invalid_auth” errorSolutions:
  • Go to Destinations and reconnect Slack
  • Check if app was removed from workspace
  • Verify workspace admin hasn’t revoked access
  • Re-authorize with the same workspace

Best Practices

  1. Use Threads: Keep channels clean by posting updates in threads
  2. Optimize Images: Compress images without losing quality
  3. Add Context: Include brief summaries with each chart
  4. Limit Mentions: Use @channel sparingly
  5. Test Thoroughly: Always test before scheduling
  6. Monitor Delivery: Check logs for failed posts
  7. Set Expectations: Let your team know what to expect and when
  8. Use Reactions: Enable reactions for quick feedback

Security

ChartCastr takes security seriously:
  • OAuth 2.0: Secure authentication with token refresh
  • Encrypted: All data in transit is encrypted
  • Scoped Access: Minimal permissions requested
  • Audit Logs: Track all Slack activity
  • Revocable: Disconnect anytime from Slack or ChartCastr
To revoke access:
  1. Go to Slack workspace settings
  2. Navigate to Apps → ChartCastr
  3. Click “Remove App” or manage permissions

Next Steps