Send a cart abandonment 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 Cart abandonment signal guide. Connect also infers this signal automatically, so there's no Log signal call for it.
Cart abandonment occurs when there is an add-to-cart behavior in a session without an order before the session expires.
mutation {
createSignals(
signals: [
{
appKey: "{YOUR_APP_KEY}"
audience: [{ name: "Customer ID", value: "AAUN-1417508" }]
sessionId: "SESS-78945613AB"
signalContent: {
signalType: "cartAbandonment"
currency: "USD"
abandonedCartValue: 159.97
abandonmentReason: "USER_ERRORS"
abandonmentReasonDescription: "Payment form validation errors"
shoppingCartUrl: "https://www.example.com/cart"
abandonedItems: [
{
productId: "AC-PNT-WHT-SM"
productName: "AWESOME COLORS Interior Paint Satin Finish 32 Fl Oz"
productDescription: "Premium interior paint with satin finish"
unitPrice: 39.99
itemQuantity: 2
discount: 5.00
productCategory: "Painting & Decorating / Paint"
productUrls: [
"https://www.example.com/painting-and-decorating/paint/awesome-colors-interior-satin-paint"
]
imageUrls: [
"https://www.example.com/images/awesome-colors-paint.jpg"
]
shoppingCartUrl: "https://www.example.com/cart"
}
{
productId: "BR-2IN-PRO"
productName: "Professional Paint Brush 2 Inch"
productDescription: "High-quality synthetic bristle brush"
unitPrice: 12.99
itemQuantity: 3
discount: 2.00
productCategory: "Painting & Decorating / Tools"
productUrls: [
"https://www.example.com/painting-and-decorating/tools/professional-paint-brush-2in"
]
imageUrls: ["https://www.example.com/images/paint-brush-2in.jpg"]
shoppingCartUrl: "https://www.example.com/cart"
}
]
signalTimestamp: "2026-02-22T08:29:30.001Z"
}
}
]
) {
signalIds
}
}Required fields
abandonedCartValue: Number - Total value of the abandoned cartabandonedItems: Array of objects - List of items abandoned in the cart. See the abandoned items object below.abandonmentReason: Enum - Reason for abandonment. Valid values:APPLICATION_ERROR,LARGEST_CONTENTFUL_PAINT,CUMULATIVE_LAYOUT_SHIFT,FIRST_INPUT_DELAY,RAGE_CLICK,USER_ERRORS,EXCESSIVE_SCROLLING. See the descriptions in Send browse abandonment signals with the API.signalType: String - Valid value:cartAbandonment.
Optional fields
abandonmentReasonDescription: String - Additional description of the abandonment reason.category: String - Signal category. Valid value:Behavior.currency: String - ISO 4217 currency code (for example, "USD", "EUR", "GBP").description: String - Description of the signalname: String - Name to differentiate this signal from others (for example, "Cart abandonment on checkout page"). Max length: 256 chars.shoppingCartUrl: String - URL of the shopping cart pagesignalTimestamp: 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.
Abandoned items object
Objects in the abandonedItems array represent products left in the cart. Supported fields:
discount: Number - Discount applied to the itemimageUrls: Array of strings - Product image URLsinventoryQuantity: Number - Quantity of the product in stock [TODO: confirm meaning with engineering; the definition only labels it "Inventory Quantity"]itemQuantity: Number - Quantity of product added to cartproductCategory: String - Product category name based on catalogproductCategoryId: String - Product category identifierproductDescription: String - Product descriptionproductId(required): String - Product identifier (may match SKU)productName(required): String - Product nameproductUrls: Array of strings - Product page URLspromotionId: String - ID from marketing campaigns (hero images, CTAs) that led to this actionshoppingCartUrl: String - Shopping cart URLunitPrice(required): Number - Price per unitvirtualCategory: String - Category based on navigation path (e.g., "New arrivals", "Sale")
