Skip to main content

notify

Send notifications to external services (Slack, etc.)
Send notifications to external services like Slack to integrate App Store Connect CLI into your CI/CD workflows.

Quick Start

Subcommands

  • slack - Send a message to Slack via webhook

Commands

notify slack

Send a message to Slack via incoming webhook:
Flags:
  • --webhook - Slack webhook URL (or set ASC_SLACK_WEBHOOK env var)
  • --channel - Slack channel override (#channel or @username)
  • --message - Message to send to Slack (required)
  • --thread-ts - Parent message timestamp (thread_ts) for posting a threaded reply
  • --blocks-json - Slack Block Kit JSON array
  • --blocks-file - Path to Slack Block Kit JSON array file
  • --payload-json - JSON object of release fields to include as Slack attachment fields
  • --payload-file - Path to JSON object file for release payload fields
  • --pretext - Optional text shown above attachment payload fields (requires --payload-json/--payload-file)
  • --success - Set attachment color to success (true) or failure (false, default: true)

Basic Usage

Simple Message

Channel Override

Note: Slack may ignore channel overrides for incoming webhooks based on app settings.

Environment Variable

Set the webhook URL via environment variable:

Advanced Features

Threaded Replies

Post a message as a reply to an existing thread:
Note: The thread-ts value must be in Slack timestamp format (e.g., 1733977745.12345). Webhook POST returns only “ok”, so you need to obtain the parent message ts from Slack APIs/events.

Block Kit Messages

Use Slack Block Kit for rich message formatting:
Or load from a file:
blocks.json:

Attachment Payloads

Include structured data as attachment fields:
With pretext and color:
Or load from a file:
release.json:

CI/CD Integration

GitHub Actions

GitLab CI

Fastlane Integration

Examples

Build Upload Notification

TestFlight Distribution

Submission Status

Error Notification

Security

Webhook URL Security

  • Only https://hooks.slack.com and https://hooks.slack-gov.com are allowed by default
  • IP addresses are rejected
  • The webhook URL must start with /services/
  • For local testing, set ASC_SLACK_WEBHOOK_ALLOW_LOCALHOST=1 to allow http://localhost

Environment Variables

Store sensitive webhook URLs in environment variables or CI/CD secrets:

Troubleshooting

Channel Override Not Working

Slack may ignore channel overrides for incoming webhooks based on app configuration. Configure the default channel in your Slack app settings.

Webhook Returns Error

Check that:
  • The webhook URL is valid and active
  • The URL starts with https://hooks.slack.com/services/ or https://hooks.slack-gov.com/services/
  • The message is not empty
  • JSON payloads are valid

Message Not Appearing

Verify:
  • The webhook URL is correct
  • The Slack app has permission to post to the channel
  • The message format is valid
  • Block Kit JSON is properly formatted