TugusDeveloper Docs
Events

Inbound Field-Aliasing

How Tugus normalizes incoming events with different field names to the canonical schema.

Tugus accepts incoming events with different field names depending on the sender (GA4, Meta Pixel, WooCommerce, Shopify, or Klaviyo style). Before storage, all data is normalized to the canonical schema.

In practice this means: you don't need to do any schema mapping on the sender side — send whatever your system gives you, Tugus translates automatically. Canonical keys always take precedence when both are set.

Top-level field aliases

CanonicalAccepted aliases
content_idproduct_id, item_id, sku, ProductID
content_idsproduct_ids, item_ids
content_nameproduct_name, item_name, title, ProductName, name
content_typeitem_type, product_type
content_categoryitem_category, product_category, category
branditem_brand, product_brand, manufacturer, Brand
valueamount, revenue, total, subtotal, price
currencycurrency_code, iso_currency, Currency
order_idtransaction_id, order_number, invoice_number, OrderId
contentsitems, line_items, products, cart_items, Items
search_stringsearch_term, query, q, SearchTerm
shippingshipping_cost, shipping_amount, Shipping
taxtax_amount, Tax
couponcoupon_code, discount_code, voucher, DiscountCode
payment_typepayment_method, pay_method
shipping_tiershipping_method, delivery_method
link_urlhref, url, outbound_url

Item-level aliases (inside contents[])

CanonicalAccepted aliases
idproduct_id, item_id, sku, content_id, ProductID
nameproduct_name, item_name, title, ProductName
priceitem_price, unit_price, amount, ItemPrice
quantityqty, Quantity, count, num
categoryitem_category, product_category, Categories
branditem_brand, product_brand, Brand, manufacturer
variantitem_variant, variant_title, sku_variant

Example — WooCommerce style, normalized automatically

Incoming event (e.g. from a WooCommerce plugin):

{
  "event_name": "purchase",
  "event_data": {
    "product_id":   "12345",
    "product_name": "Sneaker X Pro",
    "total":        179.80,
    "currency_code": "eur",
    "transaction_id": "ORD-001",
    "line_items": [
      { "product_id": "A", "qty": 2, "item_price": 89.90 }
    ]
  }
}

After normalization in the Tugus DB:

{
  "content_id":   "12345",
  "content_name": "Sneaker X Pro",
  "value":        179.80,
  "currency":     "EUR",
  "order_id":     "ORD-001",
  "num_items":    2,
  "contents": [
    { "id": "A", "quantity": 2, "price": 89.90 }
  ]
}

Idempotent: If your sender already uses the canonical schema, normalization changes nothing. Canonical fields always win — you can send both in parallel without causing conflicts.

On this page