Skip to main content

Send Slack Message

The Send Slack Message activity sends a message to a Slack channel from your workflow.

Purpose​

Use the Send Slack Message activity to:

  • Send notifications to team Slack channels
  • Post workflow status updates
  • Share results or alerts with teams
  • Integrate workflows with team communication

Prerequisites​

Slack Connection Required​

Before using this activity, you must configure a Slack connection:

  1. Navigate to Settings → Connections
  2. Create a new Slack Connection
  3. Configure OAuth token from your Slack workspace
  4. Save the connection

Slack Workspace Configuration​

  • Must be done by your organization's IT team or Slack administrator
  • Requires creating a Slack App in your workspace
  • Generate an OAuth token with appropriate permissions
  • Required permissions: chat:write, channels:read

Configuration​

Connection Settings​

  • Slack Connection: Select a pre-configured Slack connection from the dropdown

Channel Settings​

  • Channel Name: The name of the Slack channel (e.g., "products")
  • Channel ID: Alternative to channel name (found in Slack channel details)
  • Either channel name or ID can be used

Message Settings​

  • Message Text: The message content to send

Formatting​

  • Markdown Support: Slack supports markdown formatting
  • Enable Markdown: Check the markdown option to enable formatting

Context Variable (Optional)​

  • Message Timestamp: Store the message timestamp in a workflow variable
  • Used for tracking the message or reading replies later

Channel Identification​

Using Channel Name​

Channel: products

Using Channel ID​

Channel: C01234ABCDE

To find Channel ID in Slack:

  1. Open the channel
  2. Click the channel name at the top
  3. Scroll to the bottom of the channel details
  4. Copy the Channel ID

Markdown Formatting​

When markdown is enabled, you can use Slack's markdown syntax:

Basic Formatting​

  • Bold: *bold text*
  • Italic: _italic text_
  • Strikethrough: ~strikethrough~
  • Code: `code`
  • Code Block: ```code block```
  • URL: <https://example.com|Link Text>
  • User Mention: <@U12345678>
  • Channel Mention: <#C12345678>

Lists​

  • Bullet point: • Item
  • Numbered: 1. Item

Example Formatted Message​

*Workflow Completed* ✓

Data load finished for client: _{ClientName}_

Results:
• Records processed: `{RecordCount}`
• Status: ~pending~ *approved*

View details: <https://app.unasoftware.com/workflows|Workflow Dashboard>

Parameter References​

Include workflow variables in messages using {ParameterName}:

Message: Workflow {WorkflowName} completed with {RecordCount} records processed.

Context Variable Usage​

Storing Message Timestamp​

Context Key: MySlackMessageTimestamp

This stores the timestamp of the sent message, which can be used:

  • To read replies in a later activity (see Read Slack Message)
  • To track which message was sent
  • For message threading

Example Configurations​

Simple Notification​

Slack Connection: Company Slack
Channel: general
Message: Workflow completed successfully!
Markdown: [unchecked]

Formatted Status Update​

Slack Connection: Company Slack
Channel: data-team
Message:
*Data Load Complete* ✓
Client: _{ClientName}_
Records: `{RecordCount}`
Status: *Success*
Markdown: [checked]
Context Key: SlackTimestamp

Error Alert​

Slack Connection: Company Slack
Channel: alerts
Message:
⚠️ *Workflow Error*
Workflow: {WorkflowName}
Error: {ErrorMessage}
Please review immediately.
Markdown: [checked]

Common Use Cases​

Workflow Start Notification​

Message: 🚀 Starting daily data load workflow for {Date}

Completion Notification​

Message: ✅ Daily data load completed. {RecordCount} records processed.

Approval Request​

Message: 📋 Approval needed for {DocumentName}. Review at: <{ApprovalURL}|Click here>

Status Updates​

Message: 📊 Processing batch {BatchNumber} of {TotalBatches}

Best Practices​

  • Use Meaningful Channels: Send messages to appropriate channels
  • Include Context: Add relevant workflow parameters
  • Use Emojis: Slack emojis make messages more visible
  • Format for Readability: Use markdown for structure
  • Avoid Spam: Don't send too many messages to busy channels
  • Test First: Test in a private or test channel before production

OAuth Token Setup Guide​

Your IT team or Slack admin needs to:

  1. Create Slack App

    • Go to https://api.slack.com/apps
    • Click "Create New App"
    • Choose "From scratch"
    • Name the app (e.g., "Una Workflows")
    • Select your workspace
  2. Configure Permissions

    • Go to "OAuth & Permissions"
    • Add Bot Token Scopes:
      • chat:write - Send messages
      • channels:read - Read channel information
      • files:write - Send files (if using Send Slack File)
  3. Install App

    • Install app to workspace
    • Copy the "Bot User OAuth Token"
    • Paste token into Una Slack Connection settings
  4. Add Bot to Channels

    • In Slack, invite the bot to channels where it should post
    • /invite @Una Workflows in each channel

Troubleshooting​

Message Not Appearing​

  • Verify bot is added to the channel
  • Check OAuth token has chat:write permission
  • Verify channel name/ID is correct
  • Review workflow execution log for errors

Formatting Not Working​

  • Ensure markdown checkbox is enabled
  • Verify you're using Slack markdown syntax (not HTML)
  • Test formatting in Slack directly first

Connection Failed​

  • Verify OAuth token is valid
  • Check token permissions in Slack App settings
  • Ensure app is installed to the workspace
  • Confirm connection settings in Una

Security Notes​

  • OAuth token provides access to your Slack workspace
  • Restrict token permissions to minimum required
  • Rotate tokens periodically
  • Monitor bot activity in Slack audit logs
  • Don't share tokens in workflow parameters or logs

JSON Reference​

{
"discriminator": "SendSlackMessageWorkflowActivity",
"activityId": "<uuid>",
"name": "Send Slack Message",
"positionX": 0,
"positionY": 0,
"advanceRule": 2,
"dataSource": "MySlackConnection",
"channel": "products",
"message": "Workflow completed: {RunName}",
"isMarkdown": false,
"responseTimestampContextKey": "SendSlackMessageWorkflowActivity_ResponseTimestampContextKey"
}
PropertyTypeDescription
dataSourcestringCorresponds to the Slack Connection field. The name of the configured Slack data source.
channelstringCorresponds to the Channel Name field. The Slack channel to post to (without #). Supports {variable} interpolation.
messagestringCorresponds to the Message field. The message text to post. Supports {variable} interpolation.
isMarkdownbooleanWhen true, the message is formatted as Markdown; otherwise plain text.
responseTimestampContextKeystringCorresponds to the Message Timestamp context variable key. Workflow context key where the Slack message timestamp is stored after sending.