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

# Connect an agent to a Slack workspace

> Connect a Slack agent.

`createChannel(projectReference: ID!, input: CreateChannelInput!): Channel!`

Requires project.channels.write.

## Arguments

| Argument | Type | Required | Description |
| - | - | - | - |
| `projectReference` | [`ID!`](https://veryfront.com/docs/cloud/graphql/types/id) | Yes | Project ID or slug. Requires a person's credential; agent, run, and service-account callers are forbidden. |
| `input` | [`CreateChannelInput!`](https://veryfront.com/docs/cloud/graphql/types/createchannelinput) | Yes | |

## Input fields

### input

[`CreateChannelInput`](https://veryfront.com/docs/cloud/graphql/types/createchannelinput)

| Field | Type | Required | Description |
| - | - | - | - |
| `platform` | [`ChannelPlatform!`](https://veryfront.com/docs/cloud/graphql/types/channelplatform) | Yes | Platform connected through the caller's Slack connection; Slack must already be connected. |
| `name` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | No | Display name, 1-255 characters. |
| `agentId` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | Yes | An agent returned by channelAgents for the same runtime target. |
| `respondTo` | [`ChannelRespondTo`](https://veryfront.com/docs/cloud/graphql/types/channelrespondto) | No | Default mentions. |
| `allowedSlackChannelIds` | [`[String!]`](https://veryfront.com/docs/cloud/graphql/types/string) | No | Slack channel IDs. Overlap with another channel in the same workspace is rejected with resource-already-exists. At most 250 IDs; empty means every Slack channel the bot is in. A preview\_branch target needs at least one. |
| `welcomeMessage` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | No | At most 4000 characters; null clears. |
| `errorMessage` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | No | At most 4000 characters; null clears. |
| `maxResponseTokens` | [`Int`](https://veryfront.com/docs/cloud/graphql/types/int) | No | 1-65536; null clears. |
| `runtimeTargetKind` | [`RuntimeTargetKind`](https://veryfront.com/docs/cloud/graphql/types/runtimetargetkind) | No | Default main\_branch. |
| `targetEnvironmentId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | No | Required when runtimeTargetKind is environment. |
| `targetBranchId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | No | Required when runtimeTargetKind is preview\_branch. |

## Response

Returns [`Channel!`](https://veryfront.com/docs/cloud/graphql/types/channel). Open the type for its fields and nested types.

| Field | Type | Description |
| - | - | - |
| `id` | [`ID!`](https://veryfront.com/docs/cloud/graphql/types/id) | |
| `projectId` | [`ID!`](https://veryfront.com/docs/cloud/graphql/types/id) | |
| `platform` | [`ChannelPlatform!`](https://veryfront.com/docs/cloud/graphql/types/channelplatform) | |
| `name` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | |
| `agentId` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | Project agent that answers in this channel. |
| `enabled` | [`Boolean!`](https://veryfront.com/docs/cloud/graphql/types/boolean) | Always true today; kept for forward compatibility. |
| `status` | [`ChannelStatus!`](https://veryfront.com/docs/cloud/graphql/types/channelstatus) | |
| `installationId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | |

[All fields of `Channel`](https://veryfront.com/docs/cloud/graphql/types/channel).

Types marked with `!` cannot be null. Lists use `[Type]` notation. The [type index](https://veryfront.com/docs/cloud/graphql/schema.md) lists all published input and response types.

## Example

```graphql title="query.graphql" theme={null}
mutation CreateChannel($projectReference: ID!, $input: CreateChannelInput!) {
  createChannel(projectReference: $projectReference, input: $input) {
    id
    projectId
    agentId
    name
    status
  }
}
```

```json title="variables.json" theme={null}
{
  "projectReference": "00000000-0000-4000-8000-000000000001",
  "input": {
    "platform": "slack",
    "agentId": "agent-example"
  }
}
```

<details>
  <summary>Try this mutation</summary>

  Calls use `https://api.veryfront.com/graphql`. Replace sample values with resources you can access. See [Authentication](https://veryfront.com/docs/cloud/authentication.md) for credentials and permissions.

  Bearer token or API key

  Stored in this tab's session. Clear credential

  Mutation

  Variables (JSON)
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.