I'm running a flow triggered when someone submits a contact form on our website. The submission creates/updates a Klaviyo profile and tracks a custom metric event with all form fields in the event properties. In Klaviyo I can confirm the event fired and every property is present on the profile's activity timeline.
Problem
When the flow sends the notification email automatically (first send from the flow), the email renders profile (person) fields correctly, but all event variables are empty (missing form/message data in the template).
What works
Event properties are visible on the profile after submission. Preview in the email editor, using that user's real event data, shows the email correctly. Send from preview to a test address also works and includes all event data.
Happy to share metric name, trigger screenshot, template variable examples, and a sample event JSON if that helps. Thanks for any pointers.
Best answer by Temi O.
Hi @ivjankelic ,
Thanks for the added detail here.
Based on our docs, this does not sound like expected behavior. In metric-triggered flows, internal alerts can use both profile variables and event variables, so those event parameters should normally be available in the message.
One thing that may be happening is that the Preview modal is using a sample event that contains those properties, while the live send is being triggered by an event with a different payload or structure. Klaviyo also requires event variables to match the exact property path and case shown in preview, so even a small mismatch can keep them from rendering.
Since profile variables are coming through but the event parameters are not, this seems more likely related to the event data available at send time. If those same event properties are definitely present on the live event and still are not rendering in the automatic internal alert, I’d recommend contacting Support so they can investigate more closely!
A couple of questions I have. Are you setting profile custom properties or just event properties? Are you seeing the properties on the left hand side on the profile page as opposed to clicking on the event to see them?
Then I wonder if the flow is triggered by that event. If not then you must leverage the profile custom properties. If you can share the flow email template block including the variables it would help.
I can assure you, that the flow is triggered. The flow sends a live internal alert, but only the event parameters that we send do not appear (the person.first_name and last_name for example appear normally). However, when we manually resend that same internal alert through the Preview modal, the email gets sent perfectly, including all the event parameters. This only happens with the Internal Alert. In other flows, where we send out emails, the event parameters appear.
Our biggest concern is that when the alert gets sent out automatically, the event parameters don’t appear. When we send it out manually, it works fine.
Based on our docs, this does not sound like expected behavior. In metric-triggered flows, internal alerts can use both profile variables and event variables, so those event parameters should normally be available in the message.
One thing that may be happening is that the Preview modal is using a sample event that contains those properties, while the live send is being triggered by an event with a different payload or structure. Klaviyo also requires event variables to match the exact property path and case shown in preview, so even a small mismatch can keep them from rendering.
Since profile variables are coming through but the event parameters are not, this seems more likely related to the event data available at send time. If those same event properties are definitely present on the live event and still are not rendering in the automatic internal alert, I’d recommend contacting Support so they can investigate more closely!
From what you describe, it sounds like the issue is a Klaviyo form/profile update delay.
I have multi-step forms with custom properties being set (Zero-Party Data).. The first step captures personal details (email etc), and the subsequent ones capture ZPD
If the profile is added to a list from a form submission on the first step and enters a flow where an email or internal alert is sent immediately the profile joins that list, and those messages include custom property values, often they are not captured in time.
The solution is to add a delay in the flow before the first message/alert is sent. I usually use 15 mins, though you can experiment with a shorter time delay.
I hope that helps
Andy
Ask a Question Widget
Need help?
Get answers from Klaviyo experts and fellow community members.