Skip to main content
Contributor I
June 13, 2024
Solved

Double Opt-In not receiving opt-in email

  • June 13, 2024
  • 11 replies
  • 494 views

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

    This topic has been closed for replies.
    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? 

    11 replies

    Brian Turcotte
    Klaviyo Alum
    June 14, 2024

    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

    Contributor I
    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
    2025 Champion
    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.  

    Joseph Hsieh // retentioncommerce.com // X: @retention
    Contributor I
    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

    Partner
    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?

    https://theforms.pro
    Contributor I
    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
    Klaviyo Employee
    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. 

    Contributor I
    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
    Klaviyo Employee
    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? 

    Contributor I
    June 28, 2024

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