Skip to main content
POST
Create a channel

Authorizations

Authorization
string
header
required

Authorization: Bearer <token> where <token> is either a neo_sk_<env>_<secret> API key (service account) or a Microsoft Entra ID access token (dashboard user).

Body

application/json
audience
enum<string>
required

Trust domain a tool / agent / channel may be exposed to.

MSP — technician/dashboard surfaces; tools may take MSP-wide scope and accept company/ contact identifiers as LLM-supplied parameters. An agent/channel with this audience is the MSP's own INTERNAL surface (the dashboard labels MSP as "Internal"). END_USER — the MSP's end-client users (white-label Teams bots, embedded end-company chat). END_USER tools must derive ALL identity (end-company, contact) from the session context, never from tool parameters, so a prompt-injected or curious end user cannot widen scope. The two surfaces are disjoint by construction: resolve_end_user_toolbox resolves only END_USER tools (deny-by-default, no auto-injection), and resolve_full_toolbox is for MSP surfaces only.

Available options:
MSP,
END_USER
internal_name
string
required
type
enum<string>
required

Transport a channel binds an agent to. TEAMS is the only M2 transport; the rest are reserved.

Available options:
TEAMS,
SLACK,
PORTAL,
EMAIL
agent_id
integer | null
color_icon_url
string | null
description
string | null
display_name
string | null
idle_reset_minutes
integer | null
outline_icon_url
string | null
relay_identity
enum<string> | null

Who a technician's PSA note is attributed to when it is relayed into an end user's chat: TECHNICIAN (the note's real author, shown with their name and an avatar, falling back to the channel's relay_prefix label when the PSA supplies no author), BRAND (always the relay_prefix label and the channel's own icon, never an individual's name), or OFF (the note is relayed as plain text with no attribution). Omit it to derive the mode from relay_prefix.

Available options:
TECHNICIAN,
BRAND,
OFF
relay_prefix
string | null
relay_show_ticket_status
boolean
default:true
show_agent_progress_steps
boolean | null
status
enum<string>
default:ACTIVE
Available options:
ACTIVE,
DISCONNECTED
welcome_message
string | null

Response

Success.

data
PublicChannel · object
required

A channel: a CONVERSATIONAL agent bound to a transport, plus its branding.

meta
object
required