Send on-site search signals with the API

Send an on-site search 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 On site search signal guide. To send it from your website or app instead, use Log signal: web, Android, iOS.

Records search terms website visitors use and number of results they get.

mutation {
  createSignals(
    signals: [
      {
        appKey: "{YOUR_APP_KEY}"
        audience: [{ name: "Cell phone", value: "+13115552368" }]
        sessionId: "SESS-789456123AB"
        signalContent: {
          signalType: "onSiteSearch"
          category: "Behavior"
          name: "Product search in online store"
          effect: "positive"
          searchTerm: "paint with satin finish"
          numberOfResults: 9
          signalTimestamp: "2026-02-22T08:29:30.001Z"
        }
      }
    ]
  ) {
    signalIds
  }
}

Required fields

  • numberOfResults: Number - Number of results matching the search term. Use integers.
  • searchTerm: String - Word or phrase the visitor searched for
  • signalType: String - Signal type (valid value: onSiteSearch)

Optional fields

  • category: String - Signal category (valid value: Behavior)
  • description: String - Description of the signal
  • effect: String - Signal engagement effect. Valid values: negative, positive. Send positive if search returns results, negative if no results.
  • name: String (up to 256 characters) - Signal name to differentiate from other signals
  • 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.