Channel Management API: Create, Delete, Sync, and Query

1/23/2026, 12:00:58 AM

A new query, channelByHandle, lets apps retrieve a Channel by its unique handle. Four mutations—channelCreate, channelUpdate, channelDelete, and channelFullSync—provide full CRUD and full‑sync capabilities, each returning payloads with detailed userErrors and trace information. Pagination support is added for App.channels and AppCatalog.channels via a ChannelConnection type, enabling efficient listing of channel connections. Channel objects now expose accountId, accountName, specificationHandle, and a resourceFeedback link. Feedback types (AppFeedback and ProductResourceFeedback) now include a channel field. ProductFeed gets a required channelId field to associate feeds with channels. All new input objects (ChannelCreateInput, ChannelUpdateInput) require specificationHandle, accountId, and accountName, and support optional handle overrides and restoration flags. Developers should update their schemas to use the new fields and mutations for full channel lifecycle management.

Query Changes

➕ Added Queries (1)

channelByHandle

Returns a channel by handle. The channel must have been established by the calling application.

Mutation Changes

➕ Added Mutations (4)

channelCreate

Creates a channel connection using a channel specification handle.

channelDelete

Deletes a channel for a specific channel ID.

channelFullSync

Initiates a full sync via Product Feed mechanism for the matching Channel.

channelUpdate

Updates a channel connection using a channel specification handle.

Type Changes

➕ Added Types (13)

📥ChannelCreateInput➕ AddedINPUT_OBJECT

The input fields to create a channel.

🏗️ChannelCreatePayload➕ AddedOBJECT

Return type for channelCreate mutation.

Fields: channel, userErrors
🏗️ChannelCreateUserError➕ AddedOBJECT

An error that occurs during the execution of ChannelCreate.

Fields: code, field, message
📋ChannelCreateUserErrorCode➕ AddedENUM

Possible error codes that can be returned by ChannelCreateUserError.

Values: INVALID, NOT_FOUND
🏗️ChannelDeletePayload➕ AddedOBJECT

Return type for channelDelete mutation.

Fields: deletedId, userErrors
🏗️ChannelDeleteUserError➕ AddedOBJECT

An error that occurs during the execution of ChannelDelete.

Fields: code, field, message
📋ChannelDeleteUserErrorCode➕ AddedENUM

Possible error codes that can be returned by ChannelDeleteUserError.

Values: INVALID, NOT_FOUND
🏗️ChannelFullSyncPayload➕ AddedOBJECT

Return type for channelFullSync mutation.

Fields: fullSyncTraceInfo, userErrors
📥ChannelUpdateInput➕ AddedINPUT_OBJECT

The input fields to update a channel connection.

🏗️ChannelUpdatePayload➕ AddedOBJECT

Return type for channelUpdate mutation.

Fields: channel, userErrors
🏗️ChannelUpdateUserError➕ AddedOBJECT

An error that occurs during the execution of ChannelUpdate.

Fields: code, field, message
📋ChannelUpdateUserErrorCode➕ AddedENUM

Possible error codes that can be returned by ChannelUpdateUserError.

Values: INVALID, NOT_FOUND
🏗️FullSyncTraceInfo➕ AddedOBJECT

The trace information for the product full sync operation.

Fields: country, language, operationId

🔄 Modified Types (6)

🏗️App🔄 Modified
Field added: channels

The sales channels associated with this app.

🏗️AppCatalog🔄 Modified
Field added: channels

The channels associated with the catalog.

🏗️AppFeedback🔄 Modified
Field added: channel

The channel this feedback is for.

🏗️Channel🔄 Modified
Field added: accountId

External account ID for the channel.

Field added: accountName

Display name for the channel.

Field added: resourceFeedback

The resource feedback for the channel.

Field added: specificationHandle

The channel specification for the channel.

🏗️ProductFeed🔄 Modified
Field added: channelId

The ID of the channel to associate with the product feed.

🏗️ProductResourceFeedback🔄 Modified
Field added: channel

The channel this feedback is for.