Product Agents analytics¶
See how your Product Agents perform: messages sent, revenue, engagement rates, a per-agent breakdown, and a daily series, all mirroring the Product Agents Analytics page. Reporting covers one channel at a time, and almost every website has just the one.
Prerequisite: Set up a Klaviyo conversion metric
Before you can fetch analytics, you must set up a metric ID on my.helloretail.com. Go to Product Agents → Analytics, open a Klaviyo channel's Configure conversion metric dialog, and select the relevant metric to use — if you are unsure, it's likely "Placed orders".
Tips & tricks¶
Pick the card that matches what you're doing. Each prompt is ready to paste into your assistant.
Just ask for the numbers
Just ask for the analytics. Leave the channel out and the website's own channel is used, which is the only one on most websites.
Pick the channel first
If a website does have several channels, list them first and pick the id you want.
Ask for the breakdown
Compare agents by asking for the breakdown — it ranks each agent (flow) by revenue.
productAgents_getChannels¶
List a customer website's Product Agent channels — the destinations agents send through (a Klaviyo account or a webhook). Most websites have exactly one, so reach for this tool when a website has several, or to check that a channel's conversion metric is configured. Returns each channel's id, name, type and state, and for Klaviyo channels whether a conversion metric is configured (analytics are unavailable until one is). Use the id as the channelId for productAgents_getAnalytics.
| Name | Type | Required | Description |
|---|---|---|---|
websiteUuid | string | Yes | The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id. |
Example request & response
productAgents_getAnalytics¶
Get one Product Agent channel's analytics for a customer website using Hello Retail: KPI totals (messages sent, revenue, revenue per message, click/open/conversion rates), a per-agent breakdown, and a daily series of messages sent and revenue. Numbers mirror the Product Agents Analytics page.
Limits
- Window: cannot exceed 13 months — longer ranges are rejected. Applies to all channel types.
- Klaviyo rate limits: Klaviyo channels read from Klaviyo's Reporting API — burst 1/s, steady 2/min, daily 225/day. Warm reports are served from cache, so only cache misses count against those limits. When Klaviyo is temporarily rate-limited, the response comes back with
unavailableset (andretryAfterSecondswhen Klaviyo supplies it) instead of failing — render what you have and retry later.
Rate fields depend on the channel type: openRate and unsubscribeRate are Klaviyo-only, conversionRate is for non-Klaviyo (webhook) channels, and the ones that don't apply come back null.
| Name | Type | Required | Description |
|---|---|---|---|
websiteUuid | string | Yes | The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id. |
channelId | string | No | The channel to report on (from productAgents_getChannels). Omit to use the website's first channel, which is the only one on most websites. Pass it when a website has several. |
startDate | string | No | Start of the window, inclusive, ISO YYYY-MM-DD. Defaults to a 30-day window ending on endDate. |
endDate | string | No | End of the window, inclusive, ISO YYYY-MM-DD. Defaults to today. |
limit | integer | No | Maximum number of breakdown rows to return. Default 20, capped at 100. |
Example request & response
{
"channel": {
"channelId": "<string>",
"name": "<string>",
"channelType": "KLAVIYO",
"state": "ACTIVE",
"conversionMetricConfigured": true
},
"totals": {
"messagesSent": 0,
"revenue": 0.0,
"conversions": 0,
"revenuePerMessage": 0.0,
"clickRate": 0.0,
"openRate": 0.0,
"conversionRate": null,
"unsubscribeRate": 0.0
},
"breakdown": [
{
"id": "<string>",
"messageType": "<string>",
"displayName": "<string>",
"metrics": {
"messagesSent": 0,
"revenue": 0.0,
"conversions": 0,
"revenuePerMessage": 0.0,
"clickRate": 0.0,
"openRate": 0.0,
"conversionRate": null,
"unsubscribeRate": 0.0
}
}
],
"series": [
{
"date": "<string>",
"messagesSent": 0,
"revenue": 0.0
}
],
"unavailable": null,
"retryAfterSeconds": null
}