> ## Documentation Index
> Fetch the complete documentation index at: https://flywheel.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Slack Channel

> Create a Slack channel and invite users from your agent run context

<iframe src="http://localhost:3000/doc-comp-previews/agent-node-preview?type=create_slack_channel" title="Agent Node Preview" width="100%" height="250px" className="border dark:border-[#1C1C20] rounded-xl" />

## How Create Slack Channel works

Use this tool when your agent needs to create a new collaboration channel and optionally invite team members and external users. The agent can set the channel name dynamically using variables from the run context — such as company slug, user ID, or project name — ensuring consistent, identifiable naming across accounts. Created channels can be public or private, and the tool supports both Slack Connect and guest invite flows for external participants.

## Configuration

<Columns cols={2}>
  <Card title="Inputs">
    <ParamField path="Prompt" type="string">
      Instructions that guide when the agent should create channels.
    </ParamField>

    <ParamField path="Slack Team" type="string" required>
      Team/workspace where the channel will be created.
    </ParamField>

    <ParamField path="Invite Type" type="enum">
      Invite flow used for invited users.
      **Options:** `slack_connect`, `guest`
    </ParamField>

    <ParamField path="Channel Name" type="string" required>
      Channel name. Can be set by the builder user or selected by the agent.
    </ParamField>

    <ParamField path="Channel Private" type="boolean">
      Whether to create a private channel.
    </ParamField>

    <ParamField path="Invite Team Members" type="string[]">
      Optional internal teammates to invite.
    </ParamField>

    <ParamField path="Invite External Users" type="string[]">
      Optional external org users to invite.
    </ParamField>
  </Card>

  <Card>
    <iframe src="http://localhost:3000/doc-comp-previews/agent-config-preview?type=create_slack_channel" title="Agent Config Preview" width="100%" height="540px" className="" />
  </Card>
</Columns>

<Card title="Outputs">
  <ParamField path="channel_id" type="string" required>
    The ID of the newly created Slack channel.
  </ParamField>

  <ParamField path="channel_name" type="string" required>
    The name of the newly created Slack channel.
  </ParamField>

  <ParamField path="slack_team_id" type="string" required>
    The ID of the Slack workspace where the channel was created.
  </ParamField>

  <ParamField path="invites_sent" type="number" required>
    Total count of invitations processed for the channel.
  </ParamField>

  <ParamField path="invite_sent_to_emails" type="string[]" required>
    Array of email addresses that invitations were sent to.
  </ParamField>

  <ParamField path="invite_sent_to_org_user_ids" type="string[]" required>
    Array of Flywheel user IDs that invitations were sent to.
  </ParamField>

  <ParamField path="added_csm_user_ids" type="string[]" required>
    Array of CSM user IDs that were added to the channel.
  </ParamField>

  <ParamField path="invite_type" type="enum" required>
    The type of invitation that was sent to external users.
    **Values:** `slack_connect`, `guest`
  </ParamField>

  <ParamField path="status" type="enum" required>
    Execution status for the channel creation operation.
    **Values:** `success`, `error`
  </ParamField>
</Card>

## Use Cases

**Enterprise Customer Onboarding**

```
Channel Name: "customer-{{company.slug}}"
Channel Private: true
Invite Team Members: [assigned_csm, onboarding_specialist]
Invite External Users: [customer_admin, customer_technical_lead]
Invite Type: slack_connect
```

**Escalation War Room**

```
Channel Name: "escalation-{{ticket.id}}"
Channel Private: true
Invite Team Members: [support_lead, engineering_oncall, assigned_csm]
Invite External Users: []
Purpose: Incident-specific coordination channel for rapid resolution
```

**Renewal & Expansion Planning**

```
Channel Name: "renewal-{{company.slug}}"
Channel Private: true
Invite Team Members: [assigned_csm, account_executive]
Invite External Users: [customer_decision_maker]
Invite Type: guest
```

**Partner Integration Project**

```
Channel Name: "integration-{{company.slug}}-{{project.id}}"
Channel Private: false
Invite Team Members: [solutions_engineer, assigned_csm]
Invite External Users: [partner_technical_contact, partner_project_manager]
Invite Type: slack_connect
```

## Best Practices

**Channel Naming**

* Use consistent naming conventions for easy identification (e.g., `customer-`, `escalation-`, `renewal-` prefixes).
* Include relevant identifiers such as company slug, ticket ID, or project name so channels are searchable.
* Keep names descriptive but concise — Slack enforces an 80-character limit on channel names.

**Privacy & Access Settings**

* Use private channels for customer-specific conversations and sensitive topics.
* Use public channels for internal coordination where visibility across teams is beneficial.
* Match the `Invite Type` to your organization's Slack policy — use `slack_connect` for long-term partnerships and `guest` for time-boxed collaborations.

**Initial Setup & Context**

* Pair channel creation with a Slack Message tool to post a welcome message explaining the channel's purpose and key contacts.
* Include the assigned CSM in every customer-facing channel to ensure accountability from the start.
* Set the channel topic or description in the follow-up message to give new members immediate context.

**Channel Lifecycle Management**

* Archive channels when their purpose is fulfilled (e.g., after onboarding completes or a renewal closes) to keep the workspace clean.
* Use the `channel_id` output to link the channel to the account record in Flywheel for tracking and reporting.
* Monitor the `status` output to catch creation failures and route them to a fallback notification so channels are not silently skipped.
