Send product configuration signals with the API

Send a product configuration signal to Connect with the createSignals mutation. For authentication, contact mapping, consent and the response, see Send signals with the API (GraphQL).

To learn what this signal captures and how to use it in Connect, see Product configuration signal. To send it from your website or app instead, use Log signal: web, Android, iOS.

Tracks interactions on product pages (selecting clothing size, checking FAQs/reviews, etc.) that suggest customer engagement.

mutation {
  createSignals(
    signals: [
      {
        appKey: "{YOUR_APP_KEY}"
        audience: [
          { name: "Customer ID", value: "AAUN-1417508" }
          { name: "Preferred size", value: "M" }
        ]
        sessionId: "SESS-789456123AB"
        signalContent: {
          signalType: "productConfiguration"
          category: "Behavior"
          name: "Product configuration from online store"
          effect: "positive"
          currency: "USD"
          productId: "CT-SWT-NVY-M"
          productName: "Classic Cotton Crew Neck Sweater Navy"
          configurationType: "Size selection"
          unitPrice: 49.99
          productCategory: "Clothing / Sweaters"
          signalTimestamp: "2026-02-22T08:29:30.001Z"
        }
      }
    ]
  ) {
    signalIds
  }
}

Required fields

  • productId: String - Product identifier (may match SKU)
  • productName: String - Product name
  • signalType: String - Signal type (valid value: productConfiguration)

Optional fields

  • category: String - Signal category (valid value: Behavior)
  • configurationType: String - Interaction label (name product parameter like size/color/quantity or identify UI element like dropdown)
  • currency: String - Product price currency (valid values: ISO 4217 currency codes)
  • description: String - Description of the signal
  • discount: Number - Discount amount
  • effect: String - Signal engagement effect (valid values: negative, positive) - We suggest positive for all product configuration signals.
  • imageUrls: Array of strings - URLs of product images
  • inventoryQuantity: Number - Number of units available. Use integers.
  • name: String (up to 256 characters) - Signal name to differentiate from other signals
  • productCategory: String - Product category name based on catalog
  • productCategoryId: String - Product category identifier
  • productDescription: String - Description of the product
  • productUrls: Array of strings - URLs of product pages
  • promotionId: String - ID from marketing campaigns that influenced the purchase
  • shoppingCartUrl: String - URL of the shopping cart
  • signalCustomAttributes: Array of objects - Additional custom attributes (each object needs name and value string fields)
  • signalTimestamp: Date - When signal happened (if omitted, Connect uses time when signal was received). Valid values: DateTime strings (ISO 8601). Example: 2026-02-28T16:22:15.001Z.
  • unitPrice: Number - Unit price of the product
  • virtualCategory: String - Category based on navigation path (e.g., "New arrivals", "Sale")