Skip to main content
Solved

Double Opt-In not receiving opt-in email


Forum|alt.badge.img+1

We've set up an Oauth integration and all seems to be working well except one detail - users who sign up on double opt-in aren't receiving their opt-in emails. I've tested with a demo brand I've set up but haven't received the email for any recent signups when having double opt-in selected, and so the users are stuck in a "never subscribed" state. If using single opt-in, the user is subscribed to email marketing correctly.

Some more details:
- We first create a profile, then hit the subscribe profiles endpoint to opt them into email marketing

- We're using the klaviyo-api node package

- The oauth app has these permissions: events:read events:write profiles:read profiles:write lists:read lists:write subscriptions:read subscriptions:write

Best answer by Kim Strauch

@jackson.aisle, thanks for the update. I think this might be a case of IP blocking / list bombing. Do you mind filing a ticket with support to get assistance on this? 

View original
Did this topic or the replies in the thread help you find an answer to your question?

11 replies

Brian Turcotte
Forum|alt.badge.img+37

Hey @jackson.aisle!

May I ask how you’re testing this? Is it possible that the double opt-in emails are being sent to spam? Also, how are you able to determine those who aren’t receiving the emails, and those who just haven’t accepted yet?

 

- Brian


Forum|alt.badge.img+1
  • Author
  • Contributor I
  • 5 replies
  • June 17, 2024

I’m testing on a local development server. Messages aren’t going to spam - it seems like my IP has been blocked by klaviyo though because it works as expected when ran from my coworker’s machine.


retention
Partner - Platinum
Forum|alt.badge.img+62
  • 2025 Champion
  • 949 replies
  • June 17, 2024

@jackson.aisle - Also, it may be because you can only be subscribed to the same List exactly once.  Did you make sure to either try a different email address each time? You can use the Gmail “+” hack to create “new” email addresses on the fly for testing.  


Forum|alt.badge.img+1
  • Author
  • Contributor I
  • 5 replies
  • June 17, 2024

Yes, I’ve tried different emails and even using coworker’s emails to sign up. Also, looks like I was wrong about it working from my coworker’s machine - he didn’t receive his email either, but his profile was created and he is marked as never subscribed


Forum|alt.badge.img+31
  • Partner
  • 252 replies
  • June 18, 2024

Hello @jackson.aisle  Could you please share the sample payload used to subscribe profile?

Are you linking the profiles to a list when subscribing them?


Forum|alt.badge.img+1
  • Author
  • Contributor I
  • 5 replies
  • June 18, 2024

No list. I’m calling it like this
 

await profilesApi.subscribeProfiles({
      data: {
        type: "profile-subscription-bulk-create-job",
        attributes: {
          profiles: {
            data: [
              {
                type: "profile",
                id: profileId,
                attributes: {
                  email,
                  subscriptions: {
                    email: {
                      marketing: {
                        consent: "SUBSCRIBED",
                        consentedAt: new Date(),
                      },
                    },
                  },
                },
              },
            ],
          },
        },
      },
    })

 


Kim Strauch
Klaviyo Employee
Forum|alt.badge.img+9
  • Klaviyo Employee
  • 91 replies
  • June 24, 2024

Hey @jackson.aisle, can you share which revision of the API you’re using for this request? 

Also, would you be able to remove the consentedAt field from your request payload and let us know if that changes anything? This field is meant only for capturing historical consent so there isn’t a real use case to set it to the current datetime. 


Forum|alt.badge.img+1
  • Author
  • Contributor I
  • 5 replies
  • June 26, 2024

Removing `consentedAt` doesn’t seem to have an effect.

I’m testing now and things seem to be working as expected after a fresh deploy (caller is deployed to Google Cloud Functions). I’m wondering if this could have been due to a temporary outage or IP block?


Kim Strauch
Klaviyo Employee
Forum|alt.badge.img+9
  • Klaviyo Employee
  • 91 replies
  • Answer
  • June 27, 2024

@jackson.aisle, thanks for the update. I think this might be a case of IP blocking / list bombing. Do you mind filing a ticket with support to get assistance on this? 


Forum|alt.badge.img+1
  • Author
  • Contributor I
  • 5 replies
  • June 28, 2024

I can’t file a ticket because apparently that is not doable without a paid plan


kaila.lawrence
Community Manager
Forum|alt.badge.img+31

@jackson.aisle I’ve opened a ticket on your behalf. You should hear from Support soon via email! :)