Trigger Notification Workflows on GitHub Events

Build automated notification sequences for GitHub events. Handle pull requests, issues, releases, and CI/CD with zero code.

Pull Request Review Workflow
{
  "key": "integration.github.pull_request",
  "steps": [
    {
      "if": "payload.action == 'opened'",
      "command": "broadcast",
      "input": {
        "action_url": "{{payload.pull_request.html_url}}",
        "content": "PR #{{payload.pull_request.number}} by {{payload.sender.login}} - {{payload.pull_request.additions}} additions, {{payload.pull_request.deletions}} deletions across {{payload.pull_request.changed_files}} files.",
        "overrides": {
          "providers": {
            "email": {},
            "slack": {}
          }
        },
        "recipients": [
          {
            "external_id": "code-reviewers"
          }
        ],
        "title": "New PR: {{payload.pull_request.title}}"
      }
    }
  ]
}

Trusted by 1,000+ companies

SupportBeeGitBookPitchEllipsusWinampSifted
GitHub + MagicBell

Why GitHub + MagicBell Workflows

Respond to every GitHub event with the right notification at the right time.

Instant Triggers

Instant Triggers

Workflows execute automatically when GitHub webhooks arrive. No polling, no delays.

Event Data

Event Data Access

Reference any GitHub webhook data in your notifications with liquid templates.

Smart Logic

Smart Logic

Branch workflows based on event type, repository, author, labels, or any metadata.

PR Workflows

PR Workflows

Notify reviewers, track approvals, and alert on merge conflicts automatically.

Multi-Channel

Multi-Channel

Send to in-app, email, Slack, SMS, or push notifications from a single workflow.

Zero Code

Zero Code Setup

Configure workflows via API or dashboard. No backend changes required.

Example Workflows

Real GitHub Workflow Examples

Copy these workflows to handle common GitHub events.

GitHub
pull_request

Github pull_request Event Notification

Notify reviewers when a new pull request is opened. Notify the team lead if the PR has more than 500 lines changed.

{
  "key": "integration.github.pull_request",
  "steps": [
    {
      "if": "payload.action == 'opened'",
      "command": "broadcast",
      "input": {
        "action_url": "{{payload.pull_request.html_url}}",
        "content": "PR #{{payload.pull_request.number}} by {{payload.sender.login}} - {{payload.pull_request.additions}} additions, {{payload.pull_request.deletions}} deletions across {{payload.pull_request.changed_files}} files.",
        "overrides": {
          "providers": {
            "email": {},
            "slack": {}
          }
        },
        "recipients": [
          {
            "external_id": "code-reviewers"
          }
        ],
        "title": "New PR: {{payload.pull_request.title}}"
      }
    }
  ]
}
View event details and payload
GitHub
check_suite

Github check_suite Event Notification

Notify when all CI checks complete for a branch.

{
  "key": "integration.github.check_suite.completed",
  "steps": [
    {
      "command": "broadcast",
      "input": {
        "content": "All checks {{payload.check_suite.conclusion}} for {{payload.check_suite.head_branch}} in {{payload.repository.full_name}}.",
        "overrides": {
          "providers": {
            "slack": {}
          }
        },
        "recipients": [
          {
            "external_id": "engineering-team"
          }
        ],
        "title": "Check suite {{payload.check_suite.conclusion}} on {{payload.check_suite.head_branch}}"
      }
    }
  ]
}
View event details and payload
GitHub
release

Github release Event Notification

Announce new releases to the team and stakeholders. Notify via Slack and email with release notes.

{
  "key": "integration.github.release",
  "steps": [
    {
      "if": "payload.action == 'published'",
      "command": "broadcast",
      "input": {
        "action_url": "{{payload.release.html_url}}",
        "content": "{{payload.repository.full_name}} {{payload.release.tag_name}} has been published by {{payload.sender.login}}.",
        "overrides": {
          "providers": {
            "email": {},
            "slack": {}
          }
        },
        "recipients": [
          {
            "external_id": "all-team"
          }
        ],
        "title": "Release {{payload.release.tag_name}}: {{payload.release.name}}"
      }
    }
  ]
}
View event details and payload
GitHub
dependabot_alert

GitHub Dependabot Alert Notification to Slack & Email

Notify security team when Dependabot detects a vulnerability.

{
  "key": "integration.github.dependabot_alert.created",
  "steps": [
    {
      "command": "broadcast",
      "input": {
        "action_url": "{{payload.alert.html_url}}",
        "content": "{{payload.alert.security_vulnerability.severity}} severity vulnerability found in {{payload.alert.dependency.package.name}} ({{payload.alert.dependency.package.ecosystem}}) in {{payload.repository.full_name}}.",
        "overrides": {
          "providers": {
            "email": {},
            "slack": {}
          }
        },
        "recipients": [
          {
            "external_id": "security-team"
          }
        ],
        "title": "Security Alert: {{payload.alert.security_advisory.summary}}"
      }
    }
  ]
}
View event details and payload
Setup

Connect GitHub to MagicBell

Forward GitHub webhooks to MagicBell to automatically trigger workflows.

How It Works

1.
Create workflows in MagicBell with GitHub event keys
integration.github.pull_request.opened
2.
Configure GitHub webhook endpoint
https://api.magicbell.com/v2/integrations/github/webhooks/incoming/YOUR_ID
3.
Select which events to forward
Issues, Pull requests, Pushes, Releases, and more
4.
Workflows execute automatically when events arrive
Event data available as {{data.*}} variables

Want to inspect GitHub webhook payloads before connecting? Use the webhook request catcher to generate a temporary URL, point GitHub at it, and see exactly what data arrives.

Create GitHub Webhook
# Save your GitHub webhook signing secret in MagicBell using CLI (alternatively, use the dashboard as shown below)
magicbell integration save_github \
  --data '{"webhook_signing_secret":"your_secret_here"}'
Alternative to CLI: Create GitHub webhook in MagicBell Dashboard
MagicBell GitHub provider page
Pass Webhook URL to GitHub
# Use the returned ID to build your webhook URL and pass to GitHub (see screenshot below)
# https://api.magicbell.com/v2/integrations/github/webhooks/incoming/{id}
Configure Webhook in GitHub Repository Settings
GitHub webhook configuration screen showing payload URL, content type, and event selection
All Events

Browse Event Examples

View sample payloads and workflow configurations for 28 GitHub events.

💡
Event Naming Convention

To create a workflow for any GitHub event, use the key pattern: integration.github.{event_type}. GitHub sends the event type in the webhook header and the action in the payload body. Use an if condition to filter by action.

check_suite

Notify when all CI checks complete for a branch.

code_scanning_alert

Notify security team when CodeQL finds vulnerabilities in code.

delete

Track branch and tag deletion. Monitor cleanup of merged branches.

dependabot_alert

Notify security team when Dependabot detects a vulnerability.

deployment_protection_rule

Notify approvers when deployment protection rules require approval.

deployment_status

Track deployment status changes. Notify team on deployment success or failure.

discussion_comment

Notify discussion authors when someone comments on their discussion.

gollum

Track wiki page updates and notify documentation team.

issue_comment

Notify issue authors when someone comments on their issue.

merge_group

Track merge queue activity and CI checks for queued PRs.

organization_member

Welcome new organization members and notify admins.

projects_v2

Notify when new GitHub Projects are created.

projects_v2_item

Track when items are added to GitHub Projects.

pull_request

Notify reviewers when a new pull request is opened. Notify the team lead if the PR has more than 500 lines changed.

pull_request_review_comment

Notify PR authors when reviewers leave line comments.

pull_request_review

Notify PR authors when their pull request is reviewed.

pull_request_review_thread

Notify PR authors when review threads are resolved.

pull_request_target

Handle pull requests from forks that trigger workflows in the target repository.

release

Announce new releases to the team and stakeholders. Notify via Slack and email with release notes.

repository

Announce new repositories to the organization.

repository_dispatch

Track custom webhook events triggered via repository dispatch.

repository_vulnerability_alert

Notify when vulnerability alerts are created for repository dependencies.

secret_scanning_alert

Urgent notification when secrets are detected in the repository.

security_advisory

Notify security team when new security advisories are published.

status

Track commit status updates from external CI/CD systems.

workflow_dispatch

Notify when workflows are manually triggered.

workflow_job

Notify when a workflow job starts queueing. Track CI/CD pipeline progress.

workflow_run

Notify when GitHub Actions workflows complete. Notify the team on deployment success or failure.

Multi-Channel Delivery

Notify Users Across All Channels

Map workflow-triggered broadcasts to notifications across multiple channels. Reach users wherever they are.

Explore More Workflows

Learn about workflow fundamentals, commands, and integrations with other platforms.

Stripe logo

Stripe

Payment and subscription workflows

View All Workflows
Resources

GitHub Workflow Resources

Learn more about GitHub webhooks and integrations for your workflow automation.