Coveo

Datafly Signal sends Coveo Usage Analytics events server-side: page, product and content views for Content Recommendations, and custom events for reporting.

Coveo recommends its Event Protocol for new Commerce implementations. These presets use the Coveo UA protocol (the Usage Analytics Write API), which Coveo supports for existing implementations and uses for Service, Website and Workplace.

Why route Coveo through Datafly Signal

  • Events arrive when the browser cannot send them. Server-side delivery is not stopped by ad blockers, tracking prevention or a page unload.
  • One consent decision governs every destination. The integration is gated by the same consent state as the rest of your stack.

Prerequisites

  • Your Coveo organisation id and an API key with Push access to the Analytics data domain.
  • The search hub (originLevel1) your search interface uses.
  • Optionally, Signal capturing the Coveo visitor id (coveo_visitorId) as coveo_visitor_id, so views join search events.
  • For Content Recommendations, pages sending the indexed item’s permanentid as properties.content_id.

Configuration

FieldRequiredDescription
organization_idYesYour Coveo organization ID. It forms the UA Write host: https://{organization_id}.analytics.org.coveo.com. Find it in the Coveo admin console under Organization (top-right org switcher) or in any platform URL.
api_keyYesA Coveo API key with Push access to the Analytics Data domain. Create it in the admin console under Organization > API Keys, enabling the Push option for the Analytics Data domain. Sent as Authorization: Bearer <key>.
origin_level1YesRequired. Must match the searchHub used in your Coveo Search API queries so analytics events correlate with searches and ML models train correctly. Sent as originLevel1 on every event.

Configure in Signal

Add the integration

Go to Integrations > Add Integration > Coveo.

Choose a preset

Default (website or knowledge base), Ecommerce / Retail or Media / Publishing.

Enter the configuration

Fill in the fields in the table above.

Choose the categories that gate search analytics, typically analytics.

Save

Signal delivers the next matching event.

API Endpoint

POST https://ORG_ID.analytics.org.coveo.com/rest/ua/v15/analytics/view
POST https://ORG_ID.analytics.org.coveo.com/rest/ua/v15/analytics/custom
Authorization: Bearer API_KEY

View events need location; custom events need eventType, eventValue and language.

Identity Signals

SignalSent asNotes
VisitorclientIdThe Coveo visitor id when collected, otherwise the Signal anonymous id.
Signed inanonymousfalse when the event has a user id. username is not sent: it needs an impersonation-capable key.

Event Mapping

Default preset (default)

Coveo Usage Analytics for a website or knowledge base: page views as view events (with contentIdKey permanentid and contentIdValue from properties.content_id when the page sends the indexed item’s permanentid, which Content Recommendations need) and leads and sign-ups as custom events for reporting. clientId is the Coveo visitor id when the site collects it (collected_ids.coveo_visitor_id, the coveo_visitorId value the search UI sends) and otherwise the Signal anonymous id; it must match the clientId of the search requests for Coveo to join searches and views into one visit. language is the ISO 639-1 part of the locale and originLevel1 the configured search hub. username is not sent: the UA Write API accepts it only from an impersonation-capable key, and anonymous says whether the visitor is signed in.

Signal eventSent asEnabled
pageviewYes
generate_leadleadYes
sign_upsignUpYes

Ecommerce / Retail preset (ecommerce)

Coveo UA protocol events for a shop: page views and product detail views as view events (contentIdKey permanentid, contentIdValue the item id, contentType Product), and product clicks, cart changes and orders as custom events with the item ids, value and upper-cased currency in customData. Coveo recommends its Event Protocol for new Commerce implementations and Coveo ML commerce models learn from Event Protocol commerce events; this preset suits an existing UA implementation. clientId is the Coveo visitor id when the site collects it (collected_ids.coveo_visitor_id, the coveo_visitorId value the search UI sends) and otherwise the Signal anonymous id; it must match the clientId of the search requests for Coveo to join searches and views into one visit. language is the ISO 639-1 part of the locale and originLevel1 the configured search hub. username is not sent: the UA Write API accepts it only from an impersonation-capable key, and anonymous says whether the visitor is signed in.

Signal eventSent asEnabled
pageviewYes
view_itemviewYes
select_itemproductClickYes
add_to_cartaddToCartYes
remove_from_cartremoveFromCartYes
purchasepurchaseYes

Media / Publishing preset (media)

Content views for Coveo Content Recommendations on a publishing or knowledge-base site: each content_viewed event is a view event with contentIdKey permanentid and contentIdValue properties.content_id (the indexed item’s permanentid), the content type and title. The generic page event is off so a page is not counted twice. clientId is the Coveo visitor id when the site collects it (collected_ids.coveo_visitor_id, the coveo_visitorId value the search UI sends) and otherwise the Signal anonymous id; it must match the clientId of the search requests for Coveo to join searches and views into one visit. language is the ISO 639-1 part of the locale and originLevel1 the configured search hub. username is not sent: the UA Write API accepts it only from an impersonation-capable key, and anonymous says whether the visitor is signed in.

Signal eventSent asEnabled
pageviewOff by default
content_viewedviewYes
sign_upsignUpYes

To customise, edit the integration’s Field Mappings in the Management UI.

Example: a product view

What Signal sends (rendered from the preset):

POST https://acmeorg.analytics.org.coveo.com/rest/ua/v15/analytics/view
{
  "anonymous": false,
  "clientId": "df_anon_p1_0001",
  "contentIdKey": "permanentid",
  "contentIdValue": "SKU-1",
  "contentType": "Product",
  "eventType": "view",
  "language": "en",
  "location": "https://www.example.co.uk/shop/jackets?utm_source=google",
  "originLevel1": "MainSearch",
  "referrer": "https://www.google.com/",
  "title": "Parka Jacket",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
}

Testing

Send a test event

Trigger the event on your site, or replay one from Signal’s event debugger.

Check the response

Confirm a 2xx response, then find the event in Coveo’s Visit Browser.

Troubleshooting

ProblemSolution
400 on custom eventseventValue comes from item ids, the transaction id or the lead type: check the event carries them.
Views not used by Content RecommendationsSend the item’s permanentid as properties.content_id.

Limitations

  • Commerce ML models learn from Event Protocol commerce events, which Signal cannot send yet (#1545).
  • View events also carry an eventType field, kept for installed integrations; whether Coveo ignores it needs a live check.