Journeys, segments and conversion goals work with any event name you track. For commerce,
use these six names so starter journeys, goal pickers and future store integrations line
up with your data. They follow Segment’s e-commerce v2 spec, and GET /events/names
returns them as suggestedNames before you have sent any.
| Event | When |
|---|---|
Product Viewed |
A customer opens a product page |
Product Added |
A product goes into the cart |
Checkout Started |
The customer begins checkout |
Order Completed |
Payment succeeds |
Order Refunded |
An order is refunded, in full or in part |
Order Cancelled |
An order is cancelled |
Properties
| Property | Type | Notes |
|---|---|---|
order_id |
string | Your order or payment reference |
total |
number | In major units: dollars, not cents |
currency |
string | ISO 4217, such as USD or EUR |
products |
array | Optional: { product_id, name, price, quantity } per line |
A conversion goal on Order Completed with valueProperty: "total" and
currency: "USD" reports revenue for the campaign or journey that drove the order.
An order whose own currency is not USD still counts as a conversion, but adds no
revenue: amounts are never converted between currencies.
curl https://api.kirora.io/v1/events/track \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: order-10042" \
-H "Content-Type: application/json" \
-d '{
"externalId": "customer-881",
"eventName": "Order Completed",
"properties": { "order_id": "10042", "total": 125.5, "currency": "USD" }
}'
Use the order ID in the Idempotency-Key so a retried request records the order once.
Name the customer by contactId, externalId or email (exactly one). To backfill
history, POST /v1/events/batch takes up to 100 orders at once, each with its own
idempotencyKey. Give each order its real time in occurredAt, or it is recorded as
happening now. It is an ISO 8601 timestamp with Z or an offset (+01:00), at most 24
hours ahead.
Payment providers
Payments from a connected payment provider need no code. Once the workspace owner connects
the provider in Settings › Integrations, each successful charge becomes an Order Completed
on the paying customer, found or created by email (without marketing consent), with
order_id set to the provider’s payment reference and total in the currency’s major
unit. A charge the provider redelivers is recorded once.