Integrations

Configure ReleaseRay to publish release notes to Slack, Microsoft Teams, Intercom, and other platforms. Each integration is configured per-organization, ensuring your release notes only go to YOUR channels.


Overview

ReleaseRay supports publishing to multiple channels:

  • GitHub Releases - Automatically create GitHub Releases (no config needed)
  • CHANGELOG.md - Commit release notes to your repository (no config needed)
  • Hosted Changelog - Beautiful public-facing changelog page (no config needed)
  • Slack - Send notifications to your Slack channels
  • Microsoft Teams - Send notifications to your Teams channels
  • Intercom Help Center - Publish articles to your knowledge base
  • Email - Send release notes to your subscribers via email

All integrations are private to your organization. When you configure a webhook or API key, it's stored securely and never shared with other ReleaseRay customers.


Slack Integration

Send release notes to your Slack channels using Incoming Webhooks.

Step 1: Create Slack Incoming Webhook

  1. Go to Slack API Apps
  2. Click "Create New App"
  3. Choose "From scratch"
  4. Name your app (e.g., "ReleaseRay") and select your workspace
  5. Click "Create App"

Step 2: Enable Incoming Webhooks

  1. In the left sidebar, click "Incoming Webhooks"
  2. Toggle "Activate Incoming Webhooks" to ON
  3. Click "Add New Webhook to Workspace"
  4. Select the channel where you want to receive notifications (e.g., #releases)
  5. Click "Allow"

Step 3: Copy Webhook URL

You'll see a webhook URL like:

https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX

Important: Keep this URL private. Anyone with this URL can post to your Slack channel.

Step 4: Configure in ReleaseRay

  1. Log in to ReleaseRay
  2. Go to Settings → Integrations
  3. Click "Add Integration" or "Configure Slack"
  4. Paste your webhook URL
  5. Click "Test & Save"

You should see a test message in your Slack channel confirming the webhook works.

Step 5: Publish to Slack

Now when you publish a draft:

  1. Select the draft you want to publish
  2. Click "Publish"
  3. Check "Slack Notification"
  4. Click "Publish"

Your release notes will be formatted and sent to your Slack channel!

Message Format

Slack messages use Block Kit with:

  • 🚀 Header with release version
  • 📝 Repository and version info
  • ✨ Full release notes (formatted as markdown)
  • 🔗 Action buttons to view release and compare changes

Microsoft Teams Integration

Send release notes to your Microsoft Teams channels using Incoming Webhooks.

Step 1: Add Incoming Webhook Connector

  1. Open Microsoft Teams
  2. Navigate to the channel where you want to receive notifications
  3. Click the "..." (More options) next to the channel name
  4. Select "Connectors"
  5. Search for "Incoming Webhook"
  6. Click "Configure"

Step 2: Configure the Webhook

  1. Give your webhook a name (e.g., "ReleaseRay Notifications")
  2. Optionally upload a custom icon (use your company logo)
  3. Click "Create"

Step 3: Copy Webhook URL

You'll see a long webhook URL like:

https://outlook.office.com/webhook/abc123-def456.../IncomingWebhook/xyz789.../...

Important:

  • Click "Copy" to copy the full URL (it's long!)
  • Keep this URL private - anyone with it can post to your Teams channel

Step 4: Configure in ReleaseRay

  1. Log in to ReleaseRay
  2. Go to Settings → Integrations
  3. Click "Add Integration" or "Configure Microsoft Teams"
  4. Paste your webhook URL
  5. Click "Test & Save"

You should see a test message in your Teams channel confirming the webhook works.

Step 5: Publish to Teams

Now when you publish a draft:

  1. Select the draft you want to publish
  2. Click "Publish"
  3. Check "Microsoft Teams"
  4. Click "Publish"

Your release notes will be formatted and sent to your Teams channel!

Message Format

Teams messages use MessageCard format with:

  • 🎯 Bold title with release version
  • 📋 Repository and version subtitle
  • 📝 Full release notes (formatted as markdown)
  • 🔗 Action buttons to view release and compare changes

Intercom Help Center Integration

Publish release notes as articles in your Intercom Help Center.

Step 1: Get Intercom Access Token

  1. Go to Intercom Developer Hub
  2. Click "Your apps" → Select your app
  3. Go to "Authentication"
  4. Create a new Access Token with these permissions:
    • Articles: Read, Write
    • Help Center: Read
  5. Copy the access token

Step 2: Get Collection ID

  1. Go to your Intercom Help Center
  2. Navigate to the collection where you want to publish release notes
  3. The collection ID is in the URL:
    https://app.intercom.com/a/apps/YOUR_APP/articles/collections/12345
    
    Copy 12345 (your collection ID)

Step 3: Configure in ReleaseRay

  1. Log in to ReleaseRay
  2. Go to Settings → Integrations
  3. Find the Intercom integration card
  4. Enter your Access Token
  5. Enter your Collection ID
  6. Choose Default Article State:
    • Draft (recommended): Articles created as drafts for review before publishing
    • Published: Articles immediately published to your Help Center
  7. Click "Save"

Step 4: Publish to Intercom

When you publish a draft:

  1. Select the draft you want to publish
  2. Click "Publish"
  3. Check "Intercom Help Center"
  4. Click "Publish"

ReleaseRay will create a new article in your Intercom collection with your release notes.

Note: By default, articles are created as drafts. You can change this to "Published" in your Intercom integration settings if you want articles to go live immediately.


CHANGELOG.md Integration

Automatically commit release notes to a CHANGELOG.md file in your repository.

Configuration: Uses your GitHub App connection (no additional setup needed).

How It Works

When you publish a draft to CHANGELOG.md:

  1. ReleaseRay reads your existing CHANGELOG.md file (or creates one if it doesn't exist)
  2. Inserts your new release notes at the top, following the Keep a Changelog format
  3. Creates a pull request with the updated file
  4. You review and merge the PR

Publishing Options

  • File path: CHANGELOG.md in repository root (standard location)
  • Format: Markdown with semantic versioning headers
  • PR creation: Automatic branch and pull request
  • Review: Merge PR when ready

GitHub App Permissions Required

  • Contents: Read & Write (to create PRs and commit files)
  • Pull Requests: Read & Write (to create PRs)

Note: These permissions are requested when you install the GitHub App.


Hosted Changelog Integration

Publish release notes to your public-facing hosted changelog at releaseray.com/changelog/your-org/your-repo.

No configuration needed! This integration is automatically available for all repositories.

How It Works

When you publish a draft to Hosted Changelog:

  1. ReleaseRay stores the release notes in the database
  2. Makes it available at your public changelog URL
  3. Indexes it for search and filtering
  4. Updates your changelog feed

Accessing Your Changelog

Your hosted changelog is available at:

https://releaseray.com/changelog/[org-slug]/[repo-name]
https://releaseray.com/changelog/[org-slug]/[repo-name]/[version]

Example:

https://releaseray.com/changelog/acme-corp/api
https://releaseray.com/changelog/acme-corp/api/v1.2.0

Features

  • Public access: No authentication required
  • SEO optimized: Indexed by search engines
  • Version history: Browse all releases
  • Markdown rendering: Beautiful formatting
  • RSS feed: Subscribe to updates (coming soon)

Customization

Currently, hosted changelogs use the ReleaseRay branding. Custom domains and branding coming soon!


Email Integration

Send release notes via email to repository-scoped subscriber lists with custom branding and double opt-in verification.

Overview

ReleaseRay's email integration is multi-tenant and repository-scoped:

  • Per-repository subscribers - Each repository has its own subscriber list
  • Custom branding - Configure sender name, email, logo, and colors per organization
  • Double opt-in - Email verification required (CAN-SPAM compliant)
  • Persona-based - Subscribers choose which personas to receive (engineer, internal, customer)
  • CSV import/export - Bulk operations for managing subscribers
  • Unsubscribe links - Every email includes a one-click unsubscribe link

Step 1: Get Resend API Key

  1. Sign up for Resend
  2. Go to API Keys in your dashboard
  3. Click "Create API Key"
  4. Copy the API key (starts with re_)
  5. Add to .env.local: RESEND_API_KEY="re_xxxx"

Step 2: Configure Email Branding

  1. Log in to ReleaseRay
  2. Go to Settings → Email
  3. Configure your branding:
    • From Name: Your company name (e.g., "Acme Corp")
    • From Email: Your email address (e.g., releases@acme.com)
    • Reply-To: Support email (e.g., support@acme.com)
    • Logo URL: Link to your logo image (200x50px recommended)
    • Primary Color: Brand color for buttons and links
  4. Toggle "Email Publishing" to ON
  5. Click "Save Settings"

Step 3: Verify Your Domain (Optional but Recommended)

To send emails from your own domain (releases@yourdomain.com):

  1. Go to Settings → Email → Domain Verification tab
  2. Enter your domain (e.g., yourdomain.com)
  3. Enter your Resend API key
  4. Click "Verify Domain"
  5. Add the provided DNS records to your domain:
    • SPF record (TXT)
    • DKIM record (TXT)
    • DMARC record (TXT) [optional]
  6. Wait 5-10 minutes for DNS propagation
  7. Click "Verify Domain" again to confirm

Without domain verification: Emails will be sent from onboarding@resend.dev (Resend's default sender). This works but may have lower deliverability.

Step 4: Add Subscribers

You have three ways to add subscribers:

Option A: Public Subscription Form

Share your repository's subscription link with users:

https://app.releaseray.com/subscribe?repo=<repo-id>&name=owner/repo

Users will:

  1. Enter their email
  2. Select which personas to receive (customer, internal, engineer)
  3. Receive a verification email
  4. Click the link to verify
  5. Start receiving release notifications

Option B: Admin Panel (Manual)

  1. Navigate to your repository page
  2. Go to Subscribers tab
  3. Click "Add Subscriber"
  4. Enter email address
  5. Select personas (customer, internal, engineer)
  6. Click "Add Subscriber"
  7. Verification email sent automatically

Option C: CSV Import (Bulk)

  1. Create a CSV file with format:
    email,personas
    user1@example.com,customer
    user2@example.com,engineer;internal
    user3@example.com,customer;engineer;internal
    
  2. Go to Subscribers tab
  3. Click "Import CSV"
  4. Upload your file
  5. Review results (created, skipped, errors)
  6. Verification emails sent to all new subscribers

Step 5: Manage Subscribers

View Subscribers:

  • Navigate to repository → Subscribers tab
  • See all subscribers with status (verified/unverified)
  • Filter by persona
  • View statistics (total, verified, by persona)

Export Subscribers:

  • Click "Export CSV"
  • Downloads file: subscribers-{repoId}-{date}.csv
  • Includes: email, personas, verified status, subscribed date

Delete Subscribers:

  • Click trash icon next to subscriber
  • Subscriber will be permanently removed
  • They can re-subscribe anytime

Resend Verification:

  • For unverified subscribers, click mail icon
  • Sends a new verification email

Step 6: Publish via Email

When you publish a draft:

  1. Select the draft you want to publish (engineer, internal, or customer)
  2. Click "Publish"
  3. Check "Email"
  4. Click "Publish"

ReleaseRay will:

  1. Fetch all verified subscribers for this repository
  2. Filter by persona (only send to subscribers who opted into this persona)
  3. Generate branded HTML email
  4. Send in batches of 100 (with 1-second delay between batches)
  5. Track send status and failures

Example:

  • Draft persona: Customer
  • Subscribers: 50 verified
  • 30 subscribed to "customer" persona → ✅ Will receive email
  • 20 subscribed to "engineer" persona only → ❌ Will not receive email

Email Format

Emails include:

  • 📧 Subject: {RepoName} {Version} Release Notes
  • 🎨 Custom branding: Your logo and brand colors
  • 📝 Full release notes: Markdown rendered as HTML
  • 🔗 Links: To GitHub Releases, Hosted Changelog, CHANGELOG.md (if published)
  • 🔓 Unsubscribe link: One-click unsubscribe (CAN-SPAM compliant)
  • 📱 Plain text fallback: For email clients that don't support HTML

Example Email:

┌─────────────────────────────────────┐
│         [Your Logo]                 │
│                                     │
│      owner/repo                     │
│      v1.2.0                         │
│   Customer Release Notes            │
├─────────────────────────────────────┤
│                                     │
│  [Markdown content converted to     │
│   HTML with your brand colors]      │
│                                     │
│  View elsewhere:                    │
│  📦 GitHub Releases                 │
│  🌐 Hosted Changelog                │
│  📄 CHANGELOG.md                    │
│                                     │
├─────────────────────────────────────┤
│  Generated by ReleaseRay            │
│  Unsubscribe                        │
└─────────────────────────────────────┘

Privacy & Security

  • Repository-scoped: Subscribers are tied to specific repositories
  • Double opt-in: Email verification required before sending
  • CAN-SPAM compliant: Unsubscribe link in every email
  • GDPR compliant: Data export/deletion available
  • Rate limited: Public subscription endpoint is rate limited (10 req/min per IP)
  • Your API key: Stored securely, encrypted at rest
  • Your subscribers: Private to your organization
  • Your emails: Sent from your verified domain using your Resend account

We never send emails from a shared ReleaseRay email address. You maintain full control over your email infrastructure.

Troubleshooting

"No subscribers configured for email publishing"

  • Cause: No verified subscribers exist for this repository and persona
  • Solution: Add subscribers and ensure they verify their emails

"Email publishing is not enabled for this organization"

  • Cause: Email publishing toggle is OFF in settings
  • Solution: Go to Settings → Email → Toggle "Email Publishing" to ON

"Domain verification failed"

  • Cause: DNS records not added or propagation incomplete
  • Solution: Add DNS records, wait 5-10 minutes, verify again

Subscribers not receiving emails

  • Check spam folder
  • Verify domain is verified (for custom email addresses)
  • Ensure subscriber is verified (check Subscribers tab)
  • Check Resend dashboard for delivery logs

GitHub Releases Integration

Automatically create GitHub Releases from your drafts.

No configuration needed! This integration is automatically available when you connect ReleaseRay to your GitHub repositories.

How It Works

When you publish a draft to GitHub Releases:

  1. ReleaseRay uses the GitHub App permissions you granted
  2. Creates or updates a release for the specified tag
  3. Populates the release notes with your generated content
  4. Links to the release are provided in the response

Publishing Options

  • Draft Release: Publish as a draft for review before making public
  • Prerelease: Mark releases with -beta, -rc, etc. as prereleases
  • Full Release: Immediately publish as a full release

Privacy & Security

Your Integrations Are Private

Per-Organization: Each organization configures their own integrations
Isolated: Your webhook URLs are never shared with other customers
Secure Storage: All credentials are encrypted at rest
Audit Trail: All integration changes are logged

What We Share

When you publish to an integration:

Slack/Teams:

  • Release notes content (the markdown you generated)
  • Repository name and version
  • Links to GitHub (compare URL, release URL)

Intercom:

  • Article title and body
  • Your organization's collection ID

Email:

  • Subscriber email addresses
  • Release notes content
  • Your from email address (from your verified domain)

We NEVER share:

  • Your webhook URLs or API keys with other customers
  • Source code or sensitive data
  • Data between different organizations
  • Your email subscribers with anyone

Revoking Access

You can revoke integration access anytime:

  1. Go to Settings → Integrations
  2. Find the integration
  3. Click "Delete"
  4. Confirm deletion

Your webhook will be removed from our system immediately.


Testing Webhooks

Test Before Publishing

The "Test & Save" button sends a test message to verify:

  • ✅ Webhook URL is correct
  • ✅ Service is reachable
  • ✅ Authentication works
  • ✅ Messages are delivered

Manual Testing

You can also test webhooks manually:

Slack:

curl -X POST -H 'Content-Type: application/json' \
  -d '{"text": "Test from ReleaseRay"}' \
  YOUR_SLACK_WEBHOOK_URL

Microsoft Teams:

curl -X POST -H 'Content-Type: application/json' \
  -d '{
    "@type": "MessageCard",
    "@context": "https://schema.org/extensions",
    "summary": "Test",
    "sections": [{"text": "Test from ReleaseRay"}]
  }' \
  YOUR_TEAMS_WEBHOOK_URL

Troubleshooting

Slack Issues

"Webhook test failed"

  • Verify the URL starts with https://hooks.slack.com/services/
  • Check that the webhook hasn't been revoked in Slack
  • Ensure the Slack app is still installed in your workspace

"No messages appearing"

  • Check the channel permissions - the webhook must have access
  • Verify the webhook URL is for the correct workspace
  • Try regenerating the webhook in Slack

Microsoft Teams Issues

"Invalid webhook URL format"

  • Ensure the URL contains webhook.office.com
  • Copy the ENTIRE URL (it's very long)
  • Don't add any extra characters or spaces

"Webhook test failed"

  • Check that the connector is still configured in Teams
  • Verify the channel hasn't been deleted
  • Try creating a new webhook

Intercom Issues

"Invalid access token"

  • Verify the token has Articles: Write permission
  • Check that the token hasn't expired
  • Ensure you copied the full token (no truncation)

"Collection not found"

  • Verify the collection ID is correct
  • Ensure the collection exists in your Help Center
  • Check that the access token has permission for that collection

Email Issues

"Resend API key not configured"

  • Go to Settings → Integrations and add your Resend API key
  • Verify the API key starts with re_
  • Ensure you copied the full key (no truncation)

"From email address not configured"

  • Enter a from email address in the Email integration settings
  • Must use a domain you've verified in Resend
  • Format: noreply@yourdomain.com or Your Name <name@yourdomain.com>

"Domain not verified"

  • Go to your Resend dashboard → Domains
  • Verify your domain is listed and shows "Verified"
  • If not, add the required DNS records
  • Wait 5-10 minutes for DNS propagation

"No subscribers configured"

  • Go to Settings → Integrations
  • Scroll to "Email Subscribers" section
  • Add at least one subscriber email address

"Failed to send email"

  • Check your Resend account is in good standing
  • Verify you haven't exceeded Resend's rate limits
  • Try sending a test email from Resend dashboard
  • Contact Resend support if issues persist

General Issues

"Integration not configured"

  • Go to Settings → Integrations and add the integration
  • Click "Test & Save" to verify it works
  • Make sure you're using the correct organization

"Publish failed with 500"

  • Check that the service (Slack/Teams/Intercom) is online
  • Verify your webhook URL is still valid
  • Try re-saving the integration
  • Contact support if the issue persists

Rate Limits

Our Limits

ReleaseRay enforces rate limits to prevent abuse:

  • 10 publishes per minute per organization
  • 100 publishes per hour per organization

Service Limits

Third-party services have their own limits:

  • Slack: ~1 message per second per webhook
  • Microsoft Teams: ~4 messages per second per webhook
  • Intercom: 1000 requests per minute

ReleaseRay respects these limits and will retry with backoff if needed.


Best Practices

Webhook Security

Keep URLs private - Don't commit webhooks to git
Rotate regularly - Update webhooks every 6-12 months
Monitor usage - Check for unexpected messages
Limit permissions - Use dedicated channels for notifications

Message Quality

Test first - Use "Test & Save" before relying on the integration
Choose the right persona - Engineers for #engineering, Customers for #announcements
Review before publishing - Check the draft looks good
Use multiple channels - Publish different personas to different places

Organization

Dedicated channels - Create #releases or #product-updates channels
Consistent naming - Use clear names for your webhooks
Document setup - Keep a record of which webhooks go where
Team access - Ensure team members know how to configure integrations


Next Steps

  • ✅ Configure your first integration (Slack or Teams)
  • ✅ Test it with a sample draft
  • ✅ Set up multiple integrations for different audiences
  • ✅ Publish your first release notes!

Need Help?

Have questions about integrations? We're here to help!

We value your privacy

We use cookies to enhance your experience. Essential cookies are required for the site to function. You can choose to accept all cookies or manage your preferences.