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

# MarketingAutomationCatalog

> What this store can build: the triggers its automation builder offers and the step kinds each one can insert. Does not list templates, segments, or strategies; look those up by id. Condition-step expressions use the fields in segmentConditionCatalog.

**Required scopes:** [`marketing_automations_read`](/docs/api-reference/v3/reference/scopes#scope-marketing_automations_read)

<ResponseField name="stepKinds" type={<a href="/docs/api-reference/v3/reference/marketing/marketing-automation-catalog-step-kind">[MarketingAutomationCatalogStepKind!]!</a>} required>
  Every step kind this API models field-by-field, including TRIGGER, which can be updated but not inserted.

  <Expandable title="fields" lazyRender>
    <ResponseField name="insertable" type="Boolean!" required>
      Whether a new step of this kind can be inserted. TRIGGER is false: an automation has exactly one.
    </ResponseField>

    <ResponseField name="kind" type={<a href="/docs/api-reference/v3/reference/marketing/marketing-automation-step-kind">MarketingAutomationStepKind!</a>} required>
      The step kind, as `kind` on a read step.
    </ResponseField>

    <ResponseField name="payloadKey" type="String!" required>
      The input key that carries this step's fields, such as `sendEmail` or `wait`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="triggers" type={<a href="/docs/api-reference/v3/reference/marketing/marketing-automation-catalog-trigger">[MarketingAutomationCatalogTrigger!]!</a>} required>
  Every trigger createMarketingAutomation accepts for this store, the same list the automation builder offers. Triggers for products the store has not turned on, integrations it has not connected, and BigCommerce or CommentSold abandonment on a store without that platform are left out and return TRIGGER\_NOT\_AVAILABLE. `date` and `price_drop` are never listed because this API cannot create them. An existing automation whose trigger is no longer listed can still be edited.

  <Expandable title="fields" lazyRender>
    <ResponseField name="category" type={<a href="/docs/api-reference/v3/reference/marketing/marketing-automation-category">MarketingAutomationCategory!</a>} required>
      The category the created automation gets.
    </ResponseField>

    <ResponseField name="description" type="String!" required>
      When the trigger fires.
    </ResponseField>

    <ResponseField name="displayName" type="String!" required>
      The merchant-facing trigger name.
    </ResponseField>

    <ResponseField name="insertableStepKinds" type={<a href="/docs/api-reference/v3/reference/marketing/marketing-automation-step-kind">[MarketingAutomationStepKind!]!</a>} required>
      Step kinds an `insert` operation on updateMarketingAutomation accepts for an automation with this trigger in this store. Any other kind returns STEP\_NOT\_INSERTABLE. START\_AGENT\_CONVERSATION is listed only while Commerce Agent is on.
    </ResponseField>

    <ResponseField name="key" type="String!" required>
      Pass as `triggerKey` to createMarketingAutomation.
    </ResponseField>

    <ResponseField name="requiresEventName" type="Boolean!" required>
      If true, createMarketingAutomation requires `eventName`. Only `custom_event`.
    </ResponseField>

    <ResponseField name="schemaType" type="String!" required>
      The trigger's stored schema type, as `schemaType` on the trigger step. Decides which step kinds can be inserted.
    </ResponseField>

    <ResponseField name="templateTrigger" type={<a href="/docs/api-reference/v3/reference/marketing/marketing-trigger">MarketingTrigger!</a>} required>
      The `trigger` an email or SMS template needs to be sent by this automation. A template with any other trigger returns TEMPLATE\_TRIGGER\_MISMATCH. UNKNOWN means no public template trigger exists for it.
    </ResponseField>
  </Expandable>
</ResponseField>


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