Skip to content

product/image/created ​

Overview ​

PropertyValue
Webhook typeproduct/image/created
Kafka topicproduct.image.created
DirectionPlatform → Your endpoint

Description ​

Fired when a new image is attached to a product.

Trigger Conditions ​

  • An image is uploaded and associated with a product via the API

Message Envelope ​

json
{
  "header": {
    "organizationId": "org_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "messageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "webhookId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "type": "product/image/created",
    "date": "2024-03-15T10:23:45.000Z"
  },
  "body": { ... }
}

The body field contains the image object with the parent product nested.

Note on organizationId resolution: This event uses an organizationIdAccessor pattern — the organizationId is read from data.product.organizationId.

Body — Property Table ​

Root Object ​

FieldTypeNullableDescription
productProductNoThe parent product (see Product table)
idstring (uuid)NoUnique image identifier
namestringNoImage file name
typestringNoMIME type (e.g., image/jpeg)
descriptionstringYesOptional description or alt text
bucketstringYesObject storage bucket name
destinationstringYesStorage path/key within the bucket
sourceFilestringYesOriginal upload file name
downloadUrlstringNoPublic URL to access the image
metadataobjectYesArbitrary metadata (JSON)
createdAtstring (ISO 8601)NoCreation timestamp
updatedAtstring (ISO 8601)NoLast update timestamp

Product Object ​

FieldTypeNullableDescription
idstring (uuid)NoUnique product identifier
organizationIdstring (uuid)NoOrganization that owns this product
titlestringYesProduct display name
slugstringYesURL-friendly identifier
statusenumYesDRAFT, ACTIVE, ARCHIVED, DISABLED, HOLD
modelenumNoPRODUCT or BUNDLE
createdAtstring (ISO 8601)NoCreation timestamp
updatedAtstring (ISO 8601)NoLast update timestamp

Full JSON Payload Sample ​

json
{
  "header": {
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "messageId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "webhookId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "type": "product/image/created",
    "date": "2024-03-15T10:23:45.000Z"
  },
  "body": {
    "id": "f7a8b9c0-d1e2-3456-fabc-789012345678",
    "name": "tshirt-white-front.jpg",
    "type": "image/jpeg",
    "description": "Front view of the white t-shirt",
    "bucket": "happycolis-media",
    "destination": "products/d4e5f6a7/tshirt-white-front.jpg",
    "sourceFile": "tshirt-white-front.jpg",
    "downloadUrl": "https://cdn.example.com/products/d4e5f6a7/tshirt-white-front.jpg",
    "metadata": null,
    "createdAt": "2024-03-15T10:23:45.000Z",
    "updatedAt": "2024-03-15T10:23:45.000Z",
    "product": {
      "id": "d4e5f6a7-b8c9-0123-defa-234567890123",
      "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "title": "Classic White T-Shirt",
      "slug": "classic-white-t-shirt",
      "status": "ACTIVE",
      "model": "PRODUCT",
      "createdAt": "2024-03-15T09:00:00.000Z",
      "updatedAt": "2024-03-15T10:23:45.000Z"
    }
  }
}

Notes ​

  • This event uses organizationIdAccessor: (data) => data.product.organizationId.
  • downloadUrl is a publicly accessible CDN URL; no authentication is required to download the image.

HappyColis API Documentation