Skip to content

Submit a product event

Request

Send a single product change to an ecommerce connector. Use product events to keep Fin's product knowledge current between full catalog uploads. Each request carries one event.

A full catalog must be uploaded with Upload a product catalog before you send events. Until then, this endpoint returns 409 Conflict.

Event types

typedataEffect
product.createdproductAdds the product, or updates it if a product with the same id already exists.
product.updatedproductUpdates the product with the same id, or adds it if it does not exist yet.
product.deletedproduct_idRemoves the product from Fin's knowledge.

For product.created and product.updated, send the full product object, not only the fields that changed. It uses the same fields as a catalog product (ecommerce_catalog_product), plus a required updated_at timestamp. The product is matched by id. The serialized product must be 60 KB or smaller.

For product.deleted, send only data.product_id.

occurred_at is required on every event and must be an ISO 8601 timestamp.

Processing

The endpoint returns 202 Accepted with an event_id once the event is queued. Processing is asynchronous, so the change may take a short time to reach Fin.

Security
bearerAuth
Path
idstringrequired

The unique identifier of the ecommerce connector.

Example:42939
Headers
Intercom-Versionstring(intercom_version_preview)

Preview Intercom API version. Used for closed beta endpoints or other features under managed availability.

Default:"Preview"
Value:"Preview"
Example:Preview
Bodyapplication/json
typestringrequired

The kind of product change.

Enum:"product.created""product.updated""product.deleted"
Example:"product.updated"
occurred_atstring, (date-time)required

When the change happened, as an ISO 8601 timestamp.

Example:"2026-10-15T14:05:00Z"
dataobjectrequired

The event payload. Send product for product.created and product.updated, and product_id for product.deleted.

curl -i -X POST \
  https://api.intercom.io/ecommerce/connectors/42939/events \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Intercom-Version: Preview' \
  -d '{
    "type": "product.created",
    "occurred_at": "2026-10-14T09:30:00Z",
    "data": {
      "product": {
        "id": "tent-2p-ultralight",
        "title": "Ridgeline 2-Person Ultralight Tent",
        "url": "https://example.com/products/ridgeline-2p-tent",
        "description": "A freestanding two-person backpacking tent that weighs under 1.5 kg.",
        "featured_image_url": "https://cdn.example.com/images/ridgeline-2p.jpg",
        "price_min": 349,
        "price_max": 379,
        "currency": "USD",
        "in_stock": true,
        "category_path": [
          "Camping",
          "Tents"
        ],
        "collections": [
          "Backpacking"
        ],
        "tags": [
          "ultralight",
          "freestanding"
        ],
        "available_options": [
          {
            "name": "Color",
            "values": [
              "Green",
              "Orange"
            ]
          }
        ],
        "variants": [
          {
            "id": "tent-2p-ultralight-green",
            "title": "Green",
            "price": 349,
            "in_stock": true,
            "selected_options": [
              {
                "name": "Color",
                "value": "Green"
              }
            ]
          },
          {
            "id": "tent-2p-ultralight-orange",
            "title": "Orange",
            "price": 379,
            "in_stock": true,
            "selected_options": [
              {
                "name": "Color",
                "value": "Orange"
              }
            ]
          }
        ],
        "created_at": "2026-10-14T09:30:00Z",
        "updated_at": "2026-10-14T09:30:00Z"
      }
    }
  }'

Responses

Event accepted and queued for processing.

Bodyapplication/json
event_idinteger

The unique identifier for the queued event.

Example:81273
Response
{ "event_id": 81273 }