# Manage agentic channels Create and configure Agentic Channels to connect your Stores with AI providers for GenAI shopping. Agentic Channels connect a [Store](/urn?urn=ctp%3Aapi%3Atype%3AStore) in your Project to an AI provider (such as OpenAI, Google, or Stripe Agentic Commerce Suite), enabling shoppers to discover and purchase your products through GenAI interfaces. Each Agentic Channel links a Store to one AI platform and can have up to two integration modules enabled (depending on the provider). The possible modules are: | Module | Purpose | | --- | --- | | **Product sync** | Extracts product data, transforms it using the JSONata template, and pushes it to the platform feed. | | **Checkout** | Configures the checkout experience via the Universal Commerce Protocol (UCP) for the Agentic Channel. Applies to the Google module only. | | **Order import** | Configures how Orders placed through the Agentic Channel flow back into your system. Applies to Stripe Agentic Commerce Suite module only. | Product Sync and Checkout/Order Import modules can be leveraged independently, providing flexibility based on your needs. Product Sync enables product discovery across agentic channels, while the Checkout/Order Import module can be used separately to enable seamless transactions across adjacent agentic channels using your existing product catalog and capabilities. ## Access AI Hub To manage Agentic Channels, open the Merchant Center and go to **Settings > AI Hub** from the left navigation menu. To view and manage Agentic Channels, you must have the **View and edit all: Project settings** permission enabled in the Merchant Center. To get started with AI Hub, reach out to your Customer Success Manager, who can help you with the enablement process. The **AI Hub** page displays all configured channels with the following information: - **Agentic Channel name**: the descriptive name of the channel. - **Store name**: the Store linked to the channel. - **Provider**: the AI provider (OpenAI, Google, or Stripe Agentic Commerce Suite). - **Components**: the status of each component (**Product sync**, **Checkout**, or **Order import**), shown as Connecting, Connected, Not connected, Disconnecting, Disconnected, Failed, or Needs attention. - **Date created** and **Date modified**: timestamps for the channel. ### Component statuses Each component (Product sync, Checkout, Order import) has a connection status: - **Connecting**: the component is in the process of establishing a connection. - **Connected**: the component is properly configured and active. - **Not connected**: the component has not been configured yet. - **Disconnecting**: the component is in the process of terminating an existing connection. - **Disconnected**: the component was previously connected but the connection was lost or deactivated. - **Failed**: the component attempted to connect or operate, but encountered an error. - **Needs attention**: the component requires user intervention due to an issue or incomplete setup. ## Configure AI Hub in Merchant Center Setting up AI Hub involves a shared step followed by provider-specific configuration in the Merchant Center. The overall flow is consistent, but some steps behave differently depending on the provider you connect to. Google, OpenAI, and Stripe Agentic Commerce Suite each have their own specifics, which are covered in the relevant sections below. The configuration consists of the following parts: - **Create an Agentic Channel**: a shared configuration step that is the same regardless of the provider. Google, OpenAI, and Stripe Agentic Commerce Suite all use the same setup. - **Product sync**: configures how your product data is synced to the Agentic Channel. Required for every provider, but the configuration differs from one provider to another. - **Checkout**: configures the checkout experience. Applies to Google channels only. - **Order import**: configures how orders placed through the Agentic Channel flow back into your Project. Applies to Stripe Agentic Commerce Suite channels only. For AI Hub usage limits, each SKU is counted per Agentic channel. This means that syncing one SKU to one platform counts as one SKU-platform unit. Syncing the same SKU to two different platforms counts as two SKU-platform units toward the contracted usage limit. This includes catalog integration, pricing, and inventory updates and standardized purchase workflows compatible with both commercetools APIs and the integration specs from the LLM. Submit only your publicly available product catalog to AI Hub. Do not include personal data or other sensitive information. You can read more on the [Offering](/offering/ai-hub) page. The following table shows which configuration steps apply to each provider. In an existing channel's detail view, each applicable step appears as a tab, alongside a **Channel settings** tab that is available for all providers. | Provider | Product sync | Checkout | Order import | | --- | --- | --- | --- | | Google | Yes | Yes | No | | OpenAI | Yes | No | No | | Stripe Agentic Commerce Suite | Yes | No | Yes | For OpenAI channels, the **Checkout** tab appears in the detail view but is disabled. After you create an Agentic Channel, jump to the configuration steps for your provider: - Google: [product sync](/agentic-commerce/ai-hub/agentic-channels.md#configure-google-product-sync), [checkout](/agentic-commerce/ai-hub/agentic-channels.md#configure-google-checkout) - OpenAI: [product sync](/agentic-commerce/ai-hub/agentic-channels.md#configure-openai-product-sync) - Stripe Agentic Commerce Suite: [product sync](/agentic-commerce/ai-hub/agentic-channels.md#configure-stripe-agentic-commerce-suite-product-sync), [order import](/agentic-commerce/ai-hub/agentic-channels.md#configure-order-import) ### Create an Agentic Channel To create a new Agentic Channel: 1. On the **Agentic Channels** page, click **Add Agentic Channel**. 2. In the **General information** section, provide the following: - **Agentic Channel name**: a descriptive, localized name to identify the channel (for example, "US Store - AI provider"). - **Agentic Channel key**: a unique key containing 2 to 256 alphanumeric characters, underscores, or hyphens. No whitespace or special characters like `!`, `@`, `#`, or `%` are allowed. This field cannot be updated after creation. 3. In the **Provider and store** section, configure the following: - **Provider**: select the AI provider for this channel. Available options are **Stripe ACS**, **OpenAI**, and **Google**. This field cannot be updated after creation. - If you select **Stripe ACS**, two additional fields appear: - **Provider connected account ID**: your Stripe Connected Account ID. - **Provider restricted secret key**: your Stripe restricted key for API authentication. The restricted key must have the following access rights: | Access right | Permission | | --- | --- | | Received Checkout Sessions | `Read` | | Webhook | `Write` | | Order events for delegated commerce | `Write` | | Payment Intent | `Read` | | Checkout session | `Read` | - **Store**: select the Store whose product catalog you want to sync. This field cannot be updated after creation. - **Country**: auto-populated from the selected Store settings. - **Locale**: auto-populated from the selected Store settings. - **Currency**: the currency for product prices. - **Inventory supply channel**: select a supply channel key from the Store's channels to define the source of stock availability. - **Product distribution channel**: select a distribution channel key from the Store's channels to define the source of product pricing. 4. Click **Create Agentic Channel**. The Provider, Store, Inventory supply channel, Product distribution channel, and Agentic Channel key fields cannot be changed after creation. Ensure these values are correct before creating the channel. ### Configure Product sync The **Product sync** tab controls how product data is synchronized from your commercetools Project to the AI provider. Each provider has a different Product sync configuration. Where SFTP delivery and JSONata data mapping appear, they work the same way across providers; only the provider-specific fields and target field names differ. To activate this component, use the toggle in the top-right corner to set it to active. The default JSONata mapping template is pre-loaded for each platform. You can customize it in the data mapping editor on the **Product sync** tab if your attribute names differ from the expected feed field names or if you need derived fields. #### Configure Google product sync For Google channels, the Product sync tab includes the following fields: - **Product feed (UTC)**: enable this toggle to start syncing your product catalog to the Agentic Channel. Set the daily sync start time, and the catalog will be automatically refreshed every 24 hours from that time onward. You can change this time once every 24 hours. - **Inventory and price update**: enable this toggle to sync inventory and price updates in real time. Whenever a product's inventory or price changes, the updates are automatically reflected in the Agentic Channel. - **Merchant account ID**: your Google Merchant Center ID to identify the account where products are listed. - **Data source ID**: the data source ID within your Google Merchant Center account. - **Feed label**: the label assigned in Google Merchant Center to categorize the product stream. - **Service account key (JSON)**: your Google JSON key. For security purposes, this field is masked after saving. - **SFTP delivery**: set up SFTP delivery in your Google Merchant Center account, then copy the SFTP details it provides into the corresponding fields in AI Hub. - **Host**: hostname or IP address of the SFTP server. - **Port**: port number the SFTP server listens on (for example, port `22`). - **Username**: username for the SFTP account. - **Host fingerprint**: optional. Verifies the server identity before connecting. Must start with `SHA256:` or `MD5:`, followed by the fingerprint value. - **Authentication method**: only `Password` authentication is available. Provide the following values: - **Password**: your password for the SFTP user. - **Feed filename**: your feed filename. It must match the filename configured in Google Merchant Center exactly, and end in `.csv.gz`. - **Product projection extra expansions**: add expansions to fetch extra data in the product projection query. - **Data mapping**: maps your commercetools product attributes to Google product fields. You can view the mapping in **Form view** (a table of fields and their JSONata expressions) or **JSON view**. Click **Edit data mapping** to modify the mapping configuration. The data mapping uses JSONata expressions to transform your product data. The configuration includes: - **Fields**: maps Gemini fields (such as `title`, `description`, `price`, `availability`, `enable_search`, `enable_checkout`) to the corresponding commercetools product attributes and fields. - **Bindings**: defines reusable helper functions and variables used within the field expressions (such as `country`, `locale`, `getAttribute`, `priceToAmount`, and `formatPrice`). For more details on configuring data mappings, see [JSONata data mapping](/agentic-commerce/ai-hub/jsonata-data-mapping.md). #### Configure Stripe Agentic Commerce Suite product sync For Stripe Agentic Commerce Suite channels, the Product sync tab includes: - **Product feed (UTC)**: enable this toggle to start syncing your product catalog to the Agentic Channel. Set the daily sync start time, and the catalog will be automatically refreshed every 24 hours from that time onward. You can change this time once every 24 hours. - **Inventory and price update**: enable this toggle to sync inventory and price updates every 5 minutes. Whenever a product's inventory or price changes, the updates are automatically reflected in the Agentic Channel. - **Data mapping**: maps your commercetools product attributes to Stripe Agentic Commerce Suite product fields. You can view the mapping in **Form view** (a table of fields and their JSONata expressions) or **JSON view**. Click **Edit data mapping** to modify the mapping configuration. The data mapping uses JSONata expressions to transform your product data. The configuration includes: - **Fields**: maps Stripe Agentic Commerce Suite fields (such as `title`, `description`, `price`, `availability`) to the corresponding commercetools product attributes and fields. - **Bindings**: defines reusable helper functions and variables used within the field expressions (such as `country`, `locale`, `getAttribute`, `priceToAmount`, and `formatPrice`). For more details on configuring data mappings, see [JSONata data mapping](/agentic-commerce/ai-hub/jsonata-data-mapping.md). #### Configure OpenAI product sync For OpenAI channels, the Product sync tab includes: - **Product feed (UTC)**: enable this toggle to start syncing your product catalog to the Agentic Channel. Set the daily sync start time, and the catalog will be automatically refreshed every 24 hours from that time onward. You can change this time once every 24 hours. - **SFTP delivery**: copy the SFTP details from OpenAI into the corresponding fields in AI Hub. - **Host**: hostname or IP address of the SFTP server. - **Port**: port number the SFTP server listens on (for example, port `22`). - **Username**: username for the SFTP account. - **Host fingerprint**: optional. Verifies the server identity before connecting. Must start with `SHA256:` or `MD5:`, followed by the fingerprint value. - **Authentication method**: choose between `Password` and `Private key`. The required fields depend on your choice: - **`Password`**: - **Password**: your password for the SFTP user. - **Feed filename**: your feed filename as it appears in OpenAI. It must end in `.csv.gz`. - **`Private key`**: - **Private key file**: your private key file (`.pem`, `.key`) for authentication. - **Passphrase**: your passphrase for the private key, if it is encrypted. - **Remote path**: your remote path on the SFTP server where the product feed file will be uploaded. This value must end with `.csv.gz`. - **Product projection extra expansions**: add expansions to fetch extra data in the product projection query. - **Data mapping**: maps your commercetools product attributes to OpenAI product fields. You can view the mapping in **Form view** (a table of fields and their JSONata expressions) or **JSON view**. Click **Edit data mapping** to modify the mapping configuration. The data mapping uses JSONata expressions to transform your product data. The configuration includes: - **Fields**: maps OpenAI fields (such as `title`, `description`, `price`, `availability`, `enable_search`, `enable_checkout`) to the corresponding commercetools product attributes and fields. - **Bindings**: defines reusable helper functions and variables used within the field expressions (such as `country`, `locale`, `getAttribute`, `priceToAmount`, and `formatPrice`). For more details on configuring data mappings, see [JSONata data mapping](/agentic-commerce/ai-hub/jsonata-data-mapping.md). ### Configure Checkout The **Checkout** tab is visible for Google and OpenAI channels, but it is disabled for Stripe Agentic Commerce Suite. It manages how checkout transactions are processed through the AI provider. To activate this component for any provider, use the toggle in the top-right corner to set it to active. OpenAI does not support checkout. The Checkout tab for OpenAI channels is disabled. #### Configure Google checkout For Google channels, the Checkout tab includes: - **Checkout URL (generated)**: the URL used to configure checkout in Google. Copy this URL and use it in your Google configuration. ##### Google checkout connection settings - **Inventory mode**: choose how stock is handled during the checkout process (for example, "None" or "TrackOnly"). - **UCP authentication mode**: select from the dropdown the authentication method used to call the UCP API. The available options are: - **None** - **ApiKey**: your UCP API key used to authenticate requests to the UCP. - **OAuth**: this method requires an API client with the `manage_orders` scope. If you don't have one, you will need to [create it](/api/getting-started/create-api-client.md). - **UCP order event webhook URL**: the URL that receives order event notifications from the Universal Commerce Protocol. ##### Google checkout payment provider settings - **Payment Provider**: select your Payment Provider from the dropdown menu. The required fields depend on the provider you select: - **Stripe**: - **Merchant ID**: your unique Stripe account identifier. - **API version**: your Stripe API version used for this integration. - **Publishable Key**: your Stripe publishable key used to initialize the payment form. The format needs to be: `STRIPE_PUBLIC_API_KEY`. - **Secret Key**: your Stripe secret key used to authenticate server-side requests. - **Cybersource**: - **Merchant ID**: your unique Cybersource account identifier. - **Cybersource environment**: choose your Cybersource environment between `Test` or `Production`. - **Security Certificate**: upload your CyberSource `.p12` certificate file, used to authenticate requests. - **Certificate Password**: the password for your `.p12` certificate. - **Worldpay Access**: - **Merchant ID**: your unique Worldpay merchant identifier. - **API version**: your Worldpay API version used for this integration. Set automatically. - **Client ID**: your Worldpay client identifier, used to authenticate this integration. - **Client Secret**: your Worldpay client secret. Keep this confidential. - **Adyen**: - **Merchant ID**: your Adyen account name. - **API Key**: your Adyen API key, used to authenticate requests. ##### Google Pay payment method settings - **Google Pay merchant ID**: the merchant account identifier registered with Google Pay. - **Google Pay merchant name**: the merchant name displayed to customers during Google Pay checkout. - **Google Pay environment**: select `TEST` for development and staging, or `PRODUCTION` for live transactions. - **Allowed authorization methods**: select the Google Pay authorization method supported by this integration. `Pan Only` is the only method available. ##### Google checkout API Extension settings - **Custom Extension URL**: an extension URL for custom business rules (such as third-party shipping and validation) to intercept and verify every checkout request. - **Custom Extension secret**: the shared secret used to authenticate requests to the extension. This field is masked after saving. - **Stop checkout if the custom extension fails**: to block checkout when the extension fails until the issue is resolved, enable this checkbox. By default, checkout continues even if the extension doesn't respond. - **Timeout (ms)**: maximum time in milliseconds to wait for the extension response. After you've configured your Checkout settings, activate it by enabling the **Active** toggle in the top-right corner. ### Configure Order import The **Order import** tab is available for Stripe Agentic Commerce Suite channels only. It manages how orders placed through the Stripe agentic commerce flow are imported into your commercetools Project. To activate this component, use the toggle in the top-right corner to set it to active. The Order import tab includes: - **Inventory mode**: choose how stock is handled during the checkout process (for example, "Reserve on order"). - **Stripe webhook ID**: your unique identifier for Stripe webhook endpoints. - **Stripe webhook signing secret**: your Stripe webhook signing secret to verify event authenticity. This field is masked after saving. - **Advanced Settings**: - **Order custom type key**: the key of an existing commercetools Custom Type for Orders. If provided, the Stripe-related fields will be added to this Type. If not provided, the component will create a Custom Type automatically. - **Delivery custom type key**: the key of an existing commercetools Custom Type for Deliveries. If provided, the Stripe-related fields will be added to this Type. If not provided, the component will create a Custom Type automatically. After you've configured your Order import sync settings, activate it by enabling the **Active** toggle in the top-right corner. ## Manage an existing Agentic Channel To view or edit an Agentic Channel, click its name in the list. The detail view contains a tab for each configuration step that applies to the provider, plus a **Channel settings** tab. For the steps available per provider, see the [configuration steps table](/agentic-commerce/ai-hub/agentic-channels.md#configure-ai-hub-in-merchant-center). ### Channel settings The **Channel settings** tab displays the general information and **Provider and store** configuration for the channel. You can update the channel name and specific provider fields (such as the Stripe API key and Account ID). The rest of the fields are read-only. Click **Save changes** to apply your updates, or **Revert changes** to discard them. ### Delete an Agentic Channel To delete an Agentic Channel, open the channel detail view and click the delete icon in the top-right corner. An Agentic Channel cannot be deleted while any of the components are active. Disconnect all active components first. To deactivate a component, use the toggle in the top-right corner to set it to inactive. ## Related pages - [Area overview page with navigation](/agentic-commerce.md) - [Previous page: Setup and behavior](/agentic-commerce/ai-hub/project-setup-and-api-behavior.md) - [Next page: JSONata data mapping](/agentic-commerce/ai-hub/jsonata-data-mapping.md)