Skip to main content

I set up a flow to remove thousands of unengaged profiles so my client wouldn’t have to include them in billing.

But chose the wrong rule at the end of the flow, so it hasn’t actually suppressed them...

It was the closest option to “suppress” I could find, and of course I presumed that Klaviyo, the leading ESP, wouldn’t encourage me to do a Sunset flow to clean my list without mentioning that for the “automation” to work, there would be parts of it that were NOT automated and must be done manually.

Went to ask the community how to make it automatically suppress and only then learned from 2 posts  that such an option doesn’t exist.

Let me check the date… yep, it’s 2024.

Have I missed something??? Is there truly no automation that unsubscribes contacts without my participation??

And is there a way I can find the contacts who’ve already passed through so I can turn them into a list and suppress them?

Posts I reference:

Apologies if this post reads as frustrated and cynical. But I am incredulous, it feels like the dev team became very complacent at keeping current with expected features.

Yes, you have missed something.

https://www.klaviyo.com/blog/solution-recipe-9-use-klaviyo-flow-webhooks-to-automate-suppressions-using-segments-and-klaviyos-apis

 

Just make sure the Suppression endpoint they reference in the article is the latest version (it looks like they are).

https://developers.klaviyo.com/en/reference/suppress_profiles


Thanks @DavidSandel 

It's really useful info to have as I was looking for an automated sunset/suppression approach!

Your first link only took me so far but the webhook preview was failing. However when I amended the JSON body to correspond to the example in your 2nd dev link, the preview webhook was successful. My flow is now at manual for testing.

Thanks again 😀 

Andy


@DavidSandel - Super glad you brought up Developer Solution recipes, they use to be on the Klaviyo Developer Blog on medium.com, but it looks like Klaviyo is migrating them over to the Klaviyo blog.

For @worcestershiresauce, the second part of your question:

And is there a way I can find the contacts who’ve already passed through so I can turn them into a list and suppress them?

The easiest way that I know of is to create a Segment of those that “pass through” your Flow.  Assuming you still have the “Update Property” action to mark the custom property “Accept Marketing” as False, then you can create a Segment of people who’s property “Accepts Marketing” is “False.”

Via Uploading to Suppress via CSV

Then you can export that Segment as a CSV, and then go to your Profiles → Viewed Suppress Profiles (Upper Right Corner).  Then click on “Import” (Upper Right Corner) and upload the CSV that you exported from your Segment.  Make sure your CSV has nothing but one column with the header “Email” and the list of email addresses you want to suppress.

Via Segment Quick Action Menu to Suppress

The other and faster way is to simply click on the quick action menu for “Suppress current members” when viewing the Segment in the List & Segments view.  See here:

 

I’m a bit old fashion, and prefer the upload feature so I always have hard copy “paper trail” record of email address who I know I have manually suppressed in case I ever need to go back to verify.  As a convention, I save every manual suppressed people in a secured folder with the date/time as the filename just in case!

Here’s a Klaviyo guide to walk you through it just in case:

Hope this helps.


Thanks all for your help!

Have gone with the segment>click suppress for now, going to investigate the webhook version and see if I can get that done for future ease. I got stuck at the endpoint API step cos I am a humble copywriter etc, not familiar coding and developer stuff, but I’ll just ask dumb questions 😅

Appreciate your help @DavidSandel and @retention. David would you mind if I tag you if I get stuck setting it up?


Would be my pleasure.


Hi @worcestershiresauce 

If you do decide to use a webhook, I’ve just created one following @DavidSandel posting those help pages. All works well so happy to share.

The flow is triggered when contacts join a sunset segment. In my flow, the suppression occurs after one attempted ‘re-subscribe’ email plus a time delay to allow them to re-engage.

Webhook steps

Create new private API key: https://www.klaviyo.com/settings/account/api-keys for use in the authorization header below.

Add a webhook to your flow (see image below):

  • Destination URL is https://a.klaviyo.com/api/profile-suppression-bulk-create-jobs/
  • accept value is application/json
  • content-type value : application/json
  • revision value is a date (think I used yesterday’s date format: 2024-09-04)
  • Authorization value is Klaviyo-API-Key your-private-api-key

Replace your-private-api-key with the key created in the first step above.

copy this into the JSON body section:

{
  "data": {
    "type": "profile-suppression-bulk-create-job",
    "attributes": {
      "profiles": {
        "data": s
          {
            "type": "profile",
            "attributes": {
          "email": "{{person.email}}"
        }
          }
        ]
      }
    }
  }
}

 

You can preview the webhook against a profile to ensure you get a success message from Klaviyo. Nothing will be updated on that profile.

Then add the suppression webhook as the first step to your sunset flow at manual just for testing. When a new contact enters the segment, they’ll be in the webhook's ‘needs review’ tab. You can choose to initiate the webhook to see if they are unsubscribed OK (example also below). When you’re happy, you can move the suppression webhook to where you want the suppression to occur in your sunset flow and set it to live.

Hope that helps

Regards

Andy

webhook config.
 
Test webhook for profile

 


Reply