How imported signals update data in your Connect subscription

When Connect receives a behavior signal, it does more than record a user interaction. It maps the signal to a contact, updates the product catalog, and can simultaneously enrich contact profiles and consent preferences. This page explains how each of these processes works.

Contact mapping

When Connect receives a signal, it first checks identification records in the audience object in order to map the signal to a contact.

Single identification record

  • Existing contact found: The outcome depends on the type of attribute provided:
    • Contact key: Connect maps the signal to the matching contact and updates their contact information if it has changed.
    • Email or phone number: Connect maps the signal to the matching contact. If the matched contact already has a contact key assigned, Connect creates a new contact instead — contact keys are permanent and cannot be overwritten.
  • New contact with addressable attribute: If no contact exists but the attribute is an email address or phone number, Connect creates a new contact and maps the signal to it.
  • New contact with contact key only: If no contact exists and the attribute is a contact key, the signal is discarded — contact keys alone cannot create new contacts.

Several identification records

  • Existing key found: Connect maps the signal to the matching contact and updates their contact information if it has changed.
  • New key + existing addressable attribute:
    • No existing key on matched contact: Connect assigns the new key to the matched contact and maps the signal to them.
    • Different key on matched contact: Connect creates a new contact and maps the signal to it — contact keys are permanent and cannot be overwritten.
  • New key + new addressable attribute: Connect creates a new contact and maps the signal to it.

Product catalog updates

Your company's product catalog in Connect is dynamically updated based on incoming signals from your website. The following signals are used: order, add-to-cart, product view and product configuration.

Processing logic:

  • If a signal contains a new product ID or category ID, Connect creates a new catalog entry based on the signal content.
  • If a product ID is already present in the catalog, Connect makes sure the default product attributes such as name, unit price, category, description, currency, discount, product URLs are up-to-date with the signal.
  • If a category ID is already present in the catalog, Connect makes sure its name matches the signal content.

Special handling:

  • Null values in the signal do not overwrite existing catalog data.
  • Blank values ("") update the catalog to blank/null.
  • Zero values update the related catalog field to zero.

Updating contact data

When importing signals to Connect, you can update contact attributes and consent preferences in the same mutation call using the audience and consent objects. This is useful when a user action that generates a signal also captures new contact information or a consent decision.

Contact attributes

  • Order signal: A contact completes a purchase and enters their contact information on the checkout page. You can pass the name, last name and zip code to audience together with the primary identification record ("Customer ID" in the current example).
audience: [
	{ name: "Customer ID", value: "AAUN-1417508" }
	{ name: "First name", value: "Alice" }
	{ name: "Last name", value: "Brown" }
	{ name: "Location", value: "10001" }
]
  • Page view signal: A contact visits their account profile page and updates their email address. You can pass the new email value together with the primary identification record (contact key) to audience.
audience: [
	{ name: "Customer ID", value: "AAUN-1417508" }
	{ name: "Email", value: "[email protected]" }
]
  • Product configuration signal: A contact selects a clothing size on a product page. You can pass the size preference to audience to enrich the contact's profile for personalized product recommendations.
audience: [
	{ name: "Customer ID", value: "AAUN-1417508" }
	{ name: "Preferred size", value: "M" }
]
  • Rich media interaction signal: A contact watches a product video and selects their preferred language from a dropdown. You can pass the language preference to update the contact's Communication language attribute.
audience: [
	{ name: "Customer ID", value: "AAUN-1417508" }
	{ name: "Communication language", value: "fr" }
]

Consent preferences

  • Order signal: A contact checks a newsletter sign-up checkbox on the order confirmation page. You can pass the updated email consent status to consent to ensure the contact is enrolled in the appropriate consent group before the next campaign runs.
consent: {
	enableOverrideExistingOptOut: false
	email: [
		{
			status: OPT_IN_UNVERIFIED
			consentGroupIds: ["cc45e1ca-7d03-583a-9cb8-608490f70000"]
		}
	]
}
  • Add-to-cart signal: A contact adds a product to their cart and checks a box to receive back-in-stock alerts via SMS. You can pass the SMS opt-in to consent to enroll the contact in the appropriate consent group immediately.
consent: {
	enableOverrideExistingOptOut: true
	sms: [
		{
			status: OPT_IN
			consentGroupIds: [
				"cc45e1ca-7d03-583a-9cb8-608490f70000"
				"cc45e1ca-7d03-583a-9cb8-204490f80000"
			]
		}
	]
}

Related pages

Enable real-time import of behavior signals to Connect