---
title: "Engage.event(type, eventData[, extensionData])"
slug: "engage-event"
abstract: "Describes the client-side event() function in the Sitecore Engage SDK (Sitecore CDP Stream API)."
---
# Engage.event(type, eventData\[, extensionData\])

The `event()` function sends one of the following:

- A standard event, for example, [ADD](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/add-event.html "ADD event"), [CONFIRM](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/confirm-event.html "CONFIRM event"), or [CHECKOUT](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/checkout-event.html "CHECKOUT event").
- A [custom event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/custom-event.html "Custom event") with custom data of your choice.

sidebar. Parameters for a standard event

| Parameter | Type | Description |
| --- | --- | --- |
| `type` | string | The type of the standard event. If you set this value to any of the Sitecore CDP reserved event names, for example, VIEW, ADD, or CONFIRM, the event becomes a standard event.<br><br>Sitecore CDP reserved event names:<br><br><ul><li>Any event name starting with `"SC_"`</li><li>`"ADD"` - standard [ADD](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/add-event.html) event.</li><li>`"ADD_CONSUMERS"` - standard [ADD_CONSUMERS](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/add_consumers-event.html) event.</li><li>`"ADD_CONTACTS"` - standard [ADD_CONTACTS](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/add_contacts-event.html) event.</li><li>`"CAMPAIGN_TRACKING"` - internally reserved event. Do not use.</li><li>`"CHECKOUT"` - standard [CHECKOUT](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/checkout-event.html) event.</li><li>`"CLEAR_CART"` - standard [CLEAR_CART](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/clear_cart-event.html) event.</li><li>`"CONFIRM"` - standard [CONFIRM](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/confirm-event.html) event.</li><li>`"FEEDBACK"` - FEEDBACK event.</li><li>`"IDENTITY"` - standard [IDENTITY](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/identity-event.html) event.</li><li>`"INTERACTION"` - internally reserved event. Do not use.</li><li>`"ORDER_CHECKOUT"` - standard [ORDER_CHECKOUT](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/order_checkout-event.html) event.</li><li>`"PAYMENT"` - standard [PAYMENT](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/payment-event.html) event.</li><li>`"SUBSCRIPTION"` - internally reserved event. Do not use.</li><li>`"SEARCH"` - standard [SEARCH](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/search-event.html) event.</li><li>`"TRACKING"` - internally reserved event. Do not use.</li><li>`"VIEW"` - standard [VIEW](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/view-event.html) event.</li></ul> |
| [`eventData`](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/event-data-object.html) | object | All the event data specific to the standard event type, for example, an [ADD event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/add-event.html). |
| [`[extensionData]`](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/extension-data-object.html)<br><br>optional | object | Maximum 50 custom attributes of your choice. |

sidebar. Parameters for a custom event

| Parameter | Type | Description |
| --- | --- | --- |
| `type` | string | The name of the custom event. If you set this value to a custom value of your choice different than [Sitecore CDP reserved event names](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/engage-event.html#UUID-e9c6adca-cdb1-fc2e-0fb9-6bb373d91db8_para-idm19013416629508402), for example, `"CUSTOM_EVENT_SEARCH"` or `"myretailsite:CLICKED_POPUP"`, the event becomes a custom event. |
| [`eventData`](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/custom-event.html) | object | TFhe [required attributes](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/event-data-object.html#UUID-a7f441ce-7bee-9e1a-8a6c-7f995310e71b_UUID-2cda931f-8a8a-520d-dd7c-fe7fa3c3d597) that every event object must include, and [optional attributes](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/event-data-object.html#UUID-a7f441ce-7bee-9e1a-8a6c-7f995310e71b_UUID-88d3eb09-6119-a7c1-8d3f-f7a1fedf1447) that event objects can include. |
| [`[extensionData]`](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/extension-data-object.html)<br><br>optional | object | Custom data about an event.<br><br>Maximum 50 custom attributes of your choice. |

Example 5. ORDER_CHECKOUT event

::::tabs
:::tab{title="2.1"}

Here's an example of how to use the `event()` function to send an ORDER_CHECKOUT event. The `eventData` object must contain all the required attributes for the event type, in this example, for an [ORDER_CHECKOUT event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/order_checkout-event.html "ORDER_CHECKOUT event").

```javascript
import { engage } from "./engage.js";
// ...

const handleOrderCheckoutEvent = async () => {
    const eventData = {
      channel: "WEB",
      currency: "EUR",
      pointOfSale: "myretailsite/ireland",
      language: "EN",
      page: "checkout page",
      order: {
        referenceId: "123456",
        orderedAt: "2026-08-23T16:`17:16`.000Z",
        status: "PURCHASED",
        currencyCode: "EUR",
        price: 200,
        paymentType: "Card",
        cardType: "Visa",
        extensions: [
           {
              name: "ext",
              key: "default",
              refundable: true
           }
        ],
        orderItems: [
           {
              type: "MOBILE_PHONE",
              referenceId: "REF-123",
              orderedAt: "2026-08-23T16:`17:16`.000Z",
              status: "PURCHASED",
              currencyCode: "EUR",
              price: 200,
              name: "Mobile phone of type x",
              productId: "MOBILE_PHONE_TYPE_X",
              quantity: 1,
              extensions: [
                 {
                    name: "ext",
                    key: "default",
                    phoneColor: "Gold",
                    insurance: false
                 }
              ]
           }
        ]
     }
    };

    const extensionData = {
      customKey: "customValue"
    };

    await engage.event("ORDER_CHECKOUT", eventData, extensionData);
};

```

:::
:::tab{title="2.0"}

2.0 data model does not support this functionality.

:::
::::

Example 6. ADD event

Here's an example of how to use the `event()` function to send an ADD event. The `eventData` object must contain all the required attributes for the event type, in this example, for an [ADD event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/add-event.html "ADD event").

```javascript
import { engage } from "./engage.js";
// ...

const handleClickAddEvent = async () => {
    const eventData = {
      channel: "WEB",
      currency: "EUR",
      pointOfSale: "myretailsite/ireland",
      language: "EN",
      page: "products",
      product: {
          name: "GHT 84 Lace Sneaker",
          type: "FOOTWEAR",
          item_id: "SHOES_8475GHT",
          productId: "example_product_id",
          referenceId: "MA-490094",
          orderedAt: new Date().toISOString(),
          quantity: 1,
          price: 7.99,
          currency: "EUR",
          originalPrice: 7.79,
          originalCurrencyCode: "USD"
      }
    };

    const extensionData = {
      customKey: "customValue"
    };

    await engage.event("ADD", eventData, extensionData);
};

```

Example 7. CONFIRM event

Here's an example of how to use the `event()` function to send a CONFIRM event. The `eventData` object must contain all the required attributes for the event type, in this example, for a [CONFIRM event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/confirm-event.html "CONFIRM event").

```javascript
import { engage } from "./engage.js";
// ...

const handleClickConfirmEvent = async () => {
    const eventData = {
      channel: "WEB",
      currency: "EUR",
      pointOfSale: "myretailsite/ireland",
      language: "EN",
      page: "checkout",
      product: [
        { item_id: "SHOES_8475GHT" }
      ]
    };

    const extensionData = {
      customKey: "customValue"
    };

    await engage.event("CONFIRM", eventData, extensionData);
};

```

Example 8. CHECKOUT event

Here's an example of how to use the `event()` function to send a CHECKOUT event. The `eventData` object must contain all the required attributes for the event type, in this example, for a [CHECKOUT event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/checkout-event.html "CHECKOUT event").

```javascript
import { engage } from "./engage.js";
// ...

const handleClickCheckoutEvent = async () => {
    const eventData = {
      channel: "WEB",
      currency: "EUR",
      pointOfSale: "myretailsite/ireland",
      language: "EN",
      page: "home",
      reference_id: "MA-490094",
      status: "PURCHASED"
    };

    const extensionData = {
      customKey: "customValue"
    };

    await engage.event("CHECKOUT", eventData, extensionData);
};

```

Example 9. PAYMENT event

Here's an example of how to use the `event()` function to send a PAYMENT event. The `eventData` object must contain all the required attributes for the event type, in this example, for a [PAYMENT event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/payment-event.html "PAYMENT event").

```javascript
import { engage } from "./engage.js";
// ...

const handleClickPaymentEvent = async () => {
    const eventData = {
      channel: "WEB",
      currency: "EUR",
      pointOfSale: "myretailsite/ireland",
      language: "EN",
      page: "home",
      paymentType: "voucher"
    };

    const extensionData = {
      customKey: "customValue"
    };

    await engage.event("PAYMENT", eventData, extensionData);
};

```

Example 10. CLEAR_CART event

Here's an example of how to use the `event()` function to send a CLEAR_CART event. The `eventData` object must contain all the required attributes for the event type, in this example, for a [CLEAR_CART event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/clear_cart-event.html "CLEAR_CART event").

```javascript
import { engage } from "./engage.js";
// ...

const handleClickClearCartEvent = async () => {
    const eventData = {
      channel: "WEB",
      currency: "EUR",
      pointOfSale: "myretailsite/ireland",
      language: "EN",
      page: "home"
    };

    const extensionData = {
      customKey: "customValue"
    };

    await engage.event("CLEAR_CART", eventData, extensionData);
};

```

Example 11. SEARCH event

Here's an example of how to use the `event()` function to send a SEARCH event. The `eventData` object must contain all the required attributes for the event type, in this example, for a [SEARCH event](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/objects/event-data-object/search-event.html "SEARCH event").

```javascript
import { engage } from "./engage.js";
// ...

const handleSearchEvent = async () => {
    const eventData = {
      channel: "WEB",
      currency: "EUR",
      pointOfSale: "myretailsite/ireland",
      language: "EN",
      page: "search result page",
      "product_name": "airSupport",
      "product_type": "RUNNERS"
    };

    const extensionData = {
      customKey: "customValue"
    };

    await engage.event("SEARCH", eventData, extensionData);
};

```

Example 12. Custom event

Here's an example of how to use the `event()` function to send a custom event called `myretailsite:CLICKED_POPUP`. `eventData` contains all the [required attributes for the event data object](https://doc.sitecore.com/cdp/en/developers/api/stream-api/sitecore-engage-sdk-reference/functions/event-data-object.html#UUID-a7f441ce-7bee-9e1a-8a6c-7f995310e71b_UUID-2cda931f-8a8a-520d-dd7c-fe7fa3c3d597 "Required attributes"). `extensionData` contains the custom data.

```javascript
import { engage } from "./engage.js";
// ...

const handleClick = async () => {
    const eventData = {
      channel: "WEB",
      currency: "EUR",
      pointOfSale: "myretailsite/ireland",
      language: "EN",
      page: "home"
    };

    const extensionData = {
      customKey: "customValue"
    };

    await engage.event("myretailsite:CLICKED_POPUP", eventData, extensionData);
};

```