Skip to main content
Solved

Additional Filter Purchase to block specific email flow based on request ID

  • December 16, 2024
  • 9 replies
  • 77 views

Forum|alt.badge.img

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.

Best answer by Mich expert

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

9 replies

Mich expert
Expert Problem Solver II
Forum|alt.badge.img+11
  • Expert Problem Solver II
  • 63 replies
  • Answer
  • December 16, 2024

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


Forum|alt.badge.img
  • Author
  • Contributor II
  • 4 replies
  • December 16, 2024

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?

 

 


MANSIR2094
Expert Problem Solver IV
Forum|alt.badge.img+19
  • Expert Problem Solver IV
  • 328 replies
  • December 17, 2024

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.


Forum|alt.badge.img
  • Author
  • Contributor II
  • 4 replies
  • December 17, 2024

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.


MANSIR2094
Expert Problem Solver IV
Forum|alt.badge.img+19
  • Expert Problem Solver IV
  • 328 replies
  • December 17, 2024

 

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.


Forum|alt.badge.img
  • Author
  • Contributor II
  • 4 replies
  • December 18, 2024

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?


MANSIR2094
Expert Problem Solver IV
Forum|alt.badge.img+19
  • Expert Problem Solver IV
  • 328 replies
  • December 18, 2024

 

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.


Forum|alt.badge.img
  • Author
  • Contributor II
  • 4 replies
  • December 18, 2024

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? 


MANSIR2094
Expert Problem Solver IV
Forum|alt.badge.img+19
  • Expert Problem Solver IV
  • 328 replies
  • December 18, 2024

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.