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

# commerceAgentConfig

> One version of every Commerce Agent Playbook setting, with a `revision` that identifies its content. Read `DRAFT` and `PUBLISHED` separately and compare them to see what changed. Null means the store has not published yet, when asking for `PUBLISHED`. Reading never changes anything.

**Required scopes:** [`commerce_agent_settings_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-commerce_agent_settings_read)

## Arguments

**version** `[CommerceAgentConfigVersion!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-version)` *required*

Which version to read.

## Returns

**commerceAgentConfig** `[CommerceAgentConfig](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config)`

One version of the Commerce Agent's Playbook settings. `brandBio`, `excludeSmsProviderUnsubscribers` and `capabilities` are live: the same in both versions.

**fields**

**brandBio** `String`

A short description of the brand. Live: one value for both versions, outside `revision`. Null when none is set.

**brandName** `String`

What the agent calls the store. Null means it uses the store name.

**capabilities** `[CommerceAgentConfigCapabilities!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-capabilities)` *required*

What the agent can do today. Read only.

**fields**

**discount** `Boolean!` *required*

Whether the agent has a discount to offer now.

**replies** `Boolean!` *required*

Whether the agent replies to shoppers now. False while the agent is off.

**returns** `Boolean!` *required*

Whether the agent can start returns for shoppers. This follows the store's returns setting, so it can be true while the agent is off.

**channels** `[CommerceAgentConfigChannels!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channels)` *required*

Outreach channels.

**fields**

**email** `[CommerceAgentConfigChannel!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel)` *required*

Email. Off until the merchant switches it on.

**fields**

**enabled** `Boolean!` *required*

Whether the channel is switched on in this version. Not reduced by `status`: a channel the store cannot use yet still shows what was chosen.

**status** `[CommerceAgentConfigChannelStatus!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel-status)` *required*

Whether the channel can send, from this version's switch plus the store's live access. Access is the same in both versions.

**extendedOutreach** `[CommerceAgentConfigChannel!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel)` *required*

Extended outreach: Commerce Agent's messages beyond replies, such as cart recovery.

**fields**

**enabled** `Boolean!` *required*

Whether the channel is switched on in this version. Not reduced by `status`: a channel the store cannot use yet still shows what was chosen.

**status** `[CommerceAgentConfigChannelStatus!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel-status)` *required*

Whether the channel can send, from this version's switch plus the store's live access. Access is the same in both versions.

**iMessage** `[CommerceAgentConfigChannel!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel)` *required*

iMessage.

**fields**

**enabled** `Boolean!` *required*

Whether the channel is switched on in this version. Not reduced by `status`: a channel the store cannot use yet still shows what was chosen.

**status** `[CommerceAgentConfigChannelStatus!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel-status)` *required*

Whether the channel can send, from this version's switch plus the store's live access. Access is the same in both versions.

**rcs** `[CommerceAgentConfigChannel!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel)` *required*

Rich text messages (RCS).

**fields**

**enabled** `Boolean!` *required*

Whether the channel is switched on in this version. Not reduced by `status`: a channel the store cannot use yet still shows what was chosen.

**status** `[CommerceAgentConfigChannelStatus!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel-status)` *required*

Whether the channel can send, from this version's switch plus the store's live access. Access is the same in both versions.

**sms** `[CommerceAgentConfigChannel!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel)` *required*

Text messages. On until the merchant switches it off.

**fields**

**enabled** `Boolean!` *required*

Whether the channel is switched on in this version. Not reduced by `status`: a channel the store cannot use yet still shows what was chosen.

**status** `[CommerceAgentConfigChannelStatus!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-channel-status)` *required*

Whether the channel can send, from this version's switch plus the store's live access. Access is the same in both versions.

**discount** `[CommerceAgentConfigDiscount!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-discount)` *required*

The discount the agent may offer.

**fields**

**discountCodeId** `ID`

The DiscountCode the agent may offer. Null when none is linked, or when the discount code was deleted.

**offered** `Boolean!` *required*

Whether the agent offers the discount. False keeps the link and stops the offers.

**proclivity** `[CommerceAgentDiscountProclivity](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-discount-proclivity)`

How readily the agent offers the discount. Null when it was never set.

**enabled** `Boolean!` *required*

Whether the Commerce Agent is on.

**escalation** `[CommerceAgentConfigEscalation!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-escalation)` *required*

Handing conversations to the support team.

**fields**

**contactEmail** `String`

The email address the agent tells shoppers to write to. Null when none is set. Left out of the developer log.

**escalateToSupport** `Boolean!` *required*

Whether the agent may hand a conversation to support.

**excludeSmsProviderUnsubscribers** `Boolean!` *required*

Whether texts skip shoppers who unsubscribed through another SMS provider. Live: one value for both versions, outside `revision`.

**guidelines** `[String!]!` *required*

The merchant's guidelines for the agent, in order.

**personaName** `String`

The name the agent goes by. Null when none is set.

**recontactCooldownHours** `Int`

Hours before the agent contacts the same shopper again. Null means the default.

**repliesEnabled** `Boolean!` *required*

Whether the agent replies to shoppers who write back. A version with no stored choice reads true, as the agent does.

**returnWindowGrace** `[CommerceAgentConfigReturnWindowGrace](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-return-window-grace)`

Late-return cutoffs. Null when none are set.

**fields**

**agentDays** `Int!` *required*

Days past the window the agent may accept a return on its own.

**teamReviewDays** `Int!` *required*

Days past the window a return goes to the team for review. At least `agentDays`.

**revision** `String!` *required*

Identifies this version's content. It changes when any setting in the version changes, including settings this type does not show: instant exchanges, knowledge auto-apply, email replies, Shop Pay, guideline rules, escalation guidelines and capability guidance. It identifies what is stored, so saving a setting again with the same effective value, such as switching off a channel that was already off, can change it too. A fresh draft has the published revision. Live fields are not part of it.

**tone** `[CommerceAgentConfigTone!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-config-tone)` *required*

Tone and voice. A version with no stored choice reads the default sliders.

**fields**

**formalityCasualness** `[CommerceAgentToneRange!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-tone-range)` *required*

From formal (1) to casual (5).

**fields**

**max** `Int!` *required*

The high end, from 1 to 5.

**min** `Int!` *required*

The low end, from 1 to 5.

**matterOfFactEnthusiasm** `[CommerceAgentToneRange!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-tone-range)` *required*

From matter-of-fact (1) to enthusiastic (5).

**fields**

**max** `Int!` *required*

The high end, from 1 to 5.

**min** `Int!` *required*

The low end, from 1 to 5.

**respectfulnessIrreverence** `[CommerceAgentToneRange!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-tone-range)` *required*

From respectful (1) to irreverent (5).

**fields**

**max** `Int!` *required*

The high end, from 1 to 5.

**min** `Int!` *required*

The low end, from 1 to 5.

**seriousnessHumor** `[CommerceAgentToneRange!](/docs/api-reference/v3/reference/commerce-agent/commerce-agent-tone-range)` *required*

From serious (1) to humorous (5).

**fields**

**max** `Int!` *required*

The high end, from 1 to 5.

**min** `Int!` *required*

The low end, from 1 to 5.

**voiceInstructions** `String`

Free-text voice instructions. Null when none are set.

## Example

```graphql theme={null}
query {
  commerceAgentConfig(version: DRAFT) {
    brandBio
    brandName
    enabled
    excludeSmsProviderUnsubscribers
    guidelines
    personaName
    recontactCooldownHours
    repliesEnabled
    # ...
  }
}
```


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