Skip to main content

Hi,
I have different flows. Every time a user sends a request triggering the custom event “New Lead” (with request_id parameter) he receives 3 emails (first one immediately, 2° after one day, 3° after another day). Users can send many requests so they will receive many emails from the same flow.

Here’s the problem. If a user makes a purchase between Email #1 and email #2 or #3 triggers the custom event “Purchase” (with request_id parameter) and he shouldn’t receive the email after purchase. I think I can do that easily with additional filters BUT how can I stop the right email with that specific request_id of that purchase and continuing to send the other email for the request_id he didn’t purchase? 

Thank you very much.

To achieve this, you can implement a conditional filter in your flow that checks if the "Purchase" event with the corresponding request_id has occurred before sending the subsequent emails, ensuring that only the emails related to requests without a purchase are sent, while allowing others to continue as intended.

you can contact me for more help

Best Regard

Mic Pro


I did like this. But it doesn’t seem to work. 
I made two New Lead with the same email: one with request_id: 3977522 and the other one with request_id: 3977485.
So I received correctly the email #1 with request details two time (one email #1 for 3977522 and one email #1 for 3977485).
Before receiving the email #2 for both request id I set that additional filter and I made a purchase with request_id 3977522.
Theoretically I should get only the email #2 and email #3 for request_id 3977485. But I got also the other two email for request_id 3977522.

Am I missing something?

 

 


Klaviyo filters work at the profile level, so both request_id events trigger emails since they share the same email address.

Solution

  1. Add Event Property Filter:
    Use Properties > request_id > equals > 3977485 in your flow filters to target the correct request.

  2. Conditional Split:
    Add a split in the flow:

    • Condition: Properties > request_id > equals > 3977485.
  3. Verify Event Data:
    Ensure each event sent to Klaviyo includes request_id in the properties.

This ensures emails trigger only for the intended request_id.

 

 

kindly reach out if it seems complex so we can get the issue solved asap.


I’ll try but I don’t want to put the static value of the request id. How can I put Properties > request_id > equals > {variable of request_id}. 
Because the request_id is always different. Every user triggers different request_id.


 

Solution Without Static Values:

  1. Dynamic Filters:
    Set the flow to trigger based on events where request_id exists:

    • Example: Properties > request_id > exists.
  2. Event-Specific Logic:
    Ensure your system sends request_id dynamically in the event data. Flows can then filter or split based on the exact request_id received.

  3. Conditional Splits:
    Add a split in the flow:

    • Condition: Properties > request_id > matches dynamic value.

If you need help setting this up or updating your backend to include request_id, let me know.


Still not working. This is my user’s activity. 
Event New Lead with request_id. I received the email. Then I did the purchase from that request_id. I received the second email even if I shouldn’t.
 

And this is the filter my Conditional Split. 
Not working. Any help?


 

Thanks for sharing the details. I’ve handled similar issues for clients with great success. Feel free to reach out for assistance and implementation. I would be happy to help resolve this for you!

Best regards,

Mansir.


From what I found out I can’t put the variable in the conditional split or for updating profile property.
There’s no way without using API. Am I right? 


You're correct, conditional splits and profile updates have limitations without leveraging the API. I have successfully implemented solutions like this using API for other clients. I can assist with the setup and implementation.


Reply