Skip to main content
DevDaily can send standup notes, PR announcements, and weekly summaries directly to Slack and Discord channels using webhooks.

Overview

Notifications enable:
  • Automated standups: Send daily updates to your team channel
  • PR announcements: Notify reviewers when PRs are created
  • Weekly summaries: Share accomplishments with stakeholders
  • Custom messages: Send any DevDaily output to chat
All notifications use webhooks - no OAuth or app installation required. Messages are sent via HTTPS POST requests.

Quick Setup

Run the interactive notification setup:
This will:
  1. Ask which platform(s) you want to configure
  2. Guide you through webhook URL creation
  3. Test the connection with a sample message
  4. Save configuration to secrets.json

Slack Setup

1

Create Incoming Webhook

  1. Go to https://api.slack.com/apps
  2. Click “Create New App” → “From scratch”
  3. Name it “DevDaily” and select your workspace
  4. Under “Features” → “Incoming Webhooks”, toggle “Activate Incoming Webhooks”
  5. Click “Add New Webhook to Workspace”
  6. Select the channel (e.g., #engineering-standups)
  7. Copy the webhook URL (starts with https://hooks.slack.com/services/...)
2

Store Webhook URL

Add to ~/.config/devdaily/secrets.json:
3

Enable in Configuration

Update .devdaily.json:
4

Test Connection

Configuration Options

boolean
default:"false"
Enable Slack notifications
string
required
Slack incoming webhook URL (stored in secrets.json)
string
Default channel name (optional, for documentation only - webhook determines actual channel)

Environment Variable

Discord Setup

1

Create Webhook

  1. Open your Discord server
  2. Right-click the channel → “Edit Channel”
  3. Go to “Integrations” → “Webhooks”
  4. Click “New Webhook”
  5. Name it “DevDaily” and optionally set an avatar
  6. Copy the webhook URL (starts with https://discord.com/api/webhooks/...)
2

Store Webhook URL

Add to ~/.config/devdaily/secrets.json:
3

Enable in Configuration

Update .devdaily.json:
4

Test Connection

Configuration Options

boolean
default:"false"
Enable Discord notifications
string
required
Discord webhook URL (stored in secrets.json)

Environment Variable

Scheduled Standups

Configure automatic daily standup delivery:
.devdaily.json
string (cron)
Cron expression for standup schedule (e.g., 0 9 * * 1-5 = 9am weekdays)
string
default:"America/New_York"
Timezone for scheduled standups (e.g., America/Los_Angeles, Europe/London)
string[]
Days of week to send standups: monday, tuesday, wednesday, thursday, friday, saturday, sunday
Scheduled standups require setting up a cron job or CI workflow. See the Automation Guide below.

Sending Notifications

Manual Sending

Send any command output to configured channels:

Automatic Sending

When notifications are enabled, you can configure commands to always send:
.devdaily.json

Message Formats

Slack Format

Slack messages use Block Kit for rich formatting:
Features:
  • Header with emoji
  • Markdown formatting (*bold*, _italic_, strikethrough)
  • Clickable links for tickets
  • Dividers between sections
  • Contextual footer with timestamp

Discord Format

Discord messages use embeds:
Features:
  • Color-coded embeds (green for standup, blue for PR, purple for weekly)
  • Markdown in description
  • Fields for ticket metadata
  • Timestamp and footer
  • Custom username and avatar

Output Format Override

Send Slack-optimized output to any channel:
This converts markdown to Slack’s mrkdwn format:
  • **bold***bold*
  • *italic*_italic_
  • [link](url)<url|link>
  • Code blocks → Slack code blocks

Automation

GitHub Actions

Send standups via GitHub Actions:
.github/workflows/daily-standup.yml
Add SLACK_WEBHOOK_URL and DISCORD_WEBHOOK_URL to your repository secrets under Settings → Secrets and variables → Actions.

Cron Job

Send standups via cron (Linux/macOS):
Add:
Export webhook URLs in your shell profile:
~/.bashrc

Notification Types

Standup Notification

Includes:
  • Yesterday’s completed work
  • Today’s planned work
  • Blockers (if any)
  • Related ticket links
  • Commit/file statistics
Appearance:
  • Title: “☀️ Daily Standup”
  • Color: Green
  • Emoji: ☀️

PR Notification

Includes:
  • PR title and link
  • Description summary
  • Ticket references
  • Diff statistics
Appearance:
  • Title: ”🔀 New PR: [title]”
  • Color: Blue
  • Emoji: 🔀
  • Direct link to PR

Weekly Summary Notification

Includes:
  • Weekly accomplishments
  • Commit and PR counts
  • Ticket completions
  • Stats footer
Appearance:
  • Title: ”📊 Weekly Summary”
  • Color: Purple
  • Emoji: 📊
  • Footer: ”📊 X commits · Y PRs this week”

Custom Messages

Send custom notifications programmatically:

Troubleshooting

Webhook Test Fails

  1. Verify webhook URL:
  2. Test with curl:
  3. Check webhook status:

Messages Not Sending

Check configuration:
Ensure:
  • enabled: true for your platform
  • webhookUrl is set in secrets.json
Both platforms have rate limits:
  • Slack: 1 message per second
  • Discord: 30 messages per minute
Avoid rapid-fire sends. Use --send sparingly.
Test different formats:

Network/Firewall Issues

Ensure outbound HTTPS is allowed to:
  • Slack: hooks.slack.com
  • Discord: discord.com
Test connectivity:

Security Best Practices

Webhook URLs are sensitive credentials. Anyone with a webhook URL can send messages to your channel.
  1. Store in secrets.json, never in .devdaily.json:
  2. Add secrets.json to .gitignore:
  3. Use environment variables in CI/CD:
  4. Rotate webhooks if exposed:
    • Slack: Delete old webhook, create new one
    • Discord: Delete webhook in channel settings, create new
  5. Restrict channel permissions:
    • Make notification channels read-only for most users
    • Limit who can create/edit webhooks

Disabling Notifications

Temporarily disable without removing configuration:
.devdaily.json
Or per-command:

Configuration Overview

Learn about all configuration options

Standup Command

Generate and send daily standups