# Channels

> Authenticate inbound traffic, normalize canonical events, and dispatch them to Agents.

A Channel is an immutable, CRN-addressed ingress and delivery Resource. It pins a protocol implementation, AuthProvider, target Agent, customer-identity requirement, Resource bindings, attached Policy, analytics declarations, and Worker deployment. Channel code never receives Credential material directly.

## Choose a path {#choose-a-path}

| Goal | Guide |
| --- | --- |
| Publish a custom protocol or webhook | [Deploy a Channel](/docs/channels/deploy.md) |
| Inspect routing, delivery, alarms, or authentication | [Operate Channels](/docs/channels/operate.md) |
| Understand the target behavior | [Agents](/docs/agents.md) |
| Follow the resulting execution | [Runs](/docs/runs.md) |

## Request flow {#request-flow}

```text
request → AuthProvider → Channel receive → canonical event → Agent → Run → Channel respond
```

The Console links target CRNs to the exact Agent or Resource page. Copy the Channel CRN—not only its local id—when configuring Policy or external automation.

## Next steps {#next-steps}

Deploy a Channel package, verify its AuthProvider and Agent target, then send a test message and inspect the resulting delivery and Run.
