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