> ## 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.

# Marketing

> Campaigns, automations, segments, and discount codes.

## Queries

* [`campaign`](/docs/api-reference/v3/reference/marketing/queries/campaign) — Fetch a single campaign by its id. Ids from earlier versions of the Redo API are also accepted.
* [`campaigns`](/docs/api-reference/v3/reference/marketing/queries/campaigns) — List campaigns, optionally filtered by name, channel, or when they finished sending.
* [`commerceAgentStrategies`](/docs/api-reference/v3/reference/marketing/queries/commerce-agent-strategies) — Commerce Agent strategies on this store, newest first, optionally filtered by name. At most 100 are returned; narrow with `query` to reach older ones.
* [`commerceAgentStrategy`](/docs/api-reference/v3/reference/marketing/queries/commerce-agent-strategy) — Look up a Commerce Agent strategy by id. Returns null when this store has no strategy with that id.
* [`customerTag`](/docs/api-reference/v3/reference/marketing/queries/customer-tag) — Fetch a single customer tag by its id. Ids from earlier versions of the Redo API are also accepted.
* [`customerTags`](/docs/api-reference/v3/reference/marketing/queries/customer-tags) — List customer tags in this store's catalog, optionally filtered by name, provider, or source.
* [`discountCode`](/docs/api-reference/v3/reference/marketing/queries/discount-code) — Fetch a single discount configuration by its id. Ids from earlier versions of the Redo API are also accepted.
* [`discountCodes`](/docs/api-reference/v3/reference/marketing/queries/discount-codes) — List discount configurations, optionally filtered by title or code text, exact checkout code, platform, group type, or kind.
* [`emailAddresses`](/docs/api-reference/v3/reference/marketing/queries/email-addresses) — Mailboxes the store can use as a campaign From or Reply-To address.
* [`emailTemplate`](/docs/api-reference/v3/reference/marketing/queries/email-template) — Fetch a single email template by its id. Ids from earlier versions of the Redo API are also accepted.
* [`emailTemplates`](/docs/api-reference/v3/reference/marketing/queries/email-templates) — List email templates, optionally filtered by name or trigger.
* [`emailTemplateVariableCatalog`](/docs/api-reference/v3/reference/marketing/queries/email-template-variable-catalog) — The static email-template variable grammar for a trigger: template variable names, Url keys, context objects, and table collection paths. Does not include this store's discounts, saved sections, or product filters. UNKNOWN returns empty lists.
* [`marketingAutomation`](/docs/api-reference/v3/reference/marketing/queries/marketing-automation) — Fetch a single marketing automation by its id. Ids from earlier versions of the Redo API are also accepted.
* [`marketingAutomations`](/docs/api-reference/v3/reference/marketing/queries/marketing-automations) — List marketing automations, optionally filtered by name, category, or whether they are running.
* [`productFilter`](/docs/api-reference/v3/reference/marketing/queries/product-filter) — Fetch one product filter saved on this account. An id from another account, or one that does not exist, is null.
* [`productFilterCollection`](/docs/api-reference/v3/reference/marketing/queries/product-filter-collection) — One collection on this account's connected store. An id that store does not have is null. Uses the account's saved integration only.
* [`productFilterCollections`](/docs/api-reference/v3/reference/marketing/queries/product-filter-collections) — Collections on this account's connected store for the given provider. Uses that account's saved integration only — there is no shop domain or token argument. A provider this account has not connected returns an empty list. At most 100 collections are returned.
* [`productFilterMetafields`](/docs/api-reference/v3/reference/marketing/queries/product-filter-metafields) — Product metafield definitions from this account's Shopify Admin API, using the account's saved Shopify connection. Accounts without Shopify get an empty list. Definitions are capped at 100. Provider errors do not include the Shopify response.
* [`productFilters`](/docs/api-reference/v3/reference/marketing/queries/product-filters) — Product filters saved on this account.
* [`segment`](/docs/api-reference/v3/reference/marketing/queries/segment) — Fetch a single segment by its id. Ids from earlier versions of the Redo API are also accepted.
* [`segmentConditionCatalog`](/docs/api-reference/v3/reference/marketing/queries/segment-condition-catalog) — The static segment condition grammar: fields, operators, and the JSON Schema for `conditions`. Does not include this store's tags, products, or customers.
* [`segments`](/docs/api-reference/v3/reference/marketing/queries/segments) — List segments, optionally filtered by name or by how membership is set.
* [`segmentTokenFieldOptions`](/docs/api-reference/v3/reference/marketing/queries/segment-token-field-options) — Look up this store's allowed values for a catalog field (tags, products, countries, custom fields, event names). The catalog is static; these values are not.
* [`smsTemplate`](/docs/api-reference/v3/reference/marketing/queries/sms-template) — Fetch a single SMS template by its id. Ids from earlier versions of the Redo API are also accepted.
* [`smsTemplates`](/docs/api-reference/v3/reference/marketing/queries/sms-templates) — List SMS templates, optionally filtered by name or trigger.

## Mutations

* [`cancelCampaign`](/docs/api-reference/v3/reference/marketing/mutations/cancel-campaign) — Stop an in-progress campaign. Returns null if no campaign with that id is owned by the caller.
* [`createCampaign`](/docs/api-reference/v3/reference/marketing/mutations/create-campaign) — Create a campaign shell. Email requires `subject` and `previewText`. Set the audience and schedule with `updateCampaign`.
* [`createCommerceAgentStrategy`](/docs/api-reference/v3/reference/marketing/mutations/create-commerce-agent-strategy) — Create a Commerce Agent strategy. Set its id as `strategyId` when inserting a Start Agent Conversation step.
* [`createCustomerTag`](/docs/api-reference/v3/reference/marketing/mutations/create-customer-tag) — Create a customer tag in this store's Redo catalog. The tag's source is Redo Marketing.
* [`createDiscountCode`](/docs/api-reference/v3/reference/marketing/mutations/create-discount-code) — Create a discount code on Shopify or BigCommerce. The same input is used for both providers.
* [`createDynamicSegment`](/docs/api-reference/v3/reference/marketing/mutations/create-dynamic-segment) — Create a dynamic segment from a condition tree. Attach it to a campaign with updateCampaign.segmentIds.
* [`createEmailTemplate`](/docs/api-reference/v3/reference/marketing/mutations/create-email-template) — Create an email template. `trigger` is required and cannot be UNKNOWN. Optional `operations` are applied to the default sections.
* [`createMarketingAutomation`](/docs/api-reference/v3/reference/marketing/mutations/create-marketing-automation) — Create an automation for a public trigger. Returns the new automation. Date and price-drop triggers are not supported.
* [`createProductFilter`](/docs/api-reference/v3/reference/marketing/mutations/create-product-filter) — Save a product filter on this account. The returned `id` is what an email block stores.
* [`createSmsTemplate`](/docs/api-reference/v3/reference/marketing/mutations/create-sms-template) — Create an SMS template. `trigger` is required and cannot be UNKNOWN.
* [`deleteCampaign`](/docs/api-reference/v3/reference/marketing/mutations/delete-campaign) — Delete a campaign that has not started sending. Returns true if an owned campaign was deleted, false if none matched.
* [`deleteDiscountCode`](/docs/api-reference/v3/reference/marketing/mutations/delete-discount-code) — Delete a discount code. Returns true if an owned code was deleted, false if none matched. On Shopify the platform discount is deleted too; on BigCommerce only the Redo record is removed.
* [`deleteEmailTemplate`](/docs/api-reference/v3/reference/marketing/mutations/delete-email-template) — Delete an email template. Returns true if an owned template was deleted, false if none matched.
* [`deleteMarketingAutomation`](/docs/api-reference/v3/reference/marketing/mutations/delete-marketing-automation) — Delete an automation and stop its in-flight runs. Returns true if an owned automation was deleted, false if none matched.
* [`deleteProductFilter`](/docs/api-reference/v3/reference/marketing/mutations/delete-product-filter) — Delete a product filter on this account. Returns false when the id is missing or belongs to another account. Interactive cart sections on this account that stored the id have that reference cleared.
* [`deleteSegment`](/docs/api-reference/v3/reference/marketing/mutations/delete-segment) — Delete a segment. Returns true if an owned segment was deleted, false if none matched.
* [`deleteSmsTemplate`](/docs/api-reference/v3/reference/marketing/mutations/delete-sms-template) — Delete an SMS template. Returns true if an owned template was deleted, false if none matched.
* [`updateCampaign`](/docs/api-reference/v3/reference/marketing/mutations/update-campaign) — Update a campaign. Returns null if no campaign with that id is owned by the caller.
* [`updateCommerceAgentStrategy`](/docs/api-reference/v3/reference/marketing/mutations/update-commerce-agent-strategy) — Update a Commerce Agent strategy. Returns null when this store has no strategy with that id.
* [`updateCustomerTag`](/docs/api-reference/v3/reference/marketing/mutations/update-customer-tag) — Rename a customer tag. Returns null if no owned tag matches the id.
* [`updateDiscountCode`](/docs/api-reference/v3/reference/marketing/mutations/update-discount-code) — Update a discount code. Returns null if no code with that id is owned by the caller.
* [`updateDynamicSegment`](/docs/api-reference/v3/reference/marketing/mutations/update-dynamic-segment) — Update a dynamic segment. Returns null if no owned segment matches the id.
* [`updateEmailTemplate`](/docs/api-reference/v3/reference/marketing/mutations/update-email-template) — Update template metadata and/or apply section operations. Returns null if no owned template matches the id. Pass `input`, `operations`, or both.
* [`updateMarketingAutomation`](/docs/api-reference/v3/reference/marketing/mutations/update-marketing-automation) — Update automation metadata and/or apply step operations. Returns null if no owned automation matches the id. Pass `input`, `operations`, or both.
* [`updateProductFilter`](/docs/api-reference/v3/reference/marketing/mutations/update-product-filter) — Replace a product filter on this account. An id from another account, or one that does not exist, is null.
* [`updateSmsTemplate`](/docs/api-reference/v3/reference/marketing/mutations/update-sms-template) — Update an SMS template. Returns null if no owned template matches the id.
* [`uploadMarketingImage`](/docs/api-reference/v3/reference/marketing/mutations/upload-marketing-image) — Upload an image for an SMS or email template. Redo checks the real file type, then resizes and compresses it with the same settings as the template editors, and returns a hosted URL. Each upload costs query points by size and also counts against a per-account upload quota; over the quota returns THROTTLED.

## Objects

* [`AddedToCartProductFilter`](/docs/api-reference/v3/reference/marketing/added-to-cart-product-filter) — Recommends products this customer added to cart in the window.
* [`AmountOffDiscountSettings`](/docs/api-reference/v3/reference/marketing/amount-off-discount-settings) — A percent-off or amount-off discount.
* [`BestSellersProductFilter`](/docs/api-reference/v3/reference/marketing/best-sellers-product-filter) — Recommends the store's best sellers.
* [`BuyXGetYDiscountSettings`](/docs/api-reference/v3/reference/marketing/buy-x-get-y-discount-settings) — A buy-X-get-Y discount.
* [`Campaign`](/docs/api-reference/v3/reference/marketing/campaign) — A one-off marketing send to a set of segments, on a single channel.
* [`CampaignAnalytics`](/docs/api-reference/v3/reference/marketing/campaign-analytics) — Analytics for this campaign. Each field beneath is a separate read against a different store, with its own arguments and its own scope.
* [`CampaignEmailVariant`](/docs/api-reference/v3/reference/marketing/campaign-email-variant) — One version of a campaign's email content, with the share of recipients it was sent to.
* [`CampaignFollowUpConfig`](/docs/api-reference/v3/reference/marketing/campaign-follow-up-config) — Follow-up email settings when the merchant enabled one.
* [`CampaignMessagingAnalytics`](/docs/api-reference/v3/reference/marketing/campaign-messaging-analytics) — Email and SMS performance for this campaign over a date range, at whichever grain you ask for.
* [`CampaignSmsVariant`](/docs/api-reference/v3/reference/marketing/campaign-sms-variant) — One version of a campaign's SMS content, with the share of recipients it was sent to.
* [`CollectionProductFilter`](/docs/api-reference/v3/reference/marketing/collection-product-filter) — Recommends products from one collection.
* [`CommerceAgentStrategy`](/docs/api-reference/v3/reference/marketing/commerce-agent-strategy) — Guidance for a Commerce Agent conversation started by a Start Agent Conversation automation step: the goal, how to write the outreach, and an optional discount code the agent may offer.
* [`CustomerTag`](/docs/api-reference/v3/reference/marketing/customer-tag) — A named customer tag in this store's Redo catalog. Shopify-originated tags are stored here after sync; this API never queries Shopify.
* [`DiscountBxgyCustomerBuys`](/docs/api-reference/v3/reference/marketing/discount-bxgy-customer-buys) — The X side of a buy-X-get-Y discount.
* [`DiscountBxgyCustomerGets`](/docs/api-reference/v3/reference/marketing/discount-bxgy-customer-gets) — The Y side of a buy-X-get-Y discount.
* [`DiscountCatalogItem`](/docs/api-reference/v3/reference/marketing/discount-catalog-item) — A product or collection this discount applies to, identified by the platform's id.
* [`DiscountCode`](/docs/api-reference/v3/reference/marketing/discount-code) — A discount configuration hosted on Shopify or BigCommerce.
* [`DiscountCodeExpiration`](/docs/api-reference/v3/reference/marketing/discount-code-expiration) — When this discount code stops working.
* [`DiscountCombinesWith`](/docs/api-reference/v3/reference/marketing/discount-combines-with) — Which other discounts this code may stack with.
* [`DiscountMinRequirement`](/docs/api-reference/v3/reference/marketing/discount-min-requirement) — A minimum purchase required to use the code.
* [`DynamicRangeDiscountSettings`](/docs/api-reference/v3/reference/marketing/dynamic-range-discount-settings) — A unique-code percentage range. Readable, but cannot be created here.
* [`DynamicRangeRelativeExpiration`](/docs/api-reference/v3/reference/marketing/dynamic-range-relative-expiration) — How long a minted unique code stays valid after it is generated.
* [`EmailAddress`](/docs/api-reference/v3/reference/marketing/email-address) — An email address with an optional display name.
* [`EmailSender`](/docs/api-reference/v3/reference/marketing/email-sender) — A From or Reply-To mailbox on the store, as configured under email domains.
* [`EmailTemplate`](/docs/api-reference/v3/reference/marketing/email-template) — The content of an email, as the merchant authored it.
* [`EmailTemplateBrandKitButtonBorder`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-button-border) — Brand-kit button border.
* [`EmailTemplateBrandKitButtonOverride`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-button-override) — Brand-kit button override.
* [`EmailTemplateBrandKitEmailButton`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-email-button) — A brand-kit styled button used inside skip-or-delay.
* [`EmailTemplateBrandKitFont`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-font) — Brand-kit font.
* [`EmailTemplateBrandKitStroke`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-stroke) — Brand-kit border stroke.
* [`EmailTemplateButtonSection`](/docs/api-reference/v3/reference/marketing/email-template-button-section) — A button section.
* [`EmailTemplateChromeDinoSection`](/docs/api-reference/v3/reference/marketing/email-template-chrome-dino-section) — The Chrome dinosaur game.
* [`EmailTemplateColumnSection`](/docs/api-reference/v3/reference/marketing/email-template-column-section) — A multi-column layout. Child blocks keep their own ids.
* [`EmailTemplateColumnSlot`](/docs/api-reference/v3/reference/marketing/email-template-column-slot) — One column slot. `section` is null when the merchant left the slot empty.
* [`EmailTemplateContextObject`](/docs/api-reference/v3/reference/marketing/email-template-context-object) — A structured trigger field blocks bind through `schemaFieldName` (`cartContext`, `reviewRequest`, `tracker`, `orderSummary`).
* [`EmailTemplateDelayOption`](/docs/api-reference/v3/reference/marketing/email-template-delay-option) — A skip-or-delay duration choice.
* [`EmailTemplateDiscountSection`](/docs/api-reference/v3/reference/marketing/email-template-discount-section) — A discount code block.
* [`EmailTemplateFooterSection`](/docs/api-reference/v3/reference/marketing/email-template-footer-section) — A footer section, including the unsubscribe link field.
* [`EmailTemplateHeaderSection`](/docs/api-reference/v3/reference/marketing/email-template-header-section) — A header / logo section.
* [`EmailTemplateHtmlSection`](/docs/api-reference/v3/reference/marketing/email-template-html-section) — A raw HTML section.
* [`EmailTemplateImageSection`](/docs/api-reference/v3/reference/marketing/email-template-image-section) — An image section.
* [`EmailTemplateInlineButton`](/docs/api-reference/v3/reference/marketing/email-template-inline-button) — A button drawn inside a products block. It has no link picker; the products block supplies the destination.
* [`EmailTemplateLineSection`](/docs/api-reference/v3/reference/marketing/email-template-line-section) — A horizontal rule.
* [`EmailTemplateManualProduct`](/docs/api-reference/v3/reference/marketing/email-template-manual-product) — A product chosen by hand. `productId` and `variantId` are the store's ids, not Redo catalog ids.
* [`EmailTemplateMenuItem`](/docs/api-reference/v3/reference/marketing/email-template-menu-item) — One menu link.
* [`EmailTemplateMenuSection`](/docs/api-reference/v3/reference/marketing/email-template-menu-section) — A link menu.
* [`EmailTemplatePadding`](/docs/api-reference/v3/reference/marketing/email-template-padding) — Pixel padding on each side of a section.
* [`EmailTemplatePreview`](/docs/api-reference/v3/reference/marketing/email-template-preview) — The template rendered the way it would be sent, with sample data or a recent event's. Rendering is costly, so ask for only the fields you need.
* [`EmailTemplateProductCardContent`](/docs/api-reference/v3/reference/marketing/email-template-product-card-content) — Which parts of a shoppable product card are visible.
* [`EmailTemplateProductsSection`](/docs/api-reference/v3/reference/marketing/email-template-products-section) — Product recommendations. The template trigger must provide Cart Context. `schemaFieldName` defaults to `cartContext`. `recommendedProductFilterId` is a product filter id, or `00000000feedb10cfeedb10c` to show the products this trigger already carries. Shoppable products cannot use that sentinel.
* [`EmailTemplateQrCodeSection`](/docs/api-reference/v3/reference/marketing/email-template-qr-code-section) — A QR code.
* [`EmailTemplateScratchToRevealSection`](/docs/api-reference/v3/reference/marketing/email-template-scratch-to-reveal-section) — A scratch-to-reveal discount block.
* [`EmailTemplateShoppableProductsSection`](/docs/api-reference/v3/reference/marketing/email-template-shoppable-products-section) — Shoppable product cards. The template trigger must provide Cart Context. `schemaFieldName` defaults to `cartContext`. `productFilterId` is a product filter id. This block cannot use the trigger-products sentinel.
* [`EmailTemplateSocialLink`](/docs/api-reference/v3/reference/marketing/email-template-social-link) — One social icon and URL.
* [`EmailTemplateSocialsSection`](/docs/api-reference/v3/reference/marketing/email-template-socials-section) — Social icons.
* [`EmailTemplateSpacerSection`](/docs/api-reference/v3/reference/marketing/email-template-spacer-section) — Vertical space.
* [`EmailTemplateSubscriptionAddToOrderSection`](/docs/api-reference/v3/reference/marketing/email-template-subscription-add-to-order-section) — Add items to a subscription order.
* [`EmailTemplateSubscriptionChargeDate`](/docs/api-reference/v3/reference/marketing/email-template-subscription-charge-date) — Whether and how the next charge date is shown.
* [`EmailTemplateSubscriptionSkipInitialPage`](/docs/api-reference/v3/reference/marketing/email-template-subscription-skip-initial-page) — Copy and button on the skip-or-delay landing page.
* [`EmailTemplateSubscriptionSkipOption`](/docs/api-reference/v3/reference/marketing/email-template-subscription-skip-option) — Whether skipping the next charge is offered.
* [`EmailTemplateSubscriptionSkipOrDelaySection`](/docs/api-reference/v3/reference/marketing/email-template-subscription-skip-or-delay-section) — Skip or delay a subscription charge.
* [`EmailTemplateSubscriptionSwapProductSection`](/docs/api-reference/v3/reference/marketing/email-template-subscription-swap-product-section) — Swap a subscription product.
* [`EmailTemplateTableCellBinding`](/docs/api-reference/v3/reference/marketing/email-template-table-cell-binding) — A `{{ }}` path on the row alias for a dynamic table cell (`item.title`).
* [`EmailTemplateTableCollection`](/docs/api-reference/v3/reference/marketing/email-template-table-collection) — An event path a DYNAMIC table can bind as `rowCollection`. Schema fields, not Mongo ids.
* [`EmailTemplateTableColumn`](/docs/api-reference/v3/reference/marketing/email-template-table-column) — One table column definition.
* [`EmailTemplateTableImageCell`](/docs/api-reference/v3/reference/marketing/email-template-table-image-cell) — An image table cell.
* [`EmailTemplateTableRow`](/docs/api-reference/v3/reference/marketing/email-template-table-row) — One static table row.
* [`EmailTemplateTableSection`](/docs/api-reference/v3/reference/marketing/email-template-table-section) — A static or dynamic table.
* [`EmailTemplateTableTextCell`](/docs/api-reference/v3/reference/marketing/email-template-table-text-cell) — A text table cell.
* [`EmailTemplateTextSection`](/docs/api-reference/v3/reference/marketing/email-template-text-section) — A text section.
* [`EmailTemplateTitleSubtitle`](/docs/api-reference/v3/reference/marketing/email-template-title-subtitle) — A title and subtitle pair.
* [`EmailTemplateTrackableSummarySection`](/docs/api-reference/v3/reference/marketing/email-template-trackable-summary-section) — Order or return summary. The template trigger must provide a Trackable Summary. `schemaFieldName` defaults to `orderSummary`. `customFields` and `variantMetafields` are labels under that object, not catalog keys.
* [`EmailTemplateTrackingInfoSection`](/docs/api-reference/v3/reference/marketing/email-template-tracking-info-section) — Shipment tracking status. The template trigger must provide a Tracker. `schemaFieldName` defaults to `tracker` and must be a Tracker key from `emailTemplateVariableCatalog`.
* [`EmailTemplateUnknownSection`](/docs/api-reference/v3/reference/marketing/email-template-unknown-section) — A stored block this API version does not expose field-by-field. `params` is the rest of the stored JSON.
* [`EmailTemplateUrlKey`](/docs/api-reference/v3/reference/marketing/email-template-url-key) — A camelCase Url / Maybe Url key for `schemaFieldName` or `clickthroughSchemaFieldName` when a button or image uses DYNAMIC\_VARIABLE.
* [`EmailTemplateVariable`](/docs/api-reference/v3/reference/marketing/email-template-variable) — One template variable for subject, preview text, and authored strings. Use `{{ name }}`.
* [`EmailTemplateVariableCatalog`](/docs/api-reference/v3/reference/marketing/email-template-variable-catalog) — Static trigger grammar for email templates: template variable names, Url keys, context objects, and table collection paths. Same for every store. Does not list discounts, saved sections, or product filters.
* [`FreeShippingDiscountSettings`](/docs/api-reference/v3/reference/marketing/free-shipping-discount-settings) — A free-shipping discount.
* [`MarketingAutomation`](/docs/api-reference/v3/reference/marketing/marketing-automation) — A marketing automation: a flow that sends email or SMS to customers when a trigger fires.
* [`MarketingAutomationAbTestStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-ab-test-step) — Splits traffic across named variants. Inserting without variants creates A/B at 50/50.
* [`MarketingAutomationAbTestVariant`](/docs/api-reference/v3/reference/marketing/marketing-automation-ab-test-variant) — One arm of a weighted split.
* [`MarketingAutomationAnalytics`](/docs/api-reference/v3/reference/marketing/marketing-automation-analytics) — Analytics for this marketing automation. Each field beneath is a separate read against a different store, with its own arguments and its own scope.
* [`MarketingAutomationCommerceAgentChannel`](/docs/api-reference/v3/reference/marketing/marketing-automation-commerce-agent-channel) — Who a Commerce Agent conversation reaches and on which channel.
* [`MarketingAutomationConditionStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-condition-step) — True/false branch. Inserting without nextTrueStepId/nextFalseStepId keeps the previous outgoing edge on true and mints an End on false.
* [`MarketingAutomationEndStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-end-step) — Terminal step. Shoppers stop here.
* [`MarketingAutomationEntryCondition`](/docs/api-reference/v3/reference/marketing/marketing-automation-entry-condition) — The automation starts only when this trigger-data expression matches. Segments belong on skip conditions, because entry is decided before customer data is loaded.
* [`MarketingAutomationEntryConditions`](/docs/api-reference/v3/reference/marketing/marketing-automation-entry-conditions) — Start the automation only when these trigger-schema predicates match. Null when unset.
* [`MarketingAutomationExistingSegmentCondition`](/docs/api-reference/v3/reference/marketing/marketing-automation-existing-segment-condition) — Match shoppers who belong to one or more existing segments.
* [`MarketingAutomationFrequencyCap`](/docs/api-reference/v3/reference/marketing/marketing-automation-frequency-cap) — How often a customer may re-enter this automation.
* [`MarketingAutomationInlineSegmentCondition`](/docs/api-reference/v3/reference/marketing/marketing-automation-inline-segment-condition) — Inline segment rules. The JSON tree matches createDynamicSegment / segmentConditionCatalog.conditionsJsonSchema, with exactly one condition block.
* [`MarketingAutomationManageCustomerTagsStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-manage-customer-tags-step) — Adds or removes customer tags.
* [`MarketingAutomationManageStaticSegmentStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-manage-static-segment-step) — Adds or removes the shopper from a static segment.
* [`MarketingAutomationMessagingAnalytics`](/docs/api-reference/v3/reference/marketing/marketing-automation-messaging-analytics) — Email and SMS performance for this marketing automation over a date range, at whichever grain you ask for.
* [`MarketingAutomationSendEmailStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-email-step) — Sends an email template by id. Nested template editing is not supported. Insertable only when the trigger schema has an Email field.
* [`MarketingAutomationSendSmsStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-sms-step) — Sends an SMS template by id. Nested template editing is not supported. Insertable only when the trigger schema has a Phone field.
* [`MarketingAutomationSendWebhookHeader`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-webhook-header) — A webhook header name. The stored value is write-only and is not returned.
* [`MarketingAutomationSendWebhookOAuth2Config`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-webhook-o-auth2-config) — OAuth2 client-credentials settings. clientSecret is write-only and is not returned.
* [`MarketingAutomationSendWebhookStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-webhook-step) — Sends an HTTP webhook. Header values and the OAuth client secret are omitted from reads.
* [`MarketingAutomationSkipCondition`](/docs/api-reference/v3/reference/marketing/marketing-automation-skip-condition) — Skips matching action steps when the expression matches. Recover offer-response and Recover checkout predicates hydrate as unsupported and are rejected on write.
* [`MarketingAutomationSkipConditions`](/docs/api-reference/v3/reference/marketing/marketing-automation-skip-conditions) — Skip action steps when these conditions match. Null when the trigger has no skip conditions.
* [`MarketingAutomationStartAgentConversationStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-start-agent-conversation-step) — Starts a Commerce Agent conversation with the customer. The agent writes the outreach from the step's Commerce Agent strategy. Skipped at run time when Commerce Agent is disabled.
* [`MarketingAutomationTriggerDataCondition`](/docs/api-reference/v3/reference/marketing/marketing-automation-trigger-data-condition) — Predicate over the trigger schema payload. Recover checkout predicates are not supported.
* [`MarketingAutomationTriggerStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-trigger-step) — The flow's single trigger. It cannot be inserted or removed; only patched.
* [`MarketingAutomationUnknownStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-unknown-step) — A stored step this API version does not expose field-by-field, including recover. Opaque steps cannot be inserted.
* [`MarketingAutomationUnsupportedCondition`](/docs/api-reference/v3/reference/marketing/marketing-automation-unsupported-condition) — A stored expression this API cannot write, including Recover offer-response.
* [`MarketingAutomationWaitForEventStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-wait-for-event-step) — Wait until a customer event arrives, then continue.
* [`MarketingAutomationWaitStep`](/docs/api-reference/v3/reference/marketing/marketing-automation-wait-step) — Wait a duration before continuing.
* [`MessageAnalyticsPoint`](/docs/api-reference/v3/reference/marketing/message-analytics-point) — A marketing send's analytics for a single day. Days with no activity are omitted rather than reported as zero.
* [`MessageAnalyticsTotals`](/docs/api-reference/v3/reference/marketing/message-analytics-totals) — A marketing send's totals across the whole date range, and the same figures split by channel.
* [`MessageChannelAnalytics`](/docs/api-reference/v3/reference/marketing/message-channel-analytics) — One channel's share of a marketing send's analytics.
* [`MetafieldProductFilter`](/docs/api-reference/v3/reference/marketing/metafield-product-filter) — Recommends products through a product metafield.
* [`ProductFilterCollection`](/docs/api-reference/v3/reference/marketing/product-filter-collection) — A collection on this account's connected store. The id is the provider's collection id, not a Redo product filter id.
* [`ProductFilterCollectionConstraint`](/docs/api-reference/v3/reference/marketing/product-filter-collection-constraint) — Keep products that belong to these collections.
* [`ProductFilterExcludePurchasedConstraint`](/docs/api-reference/v3/reference/marketing/product-filter-exclude-purchased-constraint) — Drop products this customer already bought. `timeframe` limits how far back that purchase history goes.
* [`ProductFilterInventoryConstraint`](/docs/api-reference/v3/reference/marketing/product-filter-inventory-constraint) — Keep products whose inventory matches the comparison.
* [`ProductFilterMetafieldConstraint`](/docs/api-reference/v3/reference/marketing/product-filter-metafield-constraint) — Keep products that have one of these metafields.
* [`ProductFilterMetafieldDefinition`](/docs/api-reference/v3/reference/marketing/product-filter-metafield-definition) — A product metafield definition from this account's Shopify Admin API. Key and namespace are what a metafield filter stores.
* [`ProductFilterMetafieldRef`](/docs/api-reference/v3/reference/marketing/product-filter-metafield-ref) — A product metafield key in a namespace.
* [`ProductFilterPriceConstraint`](/docs/api-reference/v3/reference/marketing/product-filter-price-constraint) — Keep products whose price matches the comparison.
* [`ProductFilterTagConstraint`](/docs/api-reference/v3/reference/marketing/product-filter-tag-constraint) — Keep or drop products based on tags.
* [`ProductFilterTimeframe`](/docs/api-reference/v3/reference/marketing/product-filter-timeframe) — A duration measured in one unit.
* [`ProviderRecommendationsProductFilter`](/docs/api-reference/v3/reference/marketing/provider-recommendations-product-filter) — Recommends products using the store provider's own recommendation API.
* [`Segment`](/docs/api-reference/v3/reference/marketing/segment) — A group of customers that campaigns and automations send to.
* [`SegmentCatalogActivity`](/docs/api-reference/v3/reference/marketing/segment-catalog-activity) — A counted activity kind. Use as `event` on a CUSTOMER\_ACTIVITY condition.
* [`SegmentCatalogCustomEvent`](/docs/api-reference/v3/reference/marketing/segment-catalog-custom-event) — The CUSTOM\_EVENT condition shape. Event names are per-store; look them up with segmentTokenFieldOptions.
* [`SegmentCatalogField`](/docs/api-reference/v3/reference/marketing/segment-catalog-field) — One field the condition grammar accepts. Generated from the segment data-structure registry.
* [`SegmentConditionCatalog`](/docs/api-reference/v3/reference/marketing/segment-condition-catalog) — Static grammar for dynamic segment conditions. Same for every store except that some activities are platform-specific. Does not include live tags, products, or customers — those come from segmentTokenFieldOptions.
* [`SegmentOperatorSet`](/docs/api-reference/v3/reference/marketing/segment-operator-set) — Operators valid for one field data type.
* [`SegmentTokenFieldOptions`](/docs/api-reference/v3/reference/marketing/segment-token-field-options) — Store-specific values for a catalog field that needs token options.
* [`SegmentTokenOption`](/docs/api-reference/v3/reference/marketing/segment-token-option) — One allowed value for a token catalog field.
* [`SmsTemplate`](/docs/api-reference/v3/reference/marketing/sms-template) — The content of an SMS, as the merchant authored it.
* [`SmsTemplateImage`](/docs/api-reference/v3/reference/marketing/sms-template-image) — An image sent with an SMS template as MMS.
* [`TagProductFilter`](/docs/api-reference/v3/reference/marketing/tag-product-filter) — Recommends products that have these tags.
* [`UploadedMarketingImage`](/docs/api-reference/v3/reference/marketing/uploaded-marketing-image) — An image hosted by Redo, ready to use as an SMS template image or an email image URL.
* [`ViewedProductsProductFilter`](/docs/api-reference/v3/reference/marketing/viewed-products-product-filter) — Recommends products this customer viewed in the window.

## Interfaces

* [`MessageAnalytics`](/docs/api-reference/v3/reference/marketing/message-analytics) — Counts and rates for a marketing send over a period. Rates are fractions rather than percentages, and are null when the denominator is zero. Counts cover events that happened inside the range, which for an automation may include engagement with messages sent before it — so a rate can exceed 1.
* [`ProductFilter`](/docs/api-reference/v3/reference/marketing/product-filter) — A named product recommendation rule saved on this account. `id` is the 24-character hex an email block stores as `recommendedProductFilterId` or `productFilterId`. It is not a catalog product id.

## Input objects

* [`AmountOffDiscountSettingsInput`](/docs/api-reference/v3/reference/marketing/amount-off-discount-settings-input) — A percent-off or amount-off discount.
* [`BuyXGetYDiscountSettingsInput`](/docs/api-reference/v3/reference/marketing/buy-x-get-y-discount-settings-input) — A buy-X-get-Y discount.
* [`CampaignEmailVariantInput`](/docs/api-reference/v3/reference/marketing/campaign-email-variant-input) — One email arm to send. Pass an existing template; this does not copy it.
* [`CampaignFollowUpInput`](/docs/api-reference/v3/reference/marketing/campaign-follow-up-input) — Follow-up email settings. Email campaigns only.
* [`CampaignSmsVariantInput`](/docs/api-reference/v3/reference/marketing/campaign-sms-variant-input) — One SMS arm to send. Pass an existing template; this does not copy it.
* [`CreateCampaignInput`](/docs/api-reference/v3/reference/marketing/create-campaign-input) — The details of a campaign to create. Email campaigns also need a subject and preview text.
* [`CreateCommerceAgentStrategyInput`](/docs/api-reference/v3/reference/marketing/create-commerce-agent-strategy-input) — A new Commerce Agent strategy.
* [`CreateCustomerTagInput`](/docs/api-reference/v3/reference/marketing/create-customer-tag-input) — Name and provider for a new customer tag. Source is always Redo Marketing.
* [`CreateDiscountCodeInput`](/docs/api-reference/v3/reference/marketing/create-discount-code-input) — A discount code to create on Shopify or BigCommerce. Pass amount-off, free-shipping, or buy-X-get-Y settings.
* [`CreateDynamicSegmentInput`](/docs/api-reference/v3/reference/marketing/create-dynamic-segment-input) — Name and condition tree for a new dynamic segment. Build the tree from segmentConditionCatalog; look up token values with segmentTokenFieldOptions.
* [`CreateEmailTemplateInput`](/docs/api-reference/v3/reference/marketing/create-email-template-input) — Fields for a new email template. `trigger` is required and immutable after create. Omit style fields to use builder defaults. Optional `operations` on the mutation populate sections after the default header/line/footer.
* [`CreateMarketingAutomationInput`](/docs/api-reference/v3/reference/marketing/create-marketing-automation-input) — Creates a disabled automation unless `enabled` is true. The flow starts as the chosen trigger followed by an end step. `date` and `price_drop` triggers are not accepted here.
* [`CreateSmsTemplateInput`](/docs/api-reference/v3/reference/marketing/create-sms-template-input) — Fields for a new SMS template. `trigger` is required and immutable after create.
* [`DiscountBxgyCustomerBuysInput`](/docs/api-reference/v3/reference/marketing/discount-bxgy-customer-buys-input) — The X side of a buy-X-get-Y discount.
* [`DiscountBxgyCustomerGetsInput`](/docs/api-reference/v3/reference/marketing/discount-bxgy-customer-gets-input) — The Y side of a buy-X-get-Y discount.
* [`DiscountCatalogItemInput`](/docs/api-reference/v3/reference/marketing/discount-catalog-item-input) — A product or collection identified by the platform's id.
* [`DiscountCodeExpirationInput`](/docs/api-reference/v3/reference/marketing/discount-code-expiration-input) — When the code stops working.
* [`DiscountCodeSettingsInput`](/docs/api-reference/v3/reference/marketing/discount-code-settings-input) — How the discount reduces the order. Pass exactly one of `amountOff`, `freeShipping`, or `buyXGetY`.
* [`DiscountCombinesWithInput`](/docs/api-reference/v3/reference/marketing/discount-combines-with-input) — Which other discounts this code may stack with.
* [`DiscountMinRequirementInput`](/docs/api-reference/v3/reference/marketing/discount-min-requirement-input) — A minimum purchase required to use the code.
* [`EmailTemplateBrandKitButtonBorderInput`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-button-border-input) — Brand-kit button border.
* [`EmailTemplateBrandKitButtonOverrideInput`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-button-override-input) — Brand-kit button override.
* [`EmailTemplateBrandKitEmailButtonInput`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-email-button-input) — Brand-kit styled button fields.
* [`EmailTemplateBrandKitFontInput`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-font-input) — Brand-kit font.
* [`EmailTemplateBrandKitStrokeInput`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-stroke-input) — Brand-kit border stroke.
* [`EmailTemplateButtonSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-button-section-input) — Fields for a button section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateChromeDinoSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-chrome-dino-section-input) — Fields for a Chrome dinosaur section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateColumnChildInput`](/docs/api-reference/v3/reference/marketing/email-template-column-child-input) — One column slot. Pass exactly one typed payload, or null in the parent list for an empty slot. Nested columns are not allowed.
* [`EmailTemplateColumnSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-column-section-input) — Fields for a column layout. `columns` replaces the full child list (2–6 slots; null is empty). Omit it to change layout only, or to insert empty slots from columnCount.
* [`EmailTemplateDelayOptionInput`](/docs/api-reference/v3/reference/marketing/email-template-delay-option-input) — A skip-or-delay duration choice.
* [`EmailTemplateDiscountSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-discount-section-input) — Fields for a discount section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateFooterSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-footer-section-input) — Fields for a footer section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateHeaderSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-header-section-input) — Fields for a header section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateHtmlSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-html-section-input) — Fields for an HTML section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateImageSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-image-section-input) — Fields for an image section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateInlineButtonInput`](/docs/api-reference/v3/reference/marketing/email-template-inline-button-input) — Fields for a button inside a products block.
* [`EmailTemplateLineSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-line-section-input) — Fields for a line section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateManualProductInput`](/docs/api-reference/v3/reference/marketing/email-template-manual-product-input) — A manually chosen product and variant.
* [`EmailTemplateMenuItemInput`](/docs/api-reference/v3/reference/marketing/email-template-menu-item-input) — One menu link. Omit id on insert to mint one.
* [`EmailTemplateMenuSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-menu-section-input) — Fields for a menu section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplatePaddingInput`](/docs/api-reference/v3/reference/marketing/email-template-padding-input) — Pixel padding on each side. Omitted sides stay unchanged.
* [`EmailTemplateProductCardContentInput`](/docs/api-reference/v3/reference/marketing/email-template-product-card-content-input) — Which parts of a shoppable product card are visible.
* [`EmailTemplateProductsSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-products-section-input) — Products block. Omit a field to keep the merchant default on insert, or the saved value on update. Not a column child.
* [`EmailTemplateQrCodeSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-qr-code-section-input) — Fields for a QR code section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateScratchToRevealSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-scratch-to-reveal-section-input) — Fields for a scratch-to-reveal section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateSectionInsertInput`](/docs/api-reference/v3/reference/marketing/email-template-section-insert-input) — Insert a section. Omit anchors to append at the root. after/before splice next to a root or interactive-review success-section id, not a column child. parent (no index) appends to an interactive-review success section. Column children are set with a complete `columns` list on the column payload. Pass exactly one typed payload.
* [`EmailTemplateSectionMoveInput`](/docs/api-reference/v3/reference/marketing/email-template-section-move-input) — Move a section relative to a root or interactive-review success-section id. Column children are not valid destinations; replace a column's `columns` list instead. A column child can still be moved out to the root with after/before on the parent column.
* [`EmailTemplateSectionOperation`](/docs/api-reference/v3/reference/marketing/email-template-section-operation) — One surgical edit. Pass exactly one of update, insert, remove, or move.
* [`EmailTemplateSectionRemoveInput`](/docs/api-reference/v3/reference/marketing/email-template-section-remove-input) — Remove a section by id, including nested column children.
* [`EmailTemplateSectionUpdateInput`](/docs/api-reference/v3/reference/marketing/email-template-section-update-input) — Change one existing section. Pass the section id and exactly one typed payload.
* [`EmailTemplateShoppableProductsSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-shoppable-products-section-input) — Shoppable products block. Omit a field to keep the merchant default on insert, or the saved value on update. Not a column child. Cannot use the trigger-products sentinel.
* [`EmailTemplateSocialLinkInput`](/docs/api-reference/v3/reference/marketing/email-template-social-link-input) — One social icon and URL.
* [`EmailTemplateSocialsSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-socials-section-input) — Fields for a socials section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateSpacerSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-spacer-section-input) — Fields for a spacer section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateSubscriptionAddToOrderSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-subscription-add-to-order-section-input) — Fields for a subscription add-to-order section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateSubscriptionChargeDateInput`](/docs/api-reference/v3/reference/marketing/email-template-subscription-charge-date-input) — Whether and how the next charge date is shown.
* [`EmailTemplateSubscriptionSkipInitialPageInput`](/docs/api-reference/v3/reference/marketing/email-template-subscription-skip-initial-page-input) — Copy and button on the skip-or-delay landing page.
* [`EmailTemplateSubscriptionSkipOptionInput`](/docs/api-reference/v3/reference/marketing/email-template-subscription-skip-option-input) — Whether skipping the next charge is offered.
* [`EmailTemplateSubscriptionSkipOrDelaySectionInput`](/docs/api-reference/v3/reference/marketing/email-template-subscription-skip-or-delay-section-input) — Fields for a skip-or-delay section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateSubscriptionSwapProductSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-subscription-swap-product-section-input) — Fields for a subscription swap-product section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateTableCellInput`](/docs/api-reference/v3/reference/marketing/email-template-table-cell-input) — Pass image or text, not both.
* [`EmailTemplateTableColumnInput`](/docs/api-reference/v3/reference/marketing/email-template-table-column-input) — One table column definition.
* [`EmailTemplateTableImageCellInput`](/docs/api-reference/v3/reference/marketing/email-template-table-image-cell-input) — An image cell.
* [`EmailTemplateTableRowInput`](/docs/api-reference/v3/reference/marketing/email-template-table-row-input) — One static table row.
* [`EmailTemplateTableSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-table-section-input) — Fields for a table section. Omitted fields keep their value (update) or the default (insert). Pass image or text on each cell, not both.
* [`EmailTemplateTableTextCellInput`](/docs/api-reference/v3/reference/marketing/email-template-table-text-cell-input) — A text cell.
* [`EmailTemplateTextSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-text-section-input) — Fields for a text section. Omitted fields keep their value (update) or the default (insert).
* [`EmailTemplateTitleSubtitleInput`](/docs/api-reference/v3/reference/marketing/email-template-title-subtitle-input) — A title and subtitle pair.
* [`EmailTemplateTrackableSummarySectionInput`](/docs/api-reference/v3/reference/marketing/email-template-trackable-summary-section-input) — Fields for an order-summary section. Omitted fields keep their value (update) or the default (insert). The trigger must provide a Trackable Summary.
* [`EmailTemplateTrackingInfoSectionInput`](/docs/api-reference/v3/reference/marketing/email-template-tracking-info-section-input) — Fields for a tracking-info section. Omitted fields keep their value (update) or the default (insert). The trigger must provide a Tracker; a campaign template is rejected.
* [`FreeShippingDiscountSettingsInput`](/docs/api-reference/v3/reference/marketing/free-shipping-discount-settings-input) — A free-shipping discount.
* [`MarketingAutomationAbTestStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-ab-test-step-input) — A/B test configuration.
* [`MarketingAutomationAbTestVariantInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-ab-test-variant-input) — One arm of a weighted split.
* [`MarketingAutomationCommerceAgentChannelInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-commerce-agent-channel-input) — Commerce Agent channel. Sending a channel replaces the stored one. SMS reaches subscribers by default; set extendedOutreach to also reach non-subscribers through Recover (requires Recover). EMAIL takes neither audience field.
* [`MarketingAutomationConditionExpressionInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-condition-expression-input) — Pass exactly one of existingSegment, inlineSegment, or triggerData.
* [`MarketingAutomationConditionStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-condition-step-input) — Condition configuration. Insert requires expression with exactly one arm.
* [`MarketingAutomationEndStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-end-step-input) — END steps have no configuration besides an optional title.
* [`MarketingAutomationEntryConditionInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-entry-condition-input) — One entry condition. expression must be triggerData. Segment membership belongs on skip conditions.
* [`MarketingAutomationEntryConditionsInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-entry-conditions-input) — Replace the trigger's entry conditions. An empty conditions list clears them.
* [`MarketingAutomationExistingSegmentConditionInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-existing-segment-condition-input) — Existing-segment membership. Requires at least one segmentId.
* [`MarketingAutomationFrequencyCapInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-frequency-cap-input) — Re-entry cap for the trigger.
* [`MarketingAutomationInlineSegmentConditionInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-inline-segment-condition-input) — Inline segment rules. conditions must match segmentConditionCatalog.conditionsJsonSchema with exactly one condition block.
* [`MarketingAutomationManageCustomerTagsStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-manage-customer-tags-step-input) — Customer-tag action. Insert requires at least one tagId.
* [`MarketingAutomationManageStaticSegmentStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-manage-static-segment-step-input) — Static-segment action. Insert requires segmentId.
* [`MarketingAutomationSendEmailStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-email-step-input) — Send-email configuration. Insert requires templateId or originTemplateId. Nested template editing is not supported.
* [`MarketingAutomationSendSmsStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-sms-step-input) — Send-SMS configuration. Insert requires templateId. Nested template editing is not supported.
* [`MarketingAutomationSendWebhookHeaderInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-webhook-header-input) — One webhook header. value is required because sending headers replaces the stored list.
* [`MarketingAutomationSendWebhookOAuth2ConfigInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-webhook-o-auth2-config-input) — OAuth2 client-credentials settings. Omit clientSecret on update to keep the stored secret.
* [`MarketingAutomationSendWebhookStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-send-webhook-step-input) — Send-webhook configuration. Insert requires an http or https destinationUrl and a payload. Sending headers replaces the whole list, and each header must include its value. clientSecret is write-only: omit it on update to keep the stored secret.
* [`MarketingAutomationSkipConditionInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-skip-condition-input) — One skip condition. expression is exactly one of existingSegment, inlineSegment, or triggerData.
* [`MarketingAutomationSkipConditionsInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-skip-conditions-input) — Replace the trigger's skip conditions. An empty conditions list clears them.
* [`MarketingAutomationStartAgentConversationStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-start-agent-conversation-step-input) — Start a Commerce Agent conversation. Insert requires strategyId (create one with `createCommerceAgentStrategy`); channel defaults to SMS subscribers.
* [`MarketingAutomationStepInsertInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-step-insert-input) — Insert a step. Pass after (parent) or before (existing child), not both. A/B parents require variantId. Condition parents require branch TRUE or FALSE. Pass exactly one typed payload. Send email/SMS require matching fields on the trigger schema.
* [`MarketingAutomationStepMoveInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-step-move-input) — Move a step onto another outgoing edge. Same after/before/variantId/branch rules as insert.
* [`MarketingAutomationStepOperation`](/docs/api-reference/v3/reference/marketing/marketing-automation-step-operation) — One surgical edit. Pass exactly one of update, insert, remove, or move.
* [`MarketingAutomationStepRemoveInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-step-remove-input) — Remove a step by id. The trigger cannot be removed.
* [`MarketingAutomationStepUpdateInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-step-update-input) — Change one existing step. Pass the step id and exactly one typed payload.
* [`MarketingAutomationTriggerDataConditionInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-trigger-data-condition-input) — Trigger-schema predicate. Recover checkout predicates are rejected. HSA/FSA cart eligibility is allowed.
* [`MarketingAutomationTriggerStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-trigger-step-input) — Patch the trigger. key, schemaType, and category cannot be changed.
* [`MarketingAutomationWaitForEventStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-wait-for-event-step-input) — Wait-for-event configuration.
* [`MarketingAutomationWaitStepInput`](/docs/api-reference/v3/reference/marketing/marketing-automation-wait-step-input) — Wait-step configuration. Insert defaults to 1 day.
* [`MarketingImageSourceInput`](/docs/api-reference/v3/reference/marketing/marketing-image-source-input) — The image file to upload. Set exactly one field.
* [`ProductFilterConstraintInput`](/docs/api-reference/v3/reference/marketing/product-filter-constraint-input) — One extra condition. Set the fields for `type` and leave the others unset.
* [`ProductFilterInput`](/docs/api-reference/v3/reference/marketing/product-filter-input) — A product filter to save. Set the fields for `recommendationType` and leave the others unset.
* [`ProductFilterMetafieldInput`](/docs/api-reference/v3/reference/marketing/product-filter-metafield-input) — A product metafield key in a namespace.
* [`ProductFilterTimeframeInput`](/docs/api-reference/v3/reference/marketing/product-filter-timeframe-input) — A duration measured in one unit.
* [`UpdateCampaignInput`](/docs/api-reference/v3/reference/marketing/update-campaign-input) — Fields to change on a campaign. Omitted fields are left unchanged. `segmentIds`, `excludedSegmentIds`, `emailVariants`, `smsVariants`, and `tags` replace the whole list.
* [`UpdateCommerceAgentStrategyInput`](/docs/api-reference/v3/reference/marketing/update-commerce-agent-strategy-input) — Fields to change on a Commerce Agent strategy. Omitted fields are unchanged. Null or an empty string clears guidance; null removes the discount code.
* [`UpdateCustomerTagInput`](/docs/api-reference/v3/reference/marketing/update-customer-tag-input) — Fields to change on a customer tag.
* [`UpdateDiscountCodeInput`](/docs/api-reference/v3/reference/marketing/update-discount-code-input) — Fields to change on a discount code. Omitted fields are left unchanged. `settings` replaces the whole configuration.
* [`UpdateDynamicSegmentInput`](/docs/api-reference/v3/reference/marketing/update-dynamic-segment-input) — Fields to change on a dynamic segment. Omit a field to leave it unchanged.
* [`UpdateEmailTemplateInput`](/docs/api-reference/v3/reference/marketing/update-email-template-input) — Metadata fields to change. Omit a field to leave it unchanged. Section edits go in `operations`, not here.
* [`UpdateMarketingAutomationInput`](/docs/api-reference/v3/reference/marketing/update-marketing-automation-input) — Metadata fields to change. Omit a field to leave it unchanged. Step edits go in `operations`, not here.
* [`UpdateSmsTemplateInput`](/docs/api-reference/v3/reference/marketing/update-sms-template-input) — Fields to change. Omit a field to leave it unchanged. `trigger` cannot be changed after create.
* [`UploadMarketingImageInput`](/docs/api-reference/v3/reference/marketing/upload-marketing-image-input) — An image to compress and host for a marketing template.

## Enums

* [`CampaignErrorCode`](/docs/api-reference/v3/reference/marketing/campaign-error-code) — Why a campaign failed to send.
* [`CampaignFollowUpEngagementPeriod`](/docs/api-reference/v3/reference/marketing/campaign-follow-up-engagement-period) — How long after the original send to look for engagement.
* [`CampaignSortKey`](/docs/api-reference/v3/reference/marketing/campaign-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`CampaignStatus`](/docs/api-reference/v3/reference/marketing/campaign-status) — Where a campaign is in its send lifecycle.
* [`CustomerTagProvider`](/docs/api-reference/v3/reference/marketing/customer-tag-provider) — Who has authority to add or remove this tag on a customer. Synced Shopify tags use SHOPIFY.
* [`CustomerTagSortKey`](/docs/api-reference/v3/reference/marketing/customer-tag-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`CustomerTagSource`](/docs/api-reference/v3/reference/marketing/customer-tag-source) — Where this tag was created. Independent of `provider`.
* [`DiscountBxgyTriggerType`](/docs/api-reference/v3/reference/marketing/discount-bxgy-trigger-type) — What the customer must buy to unlock the Y items.
* [`DiscountCodeExpirationInputType`](/docs/api-reference/v3/reference/marketing/discount-code-expiration-input-type) — When a newly created or updated discount code should stop working.
* [`DiscountCodeExpirationType`](/docs/api-reference/v3/reference/marketing/discount-code-expiration-type) — When a discount code stops working.
* [`DiscountCodeGroupType`](/docs/api-reference/v3/reference/marketing/discount-code-group-type) — Whether the merchant set one fixed code or a code generated per customer.
* [`DiscountCodeKind`](/docs/api-reference/v3/reference/marketing/discount-code-kind) — How the discount reduces the order.
* [`DiscountCodeProvider`](/docs/api-reference/v3/reference/marketing/discount-code-provider) — The commerce platform that hosts this discount code.
* [`DiscountCodeSortKey`](/docs/api-reference/v3/reference/marketing/discount-code-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`DiscountCustomerEligibility`](/docs/api-reference/v3/reference/marketing/discount-customer-eligibility) — Which customers may use the code.
* [`DiscountDynamicRangeExpirationUnit`](/docs/api-reference/v3/reference/marketing/discount-dynamic-range-expiration-unit) — The unit for how long a minted unique code stays valid after it is generated.
* [`DiscountMinRequirementType`](/docs/api-reference/v3/reference/marketing/discount-min-requirement-type) — How a minimum purchase requirement is measured.
* [`DiscountPurchaseType`](/docs/api-reference/v3/reference/marketing/discount-purchase-type) — Whether the code applies to one-time purchases, subscriptions, or both.
* [`DiscountValueType`](/docs/api-reference/v3/reference/marketing/discount-value-type) — Whether an amount-off is a percent or a currency amount.
* [`EmailSenderSortKey`](/docs/api-reference/v3/reference/marketing/email-sender-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`EmailTemplateAlignment`](/docs/api-reference/v3/reference/marketing/email-template-alignment) — Horizontal alignment of a section.
* [`EmailTemplateBrandKitFontWeight`](/docs/api-reference/v3/reference/marketing/email-template-brand-kit-font-weight) — Brand-kit font weight.
* [`EmailTemplateBuilderFontWeight`](/docs/api-reference/v3/reference/marketing/email-template-builder-font-weight) — Bold vs regular text in table cells.
* [`EmailTemplateButtonHierarchy`](/docs/api-reference/v3/reference/marketing/email-template-button-hierarchy) — Brand-kit button hierarchy.
* [`EmailTemplateButtonLinkType`](/docs/api-reference/v3/reference/marketing/email-template-button-link-type) — How a button or image clickthrough is resolved at send time.
* [`EmailTemplateCartLayoutType`](/docs/api-reference/v3/reference/marketing/email-template-cart-layout-type) — Row or column layout for a products block.
* [`EmailTemplateDelayTimeUnit`](/docs/api-reference/v3/reference/marketing/email-template-delay-time-unit) — Delay option unit for skip-or-delay.
* [`EmailTemplateHeaderTextTransform`](/docs/api-reference/v3/reference/marketing/email-template-header-text-transform) — Letter case for order-summary section headers.
* [`EmailTemplateHeaderType`](/docs/api-reference/v3/reference/marketing/email-template-header-type) — Which header treatment to render.
* [`EmailTemplateImageSize`](/docs/api-reference/v3/reference/marketing/email-template-image-size) — Line-item image size on an order summary.
* [`EmailTemplateObjectFit`](/docs/api-reference/v3/reference/marketing/email-template-object-fit) — How a line-item image fills its box.
* [`EmailTemplateProductSelectionType`](/docs/api-reference/v3/reference/marketing/email-template-product-selection-type) — How a products block chooses which products to show.
* [`EmailTemplateScratchToRevealScratcherSize`](/docs/api-reference/v3/reference/marketing/email-template-scratch-to-reveal-scratcher-size) — Size of the scratch-to-reveal cursor.
* [`EmailTemplateSectionKind`](/docs/api-reference/v3/reference/marketing/email-template-section-kind) — The stored block type of an email template section.
* [`EmailTemplateShoppableProductsSize`](/docs/api-reference/v3/reference/marketing/email-template-shoppable-products-size) — Card size for a shoppable products block.
* [`EmailTemplateSocialIconColor`](/docs/api-reference/v3/reference/marketing/email-template-social-icon-color) — Social icon color treatment.
* [`EmailTemplateSocialItemSource`](/docs/api-reference/v3/reference/marketing/email-template-social-item-source) — Where a social URL came from.
* [`EmailTemplateSocialPlatform`](/docs/api-reference/v3/reference/marketing/email-template-social-platform) — A social network icon.
* [`EmailTemplateSortKey`](/docs/api-reference/v3/reference/marketing/email-template-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`EmailTemplateSpacingSize`](/docs/api-reference/v3/reference/marketing/email-template-spacing-size) — Named padding size used by image, line, and footer blocks.
* [`EmailTemplateSubscriptionDateFormat`](/docs/api-reference/v3/reference/marketing/email-template-subscription-date-format) — How a subscription charge date is shown.
* [`EmailTemplateTableBorderStyle`](/docs/api-reference/v3/reference/marketing/email-template-table-border-style) — Table border style.
* [`EmailTemplateTableCellType`](/docs/api-reference/v3/reference/marketing/email-template-table-cell-type) — Image or text table cell.
* [`EmailTemplateTableColumnWidthMode`](/docs/api-reference/v3/reference/marketing/email-template-table-column-width-mode) — How a table column width is computed.
* [`EmailTemplateTableMobileStacking`](/docs/api-reference/v3/reference/marketing/email-template-table-mobile-stacking) — How table columns stack on small screens.
* [`EmailTemplateTableMode`](/docs/api-reference/v3/reference/marketing/email-template-table-mode) — Static grid vs event-driven rows.
* [`EmailTemplateTableVerticalAlignment`](/docs/api-reference/v3/reference/marketing/email-template-table-vertical-alignment) — Cell vertical alignment. MIDDLE maps to MJML middle, not center.
* [`EmailTemplateVariableSource`](/docs/api-reference/v3/reference/marketing/email-template-variable-source) — Where a template variable comes from. Trigger fields come from the template's schema; renderer names are filled for every email; non-schema names resolve from the store or customer at send time.
* [`EmailTemplateVerticalAlignment`](/docs/api-reference/v3/reference/marketing/email-template-vertical-alignment) — Vertical alignment of column children.
* [`MarketingAutomationCategory`](/docs/api-reference/v3/reference/marketing/marketing-automation-category) — Which trigger family a marketing automation belongs to. Every category here can send email or SMS; the category is copied from the automation's trigger.
* [`MarketingAutomationCommerceAgentChannelKind`](/docs/api-reference/v3/reference/marketing/marketing-automation-commerce-agent-channel-kind) — The channel a Commerce Agent conversation starts on.
* [`MarketingAutomationConditionBranch`](/docs/api-reference/v3/reference/marketing/marketing-automation-condition-branch) — Which outgoing arm of a condition parent to attach to.
* [`MarketingAutomationConditionConjunction`](/docs/api-reference/v3/reference/marketing/marketing-automation-condition-conjunction) — How a list of trigger conditions is combined.
* [`MarketingAutomationFrequencyCapMode`](/docs/api-reference/v3/reference/marketing/marketing-automation-frequency-cap-mode) — How often a customer may re-enter this automation.
* [`MarketingAutomationSkipActionType`](/docs/api-reference/v3/reference/marketing/marketing-automation-skip-action-type) — Which action steps a skip condition applies to. Omit the list to apply to every action.
* [`MarketingAutomationSortKey`](/docs/api-reference/v3/reference/marketing/marketing-automation-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`MarketingAutomationStepKind`](/docs/api-reference/v3/reference/marketing/marketing-automation-step-kind) — The stored step type of a marketing automation node. UNKNOWN is any type this API version does not model field-by-field, including recover.
* [`MarketingAutomationTagOperation`](/docs/api-reference/v3/reference/marketing/marketing-automation-tag-operation) — Whether to add or remove tags or static-segment membership.
* [`MarketingAutomationWaitTimeUnit`](/docs/api-reference/v3/reference/marketing/marketing-automation-wait-time-unit) — Unit for wait durations and frequency-cap cooldowns.
* [`MarketingAutomationWebhookAuthType`](/docs/api-reference/v3/reference/marketing/marketing-automation-webhook-auth-type) — How a send-webhook step authenticates.
* [`MarketingChannel`](/docs/api-reference/v3/reference/marketing/marketing-channel) — The channel a marketing message is delivered over.
* [`MarketingTrigger`](/docs/api-reference/v3/reference/marketing/marketing-trigger) — The public name for stored schemaType. Determines which variables and dynamic links apply. Named `trigger` in this API, not `schemaType`.
* [`ProductFilterComparison`](/docs/api-reference/v3/reference/marketing/product-filter-comparison) — Comparison for a price or inventory constraint.
* [`ProductFilterConstraintType`](/docs/api-reference/v3/reference/marketing/product-filter-constraint-type) — Which constraint this input is.
* [`ProductFilterMetafieldStorefrontAccess`](/docs/api-reference/v3/reference/marketing/product-filter-metafield-storefront-access) — Whether Shopify exposes this product metafield definition on the storefront.
* [`ProductFilterProvider`](/docs/api-reference/v3/reference/marketing/product-filter-provider) — Store connection a product filter or its collection catalog uses. Credentials always come from this account's saved integration.
* [`ProductFilterRecommendationType`](/docs/api-reference/v3/reference/marketing/product-filter-recommendation-type) — How a saved product filter chooses products.
* [`ProductFilterSort`](/docs/api-reference/v3/reference/marketing/product-filter-sort) — Order of products a filter returns.
* [`ProductFilterTagOperator`](/docs/api-reference/v3/reference/marketing/product-filter-tag-operator) — Whether a tag constraint includes or excludes the tags.
* [`ProductFilterTimeUnit`](/docs/api-reference/v3/reference/marketing/product-filter-time-unit) — Unit for a viewed-product or added-to-cart window.
* [`SegmentCatalogSource`](/docs/api-reference/v3/reference/marketing/segment-catalog-source) — Which platform an activity is recorded on. Pick the source that matches the store.
* [`SegmentConditionCategory`](/docs/api-reference/v3/reference/marketing/segment-condition-category) — Merchant-facing grouping for catalog fields and activities.
* [`SegmentConditionKind`](/docs/api-reference/v3/reference/marketing/segment-condition-kind) — The three condition shapes a dynamic segment tree accepts.
* [`SegmentConjunction`](/docs/api-reference/v3/reference/marketing/segment-conjunction) — How condition blocks, or conditions inside a block, combine.
* [`SegmentFieldDataType`](/docs/api-reference/v3/reference/marketing/segment-field-data-type) — Comparison shape for a catalog field. Stored on the condition as `whereCondition.type`.
* [`SegmentFieldUnit`](/docs/api-reference/v3/reference/marketing/segment-field-unit) — Presentational unit for a numeric field. The stored value is a bare number.
* [`SegmentSortKey`](/docs/api-reference/v3/reference/marketing/segment-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`SegmentType`](/docs/api-reference/v3/reference/marketing/segment-type) — How membership of a segment is determined.
* [`SmsTemplateSortKey`](/docs/api-reference/v3/reference/marketing/sms-template-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.


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