December 10, 2025 | By Stanisław Chmiela
The Slack job sends a message during a workflow run to your Slack workspace. Since this is an API call to Slack's servers, the Slack job is configured to skip spinning up a VM and instead send the API call immediately when this job runs. This means your Slack messages will be sent nearly instantaneously.
To send a message to a Slack channel, add a job with type: slack to your workflow:
name: Send message
jobs:
send_slack_message:
name: Send Slack message
type: slack
params:
webhook_url: {{ env.SLACK_WEBHOOK_URL }}
message: "Hello Slack! 🎉"
The webhook URL can be obtained from your Slack workspace's app settings.
You can send a message to a channel conditionally when a build fails:
name: Build Notification
jobs:
build_ios:
name: Build iOS
type: build
params:
platform: ios
profile: production
notify_build:
name: Notify Build Status
needs: [build_ios]
type: slack
params:
webhook_url: {{ env.SLACK_WEBHOOK_URL }}
message: 'Build completed for app ${{ after.build_ios.outputs.app_identifier }} (version ${{ after.build_ios.outputs.app_version }})'
You can also compose rich Slack messages. This is great for if your team coordinates testing or releases from a shared Slack channel that gets various types of messages:
name: Rich Build Notification
jobs:
build_android:
name: Build Android
type: build
params:
platform: android
profile: production
notify_build:
name: Notify Build Status
needs: [build_android]
type: slack
params:
webhook_url: {{ env.SLACK_WEBHOOK_URL }}
payload:
blocks:
- type: header
text:
type: plain_text
text: 'Build Completed'
- type: section
fields:
- type: mrkdwn
text: "*App:*\n${{ needs.build_android.outputs.app_identifier }}"
- type: mrkdwn
text: "*Version:*\n${{ needs.build_android.outputs.app_version }}"
- type: section
fields:
- type: mrkdwn
text: "*Build ID:*\n${{ needs.build_android.outputs.build_id }}"
- type: mrkdwn
text: "*Platform:*\n${{ needs.build_android.outputs.platform }}"
- type: section
text:
type: mrkdwn
text: 'Distribution: ${{ needs.build_android.outputs.distribution }}'
Learn more about the Slack job type in the pre-packaged jobs documentation.
Fetched April 8, 2026