Skip to main content
Question

API Feature Request - Millisecond Timestamp Precision for Event Attribution

  • April 13, 2026
  • 4 replies
  • 95 views

Forum|alt.badge.img

Hi Klaviyo Team,

 

We're building analytics that replicate Klaviyo's attribution model. We've identified 

cases where multiple email interactions (opens/clicks) occur within the same second 

for different flows.

 

Current Issue:

- API returns timestamps with second precision (e.g., "2025-04-07T16:54:49+00:00")

- When two interactions happen in the same second, we cannot determine which 

  Klaviyo used for attribution

- This causes ~0.5% revenue misattribution in our reports vs Klaviyo dashboard

 

Request:

- Expose millisecond precision in the Events API datetime field

- OR expose the attributed timestamp that Klaviyo used internally
- OR the Tie breaker for these scenarios !

 

Would this be feasible as an API enhancement?And Please Advise us !

 

Thank you

4 replies

Kim from Cadence
Partner
Forum|alt.badge.img+13

@3lgohari, can you share a bit more detail on why you’re trying to re-create Klaviyo’s attribution via raw events vs. using the Reporting API? If you used the latter, you’d have consistent results with Klaviyo. 

That said, I believe you can use `?include=attributions` on the Get Events API to see for a given event (e.g. for a “Placed Order” event), which email event it’s attributed to.


Cadence / Book a demo


Forum|alt.badge.img
  • Author
  • Contributor I
  • April 15, 2026

Thanks for the response We do use ?include=attributions and it works well.

However, we have two reasons why we re-compute attribution locally:

1. Custom Attribution Windows: We allow clients to configure different 
   attribution windows in our app than what's set in their Klaviyo account 
   (e.g., 24h clicks instead of 5-day).

2. Message-Level Attribution: The attributions returned for Placed Order 
   events only include flow_id, not message_id. Our app provides analytics 
   at the flow MESSAGE level ,  so we need to determine which specific message within a flow drove the 
   conversion.
 

   We validated this: out of 1,090 flow-attributed Placed Orders, 100% have 
   flowId but 0% have messageId in the attribution response.
 

Is there a way to get message-level attribution from the API ( event level )? Or is this 
data only available in the Reporting API / dashboard exports?

For the tiebreaker issue (same-second interactions), millisecond precision 
would help us match Klaviyo's logic more precisely.


Kim from Cadence
Partner
Forum|alt.badge.img+13

@3lgohari, I’m looking at events returned from the Get Events API (revision 2026-01-15) for my account, and  Ido see flow, flow-message, and flow-message-variation (for A/B tests) returned on the included attribution objects. Which revision of the API are you using? Mind sharing an example payload for what you’re seeing


Cadence / Book a demo

 


Forum|alt.badge.img
  • Author
  • Contributor I
  • April 21, 2026

Hi Kim, thanks again for your this solved the initial issue and we’re now able to retrieve the attribution objects correctly without the need to do it inhouse. However, I wanted to clarify one point to make sure we’re interpreting this properly:

Are the attribution relationships returned in the Events API expected to remain static (i.e., reflecting the attribution at processing time), or do they get updated if attribution settings (like window or model) are changed later in the account?

 

The reason I’m asking is that we’re seeing differences compared to the reporting side, so just want to confirm whether this is expected behavior.

 

Really appreciate your guidance on this